热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

前端开发者的跨平台移动应用开发策略及工具(3)

专门用于打造移动客户端的JavaScriptUI框架
jQuery Mobile
      某种程度上说,jQuery Mobile就相当于移动应用版本的jQuery UI;它是一个挂件库,用来将语义化的HTML标记语言转化成无论UI样式还是交互行为都更贴近移动设备原生风格的模式。
继承了jQuery的优点,jQuery Mobile对A、B、C三个等级的移动浏览器保持了全面兼容。它推出的时间不长,但目标很明确——为尽量多的移动浏览器打造用户体验最棒的移动应用。虽然略重了些,但jQuery Mobile绝对是打造移动应用的最佳框架之一。

jQTouch

      与jQuery Mobile类似,jQTouch同样是一款将语义化HTML标记转化为移动设备原生风格页面视图的挂件库。这两者之间的区别是,jQTouch是特别为A级WebKit内核的移动浏览器打造的。这意味着jQTouch可以使用WebKit内核浏览器的专有功能渲染页面,相比于JM,所需的代码更少。所以,当我手头项目的目标用户多数为WebKit内核浏览器使用者的时候,我会选择jQTouch进行开发。

      很快,jQTouch将支持Zepto,届时,jQuery就不再是打造页面视图本身功能的唯一选项了。这个改变将会有效的减小文件尺寸,降低运算处理时的系统资源开销。

Sencha Touch

      Sencha Touch是一个基于ExtJS的全功能挂件库。与jQTouch相同,Sencha Touch也是面向A级WebKit内核的移动浏览器的。基于ST打造的移动应用具有很强的健壮性,在UI方面的自适应性也很出色,例如,在平板电脑中,页面视图会切换至大屏幕规格,包括结构和元素的布局等。

      与jQuery Mobile或jQTouch不同的是,Sencha Touch不是基于HTML标记语言的,开发者必须采用客户端MVC风格直接书写JS代码,所以学习曲线略微陡峭。

      Sencha Touch比较适合开发那些主要运行在WebKit内核移动浏览器里的中到大型的Web应用。

SproutCore

      SproutCore同样是一款开源JS框架,最初的目的是帮助Web开发人员创建运行在桌面浏览器中的Web应用。实际上,它的功能太强大了,以至于苹果公司使用它来构建了最初版本的MobileMe.

      不过,源于它桌面应用的初始需求,SproutCore在尺寸方面对于真正的移动化解决方案来说还是略大了些,至少我最后一次用到它的时候是这样的情况。

跨平台的本地应用开发工具

PhoneGap

      PhoneGap可以将基于标准HTML、CSS和JS打造的页面视图封装为本地客户端应用,目前支持10种移动平台。在数据资源传输方面,可以采用普通Web App所使用的Ajax等方式。PhoneGap在页面视图与本地应用之间提供了一个桥梁,允许开发者通过Javascript访问并使用移动设备的硬件功能,比如摄像头、联系人信息、麦克风等;这是单纯依靠移动浏览器运行的Web App类应用所无法实现的。

      PhoneGap不属于挂件库,它也不会将HTML编译为原生客户端代码。通过PhoneGap封装的移动应用,只能在运行的过程中即时执行Javascript,所以它无法像前面介绍的几种JS UI框架那样提供一套完整的移动化UI方案。但是PhoneGap的侧重点很显然是在本地化封装这方面;我开发过的每一个混合型应用都会用到PhoneGap。

Titanium Mobile

      Titanium Mobile可以直接将Javascript编译为iOS或Android平台的本地应用代码。开发者们经常将它与PhoneGap做比较,其实它们的机制是截然不同的。在Titanium中,开发者需要按照它规定的语法书写应用代码,而无法使用原生JS;从这个角度讲,Titanium与前面提到的的Sencha Touch类似。对于资深JS开发者来说,这种方式不会带来很大困难,而新手则需要学习和适应。

Corona

      Corona是一款商业SDK,使用Lua构建。开发者可以通过Corona为iOS和Android两大平台开发原生UI效果真实饱满的移动应用。它拥有一个完整的图形和动画库,渲染引擎可以充分利用GPU的功能。这让Corana非常适合移动游戏的开发,不过它在普通移动应用开发方面的表现同样不错。

企业级移动应用开发平台(Mobile Enterprise Application Platforms,MEAPs )

      MEAP一种整合性的开发平台,通过一个后台,对跨平台移动应用的开发项目进行全周期的管理;涉及到的细节已经超出本文范围。之所以把这类放进来,是因为其中RhoMobile曾经被视为PhoneGap的竞争对手,但实际上它们根本不是一回事。典型的MEAPs平台有:
Antenna Softwware
Pyxis Mobile
RhoMobile
Sybase Unwired Platform(SUP)

总结

      我个人从不会将Web应用与本地原生应用看作非此即彼的两个独立命题,它们更像是一个范围的两个极值。很多时候,要考虑的不是选择哪种方式的问题,而是要根据需求,评估基于HTML、CSS和JS打造的Web App页面视图部分与原生应用的比例问题。

      使用前文提到的一些方法对需求进行评估,确认可以使用混合型应用的模式开发产品项目,接下来,我建议将目标放在对页面视图部分的比例控制上。根据产品的具体需求和设计情况,在保证不会对用户体验等方面起到负面影响的前提下,可以尽量多的使用基于HTML的前端页面视图,以增大跨平台功能的比例。你需要担心的跨平台方面的问题越少,用来打造优秀产品的精力及资源就相对越多。

