iOS基础-专栏总目录(持续更新)

《iOS基础》专栏全面覆盖iOS上架、开发基础知识、渲染、网络数据存储、需求案例、内存管理、质量监控等内容。从上架攻略到性能优化,深入探讨动画、文本图像处理、数据库操作,提供解决iOS被拒方案,涵盖注册登录模块和地理信息处理。同时,文章还讨论了测试、安全、性能监控和效率提升策略。
摘要由CSDN通过智能技术生成

引言

欢迎大家来到#公众号:iOS逆向的《iOS基础》专栏

本文列出学习大纲,同时也可作为大家学习《iOS基础》专栏的索引。
文中的蓝字都是传送门,点击进入即可

本专栏侧重于 iOS 开发的基础知识和技能以及产品需求案例:

  • 基础内容:app上架指南、语言、框架、内存、网络、存储、渲染、线程
  • 产品需求案例:

1、普通的数据显示案例,即网络拉数据->存储->读取->展示;

2、代理商CRM app、商户收银app

3、计划涉及的案例:浏览器内核,文字排版引擎,音视频和图像处理引擎,图标绘制引擎

  • 质量

1、测试/调试技巧(测试保证质量是一个很重要的环节):黑盒测试、单元测试、自动化测试

2、性能优化:网络/存储/内存/渲染/算法优化

3、监控体系:卡顿监控、数据库监控、流量消耗监控、内存消耗监控、耗时监控(问题响应)

4、代码管理:代码规范/代码规范检测工具、code review 机制(互相监督,减少脏乱差代码)

5、应用安全:敏感信息的脱敏规范、网络传输的安全、敏感信息安全(用户名/密码)、代码混淆【iOS应用逆向与安全模块请移步到《iOS逆向》专栏学习】

I、 上架指南

1.1 iOS上架干货汇总

1.2 上架相关操作技巧

【AppStore 上架相关技巧】1、由于AppStore缓存原因,导致已上架iOS app(可供销售)在AppStore上搜不到的解决方案2、不更新版本的情况下删除App Store非主语言的方法(应用场景:马甲包)

1.3 iOS被拒绝的解决方案汇总

iOS被拒绝的解决方案汇总:1、因蓝牙功能隐蔽而导致上架2、iOS审核1.1.6被拒(安全-令人反感的内容)

1.4 系统框架(API)适配

II、 开发基础知识

涉及框架:StoreKit / MessageUI / AVFoundation/Foundation/UIKit

III、渲染

3.1 动画

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

3.2 文字/图像处理

  • 渲染机制

图层混合,渲染时机,离屏渲染

3.2.1 Quartz2D使用指南

IV、 网络与数据存储

app从拉取数据到显示的大致流程:

从网络拉取数据
存储到本地文件系统
再从本地取出来放进内存,最后渲染出来。

从流程就可以看出本模块讲解的内容大纲如下:

  • 数据存储
  • https 的原理
  • dns 劫持(重试机制)
  • 优化弱网络下的连接(离线机制)
  • 客户端跟后台的通信协议

数据结构json /protobuf、数据的增量更新

  • 线程

这里所有的处理都在操作系统的进程和线程中执行,因此了解线程相关知识是必不可少的

4.1 数据存储

  • 主键索引事务等数据库基本概念
  • 存储机制/索引的实现/sqlite的七层结构
  • 单文件存储

XML存文件;对象序列化成二进制存储

4.2 数据搜索

4.3 http/https/dns(数据提交)

1.一定要使用POST请求
2.设置请求头 [request setValue:@“application/json” forHTTPHeaderField:@“Content-Type”];
3.设置JSON数据为请求体

4.4 get 和PostBOOL参数进行处理

【AFN使用NSNumber 传BOOL值参数时,需要区分get 和Post进行处理】get请求对应的0和1,post对应true/false:若服务端Bool 参数没有同时支持这两种格式,就需要处理

————————————————
版权声明:本文为CSDN博主「#公众号:iOS逆向」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/z929118967/article/details/105138207

V、需求案例: 注册/登陆基础模块

5.1 支付产品的基础知识

5.2 登陆模块

