e-works数字化企业网  »  文章频道  »  基础信息化  »  移动应用

Android 新手如何学习开发一款 app?

2017/8/11    来源:微信    作者:佚名      
关键字:Android   app  
毫无疑问,开发一款自己的 App 对于初学者来说,无论从技术学习,还是找工作(或者装 x),都是一大利器。那么如何才能快速上手,开发一款属于自己的 app。本篇文章仅以自己的一些经验给更多的 Android 新手一些建议。
    前言
 
    毫无疑问,开发一款自己的 App 对于初学者来说,无论从技术学习,还是找工作(或者装 x),都是一大利器。那么如何才能快速上手,开发一款属于自己的 app。本篇文章仅以自己的一些经验给更多的 Android 新手一些建议。
 
    一、误区
 
    在讲如何开发一款 app 之前,先说下一定要避免的一些误区。
 
  • 借鉴与copy

  • 表面与原理

  • 效果与深度
 
    (1)借鉴是为了学习
 
    作为一名 Android 开发新手,在学习开发一款自己的 app 之前,参考一些大牛的项目,进行借鉴与参考是一个很好的捷径。
 
    然而有些新手上手就开始撸代码,看着一脸懵逼的代码,不明所以,想着不管三七二十一,敲着敲着就明白了。结果,最后一出 bug 就懵逼了,丝毫不理解项目的结构与框架,更不提其中的技术难点。
 
    所以不要盲目地 copy,磨刀不误砍柴工,要像看源码一样学习项目。先理清项目中的结构,使用的框架,每个类的功能,以及使用到的技术点,庖丁解牛,逐个拆分学习,化为一个个的技术问题,这样才能最终转化为自己的知识。
 
   (2)从表面深入原理
 
    针对具体的技术实现,不要仅仅以实现为目的,更不要仅仅因为实现了一些炫酷的 UI 效果而沾沾自喜。
 
    对于一些技术,要知其然,更要知其所以然。比如:进程间通信的实现方式 AIDL,可能照着一些模板就可以实现,达到目的。再比如说:RecyclerView 或 ListView,按照一定的方法就可以快速实现列表布局。
 
    然而这些实现不仅在一个项目或一处使用,而是频繁高发的实现,将来也更是工作或面试中会遇到的。所以我们要透过表面学习原理,在开发一款app 的同时,通过这种方式激励自己加深对技术的理解与实际应用。
 
    比如,针对 AIDL 理解 binder 机制的实现,更进一步理解 android 中的进程间通信方式。针对 RecyclerView 或 ListView,理解复用机制以及如何定制化实现一些特殊的效果,加深我们自己的技术深度。
 
    (3)不盲目追求效果
 
    Android 开发的乐趣在于可以自己实现 app 的开发,用技术创造体验。
 
    然而正是这种乐趣可能会导致一些新手盲目注重UI实现效果,而忽略自身的技术学习。有时候技术学习与效果并不冲突,然而在自己独立开发app,学习技术的过程中,可以适当较少对 UI 效果的追求,专注于对技术的追求与学习。
 
    当然完美主义者(强迫症)会不知觉地倾斜,但也请保持平衡。
 
    二、准备工作
 
    在进行开发之前,我们要先进行足够的准备工作,这样才能事半功倍。
 
    通常而言,新手在开发第一款 app 都是来自于借鉴,站在巨人的肩膀上进行学习,那么如何选择一款自己想做、技术难度适当、干货较多的app?
 
    选择参照 app
 
  • 先选择自己想做的类型,比如:播放器,新闻类等,一些适合新手开发的 app。然后在 Github 中搜索(一定要学会使用 Github)。

  • 了解当前的流行技术框架,选择自己想学的一些框架,筛选出使用这些框架的 app。

  • 从满足以上需求的 app 中找出一些star较多的项目,因为群众的眼睛是雪亮的,这代表该项目是有可取之处的。

  • 先大致了解下项目结构,不要盲目选一些效果炫酷的实现。要根据自己的技术能力选择,初学者不要选择太过复杂的,要循序渐进,才能事半功倍。
 
    开发前奏
 
    选择好了一款或多款参照 app 后,那么就要开始全面了解这款 app。
 
  • 项目结构:了解整个项目的结构,各个功能模块,以及使用的框架。一般项目结构都会按照如下结构展开。

  • 框架使用:了解整个项目使用的框架,然后学习该框架的使用。先看相关文章,了解基础使用,然后了解原理,最后基于自己的项目进行封装,这样会方便后续快速功能实现。
 
    三、开发 APP
 
    关于具体开发,仅介绍一些通用的东西,供大家参考。
 
    项目构建 :一个优秀的 Android 应用从建项目开始 http://www.jianshu.com/p/d9e4ddd1c530,创建项目的一些规范。
 
    工具类:AndroidUtilCode https://github.com/Blankj/AndroidUtilCode,所有你想用的工具类,都可以从中抽取。
 
    基类:构建项目中基类,如 Activity,Fragment 等,可以参考网上的一些实现,但是大而全不一定好,适合自己的才是最好的。
 
    四、个人经验
 
    (1)动机
 
    作为一个 Android 新手,我也是在今年2月份才开始想学习做一款 app,增加自己各方面的能力。
 
    在刚开始,想学习一些流行框架的使用,如 Retrofit,RxJava,Glide,EventBus 以及 MVP 模式。
 
    在构思整个项目的时候,想的大而全,想实现太多的功能,而然做到最后只实现了新闻浏览以及图片浏览的功能,虽然项目不完整,但是仍然学到了不少东西。
 
    (2)过程
 
    因为实现的功能比较简单,整个项目的周期大概 20 多天左右。其实开发周期也就 10 多天,在前 10 天左右一直在学习了解各个框架的使用及原理。
 
    Read the fucking source code,这个过程虽然很枯燥,不过也是一个积累与沉淀的过程。
 
    从我的博客就可以看出我在准备这个项目时的学习历程。博客写作真的是学习的一个很好方式,可以将很多东西变成自己的,不再留于表面。
 
    RxJava学习过程
 
    手把手教你使用 RxJava 2.0(一)
 
    手把手教你使用 RxJava 2.0(二)
 
    手把手教你使用 RxJava 2.0(三)  
 
    Retrofit学习过程
 
    Retrofit配置详解及封装,让你的网络请求更简单
 
    Retrofit+RxJava网络请求异常处理  
 
    EventBus学习过程
 
    关于EventBus,从使用到解析(上)
 
    关于EventBus,从使用到解析(下)  
 
    MVP模式学习过程
 
    Android MVP 的简单介绍与使用
 
    具体技术解决过程
 
    Android 之仿哔哩哔哩客户端首页+抽屉式导航
 
    类似支付宝首页——RecycleView 多布局结构实现
 
    类似支付宝应用管理界面——RecycleView+ItemTouchHelper 实现拖拽滑动
 
    ViewPager+TabLayout+Fragment 懒加载机制完全解析  
 
    边做边写,一路下来,收获还是颇丰,小伙伴们可以在暑假试一试,很有效。
 
    (3)结果
 
    最终完成的项目在现在看来很 low了,不过确实是一个很好的开端。下面展示下具体实现的效果,纪念下我的第一款 app。
 
Android 新手如何学习开发一款 app?
 
Android 新手如何学习开发一款 app?
 
Android 新手如何学习开发一款 app?
 
责任编辑:李欢
本文为授权转载文章,任何人未经原授权方同意,不得复制、转载、摘编等任何方式进行使用,e-works不承担由此而产生的任何法律责任! 如有异议请及时告之,以便进行及时处理。联系方式:editor@e-works.net.cn tel:027-87592219/20/21。
e-works
官方微信
掌上
信息化
编辑推荐
新闻推荐
博客推荐
视频推荐