Programming iOS - Developing Applications for iPhone and iPad

4/11/2018
10 class meetings.
6:30pm to 10:00pm Wednesday nights.

If you are a developer who wants to write applications that run on the iPhone or iPad, you should attend this class.

In 10 evenings, Programming iOS will teach you to create iOS applications like the ones you use on your iPhone every day. The class focus is on solid iOS Programming fundamentals which will serve you well in any context.

After an introduction to the Objective-C and Swift programming languages and the Foundation framework, we look in depth at the tools and the Classes that make up the iOS UI framework. We draw on the screen using UIKit, Core Graphics and Core Animation. We cover multi-touch event handling and the setup and configuration of a server in the cloud at AWS (Amazon Web Services) to support backend components of iOS applications. Your class assignments will interact with this server in a practical and real-world manner.

This course can be taught onsite for your company. Dave has taught this class for Shopzilla.com, LiveNation/TicketMaster, and many other smaller companies and individuals.



Lecture 3 - Foundation collection Classes, delegation introduction - 7/11/2018

In this lecture, the Foundation classes NSArray and NSDictionary are covered in more detail.

The design object-oriented software design pattern 'delegation' is discussed. The delegate design pattern is demonstrated through implementation of a basic UITableView object and through implementing a .delegate property on a custom class.

See Delegation in Wikipedia. The key is that the action is delegated to a helper object, but that the helper object has a pointer to the original context.

Homework 3: Investigating delegation and the UITableView

The purpose of this homework assignment is to gain more practice working with delegation and the UITableView class.

Hopefully you will have fun with the assignment and will experiment outside of the homework requirements, for example by adding a custom view to the UITableviewCell or by changing the appearance of the cell. This one could take up some time as some of the concepts may be unfamiliar.

  • Create an iPhone or iPad application using view-based template
  • Add an NSArray of items to be displayed on the screen
  • Add a UITableView to the screen
  • Add the appropriate delegate methods to support the UITableView drawing
  • After you get the tableview to work properly, add the appropriate delegate method to change the height of each UITableViewCell to be 100 points.


This assignment will take some time, but will be a foundation for many iphone projects.



Video: Homework 3 - Delegation and UITableView
http://cdn.certifiednetworks.com/videos/classes/iphone/201410/homework3-uitableview.mp4

Lecture 2 - Screen structure and layout, Specialized UIView Objects, Target/Action - 7/4/2018

Due to holiday schedule, this lecture will be online only.
In this lecture, we review the startup process of an iOS application from main() to the UIApplicationDelegate's application: didFinishLaunchingWithOptions: method. We continue to investigate Objective-C and Swift classes including methods and properties.

Fundamental application architecture is discussed, including screen structure and layout. The UIView hierarchy is reviewed, and more of the properties of UIView are discussed. A few specialized UIView objects are demonstrated, such as UIImageView and UIWebView.

The target/action pattern is introduced and an example of this pattern is demonstrated with a UIButton.

This wikipedia link on Target/Action might be interesting to check out. The 'target' of the UIButton events will typically be the UIViewController instance, and the 'action' will be a method that has been defined by the programmer in the UIViewController object.

Homework 2: Specialized UIViews and Target/Action
  • Create an iphone application using the view-based template
  • Place a UITextField, UILabel and UIButton into the view hierarchy
  • Define a method that reads the contents of the UITextField and sets the .text property of the UILabel
  • Use target/action on the UIButton to call your method when the TouchUpInside event is fired


Video: Homework 2 - Target/Action

Lecture 1 - iOS Platform, Objective-C and Swift 4.0 - 6/27/2018

In this lecture, practical iOS development is introduced. A sample application is created to introduce the Objective-C/Swift 4 programming languages and their basic elements.

Objective-C is an programming language that features extensions of the ANSI C language. These extensions that have been added are mostly centered around object-oriented programming: creating Classes and working with methods on the Classes.

The following foundational programming topics are discussed:
Declaring constants and variables Control of program flow Comments Datatypes The following Objective-C syntax extensions should be reviewed:
  • @interface
  • @implementation
  • @property
  • [ ] (square brackets)
  • #import
  • - (minus sign to mark an instance method)
  • + (plus sign to mark an class method)
  • The @ sign as a shortcut - for example, @"Hello, World" creates an instance of an NSString


Swift is a programming language released with iOS8 which has subsequently been updated to version 4. It is a more modern language and is similar to Java and C#. Devices must be running at least iOS7 to support a swift application, iOS9 and up has better support.

The Apple Swift website is a good place to start learning about Swift programming for iOS, as well as the Apple WWDC Site.

The following Swift concepts and keyword should be reviewed:
  • var
  • let


Homework 1: Contact Info, Setting Up Your Development Environment, Basic App
  • Send an email to Dave at dhenson@certifiednetworks.com with iOS in the subject line. This is important so your email address can be whitelisted, and so you can be invited to the Slack channel.
  • Install the current production version of XCode (Version 9.4.1 as of June 2018). This will likely need to be updated before our course has completed. Use the "App Store" application on your Mac to find and download the free (quite large) XCode application.
  • Create an iphone application using the "Single View Application" template.
  • Display a red UIView object on the screen.
  • Add a touch event to move the UIView around the screen
  • Repeat once for Swift and once for Objective-C
  • Zip up the project folders and post them to Dave on Slack.
  • See the video(s) below for help! Note that the section on Swift needs an update in the video due to older syntax.


Video: Homework 1 - Getting Started with Objective-C and Swift
Note: This video needs to be updated for Swift 4.0! Coming soon.

Back to Top

XCode Projects - Class Demos, Examples and Homework Answers

Slides

Class Logistics

Previous Versions of iPhone and iPad iOS Development class

External Links

home Site Map Terms of Use Privacy Policy Client Directories