最新 | 最热门 | 最高评价

+0  iOS App 签名的原理

Tag: 技术文章
bang 发于 2017年03月13日 20:46 | 点击: 389 | 展开摘要
iOS 签名机制挺复杂,各种证书,Provisioning Profile,entitlements,CertificateSigningRequest,p12,AppID,概念一堆,也很容易出错,本文尝试从原理出发,一步步推出为什么会有这么多概念,希望能有助于理解 iOS App 签名的原理和流程。

目的

先来看看苹果的签名机制是为了做什么。在 iOS 出来之前,在主流操作系统(Mac/Windows/Linux)上开发和运行软件是不需要签名的,软件随便从哪里下载都能运

查看全文: http://www.udpwork.com/item/16174.html

+0  iOS 开发技术栈与进阶

Tag: 技术文章
bang 发于 2017年02月28日 18:25 | 点击: 389 | 展开摘要
最近有一些开发朋友问我应该怎样提升自己的能力,回想起来做了这么久 iOS 开发,我也有过那种“让我做一个功能实现个需求我会做,但接下来怎样提高我不知道。”的时期,这里尝试列一下 iOS 开发的相关技术,再说说在学习进阶上我的一些想法。

iOS 技术栈

这里按我的理解给 iOS 相关技术分个类,以工程实现的角度,分成了基础、需求、效率、质量四个类别。基础指程序开发和 iOS 开发的基础知识和技能,需求就是产品的需求,有了基础技能,实现了产品需求后,剩下的事情就都是为了提高项

查看全文: http://www.udpwork.com/item/16151.html

+0  如何动态创建 block – JPBlock 扩展原理详解

Tag: 技术文章
bang 发于 2017年01月23日 19:45 | 点击: 459 | 展开摘要
简介

JSPatch 最近新增了扩展 JPBlock,解决之前 block 使用上的一些限制:

block 参数个数最多支持6个。

block 参数类型不能是 double / struct / union 类型。

不支持 JS 封装的 block 传到 OC 再传回 JS 去调用。

接入 JPBlock 后,就可以:

block 参数支持任意多个。

block 参数类型可以是除 struct / union 以外的任意类型,包括 double。

支持 JS

查看全文: http://www.udpwork.com/item/16076.html

+0  iOS 动态化的故事

Tag: 技术文章
bang 发于 2016年12月21日 17:03 | 点击: 446 | 展开摘要
今天聊聊 iOS 动态化的故事。

问题

在开发模式上,web 的方式是比较先进的,有各种优点,包括跨平台/UI开发效率高,最重要的是可以时刻保证用户看到的程序是最新的,没有版本概念,整个系统时刻保持在掌握之中,而客户端开发模式相对 web 开发是一种倒退,客户端做不到这样的动态化,无法随时更新,目前一个客户端程序要更新成本是很高的,需要发布版本,也无法保证所有人都能更新到这个版本,这是最大的弱点,也是非常大的一块需求。

原因

为什么会有这种倒退,最主要原因是:苹果引领

查看全文: http://www.udpwork.com/item/16026.html

+0  APP 缓存数据线程安全问题探讨

Tag: 技术文章
bang 发于 2016年11月22日 21:05 | 点击: 465 | 展开摘要
问题

一般一个 iOS APP 做的事就是:请求数据->保存数据->展示数据,一般用 Sqlite 作为持久存储层,保存从网络拉取的数据,下次读取可以直接从 Sqlite DB 读取。我们先忽略从网络请求数据这一环节,假设数据已经保存在 DB 里,那我们要做的事就是,ViewController 从 DB 取数据,再传给 view 渲染:

这是最简单的情况,随着程序变复杂,多个 ViewController 都要向 DB 取数据,ViewController本

查看全文: http://www.udpwork.com/item/15937.html

+0  iOS 动态更新方案对比:JSPatch vs React Native

Tag: 技术文章 | ios | JSPatch
bang 发于 2016年08月09日 19:47 | 点击: 452 | 展开摘要
JSPatch 是 iOS 平台上的一个开源库,只需接入极小的三个引擎文件,即可以用 JS 调用和替换任意 OC 方法,也就是说可以在 APP 上线后通过下发 JS 脚本,实时修改任意 OC 方法的实现,达到修复 bug 或动态运营的目的。目前 JSPatch 被大规模应用于热修复(hotfix),已有超过 2500 个 APP 接入。

虽然 JSPatch 目前大部分只用于热修复,但因为 JSPatch 可以调用任意 OC 方法,实际上它也可以做热更新的工作,也就是动态为

查看全文: http://www.udpwork.com/item/15720.html

+0  如何动态调用 C 函数