5.3 注册模块

5.3.1 《用户协议及隐私政策》弹框

在这里插入图片描述

5.4 处理用户输入内容

5.5 地理信息处理

VI、 内存

  • ARC 机制

OC 的引用计数 、自动释放池、Java语言的垃圾回收机制

  • 内存管理

避免内存泄露

  • 缓存管理

避免缓存太多导致OOM、缓存命中率太低性能低下
Out Of Memory:“内存用完了”。 它来源于java.lang.OutOfMemoryError。

  • 线程和进程

iOS 开发只在做 Extension 时才需要考虑到进程,
主线程子线程,多线程并发锁竞争,死锁,GCD,Runloop

6.1 进程

6.1.1 Extension的应用例子:语言播报

  • NotificationServiceExtension

使用 NotificationServiceExtension实现VoiceBroadcast
【app处于后台/被杀死的状态仍可进行语言播报】
iOS12.1以上在后台或者被杀死无法语音播报的解决方案

VII、质量(code review 、性能)

7.1 测试

7.1.1 技巧

7.1.2 AB 测试流量切换方案

7.1.3 iOS测试指南

iOS测试指南之 【保存接口返回的数据为json,以便作为测试数据】

7.2 安全

【iOS应用逆向与安全模块请移步到《iOS逆向》专栏学习】

【敏感信息的脱敏规范】(数据类型包括日志相关、账户订单、个人信息、账户认证、持卡数据)

7.3 性能优化

1、 检测各方面的数据,量化运行性能,
2、从检测数据寻找性能瓶颈
3、找解决方案并用监测的数据验证优化效果

7.4 监控系统

【电池的状态处理:电池状态获取及监测、电池电量获取及监测、低电量模式切换监测】

VIII、 效率

效率教程模块放在了 《iOS进阶》专栏

see also

  • 客户端开发

主要是指iOS/Android,也包括macOS/Windows/Linux这些平台的软件开发

前端开发

使用vue/react这些来源于浏览器技术

  • Native开发

是指“非浏览器技术”开发,例如不使用JavaScript开发。
通常Native开发,使用的语言主要是编译型,而不是解释型。
例如iOS/macOS使用Objective C和Swift来开发,Android使用Java或Kotlin来开发。Windows使用C#来开发,Linux使用C++来开发。(C++所有平台都能开发)。
Flutter使用Dart

技术分布

  • 完全小程序实现

这些应用一般是业务为主,连接线下的应用

  • ReactNative或者Flutter实现为主,少量Native代码为辅助。

中小公司开发的业务类型为主的应用,更多是ToB产品。为了节省开发人力,大部分功能使用跨端技术开发。

  • 自定义DSL框架。

用xml或者json描述界面,Native代码来根据xml或json生成对应的界面。
这些应用多数是大型的应用,多数以Feed流为主,DSL框架用来实现某一个“内容为主”的功能。
例如美团首页、微博首页(刷微博时经常看到的广告)、支付宝首页。
这些Feed流中的内容十分丰富,公司内部也会开发专有的运营平台,能很方便的配置下发不同的内容。
美团的MTFlexbox发布过文章,但不开源。阿里的Tangram(开源)。

  • 更高级的DSL框架。

例如滴滴的变色龙 https://github.com/didi/chameleon ,
或者最近阿里开源的北海 https://github.com/openkraken/kraken 。这些框架可以使用前端技术,开发出适应多平台的代码。

  • Native为主,其他技术为辅助。

核心功能对性能有更高的要求,必须使用Native技术来开发。
例如微信、淘宝、抖音
这些应用的核心功能使用Native开发,跨端技术、小程序、自定义DSL框架都在其中某个场景中发挥各自的优势。
此外,一些小而美的应用多数具有某些平台的创新特性,很多需要使用到平台独有的能力。

腾讯云+社区专栏:https://cloud.tencent.com/developer/column/90774

更多iOS技术文章,请关注 “iOS逆向” 公众号,一起学习,一起进步。

在这里插入图片描述

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 、4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合;、下载 4使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合;、 4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.m或d论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 、1资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。、资源 5来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。、资 5源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

iOS逆向

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值