DEVELOPMENT NOTES · 24 篇

数据与网络

从本地数据到远端消息,这些笔记记录了持久化、请求封装、推送和即时通讯的实现思路。阅读时先分清数据属于哪一层,再看每段代码负责什么。

怎么读这一组

  1. 本地数据可以从 Core Data、归档与缓存读起,分别留意保存格式、更新时机和失效策略;它们解决的并不是同一种问题。
  2. 网络部分可先看 NSURLSession 和请求架构,再读 CocoaAsyncSocket 的连接流程,沿着发起、回调、失败和重试梳理状态。
  3. 推送、通讯录、地图、支付等接入记录受系统权限和第三方服务变化影响较大。理解历史流程后,应另查服务方当前文档。

这是 2015–2017 年的历史记录,示例未在本次整理中重新运行验证。先核对文章日期和版本说明,再决定哪些思路适合当前项目。

主题文章

24 篇 · 新到旧
  • iOS开发之DNS劫持

    从域名解析异常引出 DNS 劫持问题,介绍通过 NSURLProtocol 调整请求和解析流程,并讨论 IPv6、WebKit 与 NSURLSession 的适配边界,保留相关实现与参考资料。

    SindriLinDNS · NSURLProtocol · IPv6
  • iOS即时通讯进阶之CocoaAsyncSocket源码解析(Connect终)

    继续追踪 CocoaAsyncSocket 的连接过程,从本机地址绑定走向连接建立与后续回调,结合底层 Socket 操作解释异步连接的执行顺序及相关配置的作用。

    涂耀辉CocoaAsyncSocket · GCDAsyncSocket · bind
  • iOS即时通讯进阶 - CocoaAsyncSocket源码解析(Connect篇)

    沿 GCDAsyncSocket 初始化与连接入口阅读 CocoaAsyncSocket 源码,依次梳理参数检查、本机与服务端地址创建、Socket 配置等连接前准备工作,配合注释说明调用关系。

    涂耀辉CocoaAsyncSocket · GCDAsyncSocket · Socket
  • iOS开发之iOS10推送必看(高阶2)

    介绍 Notification Service Extension 在通知展示前处理内容的流程,说明创建扩展目标、修改文字和加载附件的方式,以及处理超时后回退原始通知的行为。

    徐不同UNNotificationServiceExtension · 通知附件 · 远程通知
  • iOS开发之iOS10推送必看(高阶1)

    通过创建本地通知说明 UNNotificationRequest、触发器和通知中心的关系,利用 identifier 管理添加、更新和删除,并介绍附件所需的有效文件路径与配置。

    徐不同UNNotificationRequest · UNUserNotificationCenter · 本地通知
  • iOS开发之iOS10推送必看(基础篇)

    从现有工程开启推送能力与检查环境配置入手,介绍 iOS 10 通知注册、中心代理和回调处理,再结合第三方推送解释旧代码迁移时需要关注的接口变化。

    徐不同iOS 10 · UserNotifications · 推送注册
  • iOS开发之封装一个自动归、解档的类

    从 NSCoding 的归档与解档入手,利用运行时遍历对象成员变量并组织编码,逐步封装 WZXArchiver,讨论包含子对象时的处理方式及自动化存储的限制。

    WzxJiangNSCoding · WZXArchiver · 对象归档
  • iOS开发之Swift初体验PhotoKit

    以照片多选组件介绍 PhotoKit 的基本使用,说明最大选择数量、PHAsset 数组回传和闭包调用方式,并提供相册项目及学习资料,记录从 AssetsLibrary 迁移的尝试。

    大石头布PhotoKit · PHAsset · 照片多选
  • 谈谈MVVM和链式网络请求架构

    从控制器业务代码膨胀出发,用登录判断展示 Model、ViewModel 与 ViewController 的职责拆分,再介绍 ReactiveCocoa 和链式网络请求封装如何组织业务调用。

    WzxJiangMVVM · ReactiveCocoa · ViewModel
  • iOS开发之AES+Base64数据混合加密与解密

    分别为 NSData 和 NSString 编写分类,展示 AES 加解密与 Base64 编码组合的调用流程,并强调客户端和后台需要约定一致的密钥,附完整演示项目。

    BisonAES · Base64 · CommonCrypto
  • 一步一步带你封装一个Swift本地缓存库

    先区分 Documents、Caches、Preferences 与临时目录,再封装按类型保存对象、图片和语音的本地文件缓存,结合离线浏览场景说明目录管理和缓存读写思路。

    大石头布Swift · 文件缓存 · 应用沙盒
  • iOS开发仿微信(WeChat)系列(六)

    记录仿微信聊天功能接入后的三个问题:同步键盘动画参数、处理应用进出后台时的观察者,以及保存登录状态。文章展示当时的处理代码并注明自动登录示例的简化范围。

    WzxJiang键盘通知 · 即时通信 · 应用生命周期
  • 史上最全远程推送详解之极光推送

    按 App ID、推送能力与证书申请顺序准备远程通知,再接入极光推送 SDK,说明开发和生产配置、证书导出及客户端回调代码,记录早期推送接入流程。

    WzxJiangAPNs · 极光推送 · 推送证书
  • iOS开发仿微信(WeChat)系列(五)

    继续仿微信的个人资料与朋友圈界面,使用 AVUser 简化注册登录、AVFile 上传头像,并通过压缩图片减少传输量,同时记录下拉头图与刷新组件的实现问题。

    WzxJiangAVUser · AVFile · 头像上传
  • iOS开发仿微信(WeChat)系列(四)

    仿微信项目开始接入云端存储与即时通信依赖,封装登录和注册方法,并记录查询用户数据时的排错过程。正文包含早期密码字段试验,适合作为历史开发记录。

    WzxJiang仿微信 · 云端存储 · 用户登录
  • 也许你根本不需要Alamofire,何不尝试下NSURLSession?

    从最简单的数据请求开始介绍 NSURLSession,区分数据、下载和上传任务,并比较默认、临时与后台配置,说明缓存、Cookie 和网络任务组织之间的关系。

    大石头布NSURLSession · NSURLSessionConfiguration · 下载任务
  • iOS开发之详解连连支付集成

    整理连连支付 SDK 接入时的链接参数、资源样式和业务字段,说明用户编号、绑卡协议与服务端回调的含义,并记录签名、界面定制等容易混淆的配置点。

    Bison连连支付 · 支付SDK · 服务端签名
  • 详解持久化Core Data框架的原理以及使用

    从托管对象、上下文和持久化协调器的关系讲起,手动搭建 Core Data 环境与实体模型,再通过新增、查询、修改和删除示例说明数据保存的主要流程。

    BisonCore Data · NSManagedObjectContext · 实体模型
  • Github源码推荐:(01.04):iOS开发蓝牙,启动动画,自定义Tabbar

    选编 BabyBluetooth 蓝牙框架、CLClipImageView 启动动画和 CYLTabBarController 标签栏,提供项目入口及部分用法,并区分蓝牙中心与外设两种工作模式。

    BisonBabyBluetooth · CoreBluetooth · CLClipImageView
  • iOS开发之OCR光学识别储蓄卡以及信用卡

    围绕扫描卡号的需求介绍 card.io SDK 的导入、链接参数、代理设置和识别回调,并给出 Objective-C 与 Swift 示例;正文说明此次选用的是信用卡识别方案。

    Bisoncard.io · OCR · 信用卡识别
  • Swift2.0后Alamofire的使用方法

    展示 Swift 2.0 环境下手动导入 Alamofire、配置项目依赖并发起网络请求的步骤,配合截图说明工程链接位置,适合回顾早期框架接入和调用方式。

    BisonSwift 2.0 · Alamofire · 网络请求
  • Bison教你3分钟集成支付宝好友分享

    按应用注册、SDK 导入、URL Scheme 配置与回调处理介绍支付宝好友分享,区分文本、图片和网页消息的数据对象,并记录安装检测及鉴权失败的排查点。

    Bison支付宝分享 · SocialSDK · URL Scheme
  • 一点一滴慢慢的揭开XMPP的神秘面纱

    记录 XMPP 聊天接入的初步流程,包括导入依赖、使用用户信息连接 Openfire、处理注册与登录验证,以及消息收发相关回调,提供客户端集成代码。

    BisonXMPP · Openfire · 即时通信
  • iOS开发获取通讯录并发短信给联系人

    围绕邀请好友的需求,介绍读取手机联系人并调起短信发送的简单封装,列出 AddressBook、AddressBookUI 与 MessageUI 依赖,并提供 LBContacts 示例工程。

    Bison通讯录 · AddressBook · MessageUI