4 月份参加 2017@Swift 大会的时候有幸听到了 @zesming 大佬关于美团组件化的 Topic,有一张图印象特别深刻。 后来跟 @zesming 大佬沟通怎么去整理组件自动构建发布思路的时候他也跟我提到了这张图。所以我准备围绕这张图来整理一下 iOS 工程自动化的思路。 基础知识 首先,我们需要掌握一些自动构建发布的基础知识,主要包含如下几个方面。 GitFlow - 规范 git 操作流程 GitFlow...…
iOS 工程自动化 - OCLint
前言 最近一直在做 iOS 工程自动化方向的事情,所以把自己研究和实践的内容进行记录并分享,希望能给大家一些帮助。 为什么要使用 OCLint 做为一个静态代码分析工具,我们引入 OCLint 的目的主要是为了提高我们的代码质量。通常我们提高代码质量的方式是通过 CodeReview,但是这个过程耗费的人工和时间往往较大,所以我们想通过 OCLint 的一些规则,让机器帮我们完成一部分代码质量的检测,从而提高我们的工作效率。 安装 OCLint OCLint 的安装方式有很多中,这里我们选择最简单的方式:通过 Homebrew 安装。 安装 Homebrew...…
造轮子 | 如何设计一个面向协议的 iOS 网络请求库
最近开源了一个面向协议设计的网络请求库 MBNetwork,基于 Alamofire 和 ObjectMapper 实现,目的是简化业务层的网络请求操作。 需要干些啥 对于大部分 App 而言,业务层做一次网络请求通常关心的问题有如下几个: 如何在任意位置发起网络请求。 表单创建。包含请求地址、请求方式(GET/POST/……)、请求头等…… 加载遮罩。目的是阻塞 UI 交互,同时告知用户操作正在进行。比如提交表单时在提交按钮上显示 “菊花”,同时使其失效。 加载进度展示。下载上传图片等资源时提示用户当前进度。 断点续传。下载上传图片等资源发生错误时可以在之前已完成部分的基础上继续操作,这个 Alamofire 可以支持。...…
制作底部凸起的 TabBar 笔记
本文主要针对底部凸起的 TabBar 这种特殊需求,不感兴趣的可以直接绕过~ 最近做的一个项目需要底部凸起的 TabBar,效果如下: 考虑到 iOS 原生 UITableBar 的定制比较麻烦,所以决定先找一下第三方的解决方案,经过调研发现 RDVTabBarController 比较符合需求。而且经过实践发现它有如下几个优势: 实现方式与 iOS 原生 UITableBarController 基本一致,方便上手。 RDVTabBar 可以比较简单滴实现底部某个 tab...…
结束语
就目前来说,网络编程是非常重要的。作为21世纪所有C++程序员的必学内容,我们对Boost.Asio的理论进行了深入理解并付诸实践。因为本书的内容都可以很简单的进行阅读、测试、理解和扩展,所以你可以把它当作一个参考以及便携的Boost.Asio样例库。 最后,希望你能以读本书为乐,以编程为乐。 …