点此进入:[干货] 十天 教你从创意到上线APP
制作一个APP之前你要准备哪些东西呢?这对于我们开发者来说往往是一个头疼的问题,然而对于项目经理、产品经理而言,这个问题则是再简单不过的。因为他们知道,一个应用在诞生的前期探索阶段,需要做的准备工作,包括这两个主要的方面:第一个方面就是竞品分析,第二个方面是用户研究。进行竞品分析和用户研究的主要目的是,了解app本身的优势和劣势,了解针对的目标人群,并为整个app的研发制定一个标杆,在设计app的后续阶段不会偏离这个标杆路线。
虽然在开发这个app的时候,我并没有做足够多的前期探索,但是一些思路上的准备还是有的,并且可以预想的是,这个app的需求量会是很大的。人们都喜欢收藏优质的文章、站点等,又苦恼于杂乱的文章、教程网站等鱼目混杂滥竽充数,所以做一个“爱阅”app的想法就这样应运而生。下面我给大家简单介绍一下我的前期准备思路,希望对大家也能起到一点帮助。
一、需求列表与交互设计
(1)需求列表
这里所说的需求就是我们要实现的目标,在正式开始编程之前,我们必须要明确一下我们的需求列表,以便在后续的开发过程中能够时有所参照:
- 该产品主要展示的是优秀的站点、教程、文章等,需要做出明确的分类并划分为三个级别。
比如:一级类别为生活方式、职业发展、办公效率、产品和设计、编程开发、市场营销;而一级类别里面的生活方式又包括常用频道、投资理财、运动健康等;二级类别的常用频道又包括:新闻资讯、影视音乐、出行天气等。以此类推,我们要基于此进行数据结构的设计; - APP左侧主菜单栏的订阅管理内进行第一级别分类的展示。
- APP右侧副菜单栏通过订阅管理器进行第二级别分类的展示。
- APP主页要进行第三级别栏目的展示,这也是最终内容呈现的主要区域。
- “爱阅”主菜单中分为:个人收藏、订阅管理、系统设置、关于,这四个主菜单分别对应着四个主要的功能:
- 个人收藏:这里主要进行用户阅读、浏览过程中自主收藏的文章站点等,方便用户后期查阅;
- 订阅管理:这里主要进行用户订阅的一级分类的管理和选择;
- 系统设置:这里进行常用设置,比如:更改主题、打赏升级等;
- 关于:这里主要进行应用的相关介绍以及用户反馈;
- “爱阅”的副菜单中分为上下两栏,上面为用户订阅的标签展示,下面为扩展订阅的标签的标签展示;
到此为止,我们的需求列表就罗列完毕了,那么我们以后的开发过程当中,就会按照这个基本的需求列表去进行开发。那么同样也意味着之后的文章当中,我也会按照这样的组织结构去介绍每一个模块的开发过程,以及对相应的知识点进行扩展讲解。下面我们说一说交互设计。
(2)交互设计
像是被施了魔法,我们每天都和手机连在一起,玩弄着里面千式百样的app,有时候我们兴奋的像一个小孩子,有时候又被弄得哭笑不得。为什么我们会有这样的情绪呢?因为每个app中都有关注人们使用情绪和体验的魔法棒,这个魔法棒被称作:交互设计。
那么究竟什么是交互设计呢?交互设计简单来说即是APP操作界面与用户的信息交互方式的设计,良好的交互设计可以极大的提升用户体验。在一个公司正式的开发当中,这一部分工作通常由交互设计师来设计完成。由于“爱阅”这个产品完全是我一人来实现业务功能和设计制作,所以对于前期的UI设计、交互设计等只能尽量从简,然后将更多的精力放在后期的业务功能实现上,于是我选择了谷歌公司的材料设计。但是这里同样给出我的设计思路,也希望对大家能有所启发和帮助:
- 由于“爱阅”属于搜索阅读类APP,所以主界面与用户的交互性应该是极强且灵活的,比如我们可以采用点击、滑动等方式进行类别的快速切换和浏览;
- 主菜单栏的订阅管理除了展示和选择的属性还应具有扩展性,这就为后期的类型扩展提供了便利;
- 副菜单栏通过订阅管理器有默认的点选功能,长按进入编辑模式,用户可以对喜欢的栏目进行排序和筛选;
- 搜索的功能设置在主页右上角,这样方便用户随时搜索的需求;
- 布局管理的功能设置在主页右上角,方便用户根据具体的场景随时更改为自己喜欢的布局风格;
- 关于页面中的用户反馈按钮默认折叠,这样用户能优先看到“爱阅”最新的介绍,以便提出更有针对性的意见;
那么到此为止,我们的交互设计框架至此就设计完成了。今后的开发当中,我们就按照这个框架去设计我们“爱阅”app的交互模式。当然,这里面可以根据实际情况做出些许的偏差,但从整体上来讲,要符合以上这些设计原则,这样才能够让用户在使用的过程当中,更多的感觉到的是顺手,而不是别扭。接下来,我为大家介绍在整个开发过程当中用到的一些工具。
二、工具准备
(1)产品原型制作工具
Sketch:一款矢量绘图应用,而矢量绘图无疑是目前进行网页、图标以及界面设计的最好方式。
Dribbble:一个面向创作家、艺术工作者、设计师等创意类作品的人群,提供作品在线服务,供网友在线查看已经完成的作品或者正在创作的作品的交流网站。
Calltoidea:收集优秀产品原型和UI组件元素设计的站点。
(2)UI设计
Zeplin:一款有质量的设计协作软件,目前仅支持 Sketch 设计稿。
Sketch:一款素描绘画类的软件。
dribbble:一个面向创作家、艺术工作者、设计师等创意类作品的人群,提供作品在线服务。
文悦科技:专注于中文计算机字体设计与研发。
UpLabs:一个汇集了网站前端作品设计、iOS UI设计的资源站点。
UI中国:打造中国最专业的 UI 设计交流平台。
站酷ZCOOL:中国人气设计师互动平台。
(3)颜色搭配及图标制作
Material icons:材料设计的素材网站。
ColorHunt:一个致力于帮助产品设计师们更好的选择颜色搭配组合的站点。
Icon在线制作:轻松制作ico图标,在线提供ico图标转换工具。
优设:优秀网页设计联盟是有着良好职业交流氛围的网页设计行业联盟。
(4)移动应用分发
Fir.im:发布一款APP,你会用到。
豌豆荚:这个还用多说么。
play store:想要把应用发布到谷歌应用商店吗?来这里!
(5)Android框架
OkHttp + Retrofit + RxJava + RxAndroid + RxLifecycle:稳定的网络架构。
Butterknife:一款依赖注入框架,提供View绑定和事件绑定功能,极大提高编码效率。
Fabric:监控应用的崩溃情况和用户增长。
Stetho:在Chrome里监听http请求,查看本地Database内容。
DBFlow:基于Sqlite的Orm工具。
(6)Server框架
Python + Flask:快速为移动应用搭建稳定安全的后台服务。
Jenkins:持续集成工具,可以自动将GitHub代码部署到服务器上。
Rollbar / Sentry / Slack:监控server运行环境。
Sequel Pro:简洁的数据库管理工具。
Redis:高速键值对存储查询服务。
三、环境搭建
对于初学者来说,这里给出快速入门的系列教程,当然包括环境搭建、常用工具的使用等内容:
1、从零快速构建APP系列目录导图
1.1 Android历史与版本进化
1.2 Android的系统框架
1.3 Android工程师的角色方向与定位
2.1 Android Studio和Eclipse的对比与选择
2.2 Ubuntu下安装Android Studio
3.1 用Android Studio编写第一个应用程序Hello World
3.2 Android Studio常用功能与快捷键
3.3 Android Studio中的LogCat及其相关设置
4.1 Android Studio中的AndroidManifest.xml文件分析
4.2 Android Studio工程目录结构分析
4.3 初识Android Studio中的Gradle
5.1 常用工具之ADB介绍与快速入门
5.2 常用工具之Git版本控制介绍与快速入门
5.3 常用工具之DDMS介绍与快速入门
5.4 常用工具之HierarchyView介绍与快速入门
6.1 应用国际化与代码混淆
6.2 APP的签名与打包
Tips1 让日志如你所想
Tips2 好好调教你的程序(断点调试)
Tips3 编写测试用例
2、UI编程系列目录导图
三分钟开启第一个 Kotlin 工程
1.1 View与ViewGroup
1.2 快速掌握 Android 中的六大布局
1.3 Android中的几种UI排布方法介绍
一篇文章带你全方位熟悉Kotlin语法
2.1 文本类控件的使用
2.2 按钮类控件的使用
2.3 图片类控件的使用
2.4 进度显示类控件的使用
2.5 Dialog 对话框类控件的使用
Kotlin 扩展函数详解与应用
3.1.1 网页控件 WebView 的常用方法大全
3.1.2 WebView和JavaScrip交互大全及Android4.4以后的新特性
3.1.3 WebView 文件下载、缓存、内存泄露
掌握 Anko,看这一篇就够了!
用 Kotlin 开启我们的 Activity
3.2.1 一篇文章完全掌握 RecycleView 的六大用法
3.2.2 完全掌握在 Kotlin 中实现 RecyclerView
4.1 自定义控件的原理、流程与实现
4.2 自定义控件 之 自定义属性与引入布局
3、四大组件系列目录导图
用 Kotlin 开启我们的 Activity
1.1 Activity 详解及其生命周期
1.2 Activity 的基本用法大全
Kotlin 中的泛型
2.1 借助 Intent 让 Activity 拿着数据瞬间移动
2.2 Activity的启动模式大全
2.3 Activity的使用技巧汇总
2.4 一篇文章囊括所有系统常见的Activity
3.1 Fragment理论知识及其生命周期,看这一片就够了
3.2 Fragment的用法与通信大全
4.1 BroadcastReceiver 使用方法大全
4.2 常用的系统广播汇总
5.1 Service使用大全
5.2 绑定服务的三种方式:扩展 Binder 类、使用 Messenger、使用 AIDL
5.3 ContentProvider使用全解
4、数据网络和线程目录导图
1.1 持久化技术概述及文件存储的用法大全
1.2 SharedPreference 的使用技巧
2.1 SQLite数据库的创建和升级
2.2 SQLite数据库的增删改查和事务
3.1 使用 HTTP 访问网络的两种方式详解
3.2 使用 URL 类请求和提交数据详解
3.3 基于 Socket 协议的网络通信详解
4.1 解析 XML 数据的三种方式详解
4.2 JSONObject 和 GSON 解析 JSON 数据详解
5.0 Android 中多线程的用法大全
联系方式:
:WillFlow
GitHub:爱阅