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
相關文章
- ArcGis api配合vue開發入門系列(一)引入arcgis api以及載入地圖APIVue地圖
- arcgis api for js入門開發系列十九圖層線上編輯APIJS
- IO通讀JS高程系列(1)--基本概念JS
- iOS開發 - 動畫實踐系列iOS動畫
- ArcGis api配合vue開發入門系列(二)距離以及面積的測量APIVue
- iOS 開發刷題系列三:NSString 引用計數iOS
- 【IOS開發基礎系列】Cocoa基礎專題iOS
- 通俗易懂的ArcGis開發快速入門
- Android 事件分發(1)—— 基本概念與流程Android事件
- RocketMQ系列(一)基本概念MQ
- Flutter系列:1.開發環境配置Flutter開發環境
- RabbitMQ(1)---基本概念MQ
- iOS BLE 開發小記[1] CoreBluetooth 是什麼iOS
- .net 5+ 知新:【1】 .Net 5 基本概念和開發環境搭建開發環境
- iOS 開發iOS
- Ability的基本概念(1)
- 1-Vue基本概念Vue
- 玩轉iOS開發:iOS中的NSOperation開發(一)iOS
- iOS開發-MVCiOSMVC
- iOS開發- RunLoopiOSOOP
- iOS開發-UIButtoniOSUI
- iOS開發:UIAlertViewiOSUIView
- iOS 開發薪水iOS
- ArcGIS開發(二)——一個基本視窗的例項化
- GacUI基本概念(二)——排版(1)UI
- 遊戲發展史:《全面戰爭》系列(1):開端遊戲
- KVM&Libvirt基本概念及開發雜談
- Windows驅動開發入門 -- 理清基本概念Windows
- python爬蟲系列(三)scrapy基本概念Python爬蟲
- iOS開發框架--QMUIKitiOS框架UI
- iOS開發框架--SDWebImageiOS框架Web
- iOS開發框架--AFNetworkiOS框架
- iOS開發框架--MyLayoutiOS框架
- iOS開發-手勢iOS
- iOS 開發加密做法iOS加密
- Flutter混合開發-iOSFlutteriOS
- iOS藍芽開發iOS藍芽
- iOS開發之FuckingBlockSyntax!iOSBloC
- iOS開發小tipiOS