通过NSUbiquitousKeyValueStore实现数据的跨设备缓存

因为搬瓦工App需要缓存的数据量很小,所以使用UserDefaults来缓存数据。昨天在TG群里有用户提出能否实现iCloud跨设备的数据同步,这在有多个设备时非常有必要。于是花了点时间研究了一下iCloud相关的API,结果发现实现难度比我想象...

以Web Server的方式分享本地文件

偶尔会需要将本地文件临时分享给其他人,建个 FTP 显得有点小题大作,而 Web Server 会是更方便且轻量级的方案。

最简单的方式为UITableView添加empty view

在 UITableView 或 UICollectionView 列表数据为空时,我们一般会显示一些提示信息,姑且称它为 Empty View,这已经是很通用的做法了,但其实并没有通用的实现方式,至少 Apple 没有提供。在以前的项目中,我都是...

以Closure的方式优雅地为UIControl addTarget

习惯了ES6的闭包,回到Swift下发现为UIButton手动添加一个点击事件,实在是太ugly,你得先定义一个方法(selector),然后用OC时代的方式去call,最不方便的是传参数,尤其是你想使用本地变量的时候。

React Native版本号管理

经过近两个月的学习和开发,第一个用React Native开发的App已经上线了,一次搞定两个端的感觉真好,我以后自己的项目应该会首选React Native来做了。其实还有一个让我比较难受的是版本号不好管理,在package.json里有一个j...

React Native的国际化

最近在玩React Native,一套代码在多个平台使用确实很爽,而当App做大以后国际化是不可避免的一个问题。趁着元旦假期有空研究了一下,虽然没有Android(不是iOS)上那么方便,但也不算太麻烦。

2017年终回顾

今天朋友圈被『18岁的照片』刷屏,原来最小的90后(1999-12-30)都18岁了,也在提醒我而立的第一年已经结束,有必要回望一下过去的2017年了。

将iOS付费App转换成免费加内购模式的最佳实践

前段时间上线我的第一个收费App——瓦工助手,虽然有下载,但一天一两个的下载量实在是有点太少。于是打算把付费下载改成付费加应用内购买的模式,看看下载量和收益是否有提升。下面记录一下将收费改成免费加内购的最佳实现方式。