無標題文檔

成为更好的自己

第一次看见 闭月 大概是在零九年的时候。

看她的气质,当时看到她以为是设计师。然而,她自己说她是前端的时候,我有一些惊讶。那时候前端这个职位还是刚刚起步,在国内提供这个职位的公司不多。作为女生来应聘这个职位并且能够通过面试,自然就更是难得。

再后来的合作,就是当时淘宝 UED 组织的前端兴趣小组「懒懒交流会」了。她当时作为组织委员和主持人帮助我们这些不善言辞的技术人员一次次的完成了分享,十分的辛苦。她的临场表现以及应变能力也是得到了大家的赏识和肯定。

印象中很深的一次是在 D2 交流会上,我演讲时因误操作加上我当时的上台经验不足,造成场面有点尴尬。她作为主持人帮我打了圆场,使得我的讲解能够顺利继续进行,至今对此还是表示感谢。

再后来我从原团队离职,她还组织大家每人给我写了张明信片,十分的有心。

偶尔老同事聚餐,聊到她的时候得知她换岗去当了产品经理,我还是有些诧异的。在阿里的内部转岗是需要很大的勇气以及承受很大的压力的。

然后就是看她的朋友圈,她和其他的姑娘晒自拍和美食不同,她总是会晒些自己阶段性的东西,例如今天她做了什么。甚至,她为了能够在生完孩子以后穿上比基尼而做了个健身计划,这当时被我们这些老同事奉为谈资。

就是那么个喜欢折腾的姑娘,竟然在八月份的时候离职去创业了,还是一个人。这多多少少让我们感到有些意外。在阿里近六年,她放弃了具有竞争力的薪资以及丰厚的阿里股票,这比转岗更需要勇气以及所承担的压力。

从阿里离职创业的人不少,而像闭月她那样「裸辞」去创业的人不多。但同时,看她冒着那么大的风险以及顶着那么大的压力,我们十分好奇她的创业项目是什么。

她首先印了一批记事本,免费送给同样想坚持六十天完成计划的用户。

将近一千多本有质量有设计的记事本定制下来费用对于创业而言不多,但是平均算下来也不少。要知道,例如 Moleskine 这样品质的记事本市场价都是满百以上,而想要达到和它一样品质的笔记本去除品牌的溢价,小几十也肯定是需要的。

闭月姑娘创业的第一张牌打得就让人很惊奇。

抛开情怀,我粗略考虑了下这称之为 iBetterMe 的项目

那一千本记事本送给用户,其实都知道是培养种子用户。这一千本记事本的种子用户,目标和共性都很明确,就是他们都想有个六十天的目标计划改变下自身。

有用户必定就会有产品,目前闭月的「产品」只是本薄薄的记事本。按照我个人的理解,我倾向于将她的应用和 EverNote 这类产品作为类比。

作为记事和效率类的应用从目前的技术上讲,便利性、体验以及成本上说移动设备还是无法和传统的纸质记事本相媲美。这也是 EverNote 后面和 Moleskine 合作推出实体的纸质记事本的原因 -- 想抹平这块体验上带来的鸿沟,以及覆盖部分非智能设备用户(然而 EverNote 并没有成功,这是后话)。

iBetterMe 采用的覆盖用户的路线却是独具构思。先发行纸质的记事本,这在一方面可以从功能单一的角度上以实体效率工具出发,让用户「看得见、摸得着」;同时,在另一面也可以避免直接推出一款同质应用和目前已经红海的移动市场竞争。

要知道,目前移动这块目前的竞争已经到达了饱和的阶段,目前市场缺的不是技术是想法。

有任何有价值的想法在没有完全形成生态之前贸然推出,要么就犹如块石子扔到了大海中连涟漪都不会有,要么就是直接被更强的竞争对手 copy 连还手的机会都没有。所以,在此之前使用这样的策略起步,不为是个非常稳妥的办法。

以上只是我个人对于 iBetterMe 的猜测,考虑到闭月的爱人是 iOS 程序员,所以推出移动端是迟早的事情(笑),到时候再来评论也不迟。

