蘑菇12周

回望我在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服务中。 该服务管理着我们常见问题的内容,将来将能够将这些内容提供给各种前端。

我们还有一个内部白帽黑客日,技术界的每个人都试图
识别并解决Gousto可能面临的一些安全威胁。

我学到了什么

在Gousto工作之前,我从未经历过敏捷开发。 在我的
第一天向我介绍了吉拉(Jira),门票,冲刺,泳道,我的天哪。

我还了解了有关开发iOS应用程序的更多信息。 从如何为多种配置设置Xcode项目,到为iPad创建Interface Builder和进行设计的所有内容。 当然,也有很多机会可以使用Swift功能。

我注意到的

每两周是“高科技10%”的一天,每个人都可以从事新颖有趣的工作。 这与正常的冲刺工作形成了很好的对比。 在技​​术投入10%的第一天,我正在研究本地Xcode Bots驱动的针对我们应用程序的CI解决方案的可行性,另一天,我尝试通过各种配置参数来缩短应用程序的构建时间。 还有机会使用可能在应用程序内外使用的新Apple技术。

在Gousto,与我合作的每个人都对产品和公司充满信心。 管理层非常擅长交流整个企业的发展状况,对于我正在使用的产品(阅读iOS应用)的任何更具体的事情,我总是可以与我的经理或产品负责人交谈。移动。

结论

我非常享受在Gousto的时间:与团队一起从事较小的独立项目和正常的冲刺门票,这很有趣,而且提供了很棒的学习经验。

尼克·范格罗
iOS开发人员实习生2017年夏季