如何更好的去开发一款APP(新)

一般做项目分为两种,项目型项目和产品型项目。
项目型项目和产品型的本质区别是,一个以完成项目(Deadline、实现)为目标,一个以做好产品(产品形态,成熟度,灵活性,扩展性等)为目标。
我们主要是谈产品型项目。

一、重中之重的老生常谈

1. 基础很重要,要学会打基础。

切忌眼高手低。
语言特性,网络知识,操作系统,工具…
越是基础的东西越要会,如果不会,就是问题,就越容易出问题。

2. 打开视野,不择手段的去学习。

不要依赖于公司和身边的人教你,就算他能教你,教你的也永远只是小部分,主要还是看自己。
关注资讯(一览),保持视野。
系统课程或者专题学习,比如kindle电子书,慕课网,极客学院等。
主动分享。

3. 勤于动手。

做往往比看要重要的多。
能力的提高比知识的积累要重要的多。

4. 精益求精的意识。

有问题及时修改,或者记录并稍后修改,不要放过改进的机会。
养成好的习惯。

5. 接受批评。

把他人的批评转化为动力。
接受别人的指责,这往往是一个好的契机。
但不要抓着所谓的“理论”不放。

二、快速提高

最重要的是,沟通,去和对应的专业人员沟通。
但是需要注意的是,沟通要建立在理解的基础上。

第一部分,界面和交互。

  1. 留白
  2. 对齐
  3. 对称
  4. 一致(颜色,间距,大小等)
  5. 反馈
  6. 动画
  7. 布局
    灵活性(常规布局,支持滚动)
  8. 空设计

多观察细节。
多参考其他APP,多总结规律。
多做一些自己的APP,提升审美设计。

第二部分,解决方案的积累和升华。

首先我们要有解决方案,其次我们要不断的挖掘现有的解决方案,最后我们可能要优化或者改进解决方案,取最优解。
一个项目的技术开发周期是否delay往往不是真的因为工作量,这只是表象,背后的原因一般是,技术卡壳。优化的解决方案能够有效的减少卡壳。
好的解决方案也能最大化的应对需求变更。

  1. 基础架构
    rxjava,retrofit,mvp
    base类
  2. 网络请求框架
    okhttp
  3. Json解析
    gson
  4. 图片加载框架
    glide
    云存储
    图片类型
  5. 缓存模块
  6. ORM框架
  7. 调试模块
    查看全局变量
    API测试
  8. 统计,异常模块
    集成的代价
    哪家的服务更好
  9. 内存泄露检测
  10. 卡顿检测
  11. 下拉刷新
  12. 权限控制
  13. APP瘦身
  14. 组件间通讯
    EventBus,RxBus等
  15. 多渠道打包
  16. 应用内测分发
  17. 支付模块
    支付宝
    微信
    第三方聚合支付
  18. 第三方登陆
    QQ登录
    微信登录
    微博登录
  19. 推送
  20. 分享
  21. 录音
    格式
  22. 持续集成
  23. 更多
    视频、聊天

解决方案一定要沉淀并产出!!

第三部分,良性循环(越做越轻松)。

  1. 攻克难题。
    不要遗留问题,干掉历史包袱。
    不容易做到,但是一定要尽力去做,不可将就不管,甚至自暴自弃。
  2. 找问题。
    抱着做产品的心态去找问题。
    觉得别扭的地方多对比其他参考竞品,找出问题。
  3. 持续优化。
    非常重要,可直接影响到产品的品质。
    持续优化能够化被动为主动,大大减轻后期开发的压力。

第四部分,其他。

  1. 工作量评估
    工作量的评估,从来不是评估实现的工作量,而是上线的工作量。仅仅是实现,会漏掉很多东西。实现一个demo和需求的完整实现有一定的距离,一定要把待完善的东西记下来(todo或者写在备忘录里)。
  2. 任务分配
    互帮互助。
    任务分配只是更好的配合工作,不代表不是我的我就不看。
    相互的看看彼此任务,交换难题,互相帮助往往效果特别好。
  3. 自我制定计划
    有问题就记录。
    经常列举要做的事情。
  4. 好的习惯。
    总结一些好的习惯。
  • 多看其他APP。
  • 提交前diff检查一下。
  • 发布后一定要自测。
  • 每天记录待完善点(todo list)。
  • 尽量分析RootCause。
  • 多总结解决方案,一定要产出。
  • 建立基础知识体系。
  • 关注技术资讯。
  • 不要有侥幸心理。