目前,这个项目状态从官网的简陋上看得出还只是起步阶段,毕竟目前只有闭月和她的爱人两个人在维持。好的团队当人需要磨合,而目前再没有比夫妻档更有默契的了(继续笑)。

从一六年一月份开始,闭月团队除了继续培养种子用户,还开始了对外的招聘计划。从零开始组建一个团队不容易,我想如果你对这个团队和项目有任何的想法和建议的话,他们会很乐意听的。

总之,退一步讲 iBetterMe 这个项目不管成不成,它是闭月初次创业的一次难得的经历。这份经历于以后这个项目是否能够继续,都会将会是难得的财富。

- eof -

魅族的堕落

魅族的新品发布预告

前面说了锤子,有很多的朋友在留言要我说说其他品牌的手机。作为移动开发人员用过了不少的手机,还是有点发言权的。

想想还是再写写魅族吧,一来我用了曾经也是「煤油」;二来我「普通发」要稍稍好过他们一点,要真吵起来我可能会比他们说得更多一点。

魅族和锤子一样都是业界的奇葩,他们其实有很多共同的特质。

例如,锤子是需要拧开螺丝脱掉后壳才能换手机卡;魅族的机子可以让你徒手脱掉后壳,但一打开也照样傻眼了:不能换电池!

我们经常会遇到这样的产品经理设计师,他们总是会想些相对常人无法理解的功能和元素,试图来「说服」自己和「打动」用户。

将这些人员聚集在一起办公,这家公司的名字毫无争议的就叫「魅族」。

再想想当年那臭名昭著的 SmartBar 吧。我个人是丝毫无法理解,为什么人为的制造了这样神一样的双下巴。而他们却不予余力的推广这个玩意,只要是有应用支持了必定是市场推荐。

而今买账的人越来越少啦,用户的吐槽确实越来越多 - 并不是所有人都喜欢这个东西。这帮设计师和产品经理当然不可能自己打自己的脸,说我们下台手机将不支持 SmartBar 啦!所以他们给用户在设置里多了一个选项:「自动隐藏 SmartBar」(自 Flyme 3.7.7 版本起)。

当然,这个选项是 Flyme4 的新特性,纳入到 Change Log 里面的。

好吧,总是拿 SmartBar 说事显得不是很人道,人家很努力的不是吗?那么我们再来说一件事情,那就是 Ubuntu OS。

相信很多手持 MX3 在「多年」以前就已经期待这个系统了吧,说实话当时我也震惊了下。魅族终于走出国界,迈向世界了!

最后的结果是将近两年过去了,魅族的 Ubuntu OS 手机终于出来的,而 MX3 却被无情的抛弃了。

「喂喂,开什么玩笑?我们这样子机子才能卖得出去啊!」

不仅仅是 Ubuntu OS,甚至引入了阿里的 YunOS,这点叫「引狼入室」一点也不为过。

魅族拥有相对忠实的用户群,然而引入其他的 OS 换取那一点点的销售量,这一系列的做法让人猜不透这背后的逻辑。

当然还有其他的更多的事情,让我们这些老的「煤油」越来越寒心:机子的品质(无论是硬件还是软件)越来越差、也学某米一样需要抢购了,根本买布到现货(谁能给我个魅族 Note 的 M 码?)、营销是越来越「恶心」了等等。

这里还是要顺便说下魅族的营销策略,其实真的是没有必要去贬低他人去抬高自己。这是孩子都明白的道理,然而却出自这样家曾经令人感到敬仰的公司。

这个丝毫不夸大的讲,是魅族在堕落。

多年前如果有人问我买什么国产手机好,我会给他推荐魅族。现在我会一个巴掌过去,拍醒这位「爱国者」:买什么国产手机?没事干给自己添堵呢?!

即便是 MX5 发布在即,我都丝毫提不起对于它的欲望和期待。

「您还别嫌贵我们只卖 2599 ,还没现货,您排队去。」

-- eof --

锤子的逻辑

Smartian T1

如果说业界的奇葩的话,那么锤子也应该能算得上是一个。距离 T1 发布已经有一年多的时间了,但是锤子二代(T2)手机却丝毫没有风声。

