自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

iOS122-移动混合开发研究院

专注于ReactNative, Weex, APICloud等混合开发平台,深入对比研究混合开发的各种技术细节

  • 博客(75)
  • 收藏
  • 关注

原创 【最新最全】为 iOS 和 Android 的真机和模拟器编译 Luajit 库

编译 Luajit 库,的确是一个挑战。因为官网的教程,在当前版本的 Xcode 和 NDK 环境中,已经不适用了。以前只是编译了适用于真机的 Luajit 库。最近在尝试编译模拟器 Luajit 库,就顺便梳理了下 Luajit 库的编译经验,供以后查阅。网上的讨论也是有一些,但是相当一部分都已经过时。或许等你看到这篇文章的时候,可能也只是能获得一些可能的经验来解决自己的编译问题。所以说,了解一...

2018-07-19 09:54:25 1516

原创 【Graphql实践】使用 Apollo(iOS) 访问 Github 的 Graphql API

最近在协助调研 Apollo 生成的代码是否有可能跨 Query 共享模型的问题,虽然初步结论是不能,并不是预期的结果,但是在调研过程中积累的一些经验,有必要记录下。如果你也对 Graphql 感兴趣,不妨先从 Github 的 Graphql API 来切手实践。关于 Graphql 官网尽管只是做客户端的一些实践,我还是建议你先过一遍 Graphql 官网的学习指南。这样能更快速地...

2018-07-17 09:44:25 693 1

原创 【最新】LuaJIT 32/64 位字节码,从编译到使用全纪录

网上关于 LuaJIT 的讨论,已经显得有些陈旧。如果你对 LuaJIT 编译 Lua 源文件为具体的 32位或64位字节码,极其具体使用感兴趣的话,不妨快速读一下这篇文章。此文章针对尝试在 iOS 或 Android 上使用 LuaJIT 的小伙伴。限于篇幅,此处假定,你可以成功在 iOS/Android App 中集成了 LuaJIT,并且已经可以执行源码形式的 Lua 文件。我忍不住在开...

2018-07-11 03:10:01 2177

原创 简陋的swift carthage copy-frameworks 辅助脚本

在看 carthage 时,其中需要配置一个 copy-frameworks 脚本,此脚本特殊的地方,需要手动填写 Input Files 和 Output Files.一个一个填写,很糟心~

2018-01-14 23:47:57 343

原创 【自问自答】关于 Swift 的几个疑问

感觉自己给自己释疑,也是一个极为有趣的过程。这次,我还新增了“猜想”一栏,来尝试回答一些暂时没有足够资料支撑的问题。Swift 版本是:4.0.3。不同版本的 Swift,可能无法复现问题。个人记录,仅供参考,不保证严格意义上的正确性。

2018-01-06 10:54:08 1147

原创 【读书笔记】The Swift Programming Language (Swift 4.0.3)

素材:Language Guide初次接触 Swift,建议先看下 A Swift Tour ,否则思维转换会很费力,容易卡死或钻牛角尖。同样是每一章只总结3个自己认为最重要的点。这样挺好!强迫你去思考去取舍。以后再看,也方便快速重建记忆。注意: 个人笔记,仅供参考,不保证严格意义上的正确性。

2018-01-06 10:44:08 502

原创 【读书笔记】A Swift Tour

objc 自己较为熟悉,想熟悉下风头正劲的 swift。就先从官方的入门手册开始撸。每一小节,我都摘录或总结3个对自己三观冲击最大的【知识点】,以方便以后温习。总结不保证绝对正确,仅供交流之用。O(∩_∩)O哈哈~

2018-01-06 10:33:40 268

原创 【趣味连载】攻城狮上传视频与普通人上传视频:(一)生成结构化数据

背景当知道要上传的视频资料从20条变成100条时,我就明白,绝对不能再人工处理了。他们总是想当然的认为,录入一条数据需要1分钟,那录入20条数据就是20分钟,录入100条数据,不就是100分钟吗?我有时候,真的很想问问他们,没有考虑过人是会犯错的吗?数据越多,出错的可能就越大;但是数据本身,又是不允许出现纰漏的。那拿什么去保证数据的正确性?刷脸?

