我仍记得2014年我决定做安卓开发的那天,这是我一生中做出的最好决定之一。到现在已经有2年半了,
最初的时候,并没有人告诉我如何做才是正确的。我犯了很多错误,浪费了很多时间。
一年半之后,我有机会和一个真正有才而且经验丰富的安卓开发者一起工作,他指导我,教我正确的做事方式。这期间我学到了很多东西,学会了该做什么不该做什么。
我直接或者间接帮助其它开发者也有很长一段时间了。本文我将分享这几年所收集的精华。也许可以帮助某人更快上手,避免重复我犯的错误。
1. 不要重复造轮子
最初,我有一种不愿使用开源库的思想。不管需要什么,我总想自己去实现。这是一种非常可怕的思想。
如果在开发app的时候遇到一个问题,而这个问题已经被别人很好的解决了,为什么不使用它呢?你可以节省大量时间啊。
把更多的精力花在app的业务逻辑上吧。如果你想在app中发起一个网络调用,是不需要自己去造一个Retrofit来的。
2. 别盲目的选择library
在Github上有许多免费使用的开源库,但是别因太激动而盲目的使用。
检查library的star数目,越多越好。看看作者是否还创建了其它的一些受欢迎的库。查看issues(打开和关闭的都看),这可以让你对这个library的健壮性和稳定性有更好的了解。
如果你时间充足,你应该深入这个库的代码看看它到底是都真的值得使用。
你只需要确保它的代码是可靠的,bug不多的,高质量的。
3. 坐下来,喝杯咖啡,阅读更多的代码
我们在阅读别人代码上花的时间比自己写代码的时间多得多,如果你不是的话,从今天就开始做吧。
不管你现在能写出什么样的代码,总是因为在某年某月你阅读和学习到了什么东西。它只是你已有知识的反映。
安卓的伟大之处就在于它是一个完全开源的平台。可以去深入研究这些代码看看他们是如何实现framework的。Github中有成千上万的开源库,只需选择一个看看人家是如何实现的,
4. 看在上帝的份上,维护一个恰当的编程规范吧
如果把编码比作写作,那么编程规范就是你的书法水平。
就跟你阅读别人的代码一样,别人也会阅读你的代码,我想你也不想把别人吓到是吧?如果你在一个公司,需要和同事协同工作,那么务必重视这个问题。
编写简短,干净,可读性强的代码可以让你和别人读代码的时候很享受。代码应该读起来像是读故事一样。
代码是诗。
如果你写了一段代码结果你的同事几天都不跟你说话,怨不得别人。
5. 你需要ProGuard,是的,你真的需要!
绝对不要犯还没有使用ProGuard的情况下就在Play Store上发布app的错误。ProGuard不仅仅减小了你的代码,还混淆了代码,让逆向工程师更难理解和复制。
它是Android SDK附带的,完全免费,因此没有理由不用。
我曾见过几个开发者没有使用ProGuard就把app发布了。对于一个技术很普通的黑客来说破解你的app也就是几个小时的事情。
6. 使用一个恰当的架构
你永远都会庆幸自己从一开始就选择了一个恰当的架构。
你可以使用MVP (Model-View-Presenter)架构,它可以把你的代码解耦成不同的层便于管理,从而提高代码的灵活性并极大的减小维护的时间成本。
可以参考一个demo项目。如果觉得很难掌握,可以看看这篇针对初学者的指南。
7. 用户界面就像笑话,如果还需要解释那就糟糕了
如果你是在公司,做的是纯安卓开发,你很可能不需要关心这个问题,因为有UI/UX设计师管这个问题。
但是如果你是一个独立开发者,你就需要考虑它了。我曾经见过一些把app功能做的很好,但是用户体验很恐怖的开发者。
要设计一个干净,简单直观的界面,你不要站在开发者的角度思考问题,而要挖掘自己内心中埋藏的设计师的潜力。
尽量尝试设计一个漂亮的界面,让你的用户持续保持印象,这样用户回到你的app的次数就比别人多,从而产生更多的收获(也许是购买高级版本)。
你应该乐于去减少元素,而不是增加。保持简洁和小巧。
8. 分析是你最好的朋友
如果你想创建一个真正令人惊叹的app,你需要重度依赖分析工具去分析app不同部分的性能和用例。
对于分析,我借助于crash reporting和app usage tracking。
不管你怎么做,永远无法做到完美。当真实的用户开始在各种各样的设备以及版本上使用你的app的时候,你会发现即时写的最好的代码也难以保证不出岔子。
一旦发生崩溃,Crash reporting工具可以帮助你跟踪与修复它们。
你必须学会像销售那样思考问题并分析app不同模块的使用。这样可以帮助你减小产品和用户实际需求之间的落差。
9. 做一个营销专家
如果你是一个个人开发者,你必须超出作为开发者的思维,去理解市场。
我见过一些很好的产品因为缺乏正确的市场营销而失败,同时也见过并不怎么样的产品因为牛逼的市场营销而取得极大成功。
如果你对你的工作是认真的希望它能获得可观的用户,你必须把在市场营销上花费必要的时间和金钱。但是在营销活动开始之前,确保app已经完全稳定,功能已经完善。
花时间研究谁是你的竞争对手以及如何打败他们。确定一个可以立即打败的以及一个将来会打败的。
10. 是时候优化你的app了
这是一个大多数人都不会去做的事情,但是你应该做。
写代码与写高性能的代码之间有很大的区别。高性能的代码是指运行速度快,内存和存储消耗更少的代码。
一个未经优化的的app也许在普通情况下运行良好,但是当放在各种压力情景中,它就原形毕露了。检查你app的内存使用情况看看有没有内存泄漏存在。记住小漏不补沉大船。花时间弄懂Java的内存回收机制是怎么回事,创建并分析你的活对象。
11. 每周在Gradle编译上最少节省5小时
你极有可能正在使用Android Studio开发app,编译系统使用的是Gradle。Gradle很棒但是也很慢,当项目显著增大的时候慢得根蜗牛样。
有时候工作忙的时候我还需要
本文来源:不详 作者:佚名