iOS开发进阶

课程简介:

 我是林永坚在澳洲互联网公司Regroup担任MobileTechleader一职。作为技术负责人,我主要负责移动端的架构与研发,同时也负责移动团队的建设和推动公司的工程化实践。在我所负责的APP中,relative是澳洲本土企业流量排名前几的APP,几乎每个在澳洲买房、卖房、租房的人都会使用它。在APPstore上,这款APP的评分也一直保持在4.7星以上,在2020年澳洲排名前20的免费APP只有8个能达到4.7星,现在看这款APP已经是一个非常成功的产品了。
但其实在几年前,我们也面临着重重困境。那是在五六年前,我刚加入Regroup公司,当时我们的APP版本发布周期长达8个月到1年,为什么会这么长?因为我们没有好的开发流程和工程化标准。举例来说,仅仅在准备发布阶段,由于没有代码管理规范,也缺乏自动化工具的支持,我们都需要专门停止手头的工作,用1-2个月的时间来准备。比如合并代码需要手工操作,要花2-4周的时间部署测试也是手动的,需要一周的时间,最后再进行回归测试又要2-3周,当时因为发布流程十分复杂,人工操作繁重,还容易出错,有的同事为了逃避麻烦,甚至还请了病假。
虽然我们花那么长时间来准备,但APP在APPstore上的评分只有2.5星,主要原因是用户体验非常不好,经常崩溃,差不多每5个中就有一个用户的APP会闪退,为什么会这样?其中一个原因就是没有统一的代码管理流程,开发者想要push什么样的风格的代码都可以。比如当时有一名开发者为了学习calldata,在一个周末期间把学习的calldata的代码直接push到了主分支,结果它的这个push操作让APP的崩溃率上涨了10%。
事后虽然我们想要补救,但因为这部分代码没有任何架构设计,花了两三年才逐步把相关代码移除完毕。另一个原因是代码没有统一而灵活的系统架构设计与开发模式。就像前面的那次事故,之所以要花两到三年才艺术干净,就是因为缺乏面向接口的编码模式,靠data的数据对象污染了整个代码库,同时又因为APP缺乏分层的架构设计,导致所有的逻辑都编写在臃肿的viewController里,单元测试覆盖率又几乎为0,可以说代码库进入了几乎没法维护的状态,很多崩溃情况无法修复,为了避免同类的事情再次发生,也为了提高效率,我们开始了漫长而十分崎岖的工程化实践之路。最终APP的崩溃率从20%以上下降到了0.01%以下,艾布斯刀的评分也从2.5星拉升到了4.7星。

课程截图:

课程目录:

[6653]开篇词iOS架构与开发工程化,让你成为10x程序员.mp4
[6654]01开发环境:如何使用Ruby工具链统一开发环境?.mp4
[6655]02依赖管理:如何使用CocoaPod统一依赖库的管理?.mp4
[6656]03配置准备:如何搭建多环境支持,为App开发作准备.mp4
[6657]04编码规范:如何使用SwiftLint统一编码规范?.mp4
[6658]05自动化准备:如何使用Fatlane管理自动化操作?.mp4
[6659]06代码管理:如何使用Git与GitHub统一代码管理流程?.mp4
[6660]07设计规范:如何统一设计规范,提高沟通效率?.mp4
[6661]08设计组件:DeignKit组件桥接设计与开发规范.mp4
[6662]09开关组件:如何使用功能开关,支持产品快速迭代.mp4
[6663]10支撑组件:如何实现隐藏菜单,快速测试与验证?.mp4
[6664]11功能组件:如何使用路由,支持多页面导航?.mp4
[6665]12功能组件:如何设置多语言支持,为全球化做准备?.mp4
[6666]13功能组件:如何设置动态字体,提升视力辅助功能?.mp4
[6667]14功能组件:如何使用语义色,支持深色模式?.mp4
[6668]15跨平台架构:如何设计BFF架构系统?.mp4
[6669]16架构模式:为什么要选择MVVM模式?.mp4
[6670]17响应式编程:如何保证程序状态自动更新?.mp4
[6672]18网络层架构:如何设计网络访问与JSON数据解析?.mp4
[6674]19数据层架构:如何使用仓库模式设计数据存储层?.mp4
[6675]20ViewModel架构:如何准备UI层的数据?.mp4
[6676]21UI层架构:如何开发统一并且灵活的UI?.mp4
[6677]22功能实战:如何使用现有架构添加点赞功能?.mp4
[6678]23TDD与单元测试:如何保证功能模块的高质量?.mp4
[6679]24解决打包痛点:如何统一管理Certificate和Profile?.mp4
[6680]25自动化构建:解决大量重复性人力工作神器.mp4
[6681]26持续集成:如何实现无需人手的快速交付?.mp4
[6682]27统计分析:如何架构灵活的统计分析服务,助力产品增长?.mp4
[6683]28崩溃报告:如何借助崩溃报告解决线上的Bug?.mp4
[6684]29远程开关:如何远程遥控上线App的产品行为?.mp4
[6685]30AB测试:如何用AB测试协助产品抉择?.mp4
[6686]31AppIcon制作:如何使用Figma快速制作AppIcon?.mp4
[6687]32UI替换:如何使用SwiftUI快速替换原有UI?.mp4
[6688]结束语眼见千遍,不如手过一遍.mp4

下载权限

查看
  • 免费下载
    评论并刷新后下载
    登录后下载

查看演示

  • {{attr.name}}:
您当前的等级为
登录后免费下载登录 小黑屋反思中,不准下载! 评论后刷新页面下载评论 支付以后下载 请先登录 您今天的下载次数(次)用完了,请明天再来 支付积分以后下载立即支付 支付以后下载立即支付 您当前的用户组不允许下载升级会员
您已获得下载权限 您可以每天下载资源次,今日剩余
编程与开发

21讲吃透实时流计算

2022-3-16 10:21:51

编程与开发

前端性能优化方法与实战

2022-3-16 16:46:32

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
有新私信 私信列表
搜索