技术开发
前面啰嗦了很多,终于写到这里了。对于一个开发人员来说,怎么做才是我们的关键问题所在。只会Android开发,所以以下只讨论Android。我主要从以下几个方面来谈一谈怎么做这个问题。
1、技术选型
(1)、 开发平台
移动端的开发目前主要是两大阵营Android、iOS,其他的就不多说了。
(2)、 开发工具
- 编译工具:Eclipse&Ant、AndroidStudio&Gradle,作为Android开发者,目前毫无疑问应该选择AndroidStudio&Gradle;
- 代码仓库:Git 、SVN ,工具有海龟、AndroidStudio也集成了VCS;
- Maven仓库:可以使用nexus创建自己的maven私服;
- 持续集成:Jinkens、Buildbot、Travis CI、Strider、Integrity;
(3)、 开发语言
Java、Kotin、Grovvy、SQL等等;
(4)、 开发模式
MVC、MVP、MVVM、clean等,各有优缺点,在此不做详细说明;
(5)、 开源框架
都说了不要重复造轮子,因为你造的轮子不一定不人家的好用,对于我们开发者而言,有一件非常好的事情就是我们有太多的开源免费的第三方库供我们使用,这样给我们省去了大量的工作,做到更加高效的开发。但是,如何选择,是否引入使我们需要考虑的一个问题。下面列出一些常用的第三方库,更多请点击。
- 网络:okhttp、 android-asyn-http、 volley、 Retrofit
- 事件总线:otto、 EventBus
- 依赖注入:Dagger、 RoboGuice、 ButterKnife
- 图片:Fresco、Glide、 picasso
- 数据库:GreenDao、 Ormlite、LitePal
- Json解析: Gson、JackSon、 FastJson
- 响应式编程: RxJava、 RxAndroid
- 异常统计平台:腾讯Bugly、Crashlytics
- 性能优化: blockcanary、 leakcanary
(6)、 新兴技术
软件开发而言,新技术的发展相当迅速,然而我们实际落地到项目中却需要很长的时间,因为新的技术刚出来一是需要学习成本,二是需要承担新技术不够成熟,存在缺陷带来的一些风险。当然,我们应该积极的引入好的新的东西,跟得上时代的步伐才好。下面列举的一些也许都算不上新的东西,但是也是近年来大家所追捧的新技术。
- AndroidSupport:DataBinding、MaterialDesign等;
- 混合开发:ReactNative、Hybrid、Weex等;
- 编程语言:Java8、Kotlin;
- 热修复:AndFix、HotFix、Tinker等;
- 构建:InstantRun、Freeline