Tag: 技术文章 | JSPatch
bang 发于 2016年07月05日 20:20 | 点击: 185 | 展开摘要
JSPatch 支持了动态调用 C 函数,无需在编译前桥接每个要调用的 C 函数,只需要在 JS 里调用前声明下这个函数,就可以直接调用:

require('JPEngine').addExtensions(['JPCFunction'])
defineCFunction("malloc", "void *, size_t")
malloc(10)

我们一步步来看看怎样可以做到动态调用 C 函数。

函数地址

首先若要动态调用 C 函数,第一步就是需要通过传入一个函数名

查看全文: http://www.udpwork.com/item/15721.html

+0  XCode 代码补全插件 – JSPatchX 原理解析

Tag: 技术文章 | ios | JSPatch
bang 发于 2016年04月26日 20:44 | 点击: 293 | 展开摘要
JSPatchX 是 JSPatch Xcode 代码自动补全插件,目前在 github 开源,效果见图:

做完一个开源项目照例写篇文章说明下实现原理,主要目的是让想对这个项目做贡献改进的人可以通过文章更容易地了解这个项目的由来,思路,核心原理和流程,降低参与这个项目开发的门槛。

由来

写 JSPatch 脚本一个不爽的地方就是没有代码补全,而调用 OC 方法时方法名又死长,写起来很不方便。

对此之前做了 JSPatch Convertor,可以自动把 OC 代码转为

查看全文: http://www.udpwork.com/item/15724.html

+0  JSPatch更新:完善开发功能模块的能力

Tag: 技术文章 | ios | JSPatch
bang 发于 2016年04月06日 21:33 | 点击: 187 | 展开摘要
JSPatch 开源以来大部分被用于 hotfix,替换原生方法修复线上bug,但实际上 JSPatch 一直拥有动态添加功能模块的能力,因为 JSPatch 可以创建和调用任意 OC 类和方法,完全可以用 JSPatch 写功能模块,然后动态下发加载。只是之前在性能和开发体验上有些问题,还没有太多这方面的应用。这次 JSPatch 做了较大的更新,扫除这些问题,让用纯 JS 写功能模块变得实用。这里有个用 JS 写的 Dribbble 客户端 Demo,可以体验下效果。

查看全文: http://www.udpwork.com/item/15726.html

+0  iOS 组件化方案探索

Tag: 技术文章 | ios
bang 发于 2016年03月18日 19:51 | 点击: 190 | 展开摘要
看了 Limboy(文章1 文章2) 和 Casa (文章) 对 iOS 组件化方案的讨论,写篇文章梳理下思路。

首先我觉得”组件”在这里不太合适,因为按我理解组件是指比较小的功能块,这些组件不需要多少组件间通信,没什么依赖,也就不需要做什么其他处理,面向对象就能搞定。而这里提到的是较大粒度的业务功能,我们习惯称为”模块”。为了方便表述,下面模块和组件代表同一个意思,都是指较大粒度的业务模块。

一个 APP 有多个模块,模块之间会通信,互相调用,例如微信读书有 书籍详情

查看全文: http://www.udpwork.com/item/15727.html

+0  JSPatch 近期新特性解析

Tag: 技术文章 | ios | JSPatch
bang 发于 2016年03月14日 20:57 | 点击: 195 | 展开摘要
JSPatch 在社区的推动下不断在优化改善,这篇文章总结下这几个月以来 JSPatch 的一些新特性,以及它们的实现原理。包括脱离锁的 performSelectorInOC 接口,支持可变参数方法调用,给新增方法指定类型的 defineProtocol 接口,支持重写 dealloc 方法,以及两个扩展 JPCleaner 和 JPLoader。

performSelectorInOC

JavaScript 语言是单线程的,在 OC 使用 JavaScriptCore

查看全文: http://www.udpwork.com/item/15728.html

+0  JSPatch Convertor 实现原理详解

Tag: 技术文章 | ios | JSPatch
bang 发于 2015年10月13日 21:32 | 点击: 506 | 展开摘要
简介

JSPatch Convertor 可以自动把 Objective-C 代码转为 JSPatch 脚本。

JSPatch 是以方法为单位进行代码替换的,若 OC 上某个方法里有一行出了bug,就需要把这个方法用 JS 重写一遍才能进行替换,这就需要很多人工把 Objective-C 代码翻译成 JS 的过程,而这种代码转换的过程遵循着固定的模式,应该是可以做到自动完成的,于是想尝试实现这样的代码自动转换工具,从 Objective-C 自动转为 JSPatch 脚本

查看全文: http://www.udpwork.com/item/14670.html
|<<<1234567>>>| 一共8页, 90条记录