初识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 年 ...
随机推荐
- POJ 3613
可以利用DP的思想来做,不过是在DP时加上了矩阵乘法的思想而已,但乘法不是真的乘法,而是mp[a][i]+mp[i][b]<mp[a][b]则更新,其实更像FLOYD. 但这是符合乘法的格式的. ...
- Cocos2d-x碰撞检測
假设不适用Box2D物理引擎.那么要进行Cocos2d-x的碰撞检測那我们的方法往往就是进行"矩形和点"."矩形和矩形"这样粗略的碰撞检測.我们一般採取开启sc ...
- android setCookie 免登录
CookieSyncManager.createInstance(getActivity()); CookieManager cookieManager = CookieManager.getInst ...
- Oracle 用户管理(一)
1 创建用户 create user @username identified by @password 比如:create user aobama identified by ...
- C语言:一个涉及指针函数返回值与printf乱码、内存堆栈的经典案例
一个奇怪的C语言问题,涉及到指针.数组.堆栈.以及printf.以下实现: 整数向字符串的转换,返回字符串指针,并在main函数中调用printf显示. #include<stdio.h> ...
- Chrome插件开发新手教程
近期在用百词斩这个站点来学单词,感觉非常不错,就是在回想单词列表的时候仅仅有单词和意思.却没有读音.感觉非常不方便,思来思去,想到了Chrome插件能够胜任这个工作.于是小小的研究了一下. Chrom ...
- DB-MySQL:MySQL 临时表
ylbtech-DB-MySQL:MySQL 临时表 1.返回顶部 1. MySQL 临时表 MySQL 临时表在我们需要保存一些临时数据时是非常有用的.临时表只在当前连接可见,当关闭连接时,Mysq ...
- MyEclipse 安装svn 插件步骤详情
方法一:在线安装 打开HELP- > MyEclipse Configuration Center.切换到SoftWare标签页. 点击Add Site 打开对话框,在对话框Name输入Svn, ...
- linux中openssl生成证书和自签证书
1.首先要生成服务器端的私钥(key文件): 命令: openssl genrsa -des3 -out server.key 1024 运行时会提示输入密码,此密码用于加密key文件(参数des3便 ...
- 【转】在IIS上部署你的ASP.NET Core项目
概述 与ASP.NET时代不同,ASP.NET Core不再是由IIS工作进程(w3wp.exe)托管,而是使用自托管Web服务器(Kestrel)运行,IIS则是作为反向代理的角色转发请求到Kest ...