「2016 与我的数字生活」年度征文入围作品
今年,我们在 2016 年度盘点 中举办了一次大型年度征文活动,鼓励大家围绕「数字生活」为主题,回顾刚刚过去的 2016 年。我们给予最开放的选题、最自由的投稿方式、有史以来最丰厚的 奖品,以及跨越春节的两个月充足时间,等你参与。你可以 点此查看 活动规则和奖品清单。
本文是「 2016 与我的数字生活」征文活动的第 12 篇入围作品,我们会在两个月的活动期内,不定期从收到的投稿中挑选发布优秀的文章,你可以 点此查看 之前的入围文章。所有经此发布的文章,即为已入围征文活动。本文仅代表作者本人观点,少数派仅对标题和排版略作调整。
2016 年对我来说是特殊的一年,这一年中,收到了谢菲尔德大学的 Offer,生活的地方由中国上海变为了英国的谢菲尔德,同时,也开发出来了数款 App,每一款都有着自己的故事。看了下其他人的征文,都在讲述如何使用他人的 App 提高生活质量,这篇文章将会从开发者的角度讲述一下,我是如何用自己的产品改变数字生活的。
自我介绍
先介绍下自己吧,我是一名大二学生,现在在英国读电子信息工程,这个专业与 App 开发和计算机没有任何关系,所有的知识,都是我自己学习的,相当于是兴趣爱好吧。在学习生涯中,会定期维护自己的科技博客,维护自己开发的各种 App,外出摄影等等,在后面会一一介绍。
走上 Android 开发道路
说到我 App 开发生涯的开始是在 2015 年,那一年年初我有了自己的博客 MikeTech, 在那年 7 月,我开始了 Android 的开发生涯并且在学习 Android 开发一个月后为我的网站开发出来了 App。第一个版本是这个样子的:
这个 App 从有想法以来到编程到上架 Google Play 一共用了差不多 5 天时间,主要的开发地点是在上海的一个小旅馆里(当时顺便来上海和朋友看 China Joy,晚上就住那),使用的是自己购买的一台二手并经过魔改的 ThinkPad X220,如果真的想写出来一个产品的话其实电脑配置什么的都不是问题。
虽然现在看起来真是怎么看怎么丑,不过当时刚开发出来的时候那感觉真是厉害,毕竟是我开发出来的第一个有实质意义的产品。在之后的时间里,很长时间内我都是只是在维护这一款产品,虽然没什么人用,但是通过维护这一款产品,我的 Android 开发水平不断地提高,到了之后的版本中,仅仅去实现一个功能已经不再是我开发时的主要目的。我开始将更多的重心放在了设计和用户体验上。慢慢的开始适配 Google Material Design 设计规范,提升用户的使用体验,并且不断添加更多功能。MikeTech For Android 是我维护时间最长的 App,也是见证了我开发与设计能力提升的 App,在 2016 年的最后几天,我再一次推送了新版本。这一次,是这样的:
走上 iOS 开发道路
我开始为 iOS 设备开发应用的时候是在 2016 年初,在去年晚些时候突发奇想在自己的 ThinkPad 上鼓捣了一下黑苹果,不过不是很理想,不能装最新版本的 Xcode 开发环境(不过当时也不会开发 iOS),没有网络,没有声卡。当时还发了个朋友圈炫耀了一下。没过多久,我妈发来消息:「如果你真的很想要一台 MacBook 的话就给你买一个」,因为我给她提到过吧,她答应我 2016 年 9 月份如果真的收到了英国大学的 Offer 就给我买一台。不过看来我拥有一台 MacBook 的时候要提前了,之后又过了几周,忙完了学校的论文,在学校旁边的 Apple Store 购买了一台 15 寸的 MacBook Pro。这台 MacBook 是迄今为止我在电子产品中最值得的一笔投资,实在是太好用了,即使已经使用了 1 年多,这台机器速度依旧飞快,满足着我日常的各种需求。
不过之后由于学校的事情比较忙,学习 iOS 开发的事情就被我淡忘掉了。直到寒假,一天晚上睡不着觉,看了看网上 iOS 开发的教程,虽然 iOS 和 Android 使用的不是一个开发语言(一个是 Java,一个是 Swift 或者 Objective-C)但是看了一会,觉得都是一个套路,可以为自己的博客网站开发出 iOS 客户端了。
于是开始为 iPhone 开发自己博客的 App,可能当时也是有点急吧,每次为 Android 版推送更新的时候,总会有人很有优越感的说:「可惜我用的是 iPhone 」。开始开发的第一天就写好了原型,不过当时也是什么都不会,摸着石头过河。正好放寒假,除了出门聚会走亲戚就是写代码。
功夫不负有心人,用了十几天,学习带开发,第一个版本终于问世了,刚好也开学了,可以接着投入到学校的事情中了。用压岁钱交了 99 美元的 Apple 开发者注册费用。
不过, iPhone 版的上架就没有 Android 版那样一帆风顺了,被苹果以各种理由拒绝上架。举几个例子哈,我的博客分类中,有一个类别叫做 Android,苹果直接因为这个拒绝上架。之后,有一张应用截图上面出现了 Android 字样。又被拒绝。反正来来回回被拒绝了很多次,每次拒绝再审核都要大概一周的时间,折腾了大概一个月,最后还是登上了 App Store,成为了我的第一个 iPhone 应用。
之后的一个学期,我空余时间也会维护这个 App,进行了若干次更新,改变过数次设计。当我宣布 iPhone 版的 MikeTech 上架的时候,还是会有人跳出来说,可惜我用的是三星 S7,我笑而不语。
Lens Genius [Android]
之后就大概是 7 月份了,放暑假了,在家里忙了一个暑假的出国准备,到了 8 月多终于签证什么的都办好了,一切都准备就绪了,可以出去玩一玩放松一下了。我平时也喜欢摄影,平时外出旅游的时候会携带一台 Nikon D810 拍摄照片。
在旅途中难免也为镜头不适合操心,想着买一个其他焦段的镜头来弥补(也就是想一想),但是每次选镜头都要去官网,比对还很麻烦,手机上也不方便,于是我就想看看有没有什么 App可以看下镜头参数,下面是我在网上看到的别人写的 App:
算了。自己开发一个吧,在旅途中,用了 3 天时间,我开发出了这款镜头数据库 App:Lens Genius。
这个 App 包含了各种厂商(尼康,佳能,索尼,三星,富士,施耐德等等)的九百多只镜头的详细参数,还是离线的,并且检索和筛选起来特别的方便,简直是挑选镜头的必备。在设计上遵循了 Google Material Design。在 Google Play 上可以下载,免费!
Costuary [Android]
9 月份就要出国了,到时候所有的金钱都得自己管理,并且管理的还不是人民币,是英镑。由于汇率诧异过大,当我花掉 5 英镑的时候是感觉不到自己花掉了 40 多人民币的,所以,我预先在国内开发了这款记账 App,Costuary。 App 名字是花费(Cost)和精算师(Actuary)的结合。
这个记账 App 是我独立开发过的最大的 Android 项目,支持多币种实时自动换算,可以将花掉的英镑用实时汇率转换成人民币显示出来,并且拥有详细的周,月,年报表,支持 Excel 导出。
这是第一个版本:
结果被吐槽的有点严重。甚至丑的都不让上架,当时我看到这封邮件的时候正好在签证中心,一口老血喷出来。
之后我重新设计了整个 App:
在发布了稳定版本之后,决定为这个 App 加上云同步服务,这对我来说可不是一件容易事,要牵扯到后端服务和后端开发。在一个公司中, Android 开发者, iOS 开发者,后端服务,是三个不同的职位。可是如果想实现云服务功能,就得自己去学习这些。
开发一个同步服务并没有那么简单,要考虑的事情很多,把账本同步到云端账户上,并且还要同步已经删除的项目,要么在第二台设备上即使删除过的条目还是会同步回来。还有就是需要支持并发性,必须要设计一个可靠的系统来让整个 App 即使再有几千笔账目的时候与服务器同步也能做到不卡。需要考虑的事情太多太多,毕竟这是我第一次开发这样的功能,一点经验都没有。
尽管没有任何经验,开发出来的产品还是要对用户负责的,我不希望我的产品安装到用户的机器上会因为某些设计缺陷而崩溃,任何人都不傻,不会因为情怀买单。在经历了几天的测试之后,终于确定整个功能完善了,我推送了更新。到现在 Costuary 有着稳定的用户群,尽管不多,但很稳定。
为什么选择 Google Play
以上所有的 Android App 都可以在 Google Play 上搜索到并且免费下载,至于为什么选择 Google Play 为发布渠道,因为我觉得 Google Play 可以更好的保护用户的权益。
每当开发者要上传 App 到 Play 上的时候,必须要填一个调查问卷,其中会问到,有没有纳粹字符?有没有宗教词汇?有没有暴力言语?根据结果,Play 会为 App 打一个评级,年龄不符合规定或者特定地区的人是无法检索到这个 App 的。
并且,如果有的 App 被检测到安全问题, Google 会及时下架 App 来确保用户安全:
某些其他平台只会发这样的邮件,只是为了维护自家商店的利益罢了:
英国生活
转眼间到了 9 月份,是时候出国了,在出国之前,将主力机器由原本的 iPhone 6 更换为了 Nexus 6P,因为,终于可以享受完整的 Google 服务了,指不定还能体验一波 Android Pay! 9 月 17 日,我坐着飞机来到了谢菲尔德,开始了英国的留学生涯。
既然这篇文章是关于数字生活的,那么我就来展示一下我平时学习的地方吧,看看我都使用什么电子产品:
我的主力电脑就是这台 MBP 15,在 2016 年,所有 App 都是在这台电脑上开发的。外接了一台显示器(二手的),忘了什么型号了。小米鼠标垫,小米台灯,小米插线板,小米手环2(比我以前的 Moto 360 好用太多),小米五号电池。
除了 MBP 15,我还有一台 ThinkPad X1 Carbon 2016 ,用于泡图书馆和旅游,X1 非常纤薄,放到包里感受不到重量,平时写博客,写论文,旅游时候的照片后期,都是由他完成。
在英国, Google Nexus 6P 原生 Android 体验和完整的 Google 服务真的比国内强了不少, Google 服务无处不在,在生活中的时时刻刻都能帮上忙,寻找周围的餐厅,导航,查看周围的旅游景点。分析邮件中的日程,自动翻译界面中不认识的文字( Google Now on tap)。
不过,在来到英国 1 个多月后,我还是选择将我的主力机换成一台 iPhone SE,主要原因就是 Nexus 6p 电池实在太弱了,一会就没电了,很多次在外面就没电了,根本借不到 type-C 插头,并且 6p 也不兼容我的移动电源,总是充不上电。刚开始的几个月在异国他乡手机突然没电还的确蛮危险的,有时候去山上徒步要是手机没电了那还不死在荒郊野岭,快充顶个毛用,高性能处理器顶个毛用,2K 屏幕顶个毛用,原生 Android 顶个毛用。
还有一个原因就是 Apple Pay, Apple Pay 真是太方便了,在英国,所有支持 Contactless payment(在中国叫做闪付)的地方都可以使用 Apple Pay。在很多超市,比如 Tesco,一般都是可以自己拎着东西自助买单的,走的时候手机在机器上蹭一下就好,很方便,三秒钟解决战斗。并且在伦敦,坐地铁也可以直接刷手机( Android / Apple Pay都可以),很是方便。
所以我将主力机换成了 iPhone SE,毕竟不是每天都要用到 Google 来看周围的餐馆,不过每天买三明治的钱还是要花的。
Aircraft Pedia [iOS]
在英国,多了一个活动,那就是和朋友去曼彻斯特机场拍飞机。
在没有论文的周末,有时候会坐火车去曼城机场的观景台拍飞机,我和基友也是对客机很感兴趣,喜欢看各种空难纪录片,听见空客 A380 轰鸣的引擎声都能激动半天。有一天突然就有一个想法,可以去写一个 App 来查阅各种飞机的资料,刚好很久没有开发 iPhone 项目了,那就在 iPhone 上写一个吧,于是,用了一周的时间(上学 + 开发),Aircraft Pedia 诞生了。
这款 App 就可以很好地辅助航空爱好者来查阅各种型号的飞行器信息和性能,不光有客机,其中还包括各种战机。由于是一个工具类 App,这也是我第一个收费的 App,国区定价 3 元,有需求的小伙伴可以入一下。
Flat Weather
Flat Weather 是我最近的一款作品,也是下载量最多的一个作品。
从前面的作品不难看出,都是使用了普通的 App 设计,真正用到设计来提高美感的地方很少,Flat Weather 是一款风格和我以前作品完全不同的 App,其中每一张图都是我自己设计并且绘制的,是美工占在开发周期中时间最长的一次。关于这个 App 的设计,进过少数派Matrix精选,感兴趣的读者可以去了解下:天气应用 Flat Weather 的设计历程。
至于我为什么要去开发这样一个 App,其一是想去开发一个与众不同的天气 App,还有就是想去提升一下自己设计后端服务的能力,Flat Weather 的后端服务,也就是服务器端,同样是我编写的,为此,我每个月要支付 60 多元的服务器租赁费用。我对每一个项目都有明确的目的,比如 Costuary,这个项目就在数据库编写中为我累积了很多宝贵的经验。Flat Weather 也是,为我在后端服务编写中累计了很多的经验。
Flat Weather 的故事很多,在少数派发表我文章的那天我获得了大量的下载,有很多人评论并且支持我,并且有很多人向我发邮件反馈不足的地方。这些举动都令我感动,毕竟,想要做好一个产品,只有一个开发者是远远不够的。
不过也难免会得到不好的评价,第一个版本的主要问题就是不支持中文,和自动定位功能的缺失。自动定位的缺失是我的不对,因为我没有考虑到这个 App 在第一个版本就会获得这样的下载量,这个功能,如果你们看到了这篇文章的话,那么应该已经加进去了。
评论中有一句话我是不赞同的:「不管是不是国内开发者开发的,支持中文是必须的」,我只是不知道为什么是必须的。用 Steam 买游戏的人应该都知道,有很多人因为游戏没有中文支持就给差评,这是一个很不人道的行为,因为很多独立游戏工作室的开发者根本没有资金去聘请翻译,汉化一个软件或者游戏的代价有时候是巨大的。我的 App 加入中文是早晚的事情,在最新的版本中我已经加入了简体中文和繁体中文的支持,也是因为那一周太忙,你们都在过年,我还在上课,所以更新版本推到了周末。
作为一个人人都适用的工具类 App,适配 VoiceOver 功能还是必要的, iPhone 的 VoiceOver 可以通过朗读屏幕上的内容来辅助视力障碍的人适用 iPhone 。在 MacBook 2016 发布会开始,播放了这样一段视频,片中一个手脚不便的残疾人在使用头部动作控制一台 iMac 通过 Final Cut Pro 剪辑视频;一个盲人,划开了 iPhone 的相机,当 iPhone 读出:「One face, smile face, focus lock」的时候,相信很多人都震惊了,这才是科技的伟大,尽管每年唱衰苹果的声音不断,不过 Apple 在各个领域做出的贡献大家都是有目共睹的。VoiceOver 功能的适配已经加入到了我的开发计划中。
总之还是感激大家的支持和评论,你们的反馈会使我更好的完善我的作品,Flat Weather 还会不断更新,去完善那些缺失的功能。我知道我没有能力去让那些不喜欢我 App 的人去使用他,但我不会让支持我的人失望。
尾巴
以上就是我的 2016 个人量化,我 2016 年作为独立开发者的心路历程。我通过不断地开发新的 App 来提升我的开发能力,增长经验。一个人经历完整的项目:规划,设计,美工,开发,后端,运维,我很享受这一过程,怕以后工作了就找不回这样的感觉了。这就是我为什么选择当一个独立开发者。在这一路上,有家人朋友的支持,有自己的努力,这一切都是值得的。
还记得刚进入大学的那天,爸妈把我送到了上海,那天他们给我买了一台 iPhone 5S,我换掉了我才用了三个月的魅族 MX3。在车上,我妈问我,你是不是早都想换一台 iPhone ,我说是的,她回我那你怎么当时换了魅族。我当时回道,因为我在学习 Android 开发,其实是觉得太贵了。不过,我并没有说谎,一年后我真的成为了一个出色的 Android 开发者,并且还因为这个找到了自己的第一份实习,一开始就买一台 iPhone 指不定都不会是现在的样子。
智能手机的出现的确为人们提供了数不清的便利,我热爱电子产品,热爱开发,希望通过自己的一份力来提升人们的数字生活品质。相信其他的独立开发者也是因为这个信念支持着自己,掏着自己的钱包支付每年 99 刀的开发者和服务器的费用,为的只是为他人提供方便。
2017 年已经到来,我会继续努力,为大家带来更好的 App。
(如果你喜欢这篇文章,我们鼓励你在文末点赞和评论,这会成为 征文活动 最后评奖的参考之一,你可以 点此查看 之前的入围文章 )