2017-12-07 02:38:05 506

原创 【趣味连载】攻城狮上传视频与普通人上传视频:序

前言我想写一个简单的系列文章。主题很简单,就是记录下面对上传视频需求时,攻城狮和普通人(泛指所有非技术人员)的一些区别。当然,从需求分析到最终完整实现,每个步骤都是有干货。我会尽量避免一些偏情绪化的表述。更多的时候,我们应该把注意力集中在各个需求点本身的技术实现上。

2017-12-06 00:56:04 325

原创 【smart-transform】取自 Atom 的 babeljs/coffeescript/typescript 智能转 es5 库

简介有时间研究下开源库的源码,总是会有些收获的。注意到 Atom 插件编写时,可以直接使用 babel, coffeescript 或者 typescript。刚好最近有一些类似的需求,需要批量以单个文件的方式转换一些其他语法的文件到 es5 兼容的js文件,于是就把 Atom 的转换机制拆分了出来,写成一个 cli。

2017-11-28 02:01:48 272

原创 【YFMemoryLeakDetector】人人都能理解的 iOS 内存泄露检测工具类

时过境迁,今天在网上搜了下 “iOS 内存泄露检测”,各种讨论技术文章,有点头大。我忍不住看了下自己当时的代码,突然感觉自己的思路好特别,好有创意。我真的就是在“创建”时把数据记录到一个字典里,在“释放”时,从字典里移出对象;所谓的检测,其实就是打印那个字典,仍然在字典中的很有可能就是泄露喽。当然,还是有一些技术细节的。我把旧代码适度拆分整理为一个开源库了,取名为 [YFMemoryLeakDetector](h

2017-11-23 01:27:54 690

原创 【玩转树莓派】使用 sinopia 搭建私有 npm 服务器

简介使用 sinopia 的好处是,node系的工程师,内部协作时,使用自有 npm 包,会非常方便;另外,sinopia,会缓存已经下载过的包,可以在相当程度上,加速 npm install 相关命令的执行。今天我试着直接在树莓派上搭建一个 sinopia 服务。最终实现的效果较为完整,基本满足需要了。包含用户权限管理,外网使用自定义域名访问,sinopia服务开机自启等特性。

2017-11-22 02:17:06 939

原创 【小技巧解决大问题】使用 frp 突破阿里云主机无弹性公网 IP 不能用作 Web 服务器的限制

最近接触了些内网穿透的知识,我突然想到,是不是借助内网穿透,也可以把我的阿里云主机给暴露出来?毕竟内网穿透,使用的是 Linux 一些基础知识,算不上很极客的技术,应该是具有通用性的。经验证,竟然真的可行! 特记录下来,献给有同样遭遇的有缘人。

2017-11-21 00:57:17 3819

原创 【树莓派自动化应用实例】整点提醒自己休息五分钟

我有一个习惯,定闹钟每隔60分钟左右,提醒自己休息一次。我发现自己有时候长时间思考,很容易拘泥于细节之中。适当的简单休息过后,往往会对正在解决和处理的问题有新的认识和发现,有事半功倍的奇效。不过大部分手机闹钟都不支持这种以小时为单位的周期闹铃。所以,我以前每次都是都手动调整闹钟时间。总感觉有点 Low!于是,我就写了个简单的发邮件的 Lua 脚本,放到树莓派上作为一个shell命令使用;然后

2017-11-16 01:03:30 2699

原创 借助 frp 随时随地访问自己的树莓派

前言看了知乎上的一个「树莓派」是什么以及普通人怎么玩? 的高票回答,双十一时间,果断买了一个树莓派 3. 周一(11.13) 到的货.我目前只想实现一个简单的功能 – 想从任意位置访问我的树莓派. 就像一个潘多拉魔盒,第一步肯定是拿到钥匙!

2017-11-14 17:31:30 9903 3

原创 【LuaJIT版】从零开始在 macOS 上配置 Lua 开发环境

前言这篇文章针对的是基于 LuaJIT 的环境配置。借助于 LuaJIT,Lua 的执行效率可以进一步提升几十倍。如果你不是很清楚自己是需要 Lua 还是 LuaJIT,那么建议你从 LuaJIT 起步。LuaJIT 对应的是 Lua5.1 的语法,这一点需要注意。如果你想看基于最新版 Lua 环境的配置文章,请移步:http://yanfeng.life/2017/11/10/Latest-gui

2017-11-11 16:04:12 1208

原创 【最新版】从零开始在 macOS 上配置 Lua 开发环境

我突然意识到,可能 JavaScript 的大部分限制,在 Lua 或其他脚本语言中并不存在。想要解决那些因为使用 JavaScript 引起的各种问题,可能只需要换一门脚本语言。

2017-11-10 12:32:58 1174

原创 关于混合应用开发的未来的一些思考

但是,没有谁会一直有好运气。说不定,我现在沉浸的语言,不久之后就成了明日黄花。如果自己真的是只会某个语言的专家,真的就是要一切从零开始了。你的所有荣誉,都被清零。纵然可以自我安慰说一些有基础学其他的也很快一类的话。

2017-11-09 01:34:15 345

原创 记录我发现的第一个关于 Google 的 Bug

先贴上 Bug 链接: https://issuetracker.google.com/issues/68969655Bug 本身是很简单的,就是 Google 的 Android 在线参考文档中,有一处示例代码,有一个很严重的错误, 会引起整个章节的代码都无法有效执行.对 Android 的 Service 服务有所了解的,可以来这里看下,看能不能发现那个错误: https://developer

2017-11-08 02:35:48 674

原创 iOS 中的 Delayed Transition

iOS 动画,用的最多的也最顺手的是 **animateWithDuration**, 总感觉它有点 **Delayed Transition** 的感觉,应该也可以实现类似的执行批量动画的效果.以前,大都是在 Block 里面写某一个视图,某一个属性的变化后的值.那加入里面,同时写多个视图的多个属性变化的值,会发生什么事呢?

2017-11-07 02:45:03 500

原创 坑中速记整理! 使用 kotlin 写第一个 ReactNative Android 模块

Kotlin 和 Swift, 两大新宠! 借 ReactNative 熟悉下 kotlin 的用法,不料掉坑里面了.昨晚花了大半夜,趁这会儿思路清晰,把涉及到的一些关键信息,迅速整理下.

2017-10-12 23:31:52 2124

原创 golang 标准库间依赖的可视化展示

简介国庆看完 << Go 语言圣经 >>,总想做点什么,来加深下印象.以可视化的方式展示 golang 标准库之间的依赖,可能是一个比较好的切入点.做之前,简单搜了下相关的内容,网上也要讨论,但是没有发现直接能拿过来用的.标准库之间,是必然存在依赖关系的,不同库被依赖的程度必然是不一样的.但究竟有多大差别呢?

2017-10-09 04:01:48 2210

原创 解决 lispbox macOS 不兼容问题

误打误撞,解决了很重要的入门级问题,简要记录下.lispbox 官网末尾说目前暂不兼容 10.4 以上系统: TODO: Compile on Mac OS X 10.4, for compatability Make separate versions for common Linux distributions, and a statically compiled versi

2017-08-04 00:21:04 806

原创 现在,以编程方式在 Electron 中上传文件,是非常简单的!

具体到以编码方式上传文件这个问题上.这个问题的完整描述应该是类似于这样: 网站有自己的登录认证机制,在不需要在对网站登录机制做任何修改的前提下,如何自动上传用户相关的文件,比如用户头像?

2017-07-23 03:19:15 9638

原创 可以打印栈信息的日志函数,移动混合开发必备!!!

stack-log可以打印栈信息的日志函数,移动混合开发必备!!!简介断点信息,可以反映函数的调用栈,但是不是所有的场景都适合打断点.console 直接输出的日志,可以反映的简单行数信息,但是部分场景需要结合日志所在函数的调用栈来确定某些调试信息.偶然间发现,可以用 new Error 记录栈结构,只要能适当处理,去除不必要的栈信息,就可以很好地保持 console 日志的连续性和断点调试时函数调

2017-05-04 13:06:22 637

原创 记一个同时支持模糊匹配和静态推导的Atom语法补全插件的开发过程: 序

使用正则表达式来进行变量真实的静态推导,真的很有新意!进简介过去的一周,都睡的很晚,终于做出了Atom上的APICloud语法提示与补全插件:apicloud_autocomplete .个中滋味,感觉还是有必要记录下来的.代码基于 GPL-3.0 开源,所以我可以较为详细的记录一些很难被理解和体会的技术细节.

2016-10-23 22:32:27 1060

原创 实现iOS图片等资源文件的热更新化(五): 一个简单完整的资源热更新页面

简介一个简单的关于页面,有一个图片,版本号,App名称等,着重演示各个系列的文章完整集成示例.心得部分,看了会让人忍不住去更新博客的文章.动机与意义这是系列文章的最后一篇.今天抽空写下,收下尾.文章本身会在第四篇的基础上,简单扩充下代码,实现在线下载与重置更改的功能.如果能较为仔细地阅读前四篇文章,第五篇给出的示例,应当是可以理解为无足轻重的.但是,大多数时候,我们更多的可能只是需要一个简易的解决方

2016-10-16 01:07:15 1139

原创 实现iOS图片等资源文件的热更新化(四): 一个最小化的补丁更新逻辑

简介以前写过一个补丁更新的文章,此处会做一个更精简的最小化实现,以便于集成.为了使逻辑具有通用性,将剥离对AFNetworking和ReativeCocoa的依赖.原来的文章,可以先看这里: http://www.ios122.com/2015/12/jspatconline/

2016-10-10 13:19:45 3118

原创 实现iOS图片等资源文件的热更新化(三):动态的资源文件夹

简介此文,将尝试动态从某个不确定的文件夹中加载资源文件.文章,会继续完善自定义的 imageNamed 函数,并为下一篇文章铺垫.

2016-10-04 12:21:36 1933

原创 实现iOS图片等资源文件的热更新化(二):自定义的动态 imageNamed

这篇文章,要解决的是,使用一个自定义的 imageNamed 函数来替代系统的 imageNamed 函数.内部逻辑,将贯穿对比论证 关于”合适”的图片的定义.对iOS加载图片的规则不是很熟悉的童鞋,可以着重看这篇.

2016-09-23 09:35:10 1389 2

原创 番外特别篇之 为什么我不建议你直接使用UIImage传值?--从一个诡异的相册九图连读崩溃bug谈起

这两天,被一个自己App中诡异的相册读取的Bug困扰,暂时延缓了文章的更新进度.这个BUG,诡异而又有趣,既然花了10个小时才理清,不妨再投入1个小时,晒出来供大家鉴赏,品玩.

2016-09-22 12:48:24 1468

原创 实现iOS图片等资源文件的热更新化(一): 从Images.xcassets导出合适的图片

本文会基于一个已有的脚本工具自动导出所有的图片;最终给出的是一个从 Images.xcassets 到基于文件夹的精简 合适 的图片资源集的完整过程.难点在于从完整图片集到精简图片集,肯定是基于一个定制化的脚本,自定义导出的.如果自己手动导出?那可有的忙喽~

2016-09-19 21:16:11 1439

原创 实现iOS图片等资源文件的热更新化(零): 序

所以说,本系列的重点不在于热更新技术本身,而是在于如何用最小的成本,赋予一个中规中矩的iOS App的资源部分,以热更新的能力!好吧,略显绕口,意会!事实也是如此!

2016-09-13 10:17:11 982 2

原创 使用Spark分析拉勾网招聘信息(四): 几个常用的脚本与图片分析结果

概述前一篇文章,已经介绍了BMR的基础用法,再结合Spark和Scala的文档,我想应该是可以开始你的数据分析之路的.这一篇文章,着重进行一些简单的思路上的引导和分析.如果你分析招聘数据时,卡在了某个环节,可以试着阅读本文. 在继续下面的各种分析前,请确保已经读完了本系列文章的第三篇,并正确配置了BMR,同时导入了需要的真实招聘数据.如果用传统编程语言工具?假设我们从数据的采集,存储到数据的读取与使

2016-09-07 09:38:26 1309

原创 使用Spark分析拉勾网招聘信息(三): BMR 入门

简述本文,意在以最小的篇幅,来帮助对大数据和Spark感兴趣的小伙伴,能尽快搭建一个可用的Spark开发环境.力求言简意赅.文章,不敢自称BMR的最佳实践,但绝对可以帮助初学者,迅速入门,能够专心于Spark本身的学习和实践.不服的童鞋,可以先自己折腾下BMR,再返回来读这篇文章O(∩_∩)O哈!创建 BMR 实例假定,你已经有了一个经过认证的百度开发者账号,就像系列第一篇文章讲的那样.什么?没有?

2016-09-02 13:02:48 1205

原创 使用Spark分析拉勾网招聘信息(二): 获取数据

要获取什么样的数据?我们要获取的数据,是指那些公开的,可以轻易地获取地数据.如果你有完整的数据集,肯定是极好的,但一般都很难通过还算正当的方式轻易获取.单就本系列文章要研究的实时招聘信息来讲,能获取最近一个月的相关信息,已是足矣.如何获取数据?爬虫,也是可以的,作为一个备选方案.但是,我注意到拉勾网本身的数据,是通过ajax请求更新的,所以批量获取变得更加简单.基于ajax请求来获取数据,方式有很多

2016-09-01 10:22:10 2028

原创 使用Spark分析拉勾网招聘信息(一):准备工作

本系列专属github地址:https://github.com/ios122/spark_lagou前言我觉得如果动笔,就应该努力地把要说的东西表达清楚.今后一段时间,尝试下系列博客文章.简单说,如果心里想表达想分享的,就适当规划组织下,使其相对自成体系,以便于感兴趣但可能刚好某个领域还不是很熟的人,也能很好地入手.系列文章,我会努力避免过于主观化的描述,同时吸取以往的经验,尽量给每个系列的文章都

2016-08-31 09:44:48 1117

原创 深度使用react-native的热更新能力,必须知道的一个shell命令

开篇之前,先讲一个自己开发中的一个小插曲:今天周日,iOS版 App 周一提交,周三审核通过上架,很给力.不过,中午11:30的时候,运营就反应某个页面有一个很明显的问题,页面没法拉到底部,部分信息显示不全;那个页面是基于react-native写的,项目中本身已经有了热更新的相关机制;原因很简单,13:00左右,解决问题,发了一个补丁,测试环境自测完毕;补丁发给Leader,他可以提交到线上;出去

2016-08-28 03:34:09 1034

原创 如果简单的记录,就可以为这个世界创造更多的财富,那么还有什么理由不去写博客呢? — 读<<黑客与画家>> 有感

我问大师,如何才能改变世界?大师说: 把你知道的,自认为有价值的东西都记下来,并保证他们可以被有同样需求的人很容易地检索到;剩下的,交给时间就好了!

2016-08-25 11:45:54 774

原创 AFNetworking 原作者都无法解决的问题: 如何使用ip直接访问https网站?

通过IP直接访问网站,可以解决DNS劫持问题.DNS劫持,可以通过修改电脑的host文件模拟.如果是HTTP请求,使用ip地址直接访问接口,配合header中Host字段带上原来的域名信息即可;如果是 https请求,会很麻烦,需要 Overriding TLS Chain Validation Correctly;curl 中有一个 -resolve 方法可以实现使用指定ip访问https网站,i

2016-01-25 02:16:55 8045

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除