很高兴Leanote IOS端上架了, 而且是一次提交就审核通过了, 之前有查审核流程, 有的要半个多月, 但Leanote IOS从提交到通过刚好用了一周时间.
开发Leanote IOS差不多用了3个月, 用下班和周末的时间开发, 中间会有一些坎, 但都跨过去了. 很开心. 简单记录下开发的过程.
正式开发之前, 用了React-native, 这个Facebook的开源项目号称用Js开发IOS, 我很喜欢, 因为我喜欢Js啊. 恰好一个朋友这时用RN为Leanote开发了(https://github.com/leanote/leanote-ios-rn), 前期他开发, 然后我参与, RN还是很好用, 但是在数据库存储方面太弱, 后来果然放弃了, 于是就用原生OBJC来开发.
于是乎, 先学Object-c, 为什么不用Swift, 我是怕现有的资料, 类库还不多, 怕遇到什么问题不能Google. Objc这个语言我感觉没什么好学的, 其实知道它的奇怪的方法调用方式就算入门了, 其它的语言特性就边用边Google吧.
于是, 上网找IOS简单例子, 直接看源码, 不懂就Google.
要完成Leanote IOS这个APP, 只要知道以下就行了:
- TabViewCtronller, 知道怎么用Storyboard建tabview
- TableViewController, IOS最常用的数据列表显示
- SearchBar, SearchDisplayController, 配合TabView来搜索数据
- Core data 数据存储, 超级好用, 还有NSFetchedResultsController, 配合使用实时显示数据, 相当于View与Model绑定, 很赞 (就这一点, 我就果然不用React-native了)
- WebView. Leanote IOS两款编辑器其实都是WebView, 所以webView很重要
- AFNetworking 调用Leanote API
当然, 只知道还是不行, 中间也遇到了很多困难, 包括中途停了一段时间, 但都过去. 贵在坚持, 一点点积累.
Leanote IOS开发中参考了大量的WordPress IOS源码:
- https://github.com/wordpress-mobile/WordPress-iOS
- https://github.com/wordpress-mobile/WordPress-Editor-iOS 富文本编辑器, 我在此基础上作了修改并加了Markdown编辑器
- https://github.com/wordpress-mobile/MediaPicker-iOS 拍照&照片选择
虽然从零开发了Leanote IOS并上架, 但我对IOS的开发还是在表面, 因为我搜索IOS笔试面试题目, 基本上都不会做, 基础太弱, 还要踏踏实实的把基础学好. 比如@dynamic, @synthesize, @property, @...