如此繁荣的移动webapp开发市场:总结当下的一些移动web开发套件
写在前面:
因为移动市场的盛行带动了移动社交、移动购物、手游、智能化硬件等多个新兴领域。智能终端硬件水平越来越高,运行其上的web浏览器能力也越来越强,加上HTML5\JS\CSS的蓬勃发展,Web已经能够展现出非常不错的体验。但是单纯浏览器中的web还是不能代替本地原生应用,因为通用浏览器还不能方便地调用移动设备的本地资源例如硬件设备、本地文件。后来就有人想到了,为啥不能自己做一个可以让web方便访问本地资源的专用浏览器呢?这就有了现在移动Web应用开发套件了。这里面涉及两个东西:
1.运行框架:上面说的专门的浏览器,其实也可以理解为一个跑JS\HTML5\CSS的虚拟机。我们写的web代码可以在虚拟机上运行,并且这个虚拟机定义了通过JS\HTML5\CSS来访问智能终端本地资源的API。如果把这个虚拟机与web代码合并打包并发布,就可以生产一个原生应用了。
2.UI框架:HTML5\JS\CSS组合的UI框架。单纯JS\HTML5\CSS如果自己写漂亮的UI还是很费力的,你得定义很多CSS,制作很多素材图片。其实普通web已经有了一些js库或者叫框架,如:EXTJS、JQuery等。。。那么移动端有吗?有的!最出名的例如JQuery Mobile。
但是,在web领域,很多项目都是开源的,所以思路一通之后,好多类似的项目涌现出来。那笔者现在就来总结一些,市面上看上去比较火,或者商家不停炒作的一些开发套件吧。
阅读前的约定:笔者暂且将运行Web代码的虚拟机或者将web代码能够部署到智能终端的开发套件为,运行框架。将用于移动Web应用开发的JS/HTML5/JS开发框架,UI框架。
一、PhoneGap及cordova
1.官方网站:http://www.phonegap.com/
2.性质:运行框架,几乎全兼容
3.说明:这应该是移动Web应用的先行者之一了。原来是一个小公司开发的框架,其当时出来的目的是为了跨平台,原因是当时的智能终端有着百花齐放的状态(有兴趣可以读笔者另一篇博文讲得当年N个移动操作系统的)。如果应用开发者想在那么多平台上都开发原生应用,是一件非常苦逼的事情。当时的这个框架的作者就是想到为啥不能用web开发应用呢。就有了最初的PhoneGap,后来这个公司被Adobe公司收购了,可见其前景很高。Adobe将PhoneGap核心代码提炼出来,贡献于Apache,取名 cordova。而PhoneGap用于Adobe自己的商业项目提供一一些增值服务,例如,在Dreamweaver编写基于phonegap的webapp代码然后直接在DW上PhoneGapBuilder服务,在Adobe的云端自己帮你把代码封装成移动平台的原生安装包。
4.授权:Cordava是完全开源的基于apache开源许可协议下,而PhoneGap就是商业版本的了。
二、Sencha Touch
1.官方网站:https://www.sencha.com/
2.性质:UI框架
3.说明:这个是大名鼎鼎的ExtJs的移动版。最新的版本可能将 移动版与标准版合并。代码大而全,属于重量级UI库。ExtJs这个项目源头也很有意思,原来只是YahooMail的一个JS UI库,后来作者在其基础上扩展并最终形成了现在ExtJs,一个非常庞大的JS UI库。因为这个是UI库,所以你可以将其应用于普通移动Web上,也会给你的网页增色很多。
4.授权:sencha的授权有商业有开源,如果直接用他的js库基本是不收钱的,但是如果你想要用他的开发套件例如所见即所得的UI绘制套件就需要收费了。
三、JQuery Mobile
1.官方网站:http://jquerymobile.com/
2.性质:UI框架
3.说明:这个大名鼎鼎的JQuery的移动版本。跟JQuery一样是一个轻量级的JS库,一样使用HTML5+CSS+JS的技术。应为轻量级,所以在web加载时比Sencha有一点优势。缺点显而易见,UI控件太少了。因为JQuery Mobile 太普及了,也有很多第三方的扩展控件库例如JQuery Mobile Touch。比较有意思的是Sencha Touch 也融合了JQuery Mobile Touch。
4.授权:完全开源,放心使用
四、Titanium
1.官方网站:http://www.appcelerator.com/
2.性质:运行框架
3.说明:这个框架其实并不能完全是基于Web形式的框架,原因刚开始它主要目的有点类似Node.js就是以JS为主要开发语言,支持HTML5的UI,程序自动封装为JS。最终框架把JS代码翻译为原生代码能够执行的代码。甚至JS代码可以直接调用原生ObjectC,后来适应潮流,Titanium在后续版本中陆续增加对于Web特性的支持,让其越来越像PhoneGap了。
4.授权:基本的使用时不要钱的,但是要使用SDK里面的高级功能,还有官方的开发套件都是要钱的哦
五、DCloud(国产)
1.官方网站:http://dcloud.io/
2.性质:运行框架+UI框架
3.说明:这个DCloud,使用的运行框架的标准叫HTML5+是这个公司自己助推的标准,而对应的运行框架叫HTML5+runtime。另外还提供一个UI框架叫MUI。另外该公司还发布了针对HTML5+\MUI的Web开发套件HBuilder(笔者有一篇简单介绍词IDE的文章)。这个HBuilder确实是一个亮点,可以一个很不错的Web Js 编码环境,语法高亮提示、代码导航等很不错。算上一个比较有良心的国产JS开发环境了。虽然我还没有用HTML5+跟MUI,但是光Hbuilder这一个产品就令我对其大有好感。
4.授权:目前所有项目都是开源的,随便用。
六、WeX5(国产)
1.官方网站:http://wex5.com/cn/wex5/
2.性质:UI框架 基于PhoneGap,集成自己的前段UI框架
3.说明:国产目前涌现了很多基于PhoneGap框架的一些套件,他们基本都是提供一整套解决方便,例如现成的皮肤,现成的前后台程序,当然你也可以基于现有的东西修改一些。可以一起搞定微信、原生应用、移动Web.这类套件的操作思维让我感觉感性Discuz的思路。所以笔者拿出一个说明一下,其他类似,我就不说了。
4.授权:完全开源,当然他也有商业版本的。叫BeX5.
七、APIClond(国产)
1.官方网站:http://www.apicloud.com
2.性质:UI框架+运行框架+集成服务器端
3.说明:这个国产项目比WeX5这类项目还智能化,你甚至不需要有服务器,完全用APIClond的存储、数据库、web服务器等等服务器应用,他们称之为云,然后你开发的服务器应用被部署到APIClond的服务器上(当然她调用服务器点有严格的API接口),你本地web代码通过服务器端部署打包成原生安装包,也就是所谓的云编译。噱头十足啊。确实对于一些想快速开发应用的小企业,还是满方便的。
4.授权:简单实用不要钱,但是要足够的云资源例如数据库,云存储空间,那就是要收费了
另外其实除了web形式的跨平台移动应用解决方案外,还有一些其他的解决方式。例如.net的方式
号外:xamarin
1.官方网站:https://xamarin.com
2.性质:运行框架+UI框架 (基于独立的C#语言)
3.说明:mono是.net的开源项目,后来mono的所有公司Novell被收购后,mono项目好似不行了。听说其中的一些成员出来组成公司xamarin继续mono的使命。xamarin的原理就是让C#代码直接在各种智能终端上执行。目前ios跟Android没有太大问题。其实这类解决方案的思路跟移动web类似,只是开发语言换了对应的运行框架也要换一下。但是好处是对于熟悉原有C#的语言的工作者不需要再熟悉其他的语言就能开发相应的移动应用,再者对于C#这类成熟的编译型高级语言,其编译器的效率应该是高于JS这类解释性语言的。
4。授权:目前收费,可破解
如此繁荣的移动webapp开发市场:总结当下的一些移动web开发套件的更多相关文章
- [Java Web整合开发王者归来·刘京华] 2、 Java Web开发概述
1.Web相关概念 1-1.胖客户与瘦客户 >_<" RCP的定义及优缺点: >_<"TCP的定义及优缺点: 1-2.B ...
- [Java Web整合开发王者归来·刘京华] 1、 Java Web开发
目录: 1.Web技术简介 2.动态网站与静态网站 3.Java Web开发模式 4.JavaScript简介 1.Web技术简介 PS: 最近还有更凶残的技术,即整个操作系统都是基于Web的,如 ...
- 减少存储过程封装业务逻辑-web开发与传统软件开发的思维模式不同
本篇文章讨论并不是:不要使用存储过程,因为有些事情还是要存储过程来完成,不可能不用.而是关于:"业务逻辑是不是要封装在存储过程中实现,这样子php.java等就是调用存储过程". ...
- [翻译]Web开发牛人访谈:你们都在用什么?
小肥鱼译注:早上看到这篇文章,觉得内容甚是有趣.作者跟web开发方面的诸多大牛进行了交流,了解到他们的研究动向,从访谈中可以看到各种风格的开发者,有浏览器控,有设备控.我想,知道行业里的优秀成员在做些 ...
- java web 开发三剑客 -------电子书
Internet,人们通常称为因特网,是当今世界上覆盖面最大和应用最广泛的网络.根据英语构词法,Internet是Inter + net,Inter-作为前缀在英语中表示“在一起,交互”,由此可知In ...
- Web 开发中应用 HTML5 技术的10个实例教程
HTML5 作为下一代网站开发技术,无论你是一个 Web 开发人员或者想探索新的平台的游戏开发者,都值得去研究.借助尖端功能,技术和 API,HTML5 允许你创建响应性.创新性.互动性以及令人惊叹的 ...
- 在 2017 年将会更加流行的 6 个 Web 开发趋势
2016即将过去,2017就要来临. 前阵子看到很多对2016前端领域的总结,也是有人欢喜有人忧啊. 转发了这一篇2017web的发展趋势.那么到底会是怎么样的一个发展趋势的,只好拭目以待了. 201 ...
- 勤拂拭软件 java web 开发教程(1) - 开发环境搭建
勤拂拭软件系列教程 之 Java Web开发之旅(1) Java Web开发环境搭建 1 前言 工作过程中,遇到不少朋友想要学习jsp开发,然而第一步都迈不出,连一个基本的环境都没有,试问,如何能够继 ...
- SSH学习之路(一).Net开发与Java Web开发
摘要:一直再使用.net mvc5开发,期间学习过java web相关的知识,现如今想要进阶一下便开始学习ssh框架. 1..net web开发 对于微软的东西,开发者考虑的东西不需要太多,你新建一个 ...
随机推荐
- 释放linux端口
感谢作者的共享,在此表示感谢 有时候关闭软件后,后台进程死掉,导致端口被占用.下面以TOMCAT端口8060被占用为例,列出详细解决过程. 解决方法: 1.查找被占用的端口 netstat -tln ...
- BUG~JS
2017-11-06 1.没想到啊,这么久了,居然会有这种错误.canvas绘制图片,图片路径出错.drawImage() 解决方法:测试各参数,不单单是要打印出来,还要注意打印的参数是否为有效值
- python-单链表的实现
#!/usr/bin/python class Node(object): def __init__(self,value,next=None): self.value,self.next=value ...
- Velocity初始化过程解析
velocity就是由template,engine,context组成. 1.首先创建一个template(如果是用在web上就是一个html文件),将需要参数化或实例化的地方用跟context有关 ...
- Java 中 String 的常用方法(一)
上一篇介绍了 String 中的几个常用构造方法,由 String 这个核心对象发散出去关于字符的编码,字符的字节表达,对 GC 的影响,正则表达式,模式匹配,这可能是 Java 里内涵最丰富的对象了 ...
- Java SPI
一.什么是Java SPI? SPI的全名为Service Provider Interface.大多数开发人员可能不熟悉,因为这个是针对厂商或者插件的.在java.util.ServiceLoade ...
- 【angular5项目积累总结】列表多选样式框(1)
憋不住想说一下:angular坑太多,各种教程各种不完整,官网还只是简单的画饼充饥,没办法只有自己研究自己总结,便于以后提高工作效率. 第一种: view code list.css :ho ...
- jQuery基础---常规选择器
内容摘要: 1.简单选择器 2.进阶选择器 3.高级选择器 发文不易,转载请注明出处! jQuery 最核心的组成部分就是:选择器引擎.它继承了 CSS 的语法,可以对 DOM 元素的标签名.属性名. ...
- 二进制之Java位运算(一)
1. 位运算符 下表列出了位运算符的基本运算,假设整数变量A的值为60和变量B的值为13: (表格来自菜鸟教程) 操作符 描述 例子 & 如果相对应位都是1,则结果为1,否则为0 (A& ...
- springboot之内嵌tomcat修改端口号
第一种: 在配置文件中直接修改 server.port=8089 第二种: 直接定义 TomcatEmbeddedServletContainerFactory,注册bean: @Configurat ...