或许很多人都会把锤子当作笑话来看待了,在没有真实的使用过这款机子之前,我的确也是怀着那种莫名的「恶意」的。

锤子还是活着的。

就在上周锤子至少还是发布了一款产品的,那就是「锤子日历」-- 一款 iOS 平台的日历应用。

截至目前,我们看下锤子在 AppStore 上面发布了哪些应用。目前在 AppStore 上面有它的几款相对不是很「大」的应用:锤子便签、锤子时钟、锤子日历以及对应的同步工具。

锤子迟迟的没有发布 T2 手机(应该就叫这个名字了),却在 iOS 平台上发力开发这些应用的逻辑是什么?

从锤子发布的应用类型看,几乎都是效率类的应用。这些应用几乎都应该是一个「正常系统」必须要安装的:便签、时钟、日历等等。

对应的 iOS 系统,他们自家的 Smartian OS 也有一模一样的应用,甚至连界面都可以说是非常的一致。

开发一款智能手机,无论是体验方面还是用户的基数,在这个行业绕不开的一道坎就 iPhone 。

同时,在 iPhone 的使用用户当中,将 iPhone 用作生产力工具的用户会有很强的粘度以及使用惯性。虽然这一部分的用户比例相对较少,但是不难展望这小部分用户的巨大号召力。

所以,锤子要考虑的就是如何将这部分用户作为种子用户导入到他们的用户中,所以提供跨平台的效率工具其实是个非常好的突破口。

设计方面,iOS7 扁平化了以后整个业界的设计风格也跟着扁平化,整个业界的设计界面可以说是非常的同质化(尤其是国产的手机)。

锤子一开始坚持自己的拟物风格,甚至偏执得将那些乱套的 Android 应用的图标都逐个的重新绘制。这虽然看起来是个不小的工作量,而换来的界面效果提升也是非常的明显的。

很少有手机拿到手打开有那么让人会心一笑的感觉了,iPhone4 算一个、锤子的 T1 也可以算一个。

平心而论从设计和交互上说,锤子的手机的界面是能纳入第一批队的。

光是针对「讨好」 iOS 用户以及和其他 Android 手机「不跟随」的界面往往是不够的,同时当然锤子自己也想做得更多。

而从目前的情况来看,锤子在开发以及迭代的速度上还没有跟上它的竞争对手。哪怕锤子的 T2 手机到下半年才发布,那么它都已经错过了好多非常好机会了。

时间就是成本,留给「锤子」的时间已经不多。

对于 ThinkPad 的那点情怀

说起来,情怀是件很奇怪的东西。在这个情怀泛滥的年代,如果你对一件东西说有情怀,那么可能收到的反应往往都是极端的。

而对于 ThinkPad,我是很愿意冒着这个危险的。世间上是少有的几样东西你说你对它有「情怀」而不会被大多数人喷的,ThinkPad 算的上是一个。

TrackPoint

ThinkPad 跟随了联想了以后口碑不如从前,而我也从多年的 PC 用户变成了多年的 Mac 用户。还是那所谓的「情怀」作怪,在偶然的机会,入手了台 x220 ,打算当作开发以及备用机。

至于为什么只是要买 x220 ,其实很简单。现实的价格因素意外,x220 这种类型的键盘对于 ThinkPad 系列来说有可能是绝唱了。

ThinkPad 曾经有很多业界颇为称道的硬件设计,小红点、屏勾、镁合金的防滚架、高度可替换的配件,甚至可以自己 DIY 的电池。

所以有人说过,如果你用过 ThinkPad 那么就不会使用其他的 PC 笔记本了。有人开玩笑的说,如果旅行带上了 ThinkPad ,至少它有个用处就是用来防身。

说了那么多,作为多年的 Mac 用户自然而然会拿 MacBook 和 ThinkPad 作对比。

我个人平心而言,简单的一句话,就是 MacBook 是最好的终端笔记本,而 ThinkPad 是最好的生产力工具。

ThinkPad 低廉的价格以及可以替换的配件让它在任何恶劣的环境使用都倍感信赖。而 MacBook 拿 Unibody 的机身怎么看都觉得会是完美的艺术品。

