一. 前言
从事iOS App开放也好几年了,一直都想总结一些自己的心得体会,记录自己的点点滴滴。每个项目或者每个开发周期,都像一个循环,从开始到结束,中间修修改改,其实我们可最做的更好。其实有些东西都是不断的在重复,而不是不断在提高,对于重复的东西做的更快更好,对于有挑战的东西更多的探索。
组件化 模块化 路由 可配置
二.业务
- 用户
- 登录页面
- 注册页面
- 我的页面
- 个人信息页面
- 设置页面
- 关于页面
- 重置密码页面
- 修改密码页面
- 产品
- 房产-买房和租房
- 金融-股票、基、保险和理财产品
- 猫眼-电影票、演出
- 其他
- 启动页
- 引导页
- 广告页
三.UI框架
- 标签式 Tab Menu
- 跳板式 Springboard
- 列表式 List Menu
- 旋转木马 Carousel
- 抽屉式 Drawer
- 点聚式 Plus
- 陈列馆式 Gallery
- 瀑布式 Waterfall
三.App架构
- View层的组织和调用方案
- 模块化、路由
- 组件化
- TableView优化
- 网络层设计方案
- 动态部署方案
- 本地持久化方案
四. 功能
不同类型的App,产品的的重心不一样,相应的功能有不同的重点,挖的深度不一样。就是想把这些东西模块化,记录下踩过的坑。从产品的角度观察一个App。
1.信息展示架构
分类 + 筛选 + 搜索 + 列表 + 详情。这是很多App最核心,也是最基本的流程。信息展示的信息架构,怎么让用户高效、简单地检索到自己想要的信息,是很重要的事情。以网易严选、猫眼电影、豆瓣为例。
2.基于LBS的地图定位的功能。
定位功能是把App提供的服务和显示的世界联系起来的一种方式,比如地图找房,附近的餐馆,都是有现实的应用场景。iOS当中定位服务和地图显示服务是分别分装在两个framework当中,分别是CoreLocation和MapKit。
3.支付功能
现在很多功能都有支付场景,主流的支付方式主要有微信支付和支付宝支付两种方式。使用方法也很简单,下载SDK,按照文档去集成就可以了。详情可以参看各自的文档,AlIPay和WXPay。
4.社会化分享
现在移动互联网的社交属性很常见。把一些评论和图片分享到微信,QQ和微博的等主要社交平台是很常见的功能。这个比较麻烦的是要到各大平台去注册账号,然后集成到App当中,略为繁琐。
5.IM功能
所谓IM就是即时通讯,在我们的应用内开通用户间的聊天功能。我们公司用的是环信的SDK,页面看起来很简单,开发起来还是挺复杂的,细节很多。详细的可以看他们公司的文档。
6.热修复
所谓热修复就是动态的更改代码,就是增量更新。因为iOS App上线有很长的审核周期,当发现App有很严重的缺陷时只能重新发布新的版本。这时候用户只能忍受这个bug,但是热修复可以通过更改线上的代码来达到修复bug的目的。显示使用是JSPatch,能实现无痛更新。