最新 | 最热门 | 最高评价

+0  小程序技术方案探讨

Tag: 技术文章
bang 发于 2017年09月19日 11:48 | 点击: 549 | 展开摘要
微信小程序上线大半年,大部分技术原理也有文章介绍了,本文尝试从需求出发探讨微信小程序技术方案的来源,以及最近公测的支付宝小程序技术方案的考量。

微信小程序

微信小程序的需求是让第三方开发者可以接入,可以使用微信的提供的接口去开发应用嵌入在微信里。对于这个需求,最简单的实现方案是:让外部开发者开发纯H5应用,在微信的 H5 容器里打开,容器提供微信 native 接口,就行了。在有小程序之前,已经有很多这样的业务接入,像京东购物,钱包里的各种友商大众点评/滴滴出行等,都可以

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

+0  移动 H5 首屏秒开优化方案探讨

Tag: 技术文章 | ios | 前端
bang 发于 2017年08月14日 19:35 | 点击: 711 | 展开摘要
随着移动设备性能不断增强,web 页面的性能体验逐渐变得可以接受,又因为 web 开发模式的诸多好处(跨平台,动态更新,减体积,无限扩展),APP 客户端里出现越来越多内嵌 web 页面(为了配上当前流行的说法,以下把所有网页都称为 H5 页面,虽然可能跟 H5 没关系),很多 APP 把一些功能模块改成用 H5 实现。

虽然说 H5 页面性能变好了,但如果没针对性地做一些优化,体验还是很糟糕的,主要两部分体验:

页面启动白屏时间:打开一个 H5 页面需要做一系列处理,会

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

+0  React Native 源码导读(零) – 创建/运行/调试

Tag: 技术文章 | React Native
bang 发于 2017年07月31日 14:45 | 点击: 646 | 展开摘要
最近工作需要,重新看 React Native (以下简称RN) 源码,了解机制,寻找优化空间,过程中看能不能整理出一些东西。

RN 这个项目已经是庞然大物,打开 github 项目主页,根目录下文件和文件夹就多达五六十个,看起来一脸懵逼,不知道哪些是源码,在看源码之前先理理 RN 最终用到哪些代码,项目是怎样创建,怎样跑起来的。以下皆以 iOS 端为例。

流程

先看看标准 RN 项目创建和运行过程:

RN 根据教程装完环境后,会有一个全局命令 react-nativ

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

+0  晋升评审的套路

Tag: 技术文章
bang 发于 2017年06月26日 19:18 | 点击: 579 | 展开摘要
很多中大型互联网公司都会有晋升评审,也就是对技术/产品等职位划分成若干个等级,每个员工都有一个等级,若要晋升到下一级,需要由几个评委面试决定是否合格。这跟传统公司的考职称差不多,只不过传统公司是通过考试,互联网公司是通过面试。

为什么会有这种晋级评审?等级是公司内部对员工的一种评价和定位,等级的参照物是公司内的所有员工,假如一个公司比较小,老板每天跟所有员工一起工作,在老板识人能力又没有问题的前提下,老板就很清楚每个人的能力,直接对他们排等级,不需要什么评审,得出来的结果其

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

+0  iOS App 签名的原理

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

iOS 技术栈

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

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

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

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

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 | 点击: 568 | 展开摘要
今天聊聊 iOS 动态化的故事。

问题

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

原因

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

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

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

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

一般一个 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 | 点击: 577 | 展开摘要
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 | 点击: 272 | 展开摘要
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 | 点击: 399 | 展开摘要
JSPatchX 是 JSPatch Xcode 代码自动补全插件,目前在 github 开源,效果见图:

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

由来

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

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

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