iOS Xcode Xcode 6: 同样,与本书中的所有iOS案例一样,案例的发展将发生在Xcode 6进步条件之内。 如果您到目前为止尚未介绍此仪器,则将其与最新的iOS SDK一起首先提到本书的“安装Xcode 6和iOS 8 SDK”部分。 期望建立完成,请通过点按扩展坞上的符号(可能是您所设计的)来分发Xcode,或者使用Mac OS X Finder在框架的“应用程序”信封中查找Xcode。 如果您看不到此窗口,请基本上选择Window→Welcome to Xcode菜单来显示它。 在此窗口中,点击创建另一个Xcode合资企业的选项。 这将显示原理性Xcode 6风险窗口以及任务格式板,在这里我们可以选择一种布局来协调我们需要创建的任务的类型。 位于窗口左侧的面板考虑了目标阶段的选择,为构建基于iOS的小工具或Mac OS X的应用程序提供了替代方案。 首先确保选择位于iOS下面的Application替代方案。 主板包含布局的概要,可将其用作应用程序的原因。 可访问的选择如下: · 主从应用程序 -用于制作基于摘要的应用程序。 从ace失败中选择事物会显示与确定有关的详细信息。 此时的布局将使Back捕获返回到概要。 您可能已经看到了一种用于基于新闻的应用程序的比较方法,通过该方法,可以从一系列功能中进行选择来显示相关新闻文章的内容。 在将其用于基于iPad的应用程序时,此布局实现了基本的分割视图布置。 · 基于页面的应用程序 -利用站点访问控制器创建一种格式冒险,旨在通过在屏幕上翻页来实现透视图的进展。 · 选项卡式应用程序 -使用选项卡栏创建格式应用程序。 标签栏会定期显示在小工具展示的基础上,并且可以对其进行自定义以包含一些内容,这些内容在被选择后会将主要展示更改为各种视角。 例如,iPhone在“电话UI”中工作,它利用选项卡栏使客户端可以在优先选择,联系人,小键盘和语音消息之间移动。 · 单视图应用程序 -为包含单独视图并关联视图控制器的应用程序创建基本格式。 · 游戏 -创建一项计划,以利用Sprite Kit,Scene Kit,OpenGL ES和Metal来推进2D和3D转换。 iOS环境现在包含了各种小工具和屏幕尺寸。 在执行另一项任务时,可以想到证明该合资企业计划针对iPhone或iPad小配件组。 随着iPad Mini和iPhone […]
回望我在Gousto的Mobile Apps团队实习的12周 嗨,我是Nik! 我是伦敦帝国理工学院计算机科学专业的19岁学生,刚刚在Gousto完成了暑期实习,就职于iOS /移动团队“ Mushrooms”(现在的头衔很有意义)😄。 这是我的第一次实习,这是在公司的技术团队中研究真实产品的绝佳机会。 没错,我从事的一些工作现在已经向全世界展示,并希望也能使该业务受益。 这也是我第一次参加代码审查,既审查了我的代码又成为了审查代码的人。 我将尝试对我已经完成的工作以及在这里工作的感觉进行分类 在这篇文章中的12周。 我做了什么 在实习期间,我从事了几个小项目,以及团队其他成员的正常工作。 我真的很喜欢在实现特定部分的同时可以拥有一些独立性和所有权,同时还可以与团队的其他成员一起工作。 那么,我做了什么? 我的第一个提交和拉取请求实际上是一个小问题-该项目不会为我编译,因为上游项目配置错误,并且引用了之前已删除的某些依赖项-仅当项目被重新检出时,该项目才值得注意。 在最初的几天里,我正在设置开发环境并了解代码库。 我的直属经理Spencer首先让我与我的同事在各种小票上进行了一些配对编程:不仅为我提供了一个更好地了解代码的机会,而且还为以后的12周中与我共事的人们提供了机会。 除了各种门票,我还从事以下工作: 维护模式 我的首要任务之一是实施维护模式屏幕。 该屏幕很少使用,但允许Gousto在后端关闭时向用户显示消息,这当然是为了维护。 我以前在Xcode中使用Interface Builder的经验仅是在Mac应用程序上进行的,而此任务主要是在IB中进行的,因此这是一个使我更加习惯IB以及使用自动布局为iPad和iPhone设计的机会。 玩得很尽兴。 更改git-flow的Bitrise配置 蘑菇在许多方面都不同于Gousto的其他技术部门。 这些方式之一是我们使用“适当的” git-flow。 我们尝试在考虑所有分支和标签的情况下按书进行操作。 但这并不总是这样,之前,我们使用了类似git-flow之类的东西,但并不完全是这样。 该系统适用于其他具有即时部署功能的团队,但是由于我们在iOS中没有此功能,因此决定将其切换为git-flow。 Bitrise是我们在Mushrooms中使用的持续集成平台。 您提交一些东西,它由Bitrise编译和测试。 为了完成这项工作,我不得不更新各种触发器并进行测试,在此过程中,还创建了一个简单的沙箱应用程序来测试新配置。 屏幕恢复 屏幕恢复(或简称OSR)是一个大项目。 我在八月的大部分时间里都在进行此工作,创建了各种屏幕和逻辑以为我们的客户提供恢复体验。 成功已不是秘密,古斯托需要成长。 任何公司都一样。 阻碍增长的一件事是用户不了解我们的订阅服务而取消订阅。 OSR的目的是“恢复”客户,说服他们保持订阅状态比取消订阅服务更好。 有时,用户可能会因为对服务的理解不佳而退订,而且如果用户确实确实想退订,则Gousto可以弄清楚为什么用户会退订。 当我开始从事此项目时,OSR已经出现在网站上。 实际上,这是我从事的iOS前端。 这涉及创建许多屏幕,这些屏幕根据从服务器获得的响应中提供的逻辑进行显示。 这个想法是根据用户使用Gousto的时间为用户定制暂停过程。除了从设计中创建所有屏幕外,我还研究了服务器响应的客户端模型,并运行用户完成并管理旅程,行程前对服务器响应的验证以及分析的发送。 以下是一些屏幕截图: 其他的东西 经过深思熟虑后,决定OSR端点将服务Markdown,因此必须在客户端进行呈现。 由于我们不想使用Web视图,而是希望完全控制文本样式; 我写了一个小Markdown到NSAttributedString转换器,该转换器将使用Markdown字符串,将它们输入到名为cmark的C Markdown参考实现中,然后输出格式化的字符串。 在实习即将结束时,我担任了后端工程师的角色,将我们的REST库添加到其中一个PHP服务中。 该服务管理着我们常见问题的内容,将来将能够将这些内容提供给各种前端。 […]
嘿,我叫伊曼纽尔 我最初来自波多黎各,但过去三年来我一直在宾夕法尼亚大学学习计算机科学,在那里我是CS入门课程的首席助教,也是西班牙专业工程师协会的财务主管。 今年夏天,我在Strava的Premium团队担任iOS软件工程实习生。 8月1日(在我实习期间),Strava Premium订阅被更名为Strava Summit:三个运动员可以订阅的独立组合。 这是一个巨大的公司范围内的品牌重塑(即使Premium团队也更名为Summit团队),都花了几个月的时间进行认真的工作和计划,我很幸运地能参与其中! 从底部开始,现在我们在这里 在我的第一周,我的导师问我要从实习中得到什么。 我想要的是能够自豪地看着iOS应用程序中的某个内容并说“嘿,我做到了!”当然,那肯定不会在我的第一周发生,所以我从“轻松”开始要修复的错误。 对我来说,错误是一个巨大的挣扎:我突然掉入了一个包含成千上万次提交和一长串贡献者的代码库,而我却不知道该怎么做。 我需要向我的导师寻求一切帮助。 在实习的前几天,我不确定是否应该接受这个职位,而不是让更有资格的人来担任。 我的导师向我保证,每位新来的工程师都是通过打击错误开始的,需要一段时间才能适应代码库。 对我来说也是如此,过了一会儿,我做到了! 在适应了代码库并感到有些能力之后,我被分配了与Summit发行版相关的第一项任务。 这只是一个成员登陆页面,但是从事与团队相关的事情以及峰会版本实际需要的工作确实令人兴奋。 完成这项任务后,我开始适应在iOS版本的Summit上进行开发,因此我开始每周承担越来越多的责任。 我感到自己逐渐成为团队的重要组成部分,而我的贡献实际上有助于在截止日期之前释放出如此庞大的资金。 到8月1日,我已经完成了许多首脑会议发布任务。 其中最著名的一个是新的Summit订阅确认页面,从字面上看,加入Summit的每个人都会看到! 另一个示例是用户在注册期间获得1个月免费峰会试用版的代码。 该代码会影响在iOS上注册新帐户的每个人,我必须编写它! 成为一个全面的开发者 我确实从实习中得到了想要的东西。 当我查看iOS Strava应用程序时,我可以指向一堆,并认为:“嘿,我做到了”或“嘿,我已解决了”,这是一种很棒的感觉。 到最后,我研究了影响到真实人的真实代码,但在此过程中我也学到了很多东西。 我学习了如何在一个团队中进行大型,高影响力的项目。 我学到了很多很好的项目/任务管理和上下文切换。 从技术上讲,我学到了很多Swift和Objective-C,以及两种语言的出色架构和设计模式。 这不仅是通过编写代码,而且还包括阅读和查看其他iOS工程师的代码。 我学到了所有这一切,因为在Strava的Summit团队中,我被认为是另一位全职工程师。 我没有一个几乎没有任何风险的个人项目,而是整个团队正在从事的工作。 我必须了解影响整个公司和数百万活跃用户的实际截止日期的压力。 我编写的代码对于发布Summit至关重要,而所有代码实际上已经发布,并且现在已在应用程序中。 我在Strava的实习所带给我的最有价值的事情是,成为一名全职员工实际上是什么样的感觉,我不仅对在一个小型项目上工作而度过了一个暑假,而且对自己的工作方式更感激。 斯特拉瓦的人民和文化 我谈到过我在Strava要做的工作,但我没有谈到公司的另一项伟大的事情:总体文化和环境。 平衡是Strava的核心价值观之一,每个人每天都在运用这一点。 在实习期间,我从没料到自己会超出自己的极限:我的经理和导师都明确表示,我工作了8个小时后,我应该回家并花些时间陪伴自己,最终给了我很多东西有时间探索旧金山并与朋友共度时光。 在工作中,没有人会期望您在整个过程中都在恶心地编写代码,而无所事事。 总是欢迎人们休息一下,与朋友散步或品尝小吃。 每个季度都有为期三天的“黑客马拉松”(称为Jams),每个人都可以从事自己想要的任何事情。 团队在场外:Summit发布之后,我的团队就沿着一条河(我个人最喜欢的一条河)下了油管。 所有这些都促进了一个健康,无压力的环境,最终使工程师在实际编写代码(包括我自己)时可以提高工作效率。 虽然Strava确实将实习生像专职工程师一样对待,但也有一些例外。 今年夏天,实习班离开了办公室,去参加巨人队的比赛,参加逃生室,甚至在卡丁车上互相比赛! 在办公室,我们与首席执行官以及Strava的一位联合创始人进行了AMA,我们参加了鳄梨调味酱挑战赛:员工制作鳄梨调味酱的传统,然后由实习生对其进行判断,以确定谁在Strava中做出了最好的鳄梨调味酱。 总体而言,我在Strava的夏天令人难忘,我很感激自己的实习经历充满挑战,收获丰厚,乐趣无穷。
我们疯了,我不会改变任何事情 每当您找到工作或实习时,它就会充满纯粹的兴奋和一些神经。 我第一天穿什么? 我会适合吗? 工作环境如何? 环境有多快/慢? 这些都是我在OpenSports工作的第一天之前问自己的所有问题。 艾丽西亚(Alicia)是与OpenSports进行所有沟通的关键人物,并让我了解了我将要从事的某些任务和项目,这些听起来都很棒。 创建营销活动,吸引组织者,创建游戏并参加接送,在全球范围内构建OpenSports。 这些听起来都像是一项艰巨的任务,对吧? 回到过去,这些问题可能是我要问自己的错误问题,而不是我在OpenSports上完成的全部任务。 既然一切都快结束了,我应该问的问题可能会更像这样……艾丽西娅吃早饭/午餐/零食会比鸡肉和鳄梨吃得更多吗? Yi An在哪里找到她带到办公室的所有美味小吃? 是詹姆斯到处跑来锻炼身体还是因为他兴奋? 伊安和詹姆斯有没有离开办公室? (仍然不确定他们住在哪里)吉吉(阿利西亚的另一自我)仅在我们拍摄时停下来吗? 她是否太出名了,不能每天去Iboost? 艾丽西亚(Alicia)会停止咯咯笑吗? (它具有极强的传染性,当她这样做时,你禁不住大笑)。 沿着这些思路,我的项目和任务确实涉及那些典型的任务,但有一点曲折。 我还参与了跟踪,创建时髦的视频,大笑,跳上火车在机场等几个小时以待高级首席执行官的事情,这些事情我会再做一次。 在过去的三个月中,OpenSports一直是我远离家乡的家,我再也无法不认识和认识我的人。 当我在OpenSports的时间结束时,我想说声谢谢。 我不想让这个博客变得糊涂或故事太长,而只是想简短地回顾一下我的经历和与我合作的人。 我想到的三件事是: 坐在艾丽西亚(Alicia)旁边仅意味着一件事- 麻烦 我的意思是尽最大可能的麻烦。 艾丽西亚真是太神奇了! 好心,有趣,友好,真诚,清单还在继续。 她的笑容极具感染力,她笑时不禁大笑。 在处理任务和项目时,她非常乐于助人,即使在可能不是正面批评的情况下,她也善于沟通。 即使她不是曼联球迷(但穿着球衣打扰我),在我尝试工作时也会分散我的注意力(或者可能让我所有的问题都分散她的注意力),但她一直是一个很好的人,可以在旁边工作并引起混乱在过去的几个月中。 从早上吃燕麦片或每天随机吃自己的鸡肉,牛油果和两个聪明人的特长,Alicia的习惯一直很稳定,即使您确实惹了一些麻烦,她也是您要与之共事的人。 2.易安和詹姆士是勤奋的人-他们永不止步! 这可能是我见过的最努力的两个人,更不用说有效率了。 当我开始实习时,我通常工作9-5个小时,通常当我进入办公室时,James或Alicia会在那里。 我五点钟离开时说再见,然后在周一至周五重复该过程。 唯一的是,詹姆斯和易安的工作时间远非常规。 对于他们来说,通常呆在iBoost的工作场所,直到午夜过后,或者在深夜的时间里编写代码。 他们的工作从未被忽视,他们为公司做出了很多贡献,为此,我要说声谢谢! 他们很棒,并且永不停止尝试完善平台,他们的热情和执着是我真正欣赏的东西……他们也知道如何玩乐! 3.在OpenSports从来没有沉闷的时刻 从构想一个小时之内跳上火车去机场,或者在寒冷的寒冷中拍摄室外比赛,这里从来没有沉闷的时刻,我再也没有其他机会了。 没一天,我不会因为詹姆斯的一个想法而歇斯底里地大笑或离开办公室。 来到这里真是太高兴了。 在一个挑战环境的同时,我所从事的工作也给我带来了挑战,但这只是我梦dream以求的工作。 从“跟踪”到尝试在截止日期之前的30秒内提交报告,再到每天的“工作室”设置和拍摄会议,我都无法要求更好的体验。 显然,我学到的知识远远超过此列表,但是要写出我学到的所有内容,则需要几天的时间。 我想对OpenSports的所有人表示欢迎,感谢您向我张开双臂,感谢多伦多的接送足球社区与我合作,并让我成为组织者,并感谢所有使用我们平台的组织者和球员! OpenSports不仅仅是一家初创公司,而是一个家庭,我们非常关心用户,并且永远不会改变。 在这里工作真是一种荣幸,我将永远不会忘记的经历。 上次登出 —亚历克斯·拉蒙塔涅❤
帮助建立公司和运输代码就像什么! 今年夏天,我很高兴以软件开发实习生的身份加入MySwimPro(我的名片上写着Software Engineer!)。 虽然我经验不足,并且我的代码有时还很草率,但我感觉自己是团队中一个有价值的成员。 在团队中只有三位创始人(Fares,Adam,Mike)和另一位软件工程师(Ben),每个人都应该承担起自己的责任,这意味着我负有真正的责任,并参与了现已投入生产和使用的项目世界各地成千上万的人。 没有咖啡,没有BS。 我学了很多东西,想分享我的经验。 背景 MySwimPro是一个针对游泳者的培训平台,采用iPhone / Apple Watch和Android / AndroidWear应用程序的形式。 90%以上的游泳者主要是独自训练,很少或根本没有教练和团队参加。 我们免费提供基本锻炼,技术和培训内容以及锻炼记录; 高级升级可提供更个性化的指导和分析。 我们被评为2016年Apple年度Apple Watch App,并继续改进我们的产品,为用户达到“ 金牌时刻 ”提供结构化支持-无论是减肥目标,克服抑郁症还是训练游泳英语频道。 我的职责主要是为我们的iPhone应用程序开发新功能,重新设计旧功能,改善用户界面以及解决bug。 我还亲身接触了Apple Watch应用程序,为产品的未来规划了路线图,致力于发现客户,研究了我们的业务模型和策略,并在诸如底特律启动周等活动中代表了该品牌。 大学实习很酷! 技术学习 作为一个新兴的软件开发人员,看到我今年夏天的技术水平提高真是太令人兴奋了! 我了解Swift的基础知识。 但是通过与其他MySwimPro工程师(亚当,iOS;迈克,Android;本,iOS)的指导,我学到了很多东西,不仅对自己为iOS开发的能力,而且对自己的申请能力充满信心面向用户的应用程序的基本设计原则。 有了扎实的基础,开发用于Web或Android的应用程序实际上就是学习如何用一种新语言(无论是Javascript(及其框架),Java还是Kotlin)表达我已经知道的知识。 MVC / MVVM体系结构和委派模式,面向对象的设计和模板,部署Web端点以及使用异步回调之类的事情并没有以Swift结束。 但这并不是说我没有学到很多Swift特有的知识! 在今年夏天之前,我的开发经验几乎仅限于C ++,这是一种更加冗长和低级的语言。 我还记得学习Swift的时候,最初以为语法很丑陋,可选变量和闭包很奇怪,Swift 3中的字符串解析很烂,并且自动引用计数令人困惑。 那是什么意思,没有“ ++”运算符? Ben是我们在苏格兰的兼职工程师,他告诉我Swift是一种非常强大的语言,我会很感激它。 他没看错! 习惯了这种更灵活的混合范例语言之后,我发现自己使用’var’和’let’并在编写C ++时忘记了分号,并且发现自己对函子的开销感到恼火(尽管是的,我知道汽车和lambdas)。 Swift 3中的字符串解析仍然很烂,但是C ++也不是Python! 通常,对主要软件技术有更多的了解和了解,感觉很好。 我现在对在使用Git的团队中发展感到非常有信心,而这项技能将在我到处跟随我。 我还要补充一点,即代码审查非常重要,而且质量代码审查不是我在学校中曾经遇到过的事情。 编写有效的代码是一回事,编写优雅,可维护,可通用/可重用的代码是另一回事。 我无数次被告知,我的技术上正确的解决方案没有遵循“最佳实践”,破坏了体系结构设计或没有以明智的方式进行模块化-但是随着夏天的过去,我发现自己犯的错误越来越少。 当有人指出您的代码基本上很烂时感觉并不好,但是您还会如何改善呢? MySwimPro成长 […]
在Triple,我们有雄心勃勃的志向,因此我们始终需要有才能的人才来帮助我们实现梦想。 在过去的五个月中,有11位实习生致力于实现他们对数字景观的梦想。 营销人员,设计师和开发人员; 一些人撰写了出色的毕业论文和研究论文,开发了惊人的产品,另一些人则开发了新技能。 在实习故事博客系列的第二个博客中,Sam,Anna,Tim和Lloyd分享了他们的故事。 Sam,UX设计实习生 在Triple实习期间,我经历了一次非常有趣的教育经历。 我的毕业设计重点是用户体验设计。 在实习期间,我研究了是否可以通过用语音消息代替短信来减轻认知能力。 使用我创建的名为Wrabble的产品,您可以轻松地与朋友交换语音消息。 WhatsApp和Facebook Messenger尚未成功提供此功能。 Desk研究得出的结论是,Facebook,Google,Amazon和Apple正在争夺语音领域,而语音将引领未来。 创建专注于当前趋势的设计非常有趣。 Triple提供了一个工作环境,让我可以探索,犯错和创造机会。 Max Verstappen头盔就是一个很好的例子。 当我听说我们可以为他的2017头盔制定计划时,我立刻就变得非常热情。 对于大多数公司而言,该项目被分配给“高级人员”,但在Triple,实习生有机会从事此类激动人心的项目。 Triple提供了一个工作环境,让我可以探索,犯错和创造机会。 几周前,我毕业于通信与多媒体设计专业,Triple为我提供了一份全职的UX设计师工作。 我非常高兴能留在公司并继续做一些很棒的项目。 最后,我要感谢大家为我提供的支持和帮助。 营销与传播实习生Anna 我在2月至2017年6月期间写了三篇毕业论文。虽然大多数其他研究生实习生每周花费大约40个小时进行研究,但我决定每周在公司工作四天,以获取更多经验。 当时,我的大学对这种选择不是很满意,因为他们担心由于时间不足,我不会毕业。 因此,在这五个月中,我成为了营销团队的正式成员,除其他外,我负责社交媒体,博客,社交媒体活动和网站新闻。 一周的其他三天安排在我的论文中,其中我研究了Triple应该如何调整Facebook和Instagram当前的内容策略,以加强其雇主品牌并促进招聘。 之后,(就像我预期的那样),这种组合被证明是一个不错的选择。 我从研究中获得的所有信息和结论都可以立即应用并与我的招聘营销同事共享。 三个月后,Triple的文化仍然令我惊讶。 在我看来,您作为员工可以自由地在个人层面上发展自己,并有机会建立自己的项目,这一事实非常独特。 除此之外,我被视为真正的员工,因此从未被视为“仅仅是实习生”。 最后,Triple中乐趣,创造力和灵感的结合是许多公司可以从中学到的东西。 同时,我的头衔从“市场实习生”更改为“市场经理”。 蒂姆,Unity实习生 我叫Tim Bajmat,在2月至2017年7月期间,我是Unity团队的实习生。 在实习期间,我从事过各种Beyond Sports(Triple的母公司)产品和其他几个小项目。 在过去的几个月中,我从Unity团队中学到了很多东西,并且结识了很多新朋友。 我与团队和其他Triple员工度过了很多美好的时光,但我最喜欢的是实习生在公司内部的对待方式。 每个实习生都可以展示自己的才华,并且与拥有多年经验的员工一视同仁。 另外,午餐时间也很有趣。 在这些休息时间里,可以玩FIFA,乒乓球或进行其他有趣的活动。 在这几个月中,我对Unity的了解不断增长。 与六个月前相比,我的编程水平更高。 除此之外,我还能改善自己的社交生活。 公司的文化和氛围使我有可能认识像我这样的人,而这些人在熟悉的环境中对其他人不那么开放。 在这几个月中,我对Unity的了解不断增长。 我在Triple实习很高兴。 尽管我的教育水平低于预期,但他们仍然给我机会证明我会凭借自己的专业和社交技能成长。 我希望我很快能再见到我的Triple同事,并且也许在我完成学业后回到Unity团队。 Lloyd,iOS开发人员实习生 嗨,您好! […]