唐巧的博客

唐巧的博客

记录下自己学习的点滴

在iOS开发中使用FMDB

前言

SQLite (http://www.sqlite.org/docs.html) 是一个轻量级的关系数据库。iOS SDK 很早就支持了 SQLite,在使用时,只需要加入 libsqlite3.dylib 依赖以及引入 sqlite3.h 头文件即可。但是,原生的 SQLite API 在使用上相当不友好,在使用时,非常不便。于是,开源社区中就出现了一系列将 SQLite API 进行封装的库,而 FMDB (https://github.com/ccgus/fmdb) 则是开源社区中的优秀者。

关于UIWebView的总结

前言

今天参加了 Adobe 和 CSDN 组织的一个关于 PhoneGap 的开发讲座 ,而 PhoneGap 在 iOS 设备上的实现就是通过 UIWebView 控件来展示 html 内容,并且与 native 代码进行交互的。

正好我们在做有道云笔记的 iPad 版,因为我们也是使用 UIWebView 来展示笔记内容,所以也需要做 js 与 native 代码相互调用的事情。所以在这儿顺便总结一下 UIWebView 在使用上的细节,以及谈谈我对 PhoneGap 的看法。

Xcode4 使用技巧

使用 xcode4 也有一段时间了,今天整理了一下 xcode4 的一些使用技巧,在这里分享给大家。

用Git进行协同开发

问题场景描述

常常会遇到这样的协同场景:后台的同事和前端的同事需要共同开发一个新功能,而他们的代码相互依赖,所以需要不停地更新各自的代码进行联调。

对于这种场景,最简单的方式就是,这 2 个同事坐到一起,然后把 svn 当作一个共享代码的中转站来共享开发中的代码。

在这种方式下,大家各自写自己的代码,提交到 svn 上,然后用 svn up 获得对方的代码。在调试问题的时候,大家可能不停地更新代码,然后让对方用 svn up 来更新。最终,虽然开发能够顺利进行,但是 svn 上会积累大量调试中的代码历史。所以,这样把 svn 当作代码中转站是一个很山寨的行为。

在开发 有道云笔记 新的 iPad 版 时,我和前端同事 zyc 尝试用 git 进行了协同开发。在这里把具体方案分享给大家,欢迎大家讨论。

使用GCD

什么是 GCD

Grand Central Dispatch (GCD) 是 Apple 开发的一个多核编程的解决方法。该方法在 Mac OS X 10.6 雪豹中首次推出,并随后被引入到了 iOS4.0 中。GCD 是一个替代诸如 NSThread, NSOperationQueue, NSInvocationOperation 等技术的很高效和强大的技术。

GCD 和 block 的配合使用,可以方便地进行多线程编程。

给iOS工程增加Daily Build

前言

Daily Build 是一件非常有意义的事情,也是敏捷开发中关于 “持续集成” 的一个实践。Daily Build 对于开发来说有如下好处:

  • 保证了每次 check in 的代码可用,不会造成整个工程编译失败。
  • 进度跟进。产品经理可以每天看到最新的开发进度,并且试用产品,调整一些细节。很多时候,一个新功能,你真正用了一下才能有体会好或不好,所以 daily build 也给产品经理更多时间来调理他的设计。
  • 需求确认。产品经理可以确认开发的功能细节是他的预期。因为我们的开发比较紧凑,所以都没有传统的需求说明文档,所以 daily build 也给产品经理用于尽早确认开发的功能细节是他的预期,我就遇到一次产品经理发现开发出的一个功能细节和他的预期不一致,但是因为有 daily build,使得我可以尽早做修改,把修改的代价减小了。
  • 测试跟进。如果功能点是独立的话,测试同事完全可以根据 daily build 来进行一些早期的测试。越早的 Bug 反馈可以使得修改 bug 所需的时间越短。
给NSString增加Java风格的方法

我实在受不了 NSString 冗长的方法调用了,每次写之前都要查文档。特别是那个去掉前后多余的空格的方法,长得离谱。与之对应的别的语言,拿 java 来说,对应的方法名叫 trim。拿 python 来说,对应的方法名叫 strip。但是 Objective-C 呢?是下面这段:

[self stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
象写程序一样写博客:搭建基于github的博客

2016.02.16 更新说明

本博客已经由 octopress 迁移到了 Hexo,本文章的内容稍显陈旧。

对 Hexo 感兴趣的可以参见:《从 Octopress 迁移到 Hexo》

前言

github 真是无所不能。其 Pages 功能 支持上传 html,并且在页面中显示。于是有好事者做了一个基于 github 的博客管理工具:octopress,基本原理是用 git 来管理你的文章,然后最终发布到 github 上成为一个独立博客站点。由于 github 支持 CNAME 域名指向,所以如果有独立域名的话,可以基于这些做出一个专业的博客站点出来。

本博客就是完全基于此搭建起来的,在使用了 2 个月之后,我将原系统根据中国人的需求做了一些配置,去掉了 GFW 会挡住的 google font api,以及替换掉了速度超慢的国外的评论系统,也加上了分享到国内的微博的功能。现在把这些都总结出来,希望大家都可以方便地搭建基于 github 的博客来。

斯坦福大学 iOS 开发公开课总结

前言

iPhone 开发相关的教程中最有名的,当数斯坦福大学发布的 “iPhone 开发公开课 “ 了。此公开课在以前叫做《iPhone 开发教程》,今年由于平板电脑的流行,所以也加入了 ipad 开发相关的课程。在 网易公开课 上,有 该教程 的 2010 年录象,并且前面 15 集带中文字幕文件,非常适合初学者学习。

使用 Git 来管理 Xcode 中的代码片段

代码片段介绍

xcode4 引入了一个新 feature: code snippets,在整个界面的右下角,可以通过快捷键:cmd + ctrl + opt + 2 调出来。code snippets 是一些代码的模版,对于一些常见的编程模式,xcode 都将这些代码抽象成模版放到 code snippet 中,使用的时候,只需要键入快捷键,就可以把模版的内容填到代码中。

avatar
唐巧
一个中年程序员,正在努力学习做业务