由于最近的项目需要,Hybrid开发成为我开始学习的新知识。很早之前就了解到两个开发框架--BeeFramework 和 Samurai,但是由于本人一直没有闲暇去研究,所以就一直搁置一旁了,最近才开始进行深入的学习,但其实也就是入个门而已。 我是个纯OC开发者,之前对XML和CSS并没有什么基础,在此就简单总结一下我初学Bee遇到的困难和问题吧。日后可以用来回顾,或者让其他想要学习的人也有所参考。 为什么会选择用Bee而不用Samurai呢?其实不是因为Bee比Samurai强大,论强大和“新”来说,Samurai应该是比Bee要更优的。我选择Bee的理由是因为当前项目需要用到,而Bee已经更新了很久,基本稳定了,而Samurai还在成长,为了避免因为它的更新给我带来更多的麻烦,所以我决定先用Bee,以后也会去学习使用Samurai。说的有点啰嗦了。言归正传。
Bee: https://github.com/gavinkwoe/BeeFramework
Samurai:https://github.com/hackers-painters/samurai-native
BeeFramework 简介
github:BeeFramework is a semi-hybrid framework that allows you to create mobile apps using Objective-C and XML/CSS for the iPhone and iPad and more, created and maintained by Gavin.Kwoe and QFish.
BeeFramework
是一个iOS应用开发框架,由国内开发者郭虹宇创立并且在Github上开源。经过一年多的发展,BeeFramework在Github上,得到了广泛关注,有1000多的star数和400多的fork数。BeeFramework是一个
semi-hybrid
(半混合)框架,运用XML、CSS、Objective-C构建iOS应用,基于MVC,并且适用于大型App的开发,已经有诸如QQ空间、屈臣氏中国等相当成熟的产品。Bee的详细说明文档在项目的
document
目录下–developer_manual
- 新建Bee项目
第一次尝试
我使用的BeeFramework版本是0.6.0,不同版本可能会有一些区别。
以往新建一个工程一样新建了一个Bee的Demo,并导入了framework
文件夹和services
文件夹,编译发现#import <libxml/tree.h>
报错,错误原因是:'libxml/tree.h' file not found
。这个问题其实很好解决,到网上搜一下就会得到答案,在Xcode4.2之后,可以在添加了libxml2.dylb
之后,点击左上角的project,然后进行Build Settings(这里不管是Project还是targets都行),找到Search Paths选项卡,其下有Header Search Paths条目,双击debug选项,添加/usr/include/libxml2
就行了。然而这个问题解决了以后就会出现ARC的问题。
因为新建的工程是ARC的,而Bee的文件是MRC的。我做了这个操作,把所有文件都加上了
-fno-objc-arc
但是又出现了新的问题。
到这里我没有继续,因为这种方式实在是太繁琐了,我认为这应该不是正确的做法,当然也在交流群中咨询过高手、大神们,总之这个做法我放弃了。后来我看了一篇博客,也主要是这篇博客解决了我的问题。之前 别人给的意见没有听懂的也在这个博客中得到了答案。
博客地址:http://syxiaqj.github.io/2014/02/28/bee-learning-1/#0-tsina-1-24637-397232819ff9a47a7b7e80a40613cfe1 作者:浪花一朵朵
第二次尝试
参照博客内容,我做了准备工作:
1.下载BeeFramework
2.下载Bee项目模板:Bee-Xcode-Template-master
3.下载工具:xproj
(作者QFish),用来批量进行ARC、非ARC混编的shell脚本。
然后开始新建项目
1.安装Bee项目模板 解压Bee-Xcode-Template-master,终端cd到该目录,执行以下命令
sh install.sh
2.新建Bee项目
运用模板新建的Bee项目,工程框架已经基本有了。
编译一下会发现项目有错误,提示Bee.h
引用找不到,因为还没有吧BeeFramework框架添加进来。
3.添加BeeFramework
在工程中添加BeeFramework框架项目中的 framework
文件夹
4.批量添加`-fno-objc-arc`
因为BeeFramework是一个非RAC的框架,现在Xcode5.0以后新建的工程,都默认是ARC工程,所以需要对BeeFramework进行混编处理。
framewor
k目录下的所有文件都需要在Build Phases中添加-fno-objc-arc
,但是文件非常多,一个个添加会比较麻烦。要么用command或shift,但是我们还有个小工具可以用,xproj
。
具体使用方法在github中有,或者可以参考上面提到的博客。
当然还可以通过CocoaPods来管理BeeFramework。
此时再次编译运行,就会发现没有错误了,但是界面上什么都没有。
下一步就是来写界面了。新建xml文件,这个在Bee的模板里面有。xml本人不是很精通,先写这么多,我继续研究研究去。
~第一次用markdown写博客,格式还不是很会处理,见谅。~