浅谈App开发

整体架构和项目分层

  • app业务层
    首页、活动、社区、个人中心等
  • app公共业务层(组件化开发)
    支付组件、分享组件、城市选择、业务工具类等
  • 底层SDK库,多个app共用
    网络通信、文件存储、图片加载、公共工具类、CrashHandler、JSBridge、LBS等
  • Third Libs

通信通道

  • 网络现状
    1. 网络连接不稳定,尤其在弱网情况
    2. 多运营商
    3. 延时高
    4. 地区差异大
    5. Dns劫持严重
  • 解决方案
    1. 域名合并
    2. 减少多次DNS解析
    3. 减少TCP连接数量(HTTP Keep-Alive)
    4. 增强错误的一致性
    5. 多通道长连接(WNS长连,原生短连,UDP)

WebView容器

  • UI封装
  • JSBridge桥接
    Android和iOS的统一实现
    自制bridge.js.txt文件向JS中注入对象

Crash监控

我们需要一个全局的异常捕获器,当出现一个我们没有发现的异常时,捕获这个异常,并且将异常信息保存下来,上传到服务器提供给开发人员来分析出现异常的具体原因。

  • 异常文件缓存策略
  • 防频策略
  • 上报服务器策略

Crash报表统计

Hotfix

iOS
–WAX
–NU
–JSPatch
Android
–andfix方法替换
灰度发布、后台上线发布回滚配合

Mock技术

  • 对于客户端开发人员(Android/iOS/Web)
    直观看到网络请求的发送内容和响应
    更早的按照服务器接口联调
    更灵活的Mock服务器返回的数据,方便发现问题

  • 对于测试人员
    直观查看客户端的请求和服务器的返回数据
    方便通过Mock服务器返回数据来进行客户端测试
    方便模拟请求来测试服务器接口

  • 对于服务端开发人员
    方便在开发的过程中自测自己开发的接口

原理

结果展示

功能展示

高效持续集成&打包

Gitlab+Jenkins+编译打包脚本文件(Fastlane/Shell脚本)
Gradlew&Cocoapods
测试环境:蒲公英平台(二维码扫描安装)
AppStore和Android市场:直接脚本上传市场
发布版本时注意ipa和apk的备份,以便之后的版本回滚测试

iOS上线流程

运营类配置流程

需求流程

用户行为数据上报(友盟统计、自己搭建打点服务器)

老板要DAU数据?
要路径分析&漏洞分析做产品决策?
要机型&版本占比确定技术方案?
……

上报字段规整
锚点信息
用户操作
版本渠道信息
设备信息
用户信息
业务信息

仓库管理

iOS
–Cocoapods仓库管理
Android
–Maven仓库管理

Cocoapods私库
http://guides.cocoapods.org/making/private-cocoapods.html

Maven私库
maven私库:http://www.devtf.cn/?p=1079
android的deploy解决方案:https://github.com/luckybilly/OKDALM
androidstudio的maven私服使用:http://blog.csdn.net/cdecde111/article/details/51777427

git代码管理

Teamwork flow:

-develop(开发分支,请从开发分支pull源代码并branch自已的分支进行开发)

代码合并流程

文档管理

Debug面板

方便QA测试和问题的跟踪
环境切换
内存和cpu消耗
清除本地数据
模拟网络延迟
模拟50%网络错误
ipa/apk大小统计
重置进程
模拟crash
模拟位置
保存一键登录

小结

以上是我对App开发的一点小心得,如果发现有任何问题,或者有什么想法,随时联系我,大家一起交流,共同进步。
我的邮箱 344185723@qq.com

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值