所以,是情怀也好,是矫情也罢。

当然,如果联想继续作死的话,恐怕 ThinkPad 的未来就将会很不明朗了。但是至少,ThinkPad 对于我等靠这些设备吃饭的人而言,自然已有着它无可替代的地位,哪怕这只是一段回忆而已。

--

后记

针对那 x220 的机子,我还是做了些升级好让它使用起来更加的舒服。

机子的硬件自然没得说,我要求将硬盘的差价补贴到内存里,所以卖家就直接给我发了一台没有硬盘的带 8g 内存的主机。

刚好我有一块当时升级 MacBook 留下来的 SSD(铺科特 M5S),所以就装在了 x220 上(有点搞笑的是那台机子的价格竟然和我的 SSD 差不多价格)。

这里要顺便吐槽下浦科特的 M5S,竟然采用的是 9mm 高度的外壳,而 x220 需要的是 7mm 的硬盘。无奈之下这能拆了硬盘的外壳,同时这也意味着放弃了浦科特的保修。

然后使用了几天,发现经过多年 Retina Display 洗礼过的眼睛已经无法忍受 TN 屏幕的效果了。

x220 的自然是无法跟上 Retina Display 的效果了,好在它有最后的一根救命稻草就是它还能升级到 IPS 屏幕了。所以还是淘宝找了个卖家,就地以旧换新将旧的 TN 换成了 IPS 屏幕。

合计了下,总的硬件方面的投入我总共花费了 1600 上下。这对于苹果的硬件设备而言,可能就只能买一台 Time Capsule 了。

系统自然根据我的实际使用安装了 Ubuntu,好在这个相对比较新的系统在硬件方面没有让我太多的费心。

我曾经有过不小心将咖啡打散到 MacBook Air的不好经历,这件事情耗费了不少的时间和精力去折腾机子和恢复数据。对比 ThinkPad 你要知道它对于键盘防水这块它是做足了功夫的

所以,如果有可能会在比较恶劣的环境下使用笔记本的情况,带台 ThinkPad 前往是再合适不过的了。

-- EOF --

Android 开发的昨天、今天和明天

收到过位将要毕业的同学的来信,问 Android 开发是否有「前途」。我个人从前端转到移动相关的工作也有些时日,虽然期间有点心得但回复类似的问题不免会有「误人子弟」的担忧。

刚好在 Android Weekly 上见到了这篇文章,阐述的部分观点竟然和我不谋而合,因此草译下权当有相关问题的同学作为参考。同时,国内的 Android 环境可以用「奇葩」来形容,因此文章后面我会加入些自己的个人观点。

混沌之初

很难相信,如此的一个系统竟然会有 80% 的市场占有量!在我个人看来,Android 能够做到如此成功在早期并不是它足够的优秀,而是同期的竞争对手做得比它更好。

为什么?我亲爱的读者,在那个时候到处都是问题好吗:

糟糕的开发工具(甚至包括 IDE)

你尝试过用铁锹修车吗?或者,开着你爷爷曾经使用过的有着 40 年历史的 Yugo 载着姑娘去兜风?在那个时代 Android 开发有且只有一个「相对」官方的开发工具:Eclipse 。

请您相信我,Eclipse 有各种的问题甚至能让你在十分钟之内发疯!Eclipse 的 ADT 插件简直就是「Bug 与 Crash 齐飞,重启和关闭共一色」。尤其在相对复杂的项目开发上,那酸爽简直不敢相信!

很大的程度上,光就是 Eclipse 这个开发工具就吓到了很多入门开发者,让他们投入其他开发阵营的怀抱(对,例如 XCode)。

碎片化

Android 的碎片化严重得可以用张麻子脸上的痘痘来形容,我们先来说说软件方面的。Gingerbread (2.3.7) 是相对比较老的系统版本了,对比同期的 iOS 4.x 系列,目前还有百分之 15-20 个点(可能具体地区的占有率稍有不同)。

