【2013年8月28日外媒头条】未来十年,我们预计移动应用开发技术市场将逐步统一,目前解决方案数量超过百种将减少到更易于管理的大小。同时,应用程序开发和交付专家需要在充满故意炒作和虚假促销的市场中选择理想的工具,以向客户交付高质量的成品应用程序。然而,我们仍在这片未知的海域中航行,所以最明智的做法是保持解决方案的开放性,同时坚持多种工具和技术并存的道路,直到市场真正成熟。移动机制以多种方式工作:一些以设备为中心,一些需要连接到Internet资源,还有一些以内容为中心。您必须在成本、性能、敏捷性和投资规模之间找到平衡,才能为每个移动工作负载找到合适的技术。充分了解每个工具的功能和特性,以及它们如何支持不同的移动开发场景,应该是为任何实例选择合理的一体化管理流程的第一步。本机开发工具使核心开发人员更接近平台。每个移动平台供应商都以极低的成本甚至免费为开发人员提供创建移动应用程序所需的工具,并且这些工具在平台上本地运行。就Apple而言,开发人员使用Xcode来创建和编译iOS应用程序。Google提供了AndroidDeveloperTools,它是Eclipse开发平台的插件。MicrosoftWindowsPhoneSDK8.0包含单独版本的VisualStudioExpresss2012。无论如何,这些开发工具包含支持基本编辑-编译-调试周期所需的一切。虽然针对单一平台进行了优化,但这些工具仍然适合愿意花大量时间学习各个平台对应的复杂API知识的硬核开发者。优化网页模板针对不同设备的显示效果。许多移动web开发人员将轻量级web框架与CSS媒体查询和新的HTML5元素相结合,以创建旨在满足各种查看需求的网站的平滑动态缩放。动态调整大小机制通常以像素为单位(例如320像素、600像素、768像素或1024像素),并允许开发人员针对平台覆盖各种不同类型的HTML设备,包括电子阅读器和车载设备系统——只要这些系统支持现代浏览器。响应式网页解决方案适用于具有现有网页开发和设计技能的开发人员,也可用于为移动网站提供内容。轻量级JavaScript框架成为高度定制化体验的基础。当移动应用从内容消费类型转变为交易活动类型时,响应式设计解决方案的实施过程将变得更加困难。后一类应用需要使用更多的表单、字段,以及尽可能接近原生应用体验的外观。这些交互式“联网”应用程序的开发人员通常从基本的JavaScript框架开始,并在后续工作中为客户提供他们想要的量身定制的体验。jQuery被广泛用作开发的起点,但其他轻量级移动Web框架也是很好的起点,包括Zepto.js、YahooMojito和SnackJS。许多设计机构使用这些解决方案为其客户交付Web应用程序项目,因为它们提供跨多个平台的通用代码库,同时为客户提供广泛的外观选项。功能齐全的JavaScript框架带来更规范的用户体验。完全不同于轻量级框架带来的定制化客户体验,全功能JavaScript框架提供的体验更符合Java和.Net开发者的期望。以SenchaTouch、KendoUI、DXtreme、IgniteUI为代表的很多框架都有大量的控件库,包括图表、网格、树视图等,旨在为特定的移动平台提供非常相似的外观和感觉,加上触摸控制能力。对于缺乏移动设计技能或JavaScript能力有限的IT开发机构来说,功能齐全的Web框架是进行高级设计的完美起点。这些框架非常适合与Web连接的应用程序,尤其是那些包含功能报告的应用程序。混合容器使开放式Web开发人员能够访问该平台。虽然每个移动平台都有自己的GPS、加速度计、摄像头、指南针和网络等功能API,但我们仍然可以将这些API抽象为通用服务。添加一组“无框架”的网络浏览器作为UI控制机制,我们就拥有了混合容器内部的所有核心元素。混合容器为Web开发人员提供了一种使用JavaScript、HTML和CSS编写移动应用程序的方法,同时将结果提交到应用程序商店。目前,最常用的混合容器是ApacheCordova,以前称为PhoneGap。简单的混合容器基于Web技术分析单个代码库,但仍然可以像常规本机应用程序一样部署到多个应用程序商店。复杂的混合容器由部分本地代码编写,网络元素写入Web技术,并最终集成到各种平台上的应用程序本地shell中。一般来说,一个复杂的混合容器中30%的内容是原生代码,70%的内容是HTML、JavaScript、CSS代码是很常见的。移动中间件解决方案将开发工具与基础设施服务相结合。一些供应商提供旨在简化移动应用程序和基础设施服务之间垂直连接的开发工具。使用移动中间件工具创建的应用程序可以部署到内部服务器或供应商托管的基础设施。移动中间件工具的另一个通用功能是支持上述一种或多种技术方案。开发人员可以选择编译本地包并将其提交到应用商店,或者将他们的工作部署为Web应用程序。一些中间件工具甚至可以将应用程序编译为本机操作码,以便在基于ARM或IA处理器的通用移动设备上运行。
