十天 教你从创意到上线APP

首先给大家展示下效果图:

点此下载安装包:爱阅.apk
此进入开源地址:GitHub_WillFlow

一、前言

1、关于“爱阅”APP

“爱阅”是一款专注于收藏优秀站点与优质教程、文章的移动端应用程序。无论你是研发人员、产品经理还是UI设计师,无论你想提高自己的职场水平、谋求职业发展还是提升生活质量,再或者说的干脆点,只要你想提升自己生命的效率和质量,那么“爱阅”绝对可以助你一臂之力。因为在这里,你可以发现相见恨晚的网站与教程;在这里,你可以找到爱不释手的工具资源;在这里,你可以遇见心有灵犀的文章与声音。

2、关于本文

该系列文章介绍了本人利用业余十几天完成的一款Android产品的全部开发流程:从创意的挖掘到产品原型与设计,从工程的架构到代码的编写,最后再到应用的开源与上架,一切的一切都在这里。读完该系列文章,想学习产品的你能知道在一个APP正式开发之前你需要做足那些准备,想深入开发的你能更好的从整体上看到整个APP的架构过程,并且能够从细节上把握热门技术的使用;总之,希望大家看完该系列文章后也能对创意、产品和开发产生自己的独道见解,然后凭栏远眺,对长亭晚,捧起键盘;任风萧萧雨漫漫路远远,在每一寸屏幕上辗转,写出自己的明天。

二、开发流程

1、创意的来源

孔子曰:“伟大的创意对于伟大的产品来说,是必须滴!”所以在正式动手之前,我们必须要有一个好的创意。那么好的创意来自哪呢?在我看来主要有这四个方面:

(1)上级安排的任务

有老板、专家直接提出的项目(常见于ToB类项目),或者是直接用户提出的明确需求。

(2)竞品启示

通过对市场趋势、潮流,以及同类相近产品的分析得到的启示,进而提出的创意。一般来说,这种类型的创意需要针对某个细分市场,或者在某些纵深方面有所突破。

(3)用户反馈

对现有产品的一种升级需求。从现有市场产品的用户的抱怨中,洞察出新的市场需求。

(4)突发奇想

突发奇想下的创意来源于我们的经验、爱好或随机的事件,类似于灵光一现的灵感。其实,这需要我们具备善于发现需求的能力。否则当机会来临的时候,你也是把握不住的。这种能力是需要培养的,却是我们传统教育中非常缺乏的,也是未来教育非常需要的。

2、发掘本就属于你的创意

在正式开始一个安卓应用之前,我们需要一个好点子来开始我们的项目。但是正如前文所述,一个好的创意本身就是可遇而不可求的,我这里尝试给大家一些线索,以此来更有效的发掘我们的创意。

  • 首先,你或你的朋友,亲戚,同学有没有经历过一些痛点,让人们在生活工作学习等方面是可以改进优化的。这时我们就需要记录这些痛点,思考这些痛点,想想他们所处的场景是否足够普遍,这是我们发掘创意的最好的源泉之一。
  • 这些痛点有哪些解决方案?要脑洞大开,和其他人进行头脑风暴,这个时候可以不要有任何束缚,尽量的在横向和纵向进行思维拓展,必要的时候可以画思维导图。
  • 试着提出可行的解决方案,可以采用跨界思维的方式,可以随便选择一个和痛点毫无关系的物件和名词,比如说:单车、风扇、交通、健康、旅行等等。然后看看他们之间能不能产生关系,再进一步来讲,延伸这些物件的属性和特点,看有没有什么收获,然后最好和其他人进行讨论。
  • 在所有的解决方案当中,想一想有没有一个方案或者方案的某一部分是可以借助APP或者你熟悉的技术来实现的。如果这一条路可行的话,那么有哪些困难事你可以解决的,哪些是解决不了的?尽量想清楚。
  • 如果上述的答案是肯定的话,那么你还需要考虑,对于这个解决方案,它是否可能产生较为普遍的价值?你是否为他感到兴奋?如果你感到兴奋,而且愿意付出相当的精力和代价,那就恭喜你了,你找到了一个比较靠谱的app的想法。