您或许已经知道,Android 4.0(Ice Cream Sandwich) 是一个巨大革新的版本,新的 UI、新的 API、新的屏幕分辨率,这一切看起来非常的美好。但,缓慢的用户迁移过程让我们不得不面对这些优秀新系统特性的同时,同时还需要兼容那老旧的系统。于是为了兼容新老的两套系统,项目开发中多了非常多的兼容代码,这会使得应用到处是 Bug 和奔溃。

(这段译者自己添加,吐槽我最擅长了。)除了软件方面,硬件的碎片化的问题更加的严重。你甚至不了解你的应用会在什么样的硬件上运行,你需要获取用户的位置信息,对不起设备可能没有 GPS 甚至没有基站定位;你需要打开摄像头扫描二维码,对不起设备可能没有摄像头、即便有摄像头但运行内存不够,崩溃!这个时候用户是嫌弃自己的硬件呢,还是说您的应用有问题…

硬件方面最头疼的还是屏幕分辨率的问题,Android 开发过程中在资源(resource)目录下有各种的目录(drawable-xxhdpi、drawable-xhdpi、drawable-mhdpi、etc…),你需要针对不同的分辨率调整自己的资源文件,对相信我这块有时候会比编码的时间还长!

缓慢的模拟器

当你完成一个应用以后,首先要测试在各个不同 Android 版本以及屏幕分辨率下的运行情况,所以我们购置了不下二十台 Android 设备用于测试。

听起来似乎有点夸张?好吧,感谢上帝我们还有 Android 模拟器!

然后,你兴冲冲的跑去建立 Android 模拟器并尝试让它跑起来,你会发现半小时后你会哭!先不说它那缓慢的运行速度,就连调试过程中你甚至会开始思考你的人生。

从此以后你再也没有勇气打开运行过它,它只是成为你机子文件系统中一块占用地方的文件而已。

UI

「设计 Android 应用是多么得无趣!」如果你对比过同期的 iOS 应用,那么 Android 的应用竟然会如此得暗淡无色。对比 iOS 那流畅的动画、交互以及细节,你会觉得 Android 应用一切都是「静止」的!

当你打算给 Android 添加点生气的时候,你会发现还是那些老旧的系统(例如 Gingerbread)囚禁了你的创意和思想、乃至期望。

全新

我们将时间推倒 2013 年,这些糟糕的事情总算有了一些改变。

那个时候问题已经足够糟糕到连 Google 自己都看不下去的程度,即便 Android 4.0 发布至今对于上面的问题稍微有些缓解,但还不足够达到能够彻底解决问题的程度。

直到 Android 5.0(Lollipop) 的发布。

所有人都在思考 - Google、设备提供商、开发者。所有人都会自问这样的问题,就是「当我们有了个相对稳定的系统、上千万的应用以及对应的用户。那么我们应当如何让 Android 这个巨无霸化繁为简?如何将开发的过程变得优雅、吸引更多的人加入这个行列?」

Android 5.0(Lollipop) 有着巨大得改变,那些非常多的特性出于篇幅的考虑我只能列出我个人认为重要的几个点:

Android Studio

Android Studio 在 1.0 版本以后就变得非常的稳定。我无法从只言片语来描述这个应用能够给我们带来的巨大的变革。如果您愿意了解详细信息,可以参看原先我写的两篇文章(这里这里)。

The new Android Studio logo

这个 IDE 是如此的优秀,以至于 Eclipse ADT 插件已经停止了官方的维护,因此严重推荐原先如果开发 Android 的同学迁移到这个 IDE 上。

人生苦短、及时行乐。

Gradle

Gradle 是个全自动化的构建工具,在 Android Studio 已经全面替代了 Apache Ant 作为主要的构建系统。

这个全新的系统将会给构建 Android 应用带来全新的体验(听着耳熟?)。当您设置好构建配置脚本以后,所有剩下的事情都将不用你操心。

译者注:Gradle 在大陆使用建议还是需要挂代理,Sigh…

Lollipop

Google 说过 Lollipop 是有史以来变革最大的系统版本(每次它都这样说),我希望他们是对的。

同时,也希望目前的主流机型能够升级到这个版本(译者:个人觉得原文作者有些乐观)。

Lollipop 之外 - Material Design

