iOS开发案例:Thiago Holanda和Swift Evolution App

您如何以及何时开始为iOS开发的?

您好,首先,感谢Thiago Lioy邀请我参加第一期iOS Dev Stories。 很荣幸能多介绍一下我作为iOS开发人员的故事,该故事始于一个遥远的银河系,运…
我们在谈论发展,而不是星球大战!
我作为程序员的故事始于2005年。在使用PHP,ASP.NET和Python几年之后,我于2011年4月加入了Concrete Solutions Mobile团队。在他们的支持下,我们是一个只有四个人的小型团队,使所有这些不同的新技术变得有意义。 我爱上了移动开发:电话,手表,电视,物联网,您给我起个名字,就算是我。

您能否分享一些经验? 您贡献的项目,参加的活动等

只要我记得,我就一直与开放源代码领域有着深厚的联系。 通过使用,贡献,从这些项目中学习或混合学习。 开源项目一直在改善我的日常生活,并在许多方面使我的工作效率更高。 我们不仅通过编写代码来支持开放源代码,有时只需要打开一个问题,解决一个错字,在自述文件上写一些新内容,询问功能,表现出兴趣! 开源不仅是代码,而且我的贡献也很有限,就像我为Zewo(Swift服务器端项目,我是核心成员)所做的那样。 我的第一次参与始于与Paulo Faria的合作伙伴关系,我们共同创建了HTTPBasicAuth中间件,此后,我们一直在讨论Zewo的未来。 我还在CocoaHeads中做了一些有关IBDesignable,Swift Server Side和AppleTV的演示。 2015年,我去了科罗拉多州丹佛市的360iDev。这是一次完美的体验,在那里我遇到了很多优秀的人,直到今天我仍然几乎每天都在和他们聊天。 下一个目标是WWDC,但我还在等待! 😉

iOS社区非常活跃。 您如何与社区中发生的一切保持同步?

我隶属于巴西的iOS社区iOSDevBR。 该社区的一些成员还管理着CocoaHeads Brazil,因此我有机会成为共享信息的地方。 这些社区是获取新信息的好地方。 您几乎不需要花力气就能找到它。 我加入了其他一些闲散的频道,并订阅了每周几封来自世界各地的信件。 保持iOS开发中最新动态的另一种方法是关注Twitter和Github上的关键人物。 他们总是分享许多见解和新内容。 Github的“资源管理器”是另一种发现好东西,检查趋势的方法等等。

您通常使用什么工具来完成工作?

首先,Xcode哈哈。 有些朋友没有扩展就看不到自己的生活。 我喜欢使用没有太多配置或扩展和主题的IDE。

终端 :iTerm2。
Git :我有Tower的许可证,当然也使用了免费版本的GitKraken和CLI
设计和导出资产 :Sketch和Adobe XD。
代码/文本: Sublime Text3(不存在带有多个光标的编辑器,如Sublime),CodeRunner(我仍然使用Objetive-C,而CodeRunner是我的游乐场)和VSCode。
HTTP请求 :Paw.cloud,HTTPie和cURL
Markdown :MacDown或Hackmd.io
最后但并非最不重要的一点 :Spotify和iTunes。

您是如何想到构建Swift Evolution应用程序的?

这个主意是3月1日,当我进入Swift Evolution的GitHub Repo时,看到苹果创建了一个简单的Web仪表板来帮助人们搜索和过滤建议。 作为逆向工程的忠实拥护者,我打开了Chrome检查器,以查看数据来自何处; 令我惊讶的是,我注意到Apple不仅创建了一个仪表板,而且还创建了一个端点。 该URL列出了Swift Evolution的所有建议。 即使有了这个端点,我仍然需要锻炼一些比较复杂的事情。 例如,解析具有某些结构的自由降价等。最后,结果是自由文本,而这并不是一件简单的工作。 然后,我向我的朋友Bruno Bilescky和Diego Ventura发送了一条消息,谈论创建一个简单的iOS应用程序来执行与Web仪表板相同的操作的想法,除此之外,别无其他。 我相信可以通过Web仪表板进行精确的复制,但是这次作为iOS应用发布,足以为用户提供出色的体验,并且有机会及时了解Swift Evolution上发生的一切。

