初识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进行混编处理。
framework文件夹下的全部文件都须要在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 年 ...
随机推荐
- 火狐浏览器中加入httprequest的方法
今天弄了非常久就才装好. 以下的样例是以 window为样例的,mac的也是这样, 下载好火狐之后点击右上角的菜单 想到httprequest是个插件,就点击附加组件 搜索出来之后找到httprequ ...
- 基于nginx的TCP Proxy实现数据库读写分离
nginx非常早就支持tcp proxy.可是一直不知道其使用,近期在nginx blog上看见了.一些实践者将其运用到数据库訪问的负载均衡以及实现读写分离,来提高数据库的吞吐量,这里我不会讲详细的搭 ...
- insmod hello.ko -1 Invalid module format最简单的解决的方法
在下也是从网上搜索到的这样的解决的方法. 遇到这样的情况后,通过dmesg看一下内核日志. 假设发现有例如以下日志.那就好办了. hello: version magic '2.6.33.3 ' sh ...
- hdu5592/BestCoder Round #65 树状数组寻找第K大
ZYB's Premutation Memory Limit: 131072/131072 K (Java/Others) 问题描述 ZYBZYB有一个排列PP,但他只记得PP中每个前缀区间的逆 ...
- kentico中提示Message: An invalid SQL query was used.
在调用CMSAbstractWebPart类的GetValue方法的时候出错. namespace CMS.PortalEngine.Web.UI{ /// <summary> /// B ...
- Swift - 判断是否有某功能访问权限,没有则提示,并自动跳转到设置页
由于 iOS 系统的安全限制,App 如果需要访问设备的通讯录.麦克风. 相册. 相机.地理位置等时,需要请求用户是否允许访问. 有时用户不小心点了“不允许”,后面可能就不知道要去哪里再开启这个权 ...
- Spyder调试快捷键
Ctrl+1: 注释.取消注释 Ctrl+4/5: 块注释 / 取消块注释 F12: 断点 / 取消断点 F5: 运行 Ctrl+F5: 启动调试 Ctrl+F10: 单步调试,跳过函数内部实现 ...
- Oracle数据库三种标准的备份方法
Oracle数据库的三种标准的备份方法: 1.导出/导入(EXP/IMP). 2.热备份. 3.冷备份. 注释:导出备件是一种逻辑备份,冷备份和热备份是物理备份. 一.导出/导入(Export/Imp ...
- Java-MyBatis:MyBatis 3 | SQL 语句构建器类
ylbtech-Java-MyBatis:MyBatis 3 | SQL 语句构建器类 1.返回顶部 1. SQL语句构建器类 问题 Java程序员面对的最痛苦的事情之一就是在Java代码中嵌入SQL ...
- 使用cxf3.0.4搭建webservice服务需要的最精简jar包
转自:https://blog.csdn.net/w1014074794/article/details/47862163 下面是测试结果,只列出报错了的测试: 1.org.apache.catali ...