本文参与年度征文活动:我的 2018 年度关键词


作为一名大学仅读半年便辍学的「厌学者」,在 2018 年凭借着兴趣和自主学习,我有幸获得了这些成就:

  • 多次参与了锤子科技官方的手机样张拍摄工作
  • 多张手机摄影作品刊登至 ONE 一个 app
  • 由于连续一年被评为 Airbnb 超赞房东而获得房东奖励

但以上这些成就,从某种意义上来说,只是我 2017 年工作的延续,而最令我开心的成就是:本着「不务正业就是我的正业」的心态,在 2018 年的下半年,我终于成为了一名独立开发者。

本文概览

我的 iOS 开发自学经历

  • 终于:独立开发是一个小心愿
  • 和吃饭睡觉一样容易的入门过程
  • 项目驱动:实践是学习的最好方法

开发故事:练手、兴趣和新年礼物

  • 胡言乱语:没用到我自己都卸了
  • 卡片馆:一个手机摄影爱好者的需求
  • 旧日历 2019:一份新年礼物

我的 iOS 开发自学经历

从初中拥有自己的第一部诺基亚手机起,我就对手机异常痴迷。在那段时间里,我几乎每月就会通过置换来更换一部手机。随着后来高中时期对锤子科技的喜爱,以及通过各种电影里对工程师形成的不正确认知:「去锤子科技做软件工程师」成了我当时最向往的职业。

于是在大学休学后,我最初的方向是:先成为一名软件工程师。

终于:独立开发是一个小心愿

我之所以说「终于成为了一名独立开发者」,并非这个过程很困难,而是因为这是我的一个小心愿。

在三年前我向学校申请休学时,我最初的想法便是在家自学 Android 开发,随后凭此找到一份开发工作。在那段自学的时光里,我偶然间了解到 UI 设计相关的知识,随后越学越多,中途放弃了 Android 开发的学习,转而凭借着 UI 设计的技能在当地(重庆)找到了人生中第一份工作。

由于我出乎我父亲意料之外地找到了工作,父母只好同意我去办理退学。其实因为当时所在公司倒闭,我在办理退学时是没有工作的。

在退学后我去了此前从未去过的厦门,凭借向家里借钱结合支付宝的网商贷在厦门接手了一家民宿。就这样,人生地不熟、身无分文、性格内向的我,在厦门做了两年的民宿。由于做民宿之后空闲时间比较多,我一直想着重新学习开发,但因为暂时不打算上班,我计划着成为一名独立开发者。

在去年下半年,我终于狠下心来开始了自己的 iOS 开发之旅。

和吃饭睡觉一样容易的入门过程

学习开发可能不容易,但如果只是学到我目前这样的入门水平,这实际上是非常容易的,个人认为和吃饭睡觉相差无几。只不过吃饭睡觉的执行是靠本能驱动:饿了和困了。而我们学习一项技能时,驱动力会比较难找。

概括来讲,入门 iOS 开发,我是这样做的:

  • 购买一套 iOS 开发入门教学视频
  • 看视频
  • 照着视频内容敲代码
  • 结业

不需要完全去理解视频内容,也不需要背着去操作代码,只需要像吃饭睡觉一样机械化执行就行了。

不过,到具体来讲:学习过程中,理解却忘记的内容不用在意,但第一遍看完不太理解的部分,则建议再重新看一遍,而最终仍然不理解的,我的做法是直接跳过。

这样到教学视频全部看完后,放心,我和你一样,仍然不知道该如何开始。

项目驱动:实践是学习的最好方法

我在学习完整个课程后,尽管还有许多不太明白的地方,但我直接开始了自己第一款 app 「胡言乱语」的开发工作,在这其中边做边学,一开始的确很难下手,很多问题都需要一步步拆分后靠 Google 来解决。

边做边学里,我认为比较关键的是拆分。比如说,「胡言乱语」是一款记录梦话的 app,我想知道如何制作这样的一款 app,并不是直接 Google 「如何制作一款记录梦话的 iOS app」,而是将问题拆分开来:如何录音、如何播放音乐、如何保存文件、如何检测音量等等。

在这样完成「胡言乱语」后,我学过的很多知识点就此连接在一起了,随后两款 app 的开发进度顺畅了许多。尽管不敢说开发能力比当时好了多少,但信心的确好了不少。

让项目驱动学习,这样不会使得学习枯燥,同时也有利于建立信心。这种学习方法我是在罗子雄老师的 TEDx 演讲(如何成为一名优秀的 UI 设计师)里看到的,感兴趣的朋友可以看一看。

