代码改变世界

[置顶]iOS应用千万级架构开篇

2020-07-05 13:11 by jiangys, 1139 阅读, 0 推荐, 收藏, 编辑
摘要:一款好的APP架构,是需要适应复杂的业务场景的。当然它也是可以监控的,比如性能、卡顿等。你写的每一行代码,测试都可以查看到,并测试覆盖到。 一直很想分享一下,一个大型的APP都做了些什么事情,这些事情,在网上很少相关的资料。这都是一个大型的App发展的这几年,多代人累计出来的宝贵经验。这对于很多新手 阅读全文

[置顶]face++静态库转为动态库

2019-04-22 11:17 by jiangys, 1076 阅读, 0 推荐, 收藏, 编辑
摘要:前言 苹果商店上架应用,有规定支持iOS8.0以上的iPA可执行文件的大小不能超过60M。 face++提供过来的是静态库,会导致苹果上架的ipa的包增加1.5M左右。而刚好我们的APP包Mach-O文件大小接近60M,因而,最好的方式是通过动态库的方式来接入。 Face++文件: https:// 阅读全文

[置顶]iOS Runtime原理及使用

2016-02-22 18:11 by jiangys, 11739 阅读, 0 推荐, 收藏, 编辑
摘要:runtime简介 因为Objc是一门动态语言,所以它总是想办法把一些决定工作从编译连接推迟到运行时。也就是说只有编译器是不够的,还需要一个运行时系统 (runtime system) 来执行编译后的代码。这就是 Objective-C Runtime 系统存在的意义,它是整个Objc运行框架的一块 阅读全文

GitBook安装使用

2022-11-25 11:18 by jiangys, 387 阅读, 0 推荐, 收藏, 编辑
摘要:GitBook 是用来创建一个现代化的文档工具。比如经常被用编写系统文档、API 文档、数据库文档等。要使用 GitBook 必须安装 nodejs,以便能够使用 npm 来安装 gitbook。其次还能导出 pdf、epub、mobi 等格式文件。 1 环境安装 1.1 nodejs 安装 由于我 阅读全文

Socket通信相关

2022-11-22 18:05 by jiangys, 52 阅读, 0 推荐, 收藏, 编辑
摘要:socket编程是在tcp/IP上的网络编程,但是socket在上述的模型的什么位置呢。这个位置被一个天才的理论家或者是抽象的计算机大神提出并且安排出来 什么是粘包? 粘包:socket传输数据是由多个连续的数据包组成,他们被连续的存储在缓存中,在读取数据包时可能由于某些原因导致获取到了错误的发送边 阅读全文

iOS原生接入Flutter

2022-11-22 13:05 by jiangys, 839 阅读, 0 推荐, 收藏, 编辑
摘要:官方文档:https://flutter.cn/docs/development/add-to-app/ios/project-setup 原生的oc写的代码,新的需求页面想要用flutter来写,那么如何在原生项目里加入flutter呢? 1、新建一个OC的原生工程项目。该项目是个简单的proje 阅读全文

Flutter安装图解

2022-11-19 10:29 by jiangys, 2595 阅读, 0 推荐, 收藏, 编辑
摘要:官方安装Flutter教程:https://docs.flutter.dev/get-started/install/macos 但是不是很全,现在按照下面的步骤进行安装操作。 Flutter中文学习文档: https://flutter.cn/docs 1、先下载flutter sdk 下载地址: 阅读全文

iOS应用千万级架构:安全与加密

2020-08-26 15:28 by jiangys, 996 阅读, 0 推荐, 收藏, 编辑
摘要:前言 不管项目的大小,在项目中,安全和加密都是必须要全面去考虑,在做一个新业务时,我们都需要问一下自己: 这个业务场景需要考虑加密吗? 究竟选用哪些加密算法好呢? 这个加密算法的安全性怎么样呢? 这个加密算法的性能怎么样? 这个加密算法适合做大数据加密吗? 这些问题都需要我们去探讨和对比。不同的场景 阅读全文

iOS应用千万级架构:性能优化与卡顿监控

2020-07-14 15:00 by jiangys, 3545 阅读, 1 推荐, 收藏, 编辑
摘要:CPU和GPU 在屏幕成像的过程中,CPU和GPU起着至关重要的作用 CPU(Central Processing Unit,中央处理器) 对象的创建和销毁、对象属性的调整、布局计算、文本的计算和排版、图片的格式转换和解码、图像的绘制(Core Graphics) GPU(Graphics Proc 阅读全文

iOS应用千万级架构:自动埋点与曝光

2020-07-10 12:02 by jiangys, 2683 阅读, 0 推荐, 收藏, 编辑
摘要:背景说明 埋点需求是每个APP都需要做的一个功能,主要是为了统计分析数据。当然,也可以排查一些BUG,比如查看用户的操作行为轨迹,复现BUG。当一个项目比较庞大时,埋点功能也会跟着变得非常庞大,需要开发人员熟悉具体页面的业务逻辑,然后进行针对性的对组件的曝光进行计时,处理起来比较麻烦。本方案试图使用 阅读全文

iOS应用千万级架构:存储持久化

2020-07-07 00:03 by jiangys, 774 阅读, 0 推荐, 收藏, 编辑
摘要:应用场景 iOS10后,发现在大量用户在NSUserDefaults中取值失败,导致一系列的持久化状态丢失。故切换到SQLitie3持久化更适合大型项目的使用。 场景一:在大型项目中,经常需要我们写的代码支持可降级,对一些新功能进行灰度验证。那运营开关是必不可少的。运营开关的配置就需要持久化设置了, 阅读全文

iOS应用千万级架构:MVVM框架

2020-07-06 23:50 by jiangys, 10293 阅读, 0 推荐, 收藏, 编辑
摘要:业务模块内的MVC和MVVM架构 目前,唯品会中MVC和MVVM架构并存,后期会偏重于MVVM架构的使用。 MVC架构 Model:程序中要操纵的实际对象的抽象,为Controller提供经过抽象的业务数据,供Controller调度 View:视图,负责界面的元素的展示 Controller:控制 阅读全文