上述的方法,是从挖掘用户需求来出发的。相反,我们也可以从某个已有的技术创新点出发,去发掘这项新技术,可能创造出来的新的用户需求,从而提出我们的创意。

好了,假设你的创意已经有了,你为他感到兴奋不已,你决定摩拳擦掌想要实现它,那么我们要开始的第一步是什么呢?在技术层面的角度来讲,毫无疑问,那就是应该,规划我们产品的整体技术架构,并从细节上做好技术选型,接下来我们就来说一说。

3、Android架构

(1)两大架构模式:MVC和MVP
  • MVC简单来说就是模型(Model)、视图(View)、控制器(Controller)相互依赖相互影响的一种架构模型,优点就是相对于传统的架构模型相比,MVC模式的各个模块指责分明,Controller在一定程度上把Model和View分离开来,使得系统耦合度得以降低;而随着软件工程的不断庞大,MVC模式中的控制器却容易变得臃肿并且耦合度也不断增加,于是MVP模型诞生了。
  • MVP是从MVC发展而来的一种架构模型,自然就继承了MVC的诸多优点,并且控制器的身份演化成了Presenter,从而是的Model和View层得以完全分离,从而View层可以做的更轻,在进一步降低系统耦合度的同时提高界面响应速度和交互的敏捷性。

这两者的孰优孰略以及对比和选择,我们在接下来的Day2文章中会详细介绍。

(2)涉及到的技术细节
  • 自定义View
    可以看出,“爱阅”在右边栏中的“我的订阅”处即实现了一个较大的自定义View,我们在Day4文章中会有所介绍;
  • ViewPager、DrawerLayout、RecyclerView等常用控件的使用
    ViewPager+RecyclerView毫无疑问成了当下最火的新闻阅读类产品技术实现的组合形式,而DrawerLayout自诞生之日起就名声大噪,我们会在Day3和Day4文章当中进行详细介绍;
  • 基于greenDao的数据库构建
    greenDao是一个将对象映射到SQLite数据库中的轻量且快速的ORM解决方案。它之所以如此闻名是因为它可以使代码比较简单明了的呈现,也就是说我们能够用最少的代码做最多的事,从而更加专注与业务逻辑,它的详细介绍会在Day5进行。
  • 网络请求OkHttp3和Volley
    网上关于OkHttp3和Volley孰优孰略的争论一直喋喋不休,我们这里不争论这些,“爱阅”在开发之初即在不同场景下分别使用了OkHttp3和Volley进行了网络请求,以此发挥了更好的请求性能,优秀的网络请求尤其是在阅读类APP中尤为重要,我们会在Day6文章中进行深入的讲解;
  • 图片加载Glide
    毫无疑问的是,任何一个APP中(不只是新闻阅读类),图片加载都成为了一个必备的产品开发内容,而这又的的确确是一个充满荆棘的道路,比如最令人头疼的OOM,可谓惊险无数。所以在快速迭代的过程中,一个优秀的图片加载框架的重要程度自然不用多说,我们这里选取当下最为火热的Glide来进行图片的加载,内容会在Day7呈现给大家;
  • 邮件反馈、崩溃日志抓取、以及主题更换
    这些属于附加功能,但是对于一个走向市场的APP来说却也是必不可少的,我们将在Day7和Day8中为大家做出详细的讲解;

三、文章目录

下面是整个十天时间的文章目录结构:

大叨安卓全系列教程66篇目录导图
Day1 制作一个APP之前你要准备的东西都在这了
Day2 当前最火爆的APP架构及其实现
Day3(上) 基于ViewPager和TabLayout的主页设计
Day3(下) 基于ViewPager和TabLayout的主页设计
Day4 基于DrawerLayout的菜单栏设计
Day5 基于greenDao的List存储与查询方法大全
Day6 快速学习OkHttp3的九大用法
Day7 Glide的三级数据结构缓存设计
Day8 一行代码给我们的APP增添多彩主题
Day9 APP中抓取崩溃日志与邮件通知
Day10 总结:产品开发必备的63个网站和工具

联系方式:

简书:WillFlow
GitHub:爱阅

推荐阅读更多精彩内容