客户端的工作不仅仅只是看起来那么简单

  • 数据的角度讲
    • 网络请求,数据解析JSON
    • 网络数据model 与界面数据item之间的转化:
      • model之间的继承关系
      • 界面上的元素经常回合model的数据不一致,需要进行转化,有时候还会增加很多本地的逻辑上去,所以就会增加很多的额外的数据上去,需要我们完成从model到item的转化
  • 界面的角度讲
    • web前端
      • html/css 实现了内容与位置的分离,对于客户端的开发同样也需要,考虑各个控件不同的大小及位置的数据处理
      • js 控制逻辑 对于客户端也要使用Controller,实现不同的界面展示的跳转逻辑
    • 抽象继承,复用各种不同的控件
    • 适配不同屏幕大小,适配不同手机系统的版本
  • 架构设计的角度
    • 项目架构分层Base-Common,Base-UIKit,Base-Service, 业务1, 业务2, 业务3, 业务4, 每一层内部又分为 model, item, view, Controller
    • 设计模式架构,解耦合,模块划分复用,静态库引用,缩短编译时间
    • git 多人协作, Cocoapods 依赖管理
  • 底层类Unix操作系统的把握
    • 运行循环,事件驱动
    • 界面如何响应事件
    • 图形绘制原理,为何形成界面卡顿,如何减少界面卡顿
    • 依赖的类unix是如何分层的
  • 性能优化及用户体验的提高
    • 内存管理优化,避免峰值,减少内存,避免被系统杀掉app
    • 界面流畅度,CPU占用率 保持界面流畅度
    • 流量的控制角度 如何减少用户的流量
    • 数据缓存
    • 电池电量的优化
  • 业务技术通用的技能
    • 消息通知的推送,广告的推送等等
    • 页面跳转的url路由配置,点击跳转到某一个页面的url, 同样也要满足业务的要求按照流程进行跳转
    • 页面动态化展示的方案:如何实现一份代码在多类终端都可以实现类似本地化实现的展示效果
    • 版本升级和降级的方案控制,如何对已经发布的版本打补丁
  • 安全角度
    • 如何免登陆密码显示等等
    • 对于机密信息如何处理
    • 对于机密的业务逻辑如何避免别人反编译破解
原文地址:https://www.cnblogs.com/peaceWang/p/5812977.html