初识BeeFramework
由于近期的项目须要,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,不同版本号可能会有一些差别。
以往新建一个project一样新建了一个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的问题。
由于新建的project是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项目,project框架已经基本有了。
编译一下会发现项目有错误,提示Bee.h
引用找不到。由于还没有吧BeeFramework框架加入进来。
3.加入BeeFramework
在project中加入BeeFramework框架项目中的 framework
文件夹
4.批量加入`-fno-objc-arc`
由于BeeFramework是一个非RAC的框架,如今Xcode5.0以后新建的project。都默认是ARCproject,所以须要对BeeFramework进行混编处理。
framewor
k文件夹下的全部文件都须要在Build Phases中加入-fno-objc-arc
,可是文件非常多,一个个加入会比較麻烦。要么用command或shift。可是我们还有个小工具能够用。xproj
。
具体用法在github中有,或者能够參考上面提到的博客。
当然还能够通过CocoaPods来管理BeeFramework。
此时再次编译执行。就会发现没有错误了,可是界面上什么都没有。
下一步就是来写界面了。
新建xml文件,这个在Bee的模板里面有。
xml本人不是非常精通,先写这么多,我继续研究研究去。
~第一次用markdown写博客,格式还不是非常会处理。见谅。~
初识BeeFramework的更多相关文章
- Android动画效果之初识Property Animation(属性动画)
前言: 前面两篇介绍了Android的Tween Animation(补间动画) Android动画效果之Tween Animation(补间动画).Frame Animation(逐帧动画)Andr ...
- 初识Hadoop
第一部分: 初识Hadoop 一. 谁说大象不能跳舞 业务数据越来越多,用关系型数据库来存储和处理数据越来越感觉吃力,一个查询或者一个导出,要执行很长 ...
- python学习笔记(基础四:模块初识、pyc和PyCodeObject是什么)
一.模块初识(一) 模块,也叫库.库有标准库第三方库. 注意事项:文件名不能和导入的模块名相同 1. sys模块 import sys print(sys.path) #打印环境变量 print(sy ...
- 初识IOS,Label控件的应用。
初识IOS,Label控件的应用. // // ViewController.m // Gua.test // // Created by 郭美男 on 16/5/31. // Copyright © ...
- UI篇(初识君面)
我们的APP要想吸引用户,就要把UI(脸蛋)搞漂亮一点.毕竟好的外貌是增进人际关系的第一步,我们程序员看到一个APP时,第一眼就是看这个软件的功能,不去关心界面是否漂亮,看到好的程序会说"我 ...
- Python导出Excel为Lua/Json/Xml实例教程(一):初识Python
Python导出Excel为Lua/Json/Xml实例教程(一):初识Python 相关链接: Python导出Excel为Lua/Json/Xml实例教程(一):初识Python Python导出 ...
- 初识SpringMvc
初识SpringMvc springMvc简介:SpringMVC也叫Spring Web mvc,属于表现层的框架.Spring MVC是Spring框架的一部分,是在Spring3.0后发布的 s ...
- 初识redis数据类型
初识redis数据类型 1.String(字符串) string是redis最基本的类型,一个key对应一个value. string类型是二进制安全的.意思是redis的string可以包含任何数据 ...
- Redis初识、设计思想与一些学习资源推荐
一.Redis简介 1.什么是Redis Redis 是一个开源的使用ANSI C 语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value 数据库,并提供多种语言的API.从2010 年 ...
随机推荐
- POJ 1944
明天补上... 这道题的思路确实很精致.考虑到连的边肯定不会是一个环,所以至少有一个断点.于是,可以枚举这个断点.断点一确定,那么连边的走向也就确定了.用D[i]表示由i开始可以到达的最远点即可.对于 ...
- HBase读取代码
HBase读取代码 需要的jar包: activation-1.1.jar aopalliance-1.0.jar apacheds-i18n-2.0.0-M15.jar apacheds-kerbe ...
- 60款开源云应用【Part 3】(60 Open Source Apps You Can Use in the Cloud)
60款开源云应用[Part 3](60 Open Source Apps You Can Use in the Cloud) 本篇翻译自http://www.datamation.com/open-s ...
- ios Button
展现效果例如以下: 功能说明: 1加入来图片背景, 2动态展现百度网页, 3动态加入button. 4展现提示框.展现你点击提示框得index 我成功来你也快来试试. 1 详细得项目创建与拖动but ...
- SSD纠错码向LDPC码演变
作者:Stephen Bates SSD控制器芯片中採用的纠错编码(ECCs)的类型正在发生一场演变.相信很多这篇博文的读者对此都有所了解.传统上採用的纠错码是基于群变换的博斯-查德胡里-霍昆格母(B ...
- [HDU 5542] The Battle of Chibi
[题目链接] http://acm.hdu.edu.cn/showproblem.php?pid=5542 [算法] 树状数组优化DP [代码] #include<bits/stdc++.h&g ...
- Java-MyBatis:MyBatis 中 in 的用法
ylbtech-Java-MyBatis-杂项:MyBatis 中 in 的用法 1.返回顶部 1. foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合.foreach元 ...
- java格式化时间到毫秒
转自:https://blog.csdn.net/iplayvs2008/article/details/41910835 java格式化时间到毫秒: SimpleDateFormat formatt ...
- Java 系列之spring学习--springmvc注解参数传递(六)
一.绑定参数注解如下 @RequestParam 绑定单个请求数据,既可以是URL中的参数,也可以是表单提交的参数或上传的文件. 它有三个属性: value 用于设置参数名. defa ...
- vc6中关于“新建”
1.windows api 编程:新建→工程→Win32 Application→一个空工程→新建→文件→C++ Source File2.windows mfc 编程:新建→工程→MFC AppWi ...