Buying for a Team? Gift This Course
Wishlisted Wishlist

Please confirm that you want to add Develop Mobile GIS Apps for iOS in Swift to your Wishlist.

Add to Wishlist

Develop Mobile GIS Apps for iOS in Swift

Add your own map, use your GPS sensor so easy......
4.6 (9 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
92 students enrolled
Created by Alfred Lam
Last updated 11/2015
English
$10 $200 95% off
14 hours left at this price!
30-Day Money-Back Guarantee
Includes:
  • 11 hours on-demand video
  • 125 Supplemental Resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
Have a coupon?
What Will I Learn?
create apps with various basemaps;
enrich your map with selected feature layers by utilizing ESRI resources;
understand your map and create your own functional tools exploring map features;
display GPS location with different modes;
characterize your GPS icon;
collect data in field with on-board GPS sensor;
use offline basemaps while there is no internet connection
estimate size of offline basemaps and download offline basemaps;
create your webMap online and add your own feature layers;
open your webMap to iOS app;
create your own popups displaying attribute information;
create your own native geometries: point, polyline, and polygon;
sketch and save geometries: point, polyline, polygon
perform map analysis and more
View Curriculum
Requirements
  • No programming experience needed
  • Hardware: An Intel-based Mac with OS Mountain Lion (OS X 10.8.4) or higher is required
  • Software: XCode 5 with iOS 7 SDK, or XCode 6 with iOS 8 SDK are required (free download from Apple App store)
Description

“The world we live is full of coordinates and I love it!" - Alfred Lam, the course instructor.

“The essence of creating a beautiful map is balance!" - Alfred Lam, the course instructor.

This course is about making GIS(Geographic Information System) maps to iOS platform apps by using ArcGIS Runtime SDK for iOS developed by ESRI. This course covers the most important concepts and basic skills for you to deploy GIS maps to iOS apps or to develop mobile GIS apps independently.

Some developers may ask why do we bother to use GIS maps as we already have google map. My answer is that the google map is great for you to identify your locations. But its data, functionality, and flexibility are far from enough if you want to create a versatile app with various basemaps, to tell a story, to add your own map features, or to perform an analysis to your clients with a map. ArcGIS, on the other hand, is the most comprehensive and advanced GIS in the world and it is capable of performing all these tasks for you.

Rather than spending time in fumbling and bewildering into APIs/code libraries, in this course, you can learn how to build GIS maps and functions to iOS apps step by step.

After completing this course and the exercises, you will be able to:

  • create apps with various basemap;
  • enrich your map with selected feature layers by utilizing ESRI resources;
  • understand your map and create your own functional tools exploring map features;
  • display GPS location with different modes;
  • characterize your GPS icon;
  • collect data in field with on-board GPS sensor;
  • use offline basemaps while there is no internet connection
  • estimate size of offline basemaps and download offline basemaps;
  • create your webMap online and add your own feature layers;
  • open your webMap to iOS app;
  • create your own popups displaying attribute information;
  • create your own native geometries: point, polyline, and polygon;
  • sketch and save geometries: point, polyline, polygon
  • and more;
Who is the target audience?
  • GIS users
  • Students
  • Developers
  • Entrepreneurs
  • Anyone who are interested to make GIS maps in iOS apps
Students Who Viewed This Course Also Viewed
Curriculum For This Course
Expand All 111 Lectures Collapse All 111 Lectures 12:22:28
+
Section 1: First Map App
12 Lectures 49:59
Course introduction.
Preview 01:00

This lecture covers the process of signing up the ArcGIS Developers Account.
Preview 04:16

This lecture covers the process of setting up a demo project.

Lecture 3: Project Setup: World Transportation
02:27

This lecture covers the workflow of adding ArcGIS Runtime SDK for iOS to the demo project manually.

Lecture 4: Add SDK Manually
08:33

This lecture demonstrates the procedures of adding a mapView object, setting constraints to the object, and adding a basemap layer in code.

Lecture 5: Add a Basemap Layer
06:16

This lecture covers the process of adding second map layer to the demo project.

Lecture 6: Add a World Transportation Layer
04:37

This lecture introduces the ArcGIS REST Service Directory.
Preview 03:10

This lecture covers the process of installing cocoapods.

Lecture 8: Install CocoaPods
03:06

This lecture covers the process of adding ArcGIS Runtime SDK for iOS to Xcode project in cocoapods.

Lecture 9: Add SDK in CocoaPods
05:10

This lecture covers the process of registering a new application in arcgis developers account, and demonstrate using code to remove app water mark.

Lecture 10: Remove App Water Mark
03:16

Objective: Create a World Boundaries Map App

- create a new iOS single view Xcode project;

- add ArcGIS Runtime SDK for iOS to the project in cocoaPods;

- add a navigational view controller;

- add 2 layers from ArcGIS REST Service Directory;

Lecture 11: Tutorial 1
5 pages

This lecture is the tutorial 1 solution.

Lecture 12: Tutorial 1 Solution
08:08
+
Section 2: Understand Map View
18 Lectures 01:16:11

This lecture covers the setup of a new demo project: MapViewApp, and shows the process of adding ArcGIS Runtime SDK for iOS to this project in CocoaPods, adding a mapView object, and adding code for displaying a tiled basemap layer.

Lecture 13: Project Setup: MapViewApp
08:50

This lecture demonstrates how to make the status bar invisible.
Lecture 14: Hide Status Bar
02:06

This lecture covers the introduction of a popular geographic coordinate system WGS84, and a projection coordinate system webMercator.

Lecture 15: Coordinate Systems
02:18

This lecture covers how to make a continuous map.
Preview 02:12

This lecture is going to demonstrate how to set a pinch rotating feature to the map.

Lecture 17: Pinch Rotating a Map
01:45

This lecture is going to cover how to add a navigational controller, a bar button item, and a magnifier for users to pan or hold the magnifier on the map screen.
Lecture 18: Use a Magnifier
07:00

This lecture is going to cover the code of zooming to an envelope on the map.
Lecture 19: Zoom to an Envelope
04:13

This lecture covers how to find map spatial reference.

Lecture 20: Find Map Spatial Reference
03:02

This lecture covers the code of finding the visible area map extent in map unit, and the device screen size in point.
Lecture 21: Find Map Unit and Screen Point Relationship
04:51

This lecture covers the process of adding a function button and adding the code for zoom in and zoom out using the function button to the map.
Lecture 22: Zoom In and Zoom Out
04:07

This lecture covers how to zoom to a specific point on map with a scale.
Lecture 23: Zoom to a Point
04:03

This lecture covers the workflow of converting a coordinate from the webMecator map unit in meters to WGS84 in degrees.
Lecture 24: Map Unit Conversion
04:40

This lecture covers how to count map layers.

Lecture 25: Count Map Layers
03:58

This lecture covers the process of adopting AGSMapViewTouchDelegate.

Lecture 26: Adopt Touch Delegate
02:46

This lecture covers the workflow of displaying information in a callout.

Lecture 27: Display Coordinates in a Callout
06:56

This lecture covers how to fade out a callout.

Lecture 28: Animate a Callout
02:55

Objective: Create a MyMapView App

- create a new iOS single view Xcode project;

- add ArcGIS Runtime SDK for iOS to the project in cocoaPods;

- add one basemap layer from ArcGIS REST Service Directory;

- add a navigation controller ;

- add a bar button item with title: Tool;

- add a default envelope ;

- adopt AGSMapViewTouchDelegate;

- add a callout displaying WGS84 coordinate;
Lecture 29: Tutorial 2
7 pages

This lecture is the video solution of tutorial 2.

Lecture 30: Tutorial 2 Solution
10:29
+
Section 3: Basemaps
10 Lectures 01:06:07

This lecture covers the process of setting up the section demo project: Basemaps.

Lecture 31: Project Setup: Basemaps
03:46

This lecture covers the creation of git version control and branches to the demo project from Terminal.

Lecture 32: Add Version Control
04:31

This lecture covers the configuration of a table view, adding a NSArray to manage table view data and displaying thumbnail images in tableview.
Lecture 33: Configure TableView Controller
13:29

This lecture covers the process of adding a map view controller for displaying selected basemap from the table view.

Lecture 34: Configure Map View Controller
05:19

This lecture covers the creation of a segue connection between 2 view controllers. And this lecture shows how to use a segue method to pass data from one view controller to another.

Lecture 35: Add Segue
07:09

This lecture covers the code of displaying selected basemaps in map view controller from the table view.
Lecture 36: Display Selected Basemap
05:45

This lecture covers the process of switching a version control branch and adding a segmented control to select a basemap.
Lecture 37: Add a Segmented Control
08:14

This lecture covers the process of adding code in the segmented control method to select a basemap.

Lecture 38: Display Selected Basemap by Segmented Control
04:54

Objective: Create a MyBasemaps App

- create a new iOS single view Xcode project;

- add ArcGIS Runtime SDK for iOS to the project in cocoaPods;

- add version control from Terminal;

- add a branch;

- add a segmented control;

- add an add map function;

- configure segmented control using 4 basemaps;

- add switch code to segmented control;

- select four basemap layers from ArcGIS REST Service Directory for the app;

Lecture 39: Tutorial 3
7 pages

This lecture is the tutorial 3 solution.

Lecture 40: Tutorial 3 Solution
13:00
+
Section 4: GPS Usages
17 Lectures 01:29:25

This lecture covers a new demo project: GPSApp, and covers the process of adding ArcGIS SDK in cocoapods, adding a basemap layer, and configuring the info.plist file for GPS usage to the new demo project.

Lecture 41: Projct Setup: GPSApp
07:03

This lecture covers the workflow of adopting the AGSMapViewLayerDelegate in 3 steps: conform the delegate, register the delegate, and implement the delegate method.

Lecture 42: Display GPS Location
03:09

This lecture covers the process of adding a GPS button control.

Lecture 43: Add a GPS Control
07:20

This lecture covers the process of downloading and installing GIMP.

Lecture 44: Install GIMP
01:17

This lecture covers how to modify GPS icon with GIMP.

Lecture 45: Characterize GPS Symbols
09:14

This lecture covers the process of displaying GPS coordinate in a callout on the map.

Lecture 46: Display GPS Coordinates
08:20

This lecture covers the code for retrieving GPS accuracy data and displaying these data on a callout.

Lecture 47: Display GPS Accuracy
05:08

This lecture covers the code for retrieving GPS course or heading data and displaying these data to a callout.

Lecture 48: Display GPS Heading
03:02

This lecture covers the process of retrieving GPS speed data and displaying these data to a callout.

Lecture 49: Display GPS Speed
02:54

This lecture covers the process of setting GPS mode to autoPanModeDefault.

Lecture 50: Set GPS in AutoPan Default
05:52

This lecture covers the process of setting GPS mode to autopandMOdeNavigation or driving mode.

Lecture 51: Set GPS in Driving Mode
03:00

This lecture covers the process of setting GPS mode to AutoPanModeCompassNavigation or walking mode.

Lecture 52: Set GPS in Walking Mode
02:45

This lecture covers the workflow of adding map a north arrow.

Lecture 53: Add Map a North Arrow
03:26

This lecture covers the workflow of applying KVO mechanism in rotating the north arrow along with the map rotation.

Lecture 54: Rotate North Arrow Along with Map Rotation
06:36

This lecture covers how to add a speed label, add a timer, and display GPS speed on the speed label continuously.

Lecture 55: Display GPS Speed Continuously
07:54

Objective: Create a MyGPSApp App

- create a new iOS single view Xcode project;

- add ArcGIS Runtime SDK for iOS to the project in cocoaPods;

- add one basemap layer from ArcGIS REST Service Directory;

- add a navigational view controller;

- add a bar button item with title: Show Callout;

- add a GPS button;

- add a North Arrow ;

- set GPS walking mode;

- add a callout displaying GPS location coordinate;
Lecture 56: Tutorial 4
9 pages

This is the tutorial 4 solution.

Lecture 57: Tutorial 4 Solution
12:25
+
Section 5: Web Map
11 Lectures 50:13

This lecture covers the process of signing on ArcGIS online account and browsing the contents briefly.

Lecture 58: SignUp ArcGIS Online
03:30

This lecture covers the workflow of creating a webmap, making the webMap public, and locating the unique webmap ID.
Lecture 59: Create a WebMap
03:34

This lecture covers the process of adding webMap feature layers and adding attributes data to the feature layers.
Lecture 60: Add Features to WebMap
06:01

This lecture covers the section demo project setup.

Lecture 61: Setup Project: WebMapApp
05:50

This lecture covers the process of opening a webMap in the demo project with the unique webMap id.

Lecture 62: Open a WebMap
03:43

This lecture covers the code getting information about webMap operational layers with ArcGIS Runtime SDK for iOS.

Lecture 63: Get Operational Layers
03:45

This lecture covers how to retrieve a webMap URL in code.

Lecture 64: Get WebMap Url
02:34

Feature layer’s position in a webMap could be different upon your basemaps and other factors. This lecture covers how to get webMap operational layer’s feature coordinates and locate feature layer’s position.

Lecture 65: Get Feature Coordinates
06:39

This lecture covers how to turn on/turn off a webMap feature layer.

Lecture 66: Turn On/Off Feature Layers
03:33

Objective: Create a MyWebMap App

- create a WebMap at ArcGIS Online;

- add a point feature layer to the WebMap;

- create a new iOS single view Xcode project;

- add ArcGIS Runtime SDK for iOS to the project in cocoaPods;

- add a navigational view controller;

- add a bar button item with title: Tool;

- open the WebMap;

- add code to find coordinates of the webMap point feature;
Lecture 67: Tutorial 5
8 pages

This lecture is the tutorial 5 solution.

Lecture 68: Tutorial 5 Solution
11:04
+
Section 6: Offline Map
12 Lectures 01:16:26

This lecture covers the resources which basemaps for export are available.

Lecture 69: List of Basemaps for Offline
03:00

This lecture covers the process of adding a basemap for export to webMap as a layer.

Lecture 70: Add a Basemap Layer to ArcGIS Online
06:01

This lecture covers the workflow of creating a webMap with a basemap for export.

Lecture 71: Create a Webmap
02:29

This lecture covers the process of setting up a demo project: basemapForExport.

Lecture 72: Setup Project: BasemapForExport
05:32

This lecture covers how to display a webMap with credential.

Lecture 73: Display Webmap with Credential
06:51

This lecture covers the process of estimating a basemap for export file size.

Lecture 74: Estimate Layer Size
13:15

This lecture covers how to add an alert view during the process of downloading a basemap, as well as the adoption for the AlertView delegate.

Lecture 75: Add an Alert View
05:16

This lecture covers the process of downloading a basemap for export.

Lecture 76: Download Offline Basemap
08:29

This lecture covers the process of modifying the progress label which is used to tell user the stages of estimating, downloading, or download completed.
Lecture 77: Modify In-Progress Label
03:07

This lecture covers the process of deploying an offline basemap with a downloaded basemap for export.
Lecture 78: Deploy Offline Basemap
07:13

Objective: Create a MyOfflineMap App

- select and add a basemap for export to ArcGIS Online;

- create a WebMap at ArcGIS Online;

- create a new iOS single view Xcode project;

- add ArcGIS Runtime SDK for iOS to the project in cocoaPods;

- open a WebMap;

- add a navigational view controller;

- add a bar button item with title: Estimate;

- add an Alert View;

- adopt Alert View Delegate;

- download a basemap;

Lecture 79: Tutorial 6
11 pages

This lecture is the tutorial 6 solution.

Lecture 80: Tutorial 6 Solution
15:13
+
Section 7: Map Features
21 Lectures 02:54:02
This lecture is going to setup a new demo project: MapFeatures, and to cover the process of adding ArcGIS SDK in cocoapods, adding 2 bar buttons, adding a segmented control, and adding code for a basemap layer.
Lecture 81: Setup Project: MapFeatures
13:36

This lecture covers the process of adding a feature point on the map.

Lecture 82: Add a point
09:28

This lecture is going to cover how to select a simple marker symbol for a point.

Lecture 83: Select Point Symbols
05:29

This lecture covers the process of adding multipoints on the map.

Lecture 84: Add Multiple Points
08:28

This lecture covers how to add image symbol for a point on the map.

Lecture 85: Add Image Symbol
07:12

This lecture covers the process of adding callout and attributes for point features.

Lecture 86: Add Attributes and Callout
12:55

This lecture covers the process of adding an image view controller to the demo project.

Lecture 87: Use Callout Accessory Button - 1
08:39

This lecture covers the process of creating a segue connection between MapFeature view controller to the Image View Controller.

Lecture 88: Use Callout Accessory Button - 2
08:33

This lecture covers the process of adding polyline features on the map.

Lecture 89: Add Polyline
09:37

This lecture covers how to select a simple line symbol for a polyline on the map.

Lecture 90: Select Polyline Symbols
02:57

This lecture covers the process of adding polygon features on the map.

Lecture 91: Add Polygons
06:06

This lecture covers how to select a simple fill symbol for a polygon on the map.

Lecture 92: Select Polygon Symbols
03:30

This lecture covers the process of sketching a point on the map.

Lecture 93: Sketch a Point
08:28

This lecture covers how to persist data using NSUserDefault and JSON dictionary format.

Lecture 94: Data Persistence
14:20

This lecture covers the process of sketching multipoints on the map.

Lecture 95: Sketch Multipoints
05:50

This lecture covers the process of sketching polylines on the map.

Lecture 96: Sketch Polyline
07:46

This lecture covers the process of sketching polygons on the map.

Lecture 97: Sketch Polygon
07:27

This lecture covers the undo and redo mechanism.

Lecture 98: Undo and Redo
05:14

This lecture covers the process of sketching in GPS.

Lecture 99: Sketch in GPS
16:10

Objective: Create a MySketchedMap App

- create a new iOS single view Xcode project

- add ArcGIS Runtime SDK for iOS to the project in cocoaPods

- add one basemap layer from ArcGIS REST Service Directory

- add a default envelope

- add a navigational view controller

- add 2 bar button items with title: Start, Finish

- add a segmented control

- adopt AGSMapViewTouchDelegate

- add a graphicsLayer

- add a sketchLayer

- set geometry for sketching multipoints

- apply NSUserDefaults for data persistence
Lecture 100: Tutorial 7
10 pages

This lecture is the tutorial 7 solution.

Lecture 101: Tutorial 7 Solution
12:17
+
Section 8: Map Analysis
10 Lectures 01:30:05
This lecture is going to setup a new demo project: Map Analysis, and to cover the process of adding ArcGIS SDK in cocoapods, adding 2 bar buttons, adding a segmented control, and adding code for a basemap layer.
Lecture 102: Setup Project: Map Analysis
17:33

This lecture covers the process of measuring distance on the map.

Lecture 103: Measure Distance
12:05

This lecture covers the process of measuring area on the map.

Lecture 104: Measure Area
05:25

This lecture covers the process of setting buffer zone to point feature on the map.

Lecture 105: Set Buffer Zone to Point
11:03

This lecture covers the process of adding a slider bar for buffer zone on the map.

Lecture 106: Add a Slider Bar for Buffer Zone
09:31

This lecture covers how to update buffer zone dynamically with a slider bar on the map.

Lecture 107: Update Buffer Zone Dynamically with a Slider Bar
07:11

This lecture covers the process of setting buffer zone to polyline feature on the map.

Lecture 108: Set Buffer Zone to Polylines
02:22

This lecture covers the process of making a convex hull for point features on the map.

Lecture 109: Make a Convex Hull for Points
07:38

Objective: Create a MyMapAnalysis App

- create a new iOS single view Xcode project

- add ArcGIS Runtime SDK for iOS to the project in cocoaPods

- add one basemap layer from ArcGIS REST Service Directory

- add a default envelope

- add a navigational view controller

- add 2 bar button item with title: Start, Finish

- add a segmented control

- add a slider bar

- add a label for slider bar score

- adopt AGSMapViewTouchDelegate

- add a graphicsLayer

- add a sketchLayer

- set geometry for sketching points

- use AGSGeometryEngine to generate buffer zone
Lecture 110: Tutorial 8
13 pages

This lecture is the tutorial 8 solution.

Lecture 111: Tutorial 8 Solution
17:17
About the Instructor
4.2 Average rating
198 Reviews
6,721 Students
13 Courses
GIS Developer

“The world we live is full of coordinates and I love it!" - Alfred Lam

“The essence of creating a beautiful map is balance!" - Alfred Lam

I am an enthusiastic GIS specialist and I have been using GIS for more than ten years. My previous position was a senior officer at a NGO maintaining geodatabase, doing field data collection, and perform GIS analysis with remote sensing, GIS, and GPS data for the whole organization. With the advent of mobile technology, I have been studying and working hard to code for iOS, Android, and JavaScript. I believe this is one of the most useful technologies that can help people in many aspects.

I am going to dedicate some of my time to be a GIS instrcutor here and teaching is fun. It is also great to let many mobile and web developers to know and use ESRI technology which is so far the best and the most comprehensive GIS system. The part I am giving lectures is even only a very small fraction of the whole ArcGIS system.

Coding is boundless. Like many other teachers, I’d like to share my knowledge and experiences here. As the students are from all levels, I try not to make the code complicated. Maybe sometimes my pace is a bit slower, but I tried to make the code effective in a straightforward and simplest way. So that students can understand the mechanism of the code easily.

Report Abuse