闲暇之余,开发了一款休闲类app,虽然用户量不多,但确实花了不少心血在这上面。然而,开发出来的结果,与之前想好的架构,还是有不少区别。

下面,记录下这款app架构的演变:

最初,只想写个app,能与机器人进行聊天。架构随意搭(或者说没有架构),快速开发出来就好:

最初(无架构)版本

很简单,按照代码功能,分为各种包。

然后,需要增加各种功能模块,如:新闻,小游戏,历史上的今天,社区,手电筒,找手机等。然后就想着这些模块是否作为可拆卸模块,需要的简单插入,不需要也方便移除:

第一次改版

本次架构修改主要包括下面几点:

1、抽出公共部分,如:OSUtil。

2、各种基类,处理了统计、webview配置等。

3、将需要增加的功能模块化,完全无依赖

随着时间的推移,还是感觉越来越乱,再加上之前的UI设计有点过时的感觉,于是重构了一版:

第二次改版

相对于上一次的架构,改动不大:

1、确定基础模块(机器人聊天)

2、增加app配置(因为考虑开发其他app,将所有配置文件独立有利于后续app套用现有框架)

3、其他细节更新

ps:本来想写写性能方面的东西,写到一半,临时想把自己开发的【小萌伴】原本想要的架构记录下,希望能不断改进。通过【小萌伴】学习了不少,如:手电筒,找手机(短信,保活,语音等)、游戏(原生游戏4款,部分h5游戏),社区(UI,抽象,数据同步,网络优化等)还有MD设计及开发,运行时权限等。把这些记录起来,希望在架构上也能有所进步,以更宽阔的眼界去看待移动端产品。

转自我的简书

最新文章

  1. 在Eclipse中对包进行增删改查
  2. Unable to locate secure storage module异常的解决方案
  3. 《ASP.NET1200例》实现投票的用户控件
  4. svn配置
  5. ajaxFileUpload - Post file and data together
  6. Spring In Action 第4版笔记-第一章-001架构
  7. JS中字符串倒序的两种方法
  8. ref - 按引用传递参数
  9. javascript时间函数
  10. postgreSQL-如何查数据库表、字段以及字段类型、注释等信息?
  11. Win7 Cygwin环境试验Nutch tutorial遇到的异常解决方法
  12. zzuli 2131 Can Win dinic+链式前向星(难点:抽象出网络模型+建边)
  13. python写一个邮箱伪造脚本
  14. Dynamics CRM2013 附件禁用方案
  15. php的ts和nts安装包
  16. django项目的部署
  17. Java 10新特性
  18. Linux 获取设备树源文件(DTS)里描述的资源【转】
  19. npm的源改成淘宝镜像
  20. GoldenGate 12.3 MA架构介绍系列(2) - 数据同步测试

热门文章

  1. mysql设置datetime默认值为now
  2. react 项目实战(八)图书管理与自动完成
  3. javascript闭包具体解释
  4. java web中的session属性范围和request属性范围
  5. 【CSU 1079】树上的查询
  6. ImportError: No module named flask.ext.login
  7. SPOJ OTOCI 动态树 LCT
  8. gitlab smtp设置
  9. ubuntu 14.04中: 像ubuntu16.04 一样可以在文件夹内打开此路径下的shell
  10. 15_传智播客iOS视频教程_OC语言完全兼容C语言