iOS开发案例:Guilherme Rambo和wwdc.io

本周的来宾从十二岁起就开始编程,从事不同环境下的许多不同项目。 Web,台式机或移动设备,他都能完成。 最近,由于他的wwdc.io应用程序(一种观看WWDC视频的非正式方式),他引起了很多关注。 该应用程序还具有其他一些功能,例如过滤器,收藏/不喜欢的视频以及其他很棒的功能。 今天,我将与wwdc.io的创建者Guilherme Rambo谈谈开发,开源,项目,工具等等。

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

我作为程序员的背景可以追溯到我12岁左右的时候。 我的学校开始提供一些基础计算机课程,其中一门是在MS-DOS和Pascal中编程,当时它们已经很老了。 我喜欢这个,并说服父母让我参加Delphi编程课程。 Delphi是一个IDE,您可以在其中拖动UI组件并将其连接到代码上(类似于Interface Builder)。 之后,我开始学习网络开发,为本地企业和其他一些自由职业者创建了网站。

2009年左右,我有了第一台Mac(白色MacBook),我自然地开始环顾四周,看看如何为它制作软件,那时我开始学习Mac OS X(现在为macOS)的开发。 iPhone已经使用了两年,但是对我来说太贵了,所以我一直在空闲时间为OS X制作网站和简单的项目,直到我买得起iPhone。

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

我想我是从简单的开源库开始的,我只是为了好玩而制作并在Github上发布了。 我的第一个商业应用程序是Rastreador,这是巴西邮政服务的包裹跟踪应用程序。 之后,我发布了macOS应用程序(BrowserFreedom)和iOS应用程序(ChibiStudio)。

在开源中,我自己发布了数十个项目,这些项目在Github上总共收集了近1万颗星。 我还为IGListKit,Swift Foundation,Realm,Keyframes等其他项目做出了贡献。

我喜欢在活动上进行演讲,因此,每当有一个很酷的iOS活动需要征集论文时,我都会尝试提交一些东西。 去年,我在TDC / SP和全国CocoaHeads BR会议上进行了演讲。 今年,我在TDC / SC上发表了演讲,还将在TDC / SP和iOS Remote Conf上发表演讲。

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

有时在这个领域工作可能会让人不知所措,因为每天都有新事物出现,我们必须时刻保持最新状态。 我认为我用来更新iOS内容(以及一般编程)的主要渠道是Twitter和CocoaHeads BR Slack。 Twitter的重要之处在于您必须关注合适的人,我经常管理在Twitter上关注的人,以尝试仅关注与我最相关的人。

在社区之外,我还是Swift Talks和NSScreencast的订阅者,并且阅读了大家都知道的Apple新闻网站(9to5mac,MacStories等)。 我也是一个大型播客听众,我收听许多与Apple新闻,iOS和macOS开发以及一般技术有关的播客。

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

Xcode,当然。 它有很多问题,但是我认为它可以完成工作,并且Xcode 9改进了很多。 迫不及待想在今年晚些时候发布最终版本。

Sketch:我为项目做了一些UI设计,但没有找到比Sketch更好的工具。

PlayAlways:这是一个小工具,我使自己能够从菜单栏中创建Swift游乐场,这对于快速尝试某些功能非常有用。

爪子:必不可少的工具,如果您使用过HTTP API。

请勿打扰模式:专注对我们的工作非常重要,这是我要完成工作时使用的最重要的工具

Apple Music:与上述类似,我喜欢在工作时戴上耳机并听一些音乐,这使我不会因周围的噪音而分心。 我还发现,对我来说,用我不懂的语言听音乐会更好,因为我不太会注意歌词。 所以没有英语或葡萄牙语音乐对我music

您是如何想到构建wwdc.io项目的想法的?

我花了一些时间才想起Swift。 苹果在2014年首次推出该语言时,我感到害怕,因为我对Objective-C感到很满意。 差不多一年后,在学习了这种语言并进行了一些小的实验之后,我决定我必须用它来做一个“真实的”项目,以真正地学习来龙去脉。

我一直很喜欢看WWDC视频,我发现它们是了解Apple API以及他们希望您如何使用它们的真正好资源,但我也讨厌将Web作为应用程序平台,因此观看了很长一段时间浏览器中的视频对我来说很糟糕。 那时我决定这个副项目将成为macOS的WWDC应用程序。

您是否愿意分享wwdc.io应用程序未来的一些计划?

今年,该应用程序经历了急需的重新设计和重写。 现在,我们有一个核心团队,可以为项目的设计,开发和管理提供很多帮助。 Vicente(@vicenteborrell)正在完成所有设计工作,Ben(@ bcmn96)正在帮助我进行代码和项目管理,我们有Raphael(@raphaellopesph)制作的一个很酷的新图标,更不用说所有其他贡献者了。谁正在提出问题并提出要求。

有了这种新结构,我们就可以建立新功能的基础更好。 我们主要针对的是书签。 当您观看WWDC的视频时,经常会发现自己想做笔记或只是想保存一部分视频以供以后参考。 使用书签,您现在可以执行此操作,稍后我们计划扩展此功能,以便该应用程序的用户可以与其他人共享他们的书签,从而使关注WWDC的体验更加社交化。

您能谈谈应用程式背后的挑战吗?

我相信此应用程序的主要挑战来自以下事实:它使用了未开放的第三方API。 具有所有WWDC内容的Apple REST API可以随时更改,我必须不断关注它,以确保它不会破坏我们的应用程序。

今年我在WWDC之前的一周就已经准备好了该应用程序,而当苹果发布其iOS应用程序的更新时,REST API(数据格式)已经发生了很大变化,因此我不得不加紧编写并重写了大部分核心内容的应用程序。

除此之外,开发主要由开发人员使用的开源应用程序具有挑战性,因为很难避免功能蠕变。 由于用户本身就是开发人员,因此有时他们只是去实现所需的功能,因此我们必须非常小心,不要接受所有内容,否则该应用程序将变成仅由少数人使用但需要使用的大量功能的巨大混乱保持。

话虽如此,我鼓励任何曾经考虑发布开源程序的人去做。 我的开源项目给了我很多曝光,这转化为友谊,工作机会,并最终带来很多乐趣。