因此,Swift Evolution App仅仅是作为应用程序的仪表板吗?

不它不是! 当我决定从Web仪表板进行复制时,我并不认为Apple会拒绝该应用程序。 实际上,苹果总是可以拒绝我们的应用程序哈哈。 该应用程序的名字只是“ Swift Evolution”,它还使用了Swift的徽标。 两者均与商标背道而驰。 我有点天真,以为他们不介意。 “没关系; 他们将批准该应用!”。 甜蜜的错误!
他们拒绝该应用程序的原因有两个:

“-元数据和名称中的Apple商标,Swift,图像或相似图片。”。

“……但是由于它与移动Web浏览体验没有太大区别,因此不适用于App Store。”

他们很快就拒绝了该应用程序,这很棒。 我刚受了几个小时的痛苦。 答案使我思考自己的所作所为。 不到一个小时后,我决定创建新功能来解决“与移动Web浏览体验没有太大区别”的问题。

像这样的功能: 作者/评论 管理者资料提案共享 ,顺便在后端使用了swift。 所有这些新闻更改都在将近一个星期内完成,当它完成时,我脑海中只有一个念头:“好吧,现在我已经为AppStore准备了一个应用程序。” 尽管如此,我仍然需要一个新徽标,所以我请我们的设计师Guilherme Theodoro帮我解决这个问题。

您能否分享动员几个人完成Evolution App的经验?

创建Swift Evolution App的想法来自于我的好奇心,即了解事物是如何运作的。 我的朋友也有相同的感觉。 每当我想到一个主意时,我都会向两个朋友Bruno Bilescky和Diego Ventura发送一些信息,我们对创造新事物有着同样的热情。 我开始EVO项目只是为了做一些有趣的事情。 然后我意识到该项目可以适应这个未开发的空间。 一个星期后,我开始与iOS社区的其他一些朋友分享代码,一个一个地邀请他们,但首先问几个问题,看他们是否适合。
“您遵循Swift Evolution的建议吗?”
“您对应用程序感兴趣吗,可以帮助您遵循Swift Evolution的建议?”

EVO应用程序得到了许多人的巨大贡献。 从编写代码以及帮助进行代码审查,到帮助体系结构的人员,当然还有帮助我传播语言的人员。 此外,刚刚关注该项目的人们也同样重要。 所有可以访问EVO信息库的人对该项目都非常重要,我很高兴能与他们一起工作。 他们相信该项目,并帮助我将这个想法变为现实。

您是否愿意分享一些有关Evolution应用程序未来的计划?

现在,我正在与两个来自IBM的人一起准备后端,以使我们能够为该应用程序带来更多出色的功能。 1.2版将支持iPad(许多人要求这样做),推送通知,关注建议,关注作者和评论管理者。 在1.2版之前,我们将有一个更新,它将修复一些意外行为。

从第一天开始,我的意图是使这个项目开源,但是在那之前我仍然需要做一些事情。 在此1.2版本之后,你们将能够在公开场合检查和帮助该项目。

您还需要最后考虑吗?

我要感谢我的妻子卡罗莱纳州,让我有动力启动和完成此应用程序。 谢谢布鲁诺·比莱斯基(Bruno Bilescky)每天晚上给我发送消息,问我“让我们编程吗?”; 这真的很重要。 我还要感谢Diego Ventura,Bruno Guidolim,Ricardo Borelli,Bruno Hecktheuer,Diogo Tridapalli,Rodrigo Reis,Gustavo Barbosa和Brenno Ferrari所做的杰出贡献。 也非常感谢Ricardo Olivieri和Taylor Franklin在后端建立的伙伴关系。
对于Danilo Altheman,Daniel Dunbar,John Calistro和Liza Dziuba的帮助,我分享了这个应用程序,并通过许多很棒的想法使其变得更好。