1.2 iOS企业应用程序的架构
本书把iOS企业应用定义为传统企业应用向iOS手机终端的顺延和扩张。在此定义下,iOS企业应用由服务端和iOS客户端构成,二者间通过3G移动互联网(CDMA/TD/WCDMA)连接或通信。
1.2.1 服务端
服务端(企业网络或Web服务)实际上为iOS企业应用提供企业数据和服务。如果把iOS客户端看做是前端应用,则服务端就是后台服务。服务端向前端提供一系列访问传统企业应用的接口,也可以为前端提供企业数据库和业务系统的访问。因此,iOS企业应用的服务端可能有两层或多层:接口、企业应用、企业数据库。
本书的核心内容是介绍iOS开发技术,不会对企业开发技术做过多的介绍。因此服务端代码(企业应用和企业数据库)的开发细节不会在本书中出现,但对于本书中涉及的接口,会提供必要的代码给读者学习。此外,本书中的接口代码是以Java编写的,需要读者对Java语言有一定的了解。
1.2.2 iOS 客户端
iOS客户端是一个标准的iOS应用,当然它也具备一些企业应用所特有的特点。但无论如何,它不应当是在浏览器中运行的Web网页。如果你想找一本介绍如何开发在iPhone浏览器上运行的Web网页应用程序的书,那么不应该是本书。
本书大部分内容旨在教你开发标准的iOS应用程序,这与市面上大部分介绍iPhone开发的书籍是一致的,但有一些例外。
首先,作为运行在手机上的iOS企业应用来说,安全是尤其需要注意的问题。因为iPhone等手持式移动终端所特有的一些特点,比如随身携带、随处可用,不需要登录,容易丢失等等,稍有不慎,就有可能导致企业机密的泄漏。
其次,对于企业应用来说,访问网络的需要,尤其是访问企业网络内部资源,如服务器、数据库等,永远是必不可少的重要内容。无论在任何情况下,网络带宽永远是企业的稀缺资源,对于企业应用尤其如此,因此,必须在节省带宽和提高用户体验中进行平衡。本书使用了很大的篇幅来介绍网络访问技术,此外,企业网络的类型(例如APN网络)会给iOS访问企业数据带来麻烦。由于iOS本身的限制,iPhone在切换APN网络时显得不太灵活——iPhone只能通过.mobileconfig描述文件切换APN。你可以在App Store上找到一堆的应用,专门用于给iPhone提供APN切换的功能。因此,本书也会介绍如何在自己的项目中实现一个简单APN切换器。
另外,与App Store中占据主要份额的游戏应用不同,iOS企业应用有使用数据库技术的迫切需要——作为企业开发人员,习惯于把业务数据保存在关系数据库中的这一顽疾早已根深蒂固——哪怕我们在客户端使用数据库的目的仅仅是出于把服务端数据缓存到本地的需要。
最后,还需要介绍一下文档和报表的显示。企业办公环境中离不开各种文档:文本、图片、视频和声音,尤其Microsoft 的Office文档俨然已成为了企业办公中公文流转的标准格式。如果在iPhone手机上竟然无法打开这些最为常见的企业办公文档,这绝对是一场悲剧。而报表和图表,是企业管理中最为常见的数据表现形式和数据分析手段,把企业运营数据以报表图表的形式进行展示,显然是iOS企业应用中应该提供的基本功能。
综上所述,企业开发人员必须充分认识到iOS企业应用的特点,结合企业的实际需要,才能开发出一个优秀的iOS企业应用。