Develop Mobile GIS Apps for iOS in Objective C

Add your own map, use your GPS sensor so easy......
0.0 (0 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.
16 students enrolled
Instructed by Alfred Lam Development / Mobile Apps
$19
$200
90% off
Take This Course
  • Lectures 111
  • Length 13.5 hours
  • Skill Level All Levels
  • Languages English
  • Includes Lifetime access
    30 day money back guarantee!
    Available on iOS and Android
    Certificate of Completion
Wishlisted Wishlist

How taking a course works

Discover

Find online courses made by experts from around the world.

Learn

Take your courses with you and learn anywhere, anytime.

Master

Learn and practice real-world skills and achieve your goals.

About This Course

Published 11/2015 English

Course 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;

What are the 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)

What am I going to get from this course?

  • 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
  • perform map analysis and more

What is the target audience?

  • GIS users
  • Students
  • Developers
  • Entrepreneurs
  • Anyone who are interested to make GIS maps in iOS apps

What you get with this course?

Not for you? No problem.
30 day money back guarantee.

Forever yours.
Lifetime access.

Learn on the go.
Desktop, iOS and Android.

Get rewarded.
Certificate of completion.

Curriculum

Section 1: Section 1: First Map App
01:00

Course introduction.

03:52

This lecture covers the process of signing up the ArcGIS Developers Account.

02:26

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

07:14

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

06:40

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

04:37

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

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

This lecture covers the process of installing cocoapods.

05:27

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

04:43

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

5 pages

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;

08:27

This lecture is the tutorial 1 solution.

Section 2: Section 2: Understand Map View
09:50

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.

02:02

This lecture demonstrates how to make the status bar invisible.

02:18

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

02:01

This lecture covers how to make a continuous map.

01:43

This lecture covers how to set a pinch rotating feature to the map.

06:57

This lecture covers 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.

04:13

This lecture covers the code of zooming to an envelope on the map.

03:14

This lecture covers how to find map spatial reference.

06:14

This lecture covers the code of finding the visible area map extent in map unit, and the device screen size in point.

03:59
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.
04:11

This lecture covers how to zoom to a specific point on map with a scale.

04:55
This lecture covers the workflow of converting a coordinate from the webMecator map unit in meters to WGS84 in degrees.
03:31
This lecture covers how to count map layers.
03:22

This lecture covers the process of adopting AGSMapViewTouchDelegate.

07:29

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

02:59

This lecture covers how to fade out a callout.

7 pages

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

10:50

This lecture is the video solution of tutorial 2.

Section 3: Section 3: Basemaps
04:38
This lecture covers the process of setting up the section demo project: Basemaps.
04:41

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

15:12

This lecture covers the configuration of a table view, adding a NSArray to manage table view data and displaying thumbnail images in tableview.

05:42
This lecture covers the process of adding a map view controller for displaying selected basemap from the table view.
08:57

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.

04:58

This lecture covers the code for displaying selected basemaps in map view controller from the table view.

09:48

This lecture covers the process of switching a version control branch and adding a segmented control to select a basemap.

04:43

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

7 pages

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 a method to addMap

- configure segmented control using 4 basemaps

- add switch code to segmented control action method

- select four basemap layers from ArcGIS REST Service Directory for the app
13:59

This lecture is the video solution of Tutorial 3.

Section 4: GPS Usages
07:08
This lecture is going to cover a new demo project: GPSApp, and cover the process of adding ArcGIS SDK in cocoapods, adding a basemap layer, and configuring the info.plist file for GPS usage.
03:51

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

06:48

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

01:17

This lecture covers the process of downloading and installing GIMP.

09:38

This lecture covers how to modify GPS icon with GIMP.

08:25

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

07:42

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

03:35

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

04:02

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

05:28

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

03:41
This lecture covers the process of setting GPS mode to autopandMOdeNavigation or driving mode.
03:36

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

03:44

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

09:11

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

11:36
This lecture shows how to add a speed label, add a timer, and display GPS speed on the speed label continuously.
10 pages

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;

24:44
This lecture is the video solution of tutorial 4.
Section 5: Section 5: Web Map
03:30

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

03:34

This lecture covers the workflow of creating a webMap, making the webmap public, and locating the unique webmap ID.

06:01
This lecture covers the process of adding webMap feature layers and adding attributes data to the feature layers.
06:25

This lecture covers the section demo project setup.

03:12

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

04:00

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

02:24

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

08:27

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.

03:20

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

7 pages

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;
10:17

This lecture is the tutorial 5 solution.

Section 6: Section 6: Offline Map
03:00

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

06:01

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

02:29

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

06:57

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

05:43

This lecture covers how to display a webmap with credential.

16:29

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

06:05

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.

07:09

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

03:16
This lecture covers the process of modifying the progress label which is used to tell user the stages of estimating, downloading, or download completed.
07:52

This lecture covers the process of deploying an offline basemap with a downloaded basemap for export.

11 pages

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;
19:23

This lecture is the tutorial 6 solution.

Section 7: Section 7: Map Features
15:21
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.
11:09

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

03:48

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

07:36

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

04:56

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

12:42

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

10:39
This lecture covers the process of creating an image view controller. By clicking an accessory button of callout, the Image View Controller in this app is used to display a full size image.
11:10

This lecture covers the process of creating a segue connection between 2 view controllers, sending data from one view to another, and displaying a selected image in the image view controller by clicking the callout accessory button.

11:57

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

02:54

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

06:52

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

03:40

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

07:21

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

Students Who Viewed This Course Also Viewed

  • Loading
  • Loading
  • Loading

Instructor Biography

Alfred Lam, GIS Developer, gis-app.com

“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.

Ready to start learning?
Take This Course