开发故事:练手、兴趣和新年礼物

在去年 10 月 20 号的时候,我自己独立开发的首款 app 「胡言乱语」在 App Store 正式上架,随后在 11 月中旬时,经过与 App Store 审核的几轮斗争后,我的第二款 app 「卡片馆」也在 App Store 正式上架了。在年底度假回来后,12 月 28 日时,我的第三款 app 「旧日历 2019」在 App Store 上开始接受预订。

其中「胡言乱语」是为了练手,「卡片馆」是由于个人的兴趣和需求,「旧日历 2019」是因为一个突然的想法。

胡言乱语:没用到我自己都卸了


「胡言乱语」的图标

「胡言乱语」是一款用于录制梦话的 app,它的原理很简单:录音 - 检测音量 - 保存音量较高的录音段。

这款 app 的版本号还停留在 0.9,由于不支持批处理录音文件的原因,我并不推荐大家去下载使用,总而言之,这是一款我自己都卸载了的产品,由于是练手作品,以后是否完善也不好说。

卡片馆:一个手机摄影爱好者的需求


「卡片馆」的图标

「卡片馆」是我在学习开发之前就构思好的一款产品。它可以将相片制作成各种卡片样式,并且在上面搭配简单的文字。这款产品主要是源于我个人的需求:一款简单的图片配文工具,模板固定、界面实用、纯粹工具。

「卡片馆」的界面

这款 app 最初的名字叫「卡片记」,但由于被占用了,后来才想到的「卡片馆」这个名字。很庆幸它叫「卡片馆」,才让我有了持续迭代的想法:持续更新大量的卡片样式,以达到「馆」的规模。

「展览」制作的图片

这是用「卡片馆」的样式「展览」制作而成的九张图片一起发微博时的效果。「展览」这个样式,它能够将不同比例的相片统一成类似的正方形卡片,这样更方便大家在朋友圈或是微博等平台展示自己的相片。

「电影」制作的图片

最近刚更新的版本里新增了「电影」这个样式,它采用 16:9 的画幅比例,配文排版模拟电影的风格,整体卡片使用正方形比例,同样方便在社交媒体上同时进行多张分享。

旧日历 2019:一份新年礼物


「旧日历 2019」的图标

「旧日历 2019」是在纸质日历大潮中产生的想法,恰好又发现 App Store 支持预订,于是我产生了这样一个想法:做一款日历 app,在年前接受预订,新年直接推送到用户手机上。

图标上的日期很巧合,和 iOS 系统里 emoji 日历上显示的日期类似,都是 17,但 Apple 这个指的是 2002 年 7 月 17 日,在那天 iCal 首次发布。而旧日历上的日期实际上指的是 2018 年 10 月 17 日,在那天晚上,我拉了一个群聊,召集几个朋友和我一起准备日历内容,同时我负责 app 的开发工作。

「旧日历 2019」的界面

「旧日历 2019」是将当前流行的纸质日历形式搬回手机上,在最初的设计里,我还做了一个模拟「撕日历」的功能:撕掉的日历会保存至系统相册里,但 app 界面上不可恢复,撕日历时会伴有真实的撕纸声。

不过后续考虑到实用性,我将这个功能改为了现在的「保存至相册」。

部分配图事件

旧日历的功能很简单,主要是售卖内容:每天呈现一则历史今日事件。这些事件都是由我们精心挑选的,很多是最近五年里发生的事情,我们认为这样更容易让人注意到时间的变化与意义。

在节假日或一些特定事件(主要是艺术类)里,我们会为当前的事件进行配图。这些配图在保证不侵权的情况下,都有着不错的质量,部分图片我还专门进行了重制。

部分音乐推荐事件

在特定日期里,旧日历还会根据当前事件推荐对应的歌曲。点击歌曲名称,可直接跳转到网易云进行播放。

写在最后:看到更多维度的世界

入门很简单,新世界很有趣。

其实无论是新接触的独立开发,还是我一直在做的手机摄影、民宿经营、设计等,这些不同的工作,为我提供各自不同的角度,帮助我看到更多维度的世界。

在精通一两门技能的同时,尽可能多去入门一些技能,这是我个人倡导的生活方式。尽管入门一项技能并不能为你带来多少收入,但我们来到这个世界上,我觉得就应该在有限的时间里尽可能探索更多的未知世界。

是啊,有时候一件事情就足以我们开心一辈子,但一辈子结束时,那么多未知,会给我们带来多少遗憾呢?