理所当然,作为 Lollipop 提出的重点之一,自然会有很多的笔墨来阐述 Material Design 这个新的设计理念。我个人非常同意 Material Design 的其中之一的理念,那就是「所有的东西都是重要的(everything is important)」。

One animation, please

例如动画,长期以来我们的观点是动画只是 效果 的一部分,而 Material Design 主张动画也是有 含义 的,就好比文章分段的间隔符。

我们重新设计、重新开发符合 Material Design 的应用,最终的目的在于应用并不仅仅是生活的一部分,而是能像水和空气一样够让它融入到生活中的每处,让它无处不在。

这就为了以后即便在不同的平台下不同的应用看起来风格和体验也是统一的。

Lollipop 之内 - ART

对于 Material Design 提供的外在设计元素,我们开发人员最关注的还是其内在的改变。一个新的运行时(runtime system)称之为 ART 的就内在其中。

其实 ART 并不是新鲜事物,首次出现应该在 Android 4.4(Kitkat)中。我们之所以重新介绍它是因为在 Lollipop 中 ART 已经全面替代了 Dalvik 成为系统默认的运行时(runtime system)。

ART 有很多优秀的特性,处于篇幅考虑我只说明其中两点:

    • 使用前置编译 AOT (ahead-of-time) 。这意味着 ART 模式下,代码被直接编译为机器指令,程序运行时直接执行机器指令。这能带来更快的执行速度以及更小的 CPU 损耗以及更长的电池时间,当然另一面就是安装时间可能会变长。
  • 译注,针对这块下面有评论,可以参考

    Note that ART still has the same 65k method limit. Multidex support applies to Dalvik as well.
    As an addition to the improvements you mentioned, I would add the unit testing support they just released with version 1.1.0 of AS. Hopefully it's a fresh start for better testing of Android apps out of the box. It also works great with Robolectric.

    到处都是 Android

    现在我们已经可以开始针对智能手表、电视、甚至汽车编写应用。想象下我们坐下来煮上一杯热咖啡,环顾四周将来可能至少有四五个设备运行着 Android 系统:电视、笔记本、平板、相机、乃至厨房电器。

    Android 开始逐渐占领所有具有微处理器的设备,犹如水和空气一般得存在。

    逐渐高品质的智能手机

    Android 的核心平台还是其智能手机这块,但长期以来一直所受的困扰就是运行其系统的智能手机品质差次不齐。老的 Anroid 设备运行起来对比其同时代的 iPhone 设备显得非常的卡顿 - iOS 却依然流畅得多。这「得益于」那些国产厂商提供的众多低端机型。(译者注:原文 This was especially true for cheaper devices produced by a multitude of Chinese manufacturers. 华强北再次被黑)。

    值得庆幸的是随着硬件设备的摩尔定律,目前的 Android 智能手机设备提供商正在逐渐的改变这一现状。很可能在不远的将来,我们能够得到一台性能足够强大但同时性能不差的 Android 智能手机。

    例如我个人非常喜欢 Motorola 提供的智能手机(虽然它目前已经是 Lenovo 的子公司),他们出品的 Moto X、Moto G、Moto E 等型号的手机都有着不俗的性价比。

    Project Ara parts

    同时有个叫 Ara 的项目能够提供类似 PC 的模块化硬件解决和组装方案,在未来相信 Android 智能手机硬件平台这块能够得到非常乐观的发展。

    下一步?

    远离 Java

    当解决完系统和开发工具层面的问题以后,我们继续将 Android 相关的问题聚集到其他地方。

    恕我直言,我认为针对 Android 最核心的问题将会是 Java,尤其是 Java6 或者 Java7。Java 是门非常的好的语言,但有时候我们可以考虑跳出这个圈子去思考 - 我们或许针对 Android 开发需要门更新的语言。

    作为对比的 Apple ,他们的 Swift 提供了更新以及更现代的特性。这使得它能够支持 iOS 开发人员更便捷的开发应用。明显,Java 在这方面比现代的语言臃肿些。

    是时候我们需要更新鲜点的内容了,目前其实已经有了针对 Java 的替代方案,例如我原先关注的 Groovy。它从语法方面和 Java 很接近(实际上它基于 Java),同时我们针对此开发已经有了些原型。 当然,还有别忘记了它是 Gradle 的主要实现语言 - 所以为什么不直接用于 Android 开发呢?

    同时,Scala (使用数增长迅速)以及 Kotlin (这里有篇文章或许能让你热血澎湃)也是非常好的考虑对象。

    更好的数据管理

    还有个必须指出的问题,就是数据管理 API(database management API)。如果你有对比,例如 iOS(严格上说应该是 Core Data),他们提供了众多非常好的抽象方法(method)、图形化的数据管理、对象、数据观察者(database change listeners)等。对比 Android 提供的 API,这简直就像是只土鳖 - 我们仍然在写 SQL 语句并同时期望得到正确的结果。

    调试 SQL 语句是件非常不容易的事情,首先需要面对的问题就是我们没有个直观的图形化界面去跟踪这些事务。虽然目前已经有些很优秀的 ORM 类库供我们使用(例如 GreenDAOActiveAndroid、或者 SugarORM),但实际上他们仍然各自有各自的问题。

    我还是期待能够像 iOS 一样操作数据库,例如有个数据观察者(database change listeners)等类似工具帮忙。目前能够找到的就类似 DBFlow 等第三方的类库,至少目前而言他们能减少和减轻我很多工作量。

    中国的情况(译者加)

    很明显,国内的 Android 开发环境比国外的冷酷很多。除了上文提到的问题外,还有因为些政策以及特色的原因造成各种本地化的问题。

    缺少 Google 组件包

    或者说完全无法使用 Google 提供的服务。我们单说推送服务,Google 官方是提供了推送服务的,但是由于各种方面的原因国内的开发者基本上不会使用。这使得各家自己实现推送方案,从而恶性循环造成应用的品质下降。

    无厘头的优化

    国内的 Android 用户有「清理内存、杀进程」的习惯,因此很多正常运行的 Service 会被莫名得 kill 掉,而开发人员为了避免被 kill 又频繁的启动后台 Service ,恶性循环。

    同时各固件厂商所做得优化有时候不得法,胡乱更改系统底层。例如某固件更改了 TextView 等导致应用显示「怪异」的情况时有出现。

    设计方面 iOS 化

    这点不用多言,Material Design 即便出来有些时日,但几乎没有跟进的迹象。甚至部分厂商提供的 Android 版本的应用无论从交互还是视觉上和 iOS 版本相差无几。

    我个人很悲观的认为这种情况将会持续很久。

    低端机型肆虐

    正如原文作者所言,国产尤其是华强北出品的大批低端山寨机进一步打碎了 Android 系统的体验。想象下 Android 开发者开发的应用还需要面对的几年前的机型、这在 iOS 平台是无法想象的;同时这造成的巨大的资源浪费以及应用品质的下降。

    总结

    那么 Android 开发的出路在哪里?这个问题直到本文结束可能都没有个标准答案。我相信能够提供良好的 Android 体验的往往是些小型的开发团队,相比大公司的团队而言他们的创新思维、试错能力、反应能力会比巨无霸们更强更快。

    而 Android 系统本身经过几个大版本的进化以后路线也逐渐的清晰,相信除去目前的智能手机领域外,在其他的平台上也会逐渐得发力。

    这点,能看得到。

    — EOF —

    我的照片

    嗨!我叫「明城」,八零后、码农、宁波佬,现居杭州。除了这里,同时也欢迎您关注我的 GitHubTwitterInstagram 等。

    这个 Blog 原先的名字叫 Gracecode.com 、现在叫 「無標題文檔」 。 要知道作为码农取名是件很难的事情,所以不想在取名这事情上太费心思。

    作为八零后,自认为还仅存点点可能不怎么被理解的幽默感,以及对平淡生活的追求和向往。 为了避免不必要的麻烦,声明本站所输出的内容以及观点仅代表个人,不代表自己所服务公司或组织的任何立场。

    如果您想联系我,可以发我邮件 `echo bWluZ2NoZW5nQGdyYWNlY29kZS5jb20K | base64 -d`

    文章

    项目