残酷的移动互联网竞争环境下,HTML5技术一直受到各方关注,“HTML5颠覆原生App”的争论也从未停止过,不管怎样HTML5生态的构建方兴未艾。不过对于移动开发者来说更关心的问题是如何低成本、周期短开发出体验效果好的App,所以当下用HTML5远比赌HTML5更现实。于是,一个一直被提及但是从没有占据过统治地位的概念又一次走进了移动开发者们的视野,那就是跨平台开发。
AD:WOT2015互联网运维与开发者大会热销抢票
目前国内外已经有很多基于HTML5的跨平台开发工具,你并不需要任何的原生应用编程经验,你只需要一些HTML的相关知识,懂一些CSS和JavaScript,运用工具中所提供的各种丰富的功能模块,便可在很短时间内完成App的开发而且让你的App具备完美的原生体验。
推荐几款跨平台工具
1、Appcelerator
Appcelerator的Titanium开发平台使开发者可以通过HTML、PHP、JavaScript、Ruby、Python等Web编程语言开发手机、平板和桌面的原生App。其优势在于它可以让用户轻松地访问超过300个API以及定位信息。
此外,Appcelerator提供针对特定行为或事件定制的统计。App的数据既可储存在云端,也可储存在设备上。
2、APICloud
APICloud是一款“云端一体”的移动开发平台,信仰“云端一体”的理念,重新定义了移动应用开发。APICloud为开发者从“云”和“端”两个方向提供API,简化移动应用开发技术,让移动应用的开发周期从一个月缩短到7天。APICloud由“云API”和“端API”两部分组成,可以帮助开发者快速实现移动应用的开发、测试、发布、管理和运营的全生命周期管理。
2、PhoneGap
PhoneGap是一个免费且开源的开发环境,使开发者可以开发出在Android、Palm、黑莓、iPhone、iTouch及iPad等设备上运行的App。其使用的是HTML和JavaScript等标准的Web开发语言。开发者使用PhoneGap进行开发,可调用加速计、GPS/定位、照相机、声音等功能。
PhoneGap还提供Adobe AIR App以及在线的培训课程,帮助开发者了解原生API并在他们自己的平台上开发移动App。
4、NativeScript
NativeScript是使用移动平台的JavaScript引擎来进行跨平台开发。逻辑部分自然无需多说,关键在于如何使用平台特性。NativeScript是通过反射得到所有平台API,预编译它们,然后将这些API注入到JavaScript运行环境,接下来在Javascript调用后拦截这个调用,并运行native代码。NativeScript是使用大量web开发的技巧来进行app开发,因为工具链和语言都非常熟悉受到了很多前端开发者的欢迎。
5、Kinvey
Kinvey同样是一个为移动应用开发者提供后台创建服务的平台。Kinvey强调加速移动应用开发与销售的“即取即用”理念。Kinvey的中间层与数据层均托管在多个云服务提供商处,包括Rackspace、Amazon与Microsoft。所有通过Kinvey存储的数据都会有四种方式备份:Amazon EC2、Windows Azure、Rackspace以及Kinvey自己的服务器,假如其中一两个出现了故障,用户的数据依然安然无恙。
总结:
关于HTML5和原生App的争论一直在继续,不论最后谁能取胜,开发者更关心App的开发速度和最终体验。合理的使用工具会让开发效率大大提升,甚至达到事半功倍的效果,希望能有一款适合您。
期待未来有一天,App开发可以像在纸上画画一样简单。
声明:IT之家网站刊登/转载此文出于传递更多信息之目的,并不意味着赞同其观点或论证其描述。
pp Builder能帮助不会编程的用户开发HTML5以及混合模式移动应用,这主要归功于它那拖拽式可视化操作环境。
程序的设计理念,是为了让不太了解编程知识的用户也能轻松创建应用程序。但是,使用Javascript语言的高级开发者也能从中受益。App Builder集成了Apache Cordova,并能够生成适用于Android、iOS、Windows 10等操作平台的应用程序。
App Builder提供了每一个操作和动作的参考资料以及若干个教程,并且还配备了视频说明,强烈推荐给所有想要加入程序开发事业的用户。
App Builder是一款非常有趣的应用程序,有了它,不懂编程的用户也能创建手机应用。创建一款应用程序,耐心和努力必不可少,好在App Builder的操作界面便捷舒适,让我们在前进的道路上少了一些挣扎。
下载地址:http://www.itbang.top/forum.php?mod=viewthread&tid=7&extra=
官网地址:http://www.itbang.top
上周分享的“企业移动化诉求与开发者之间的矛盾”一文中,与大家分享了跨平台技术的解决之道,而本文将进一步介绍跨平台技术的分类,并深度揭示APICloud混合开发技术的技术原理。
快速阅读:怎么办?企业移动化诉求与开发者之间的矛盾能调和吗
跨平台技术的分类
目前跨平台技术领域分为两个发展方向:
第一个是HTML5 + Native混合方向;
第二个是中间语言编译方向,其中APICloud和小程序都属于前者。
HTML5 + Native混合,也就是我们通常所说的混合开发。
这种模式的开发主体是HTML5,但整个app的架构是Native架构:通过HTML5快速实现app的UI布局、产品业务逻辑,在开发过程中涉及HTML5无法实现或者体验不好的功能,则借助Native模块来实现。
混合开发在保证app渲染效率和用户体验的同时,能够降低app开发成本和复杂度,提高app开发效率。
中间语言编译方向,代表产品为React Native(RN),Xamarin以及Google刚刚发布的Flutter。
如何理解中间语言编译?
以RN为例,传统的app开发,要求开发者使用Android和iOS原生技术-Java、Object-C、C/C++等进行开发,而RN的开发过程则要求开发者使用JS进行编码输出app,但在app执行过程中,JS又映射回到安卓和iOS原生层面执行。借助JS快速实现编码,翻译为原生代码执行,这就是中间语言编译方向。
Xamarin则要求使用微软自己的语言C#,对于大部分开发者而言,C#的学习成本比较高且Xamarin需要付费使用,因此它目前在国内应用比较少。Flutter的开发语言为Dart,它是谷歌发明的编程语言,这个语言很有趣,它的语法类似于C语言,又将JS和Java的一些设计思想以及语法规则融合了进去。Dart语言在此前应用比较少,可参考的资料不多,开发者上手需要一个过程。
Html5到跨平台app应用
每一项新兴技术的出现和流行,都是为了规模化的去统一解决一系列复杂问题,APICloud选择混合开发方向,目的是希望借助HTML5降低app开发复杂度,提高app开发效率。
通过工程化的实践手段,我们首先设计了一个app开发引擎。简单的向大家介绍一下这个引擎的架构:
整个引擎基于Android和iOS系统的原生技术架构
最上层为app应用层,涉及到业务以及功能相关的部分,要求开发者使用HTML + CSS进行UI布局和渲染,功能和业务逻辑则通过JS实现,这是app开发者直接参与的地方。
第二层则是API层,API层核心的功能是桥接和管理,负责JS与Java,JS与Object-C之间的通讯,管理API的分发,以及一些JS-Framework的加载和执行。
引擎与模块的API通过这里向开发者开放
接下来是引擎,引擎主要负责应用的消息命令管理、事件管理、模块管理、以及UI渲染。
我们通过将Android和iOS系统的原生窗口机制抽象出来,再模拟原生的方式实现了一个新的窗口系统,由Widget/Window/Frame/UI Model构成,形成混合渲染能力,使得app性能和体验接近原生。
引擎通过开放模块机制,支持动态载入模块,丰富和增强app功能,满足各式各样的需求。
最底下则是OS层,OS层中主要涉及Android和iOS系统之间一些不同的特性,是我们要花大量时间精力进行适配和抽象的地方。
除此之外,一个app还应当具备符合Android和iOS原生app的生命周期特性,例如:如何启动,启动流程以及生命周期事件分发等。
以下是app开发引擎对app生命周期管理的主要处理流程。
引擎触发app的生命周期同原生app一致,触发点来自用户
用户点击桌面的某个图标,或者点击手机状态栏的某个通知,系统会将这个事件分发到对应的app,引擎在收到这个事件后开始初始化。
初始化的过程为:原生窗口系统初始化,展示启动页->HTML5运行环境初始化->加载模块运行环境->事件及消息队列管理初始化->根窗口开始渲染,之后开始加载HTML5页面,这个HTML5页面是整个app的入口。
App启动完毕后进入等待状态,由用户的点击等事件驱动打开新的窗口,加载新的模块,UI更新等。
通过app开发引擎,初步达到了使用HTML5 + Native混合开发,提高开发效率的目的,然而实践过程远比想象的要复杂,为此APICloud在专产品层面付出了非凡的努力。
在浩瀚的人类文明中,得益于计算机的迅速发展和技术的广泛应用,拉开了第三次工业革命的新篇章,与此同时信息技术成为拉动经济的重要增长点。
在移动互联网时代,app开发技术无疑是行业发展的重要驱动力,企业对于产品快速落地与灵活迭代的迫切需求,则使跨平台开发技术广泛应用;而APICloud通过拥有核心知识产权的混合app开发技术,进一步帮助企业快速实现移动互联网布局,并以生态之力为开发者提供全面的技术服务。
*请认真填写需求信息,我们会在24小时内与您取得联系。