ArcGIS for iOS 开发系列(1) – 基本概念
1.1 iOS简介
2006年苹果公司发布了智能手机iPhone,卓越的外形设计和新颖的触摸式交互,令其迅速风靡全球,随后发布的平板电脑iPad同样也取得了巨大成功,二者所搭载的都是iOS智能移动操作系统(早期叫做iPhone OS,后来更名为iOS),所谓的“智能”操作系统简单理解就是允许用户自主扩展功能,比如通过安装新应用而获取了新功能。依靠iOS开发者计划和App Store应用商店,苹果公司构建起完整的开发者-用户生态系统,来自世界各地的开发人员每天都在贡献丰富、高品质的应用程序,涉及到我们工作生活的方方面面:商业、社交、娱乐、教育、医疗、音乐、地图…,截止2012年9月12日,App Store应用商店里已经有了约700,000个应用,总的应用下载数更是高达300亿次。
iOS,衍生自OS X,本质上是一种Unix操作系统,自下而上可以划分成四个抽象层:系统层(Core OS)、服务层(Core Services)、媒体层(Media)和Cocoa交互层(Cocoa Touch)。系统层是最底层,包括系统内核、文件系统、电量管理、通信协议等操作系统的核心内容;服务层在核心层基础上提供了网络服务、文件访问、线程、定位等能力;媒体层主要实现对多媒体的访问,比如:图片、文档、音频、视频等,同时也包括图形渲染、动画效果等内容;Cocoa交互层是大家最常接触到的,包括用户交互和一些设备接口,比如:多点触控的手势操作:轻按(Tap)、长按(Long-Press)、平移(Pan)、捏合(Pinch)、撑开(Stretch)、旋转(Rotate)以及更多组合手势。目前iOS最新版本是6.0,已应用于苹果的多种触摸式设备:iPhone/iPad/iPod Touch/Apple TV等。
iOS SDK,提供了一系列iOS开发的框架、工具和模板,在iOS发布之初乔布斯就高调透露会尽快提供开发者工具包,让第三方开发人员可以为iOS扩展新功能,并因此得到付费分成,于是iOS SDK的主要编程语言“Object-C”迅速流行起来。Object-C是由C扩展而来,语法要求相对严格,假如你只熟悉.NET/Java开发,也不必担心,因为Object-C是完全面向对象的,封装、继承一样都不少,而MVC模式(Model-View-Controller)也让程序结构非常清晰。新手刚开始可能会感觉其语法和构造很怪异,但实际上代码的可读性非常好,此外根据实际项目的需求,也可以采用C、C++和Object-C的混合编译。如果说还有困扰的话,那肯定是 “内存管理和指针”,因为其他高级编程语言中都有垃圾自动回收机制,开发人员也早已习惯与此,转到Object-C后很容易忘记手动释放内存,从而造成内存泄露,好消息是iOS 5.0已引入ARC机制(Automatic Reference Counting),减少了内存管理的步骤。最后还要赞一下高度仿真的“模拟器”,真的非常好用,能够在iPhone和iPad间随时切换,模拟位置定位、设备晃动...使调试更加方便和高效。
*关于iOS的更多介绍可参考苹果官方网站:http://www.apple.com.cn/ios/
1.2 ArcGIS for iOS简介
Esri(美国环境系统研究所公司)是行业内首个提出“云 + 端”发展战略的企业GIS平台厂商,iPhone/iPad毫无疑问是重要的移动“端”之一,于是2009年底Esri宣布了ArcGIS for iOS 计划,并于第二年夏天发布1.0版App和API,作为一款免费应用,ArcGIS App发布的第一周就有来自全球20多个国家超过5,000次的下载量,反响还算不错。经过不断更新,目前最新版本是2.3.2,官方产品名称是ArcGIS Runtime for iOS,但我还是习惯称之为ArcGIS for iOS,简称AGS4iOS。
ArcGIS for iOS包括运行时和SDK,开发者基于SDK能够快速定制出用户所需的地图应用,功能包括:地图浏览、信息查询、地址匹配、地理分析和更多自定义能力。其中包括了原生的Object-C动态库、帮助文档和示例模板,如果你了解ArcGIS Web API,就会发现动态库的接口都很熟悉,简直就是Web API的原生实现,只不过额外增加了iOS移动设备的特性,比如用手势来控制地图进行漫游和缩放。帮助文档和示例模板降低了开发者的入门难度,但帮助文档还只有E文,所以我才来班门弄斧搞这个中文教程。
接下来的文章中我将依次介绍上述功能的实现,但假如你是个急脾气,想先体验体验,建议你直接去App Store搜索“ArcGIS”或“Esri”,结果会列出一大堆应用,它们都是基于ArcGIS for iOS SDK二次开发的。
*更多介绍可参考Esri官方网站:http://resources.arcgis.com/en/help/runtime-ios-sdk
另外推荐阅读博文: ArcGIS Runtime SDK for iOS开发介绍:http://www.cnblogs.com/esrichina/archive/2012/10/25/2738809.html
原文链接:http://blog.csdn.net/arcgis_mobile/article/details/8087894
博客地址: http://www.cnblogs.com/dwf07223,本文以学习、研究和分享为主,欢迎转载,转载请务必保留此出处。若本博文中有不妥或者错误处请不吝赐教。 |