推荐阅读
  • 近日,我在处理一个复杂的前端问题时遇到了极大困扰。具体来说,我之前开发了一个功能丰富的纯jQuery代码的前端GridView控件,实现了多种功能和视觉效果,并在多个项目中表现良好。然而,最近在尝试应用 `border-box` 布局模式时,却遇到了意想不到的兼容性和性能问题。这提醒我们在条件尚未完全成熟的情况下,应谨慎使用 `border-box` 布局模式,以免引入不必要的复杂性和潜在的bug。 ... [详细]
  • Framework7:构建跨平台移动应用的高效框架
    Framework7 是一个开源免费的框架,适用于开发混合移动应用(原生与HTML混合)或iOS&Android风格的Web应用。此外,它还可以作为原型开发工具,帮助开发者快速创建应用原型。 ... [详细]
  • Web开发框架概览:Java与JavaScript技术及框架综述
    Web开发涉及服务器端和客户端的协同工作。在服务器端,Java是一种优秀的编程语言,适用于构建各种功能模块,如通过Servlet实现特定服务。客户端则主要依赖HTML进行内容展示,同时借助JavaScript增强交互性和动态效果。此外,现代Web开发还广泛使用各种框架和库,如Spring Boot、React和Vue.js,以提高开发效率和应用性能。 ... [详细]
  • 在HTML5应用中,Accordion(手风琴,又称抽屉)效果因其独特的展开和折叠样式而广泛使用。本文探讨了三种不同的Accordion交互效果,通过层次结构优化信息展示和页面布局,提升用户体验。这些效果不仅增强了视觉效果,还提高了内容的可访问性和互动性。 ... [详细]
  • 使用 Vue 集成 iScroll 实现移动端表格横向滚动与固定列功能 ... [详细]
  • 解决SQL Server数据库sa登录名无法连接的问题
    在安装SQL Server数据库后,使用Windows身份验证成功,但使用SQL Server身份验证时遇到问题。本文将介绍如何通过设置sa登录名的密码、启用登录名状态以及开启TCP协议来解决这一问题。 ... [详细]
  • 本文详细介绍了Java代码分层的基本概念和常见分层模式,特别是MVC模式。同时探讨了不同项目需求下的分层策略,帮助读者更好地理解和应用Java分层思想。 ... [详细]
  • 本文介绍了如何使用 CMD 批处理脚本进行文件操作,包括将指定目录下的 PHP 文件重命名为 HTML 文件,并将这些文件复制到另一个目录。 ... [详细]
  • 在使用Eclipse进行调试时,如果遇到未解析的断点(unresolved breakpoint)并显示“未加载符号表,请使用‘file’命令加载目标文件以进行调试”的错误提示,这通常是因为调试器未能正确加载符号表。解决此问题的方法是通过GDB的`file`命令手动加载目标文件,以便调试器能够识别和解析断点。具体操作为在GDB命令行中输入 `(gdb) file `。这一步骤确保了调试环境能够正确访问和解析程序中的符号信息,从而实现有效的调试。 ... [详细]
  • 系统数据实体验证异常:多个实体验证失败的错误处理与分析
    在使用MVC和EF框架进行数据保存时,遇到了 `System.Data.Entity.Validation.DbEntityValidationException` 错误,表明存在一个或多个实体验证失败的情况。本文详细分析了该错误的成因,并提出了有效的处理方法,包括检查实体属性的约束条件、调试日志的使用以及优化数据验证逻辑,以确保数据的一致性和完整性。 ... [详细]
  • 在探讨Hibernate框架的高级特性时,缓存机制和懒加载策略是提升数据操作效率的关键要素。缓存策略能够显著减少数据库访问次数,从而提高应用性能,特别是在处理频繁访问的数据时。Hibernate提供了多层次的缓存支持,包括一级缓存和二级缓存,以满足不同场景下的需求。懒加载策略则通过按需加载关联对象,进一步优化了资源利用和响应时间。本文将深入分析这些机制的实现原理及其最佳实践。 ... [详细]
  • PHP自学必备:从零开始的准备工作与工具选择 ... [详细]
  • 深入解析InnoDB中的多版本并发控制机制
    多版本并发控制(MVCC)是InnoDB存储引擎中的一项关键技术,通过维护数据在不同时间点的多个版本,确保了事务的隔离性和一致性。每个读取操作都能获得一个与事务启动时一致的数据视图,从而提高了并发性能并减少了锁竞争。此外,MVCC还支持多种隔离级别,如可重复读和读已提交,进一步增强了系统的灵活性和可靠性。 ... [详细]
  • 寒假作业解析:第三周 2月12日 第7题
    尽快完成之前的练习任务!每日一练2.1 Problem A Laurenty and Shop 的题目要求是选择两条不同的路线以最小化总的等待时间。简要分析:通过对比不同路线的等待时间,可以找到最优解。此问题可以通过动态规划或贪心算法来解决,具体取决于路线的复杂性和约束条件。 ... [详细]
  • 2016-2017学年《网络安全实战》第三次作业
    2016-2017学年《网络安全实战》第三次作业总结了教材中关于网络信息收集技术的内容。本章主要探讨了网络踩点、网络扫描和网络查点三个关键步骤。其中,网络踩点旨在通过公开渠道收集目标信息,为后续的安全测试奠定基础,而不涉及实际的入侵行为。 ... [详细]
author-avatar
手机用户2502902903_601
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有