The Dev World, Yuxiao

Apple 开发人员计划的一年,一个再普通不过的学生的一年开发故事

前言

开发者:开发这个世界.

2016年6月16日,Apple Developer Program(Apple 开发人员计划)正式开启。

就在昨天,2017年5月16日,收到了来自苹果的邮件,告知我还有 30 天资格到期,提醒我续费,一时间不禁有点感叹时间的流逝,也萌生了写一篇这一年的开发精力的文章,留一份备案,也给自己的下一年做一个提醒。

回顾了一下自己在学业之余开发软件经历的事情,感受的事情,以及一点一滴的成长吧。


量化/总结

这一年里

我自学开发,自学 Swift 语言,实际上是从 16 年 9 月正式开始搞开发,10 个月的时间里,App Store 开发者 Yuxiao Wang 旗下上架了四款 APPs。但实际上拿的出手的只有后面两款软件,具体原因下面会说到。

比肩许多个人开发者

觉得自己其实很差,看到别人开发的软件总是不自觉的赞叹好,看看自己的,叹叹气哈哈。但在开发的过程中,一次次的被自己激励,被使用的人激励,总想做出点什么,做的几款软件都很小众,但都是自己的需求,也是希望能在开发的路上慢慢向上爬,毕竟珠穆拉玛峰不是一步便到的。

在这一年里,开发人员计划是 $99 美金,每一款软件都是免费的,甚至都没有时间研究内购请喝咖啡,因为学业的确繁忙,全是专业课,每次写软件时都是找到一个功能需要加入或者找到一个 Bug 想要修复。所以一年下来,App Store 里的销售是 0 元,连开发人员计划的钱都木有赚回来嘿嘿,希望下一年可以把这个 99 美金赚回来!

一共四个软件

上架时间分别是 2016年9月28日,2016年10月24日,2017年1月8日,2017年3月30日。

时间其实差的还挺大的,但是总的来说从 2016年9月中旬的开发到 2017年3月30日,一共半年,4 个软件我还是颇为觉得满意的,并且没有放弃哪怕一个(Liquor It 会在后面解释)。

9 个 App Store 版本更新

App Store 里总共有 9 个小版本更新,主要是 Info It 和 Coffee It,但是在 iTunes Connect 里,有更多的上传版本,而在 Xcode 上,更有许多没有上传的版本。

Info It 有 11 个上传版本,总共 20 个小版本(build)

Coffee It 有 15 个上传版本,总共 19 个小版本(build)

25% 的时间

通过 timetrack 的不完全统计,学习和编程一起,编程占据了我生活中的 25% 的时间,其中包括学习开发,设计等。
在 2016 年下学期,四门 cs 专业课的情况下,我已经很知足了,有时候学业繁重很累,但是 iOS 开发总能带给我快乐,记得无数次熬夜和通宵的研究,累但很快乐,很满足。


万事开头难

作为一个自知执行力不够强,容易拖延的人,在美国这个没人管束肆意妄为的地方,要下定决心学一个新东西还真不容易。

但我好歹还是做到了,从 16 年 7 月开始陆陆续续的学习 iOS 开发,Swift 语言,觉得学的异常平淡,最后发现还是实践才能得出真理,正值 iMessage Sticker 发布,看了一下看法流程,真是异常的简单,根本都不用编程,于是就做出了一款表情包并且上架。说实在的,iTunes Connect 上架等流程第一次弄真的有点懵逼,所以说,把一件事情拆成两个事情来分别做还是有好处的。

从这个表情包开始,我无需担心和 iTunes Connect 一切相关的事宜,专心致志写代码就好。

在这之间还有两款表情包因为需要获得授权,而被拒绝因此没有办法上架~


一个契机?

刚开始的时候我也不知道想做什么,准确的讲想做的十分多,一个个都是大项目,各种好的功能,完美的 UI/UX,但一打开 Xcode 发现无从下手,果然,还是得从最基础的做起,于是先是开发了 Liquor It,让我了解了很多基本的开发元素,开发要领,等等,也仅仅是作为练手项目而上架。

就在今天,收到了一份 Info It 的评论,首先给了个五星,并且表示 Liquor It 对于他来讲也很有用,希望可以继续开发,不得不说还是小小惊喜了一下,并且回复了这个评论人,只要是我力所能及的一定去开发下去!

在 Liquor It 上架后(一开始不叫这个名字,叫 xLiquor),想过做一个类似于 Today,Streaks 这种习惯养成的软件,或者读书记录整理收藏软件,或者一个可以包含国内韩国这种电视剧的追踪软件,但一个个都是大项目,不得不说当你定的目标太高的时候,是很难一下子跳上去的,而那时候正好是 Price Tag 发布不久,再加上自己平时对于电影、图书查询的需求,以及糟糕的体验,萌生了开发一款类似于 Price Tag 的模式的插件(类似 Pin),可以让用户在看微信文章,微博文章,微博,任何文章的时候选中出现的电影名字,分享,直接查询对应的豆瓣电影,以及豆瓣书数据,并且可以和美国著名的 IMDb、烂番茄结合,因此 Info It 诞生了。

说干就干

那是 16 年的 11 月,即将到来的是感恩节的假期,记得很清楚,2016年11月23日到11月27日,而在11月21日周一有一门 midterm 考试,但我相信很多人都有这种感觉的,一直没有头目的事情突然有了清晰的目的,你会想要放弃手头的一切,抓紧将这个想法尽快实现,然后独自给自己倒上一杯威士忌,庆祝一番。

于是我在周一 21 日有一门考试的情况下,从周五 18 号开始到 20 号一共用了将近 15 个小时(包含 21 考完试后的一个小时设计)将 Info It 的基本框架的软件写完,在这期间,不懂就查,不会就看文章,结合官方的文档,一步步研究,一开始先用最简单的 Webview,然后慢慢想办法用 Safari View Controller 代替,不得不说付出没有白搭,Info It 的开始总算没有半途而废,这期间遇到了很多复杂的问题,都一一被解决。


谁不累?

就在一边写 Info It 一边准备考试的那几天,突然觉得想出去散散心,呆的又的压抑,于是去了之前就一只想去的 KAWS 在德州达拉斯的展览,说走就走,分分钟买了机票定了酒店,还是在不经意间告诉我姐然后被我妈妈知道,批了一顿,说我不提前报备,一个人去太危险 balabala,当然被我想尽办法搪塞过去了哈!

不得不说,适当的休息和娱乐还是对于身心放松很有好处的。

难忘的感恩节

这可以说是最难忘的一个感恩节了把。22 号飞过去,24 号飞回来,从 20 号到 28 号,一共上传了 7 个测试版本,部分是给自己测试,部分是发放成 TestFlight 测试。

这几天因为飞来飞去,在加上休息了一些时间,还看了展览,吃了好吃的牛排,看了电影,所以前几天没有每天花很久时间。

据不完全统计下,从 22 号到 28 号一共用了 20 小时在写 Info It 上。

22 号在飞机上完成了 APP 设置的界面和细节,第一次体验了在飞机上写代码的体验还是挺糟糕的哈哈。

23,24,25 在达拉斯除了看展览休息意外,每天花了将近三个小时,在宾馆,或者在星巴克完成对 Info It 的小版本迭代,修复,更新,功能增加和改进,如果我截图没有删除,应该是放了 4 个 TestFlight 的测试版本,在微博上经过几轮转发,总共有差不多 200 多人参与了测试,当然有很多只是报了名,没怎么用过,但自己也是很知足了。

现在还记得,在 24 号感恩节的当天,达拉斯这种小地方饭店全部关门,就星巴克开着,于是去星巴克随便吃了点打发午饭,开始写 APP,然后猛然间看到飞机时间要快到了得去机场了,于是叫了一辆车,但那时候正在尝试 Info It 的网页浏览嵌入 svc,专心致志,上车后继续写代码,于是又解锁了在 uber 上写程序的成就,并且在到达机场之前上传到了 iTunes Connect,也是松了一口气。

不得不说,谁不累?妄想着每天享受生活依旧写出来好的 APP 当然是不现实的。

感恩节,感恩。

在感恩节期间,遇到了 Info It 里面碰到的一个十分棘手的问题。

Safari View Controller 在嵌入进去后,和一个个按钮并存的情况下,不论怎么办,打开都是空白一片。一下子懵了,要知道 Safari 在 Info It 中的作用可是很重要的,有了 Safari 的嵌入可以记住登录状态,会变得更方便。

在研究了许久,各种查找问题,甚至重启电脑,重装 Xcode,写一个新的程序测试,缺仍旧解决不了任何问题。在这期间,和 Pin,小历,TodayMind 的开发者 @钟颖 交流许久,他甚至还专门写了测试的程序让我运行看到底是什么问题。

毫不夸张的说,感恩节遇到了值得感恩的事情,这是一件十分幸福的巧合,让我在行走的路上有了更多的动力。

从 27 号晚上 11 点左右一直到 28 号凌晨 5 点,和钟颖探讨了关于这个问题,并且在他的帮助通过不同的方式测试了是否可行以及什么问题,然而不论怎么办都没有解决,而这个问题十分奇怪,不仅没有在网上查到任何相关的,在 Pin 上使用是完全可以,甚至我的手机上也可以,并且在钟颖发给我的测试程序中,他那里是完全可以打开的,我这里就完全不可以,一样的 Xcode 版本,一样的程序,虽然在交流了六个多小时之久后仍然没有解决,但在这烦躁的时间段内,有一个乐于帮助我的人,让我在深夜里感受到了温暖,而本有的烦恼、焦躁也一一消失。

这也是第一次因为 Info It 完全通宵,在交流完后,我继续自己的探索,通过不断的尝试近三个小时,一直到早上 8 点,依然没有解决这个问题,也让 Info It 的一个大特性不得不推后延迟,最终因为实在疲乏躺在床上睡着了。

弱者死于路中

-- 来自清华大学副校长杨斌教授给《鞋狗》的推荐序

如果你也有这样的经历,那也许你也会有这样的感受,你在做一件事情,这件事情怎么都做不成,你没有做错,你的方法也没有错,甚至这很有可能只是因为 Xcode 的 Bug,这件事情不做成有影响,但还不至于大到让整个项目结束。这就是我遇到的困境。我完全不懂为什么,我完全不知道该怎么办,为了研究这个,我重新读了 APPLE 给出的通过 Xcode 找 View 层级的问题,尝试了一下,但依旧没有结果。

但是,谁想当弱者?

于是,在 29 号我洗了个澡,吃了顿火锅,好好的休息了一天整理思绪,30,31 号用 6 个小时总算找到了解决的方式。

我一步步的复现最终想要做成的效果,一步步逆推,看是哪一步导致了打开页面会空白,在尝试了许多次之后,总算发现了玄机,至于是我电脑的问题还是 Xcode 的 Bug,真的不敢说,但至少不是我写的代码问题。具体的问题就不在这里 bb 了,反正是一个十分玄妙的 bug。

(短短的几行字无法描述这个疲累、焦躁、烦恼的过程,也无法描述解决之后的成功的喜悦、开心和满足。)

一拍脑门,靠,为什么我就没有在一开始就想到这种解决方法呢?

没关系,至少我以后知道了。果然,日积月累是一定有用的。


期待和满足

每件事情都有一个最期待的时刻,写程序的那个时刻就是上线 App Store。

只能靠自己粉丝为数不多的微博发送消息上限,也并没有预期多高,也没有进行所谓的大范围推广等,但还是很开心的,小确幸把。

每件事情也都有能然你满足的反应,写程序的满足应该就是看到 App Store 上面的五星评论和真心的觉得好用吧~

到北京时间 2017年5月17日早上6点 为止,Info It 一共收到 14 份评论,的确不多,但每一份都是真正的使用者。对比下载量的话这个占比连 1% 都没有。对比下载了后真的使用的占比来说,我并不知道。我也不知道通常来讲百分比多少属于好的软件,百分之多少又属于用户粘性高的软件,但每一次发布新版本后焦急的刷新评价,看到一个评价后认真读,仔细看,盯着半天的那种感觉,真的很好。

有很多人,支持我,在看到 Info It 发布后,会专门下载下来支持,哪怕他们也许没有搜索电影这个需求,又或者是给身边有这个需求的人分享,每次刷到这些,很感动也感觉很幸福


再次踏上征途

Info It 在新年前又完成了一个大的版本推送,选择中文名查询 IMDb,烂番茄时可以自动转换成英文原名,不算太大的功能,但是对我来讲依旧需要用时间去学习和编写,而且也的确让 Info It 变得更加方便和简单。

在经历了使用各种咖啡软件记录每天的咖啡因摄入后,总算忍不了想要开发一款新的应用了,因此,Coffee It 就出生了。在衡量了自己的能力后,发现基础版本我是完全可以搞定的,于是从头开始学了 Realm 数据库的管理和使用,全面使用了 Realm Swift(学校里还没有上到 Database 相关的课程)。

从 3月15日 开始,到 3月30日 App Store 上线第一个版本,总共经过了 10 个小版本的上传,都是为了给自己在真机上调试以防出问题,

这一次,不管怎么样,没有遇到上次那样玄奥的 bug,而这开发之中的技术性问题我也就不给概述了。

一样是趁着春假的多事之秋,将 Coffee It 进行了各个版本的更新,而不论考试还是写作业期间,都掺杂着开发的日子和时光。

由于 Coffee It 相比较于 Info It 而言,更加的小众,上线也没有经过推广,评论就不说了,少的可怜,但 Coffee It 也的确还没有达到我的预期,还在路上,现在虽然有了历史界面,有了收藏功能,但在我看来还不够快,而历史的数据的挖掘还没有深入,属于不大有用的情况,这也是我这篇文章不怎么谈及 Coffee It 历程的原因。


设计,设计,设计 )_(

好的设计总是能让人心情愉悦,必然的,这是连我都知道,都会作为抉择使用的一个条件。

不得不说,我真的不是拖延也不是推脱,所有的开发 APP 的精力,都投入给了功能开发和稳定性上,而由于迫在眉急(已经到了)的暑假,实习更是让我想要加速 APP 功能的开发好有更多的竞争力。像我说的那样,我有自知之明,我会在未来的日子里通过碎片时间感受设计,慢慢培养自己的设计理念,也欢迎有相关的资讯可以推荐给我,下一年(2017年6月16开始,新的 APPLE Developer Program),希望自己能够让 Info It,Coffee It 的设计都上一个阶梯。


最后?

不,这只是第一篇章,希望下一个篇章,能够更精彩。

如果按照是否有 APP 上架 App Store 并被人使用这个指标来衡量一个人是不是 iOS 开发者,那我应该算是一个。

但如果按照开发能力,设计和交互,等综合能力来判定,我只能算是一个小白

这永远不是一篇技术文章,也不会是你的救星和鸡汤文,套用偶像 Elon Musk 的一句话 “我想要很清楚的说明,我不是任何人的拯救者。”,连 Musk 都有这种自知之明,更何况我们呢?

谨以这篇文章,献给我 2016年6月到2017年5月的日子,也给自己来年一个警示和警钟,同时,告诉所有人:

努力思考未来,并且不抱着悲观的心态。

相关材料/链接

这篇文章差不多花了 3 个多小时,一共 4000 个字有多,20 张图片。

我的软件
Info It:下载文章介绍
Coffee It:下载

用到的软件
图片编辑:LongScreen,Stitch It!,LightScreen
时间追踪记录:timetrack.io
版本上架记录:DayOne,iTunes Connect
写作:MWeb(Mac)
上传图床:iPic(Mac)