CMIS 215 Class Notes - Fall 2013

Outline:

Notes:

Nick, (email, Sep 25, 2013)
Please find below the tutorial I mentioned :
It is covering previous version but has good structure.

How to submit your app:
You probably saw this:
Another tutorial:
Thank you
Alla
Sent from my iPhone

Preferred Schedule - Fall 2013

Date
Topics
Read
Modules
Assignment
Due Date
Week 1
XCode, iOS
Simple Controls
App store, help
Start Developing iOS Apps Today: Introduction
iOS App Programming Guide: About iOS App Programming
Manage Your Workflow in Xcode
Object 1
Object 2
Homework h1
Conference w1

Week 2
Frameworks
Preferences
Settings Bundle
Core Data
Survey the Major Frameworks
iOS Technology Overview: iOS Frameworks
Preferences and Settings Programming Guide: Implementing an iOS Settings Bundle
Core Data Tutorial for iOS: Introduction
Object 3
Project p1
Conference w2

Week 3
Maps, Locations
Lines, Routes
Location Awareness Programming Guide: Displaying Maps
Homework h2
Conference w3

Week 4
Views, Segues
Navigation
View Controller Programming Guide for iOS: About View Controllers
View Programming Guide for iOS: Views
View Programming Guide for iOS: About Windows and Views
View Controller Catalog for iOS: Navigation Controllers

Project p2
Conference w4

Week 5
OpenGL
OpenGL ES Programming Guide for iOS: About OpenGL ES
OpenGL ES for iOS - Apple Developer
Object 4
Homework h3
Conference w5

Week 6
Security
Event, Gestures
iOS App Programming Guide: App Design Basics
Event Handling Guide for iOS: About Events in iOS
Object 5
Project p3
Conference w6

Week 7 Media
Images, Web Pages
Audio, Video
iOS Technology Overview: Media Layer
Core Audio Overview: What Is Core Audio?
Core Audio Glossary: Glossary

Homework h4
Conference w7

Week 8
Designing and
Publishing an App
Prepare for App Store Submission
App Store Marketing and Advertising Guidelines ... - Apple Developer
App Store Review Guidelines - App Store Resource Center PDF.
Approval of iOS apps - Wikipedia, the free encyclopedia

Project p4
Conference w8


Weekly Conferences:

Week 1 (10.21-10.27) Xcode, iOS, Help

Welcome to CMIS 215 Week 1!

Our general goal in this class is to understand the Model-View-Controller programming paradigm and how it works in the iPad and iPhone environments.

For this week, please respond to the following:

  1. Tell us about an app you like. What is good and bad about it.
  2. Same for an app that you think is particularly poor.
  3. Tell us about your experiences getting Xcode and  the first app running.
    1. Tell us about finding help!
  4. Talk about some parts of the code and environment automatically generated by the Single View Application Xcode template.
  5. List some good resources you have found.

Notes, comments and activities

Reference readings - read the first page and at this point, don't get stuck. There are lots of new words and concepts, but they mostly make sense in relation to each other, so best is to just read it all, THEN try to create a picture of the whole. Perhaps reread a day or two later.

Week 2 (10.28-11.3) Frameworks, Data

Welcome to CMIS 215 Week 2!

For this week, please respond to the following:

  1. Tell us about one of the framework you found interesting.
  2. Design a table you think is interesting.
  3. Tell us about some of the code that is new in the Master-Detail Application template.
  4. Tell us about a few examples of data stored in the Preferences and/or Settings of an app on your iPhone or iPad.

Notes, comments and activities

Reference readings - read the first page and at this point, don't get stuck. There are lots of new words and concepts, but they mostly make sense in relation to each other, so best is to just read it all, THEN try to create a picture of the whole. Perhaps reread a day or two later.

Week 3 (11.4-11.10) Maps

Welcome to CMIS 215 Week 3!

For this week, please respond to the following:

  1. Tell us about an app that includes a map.
  2. Talk about a class or protocol in the map framework.
  3. What are the coordinates of some location of your choosing in terms that the map framework can use.

Notes, comments and activities

Reference readings - read the first page and at this point, don't get stuck. There are lots of new words and concepts, but they mostly make sense in relation to each other, so best is to just read it all, THEN try to create a picture of the whole. Perhaps reread a day or two later.

Week 4 (11.11-11.17) Views

Welcome to CMIS 215 Week 4!

For this week, please respond to the following:

  1. Tell us about a method in each of the following classes:
    1. UIView Class Reference
    2. UIStoryboard Class Reference
    3. UINavigationController Class Reference
    4. UIPageViewController Class Reference
    5. UISplitViewController Class Reference
    6. UITabBarController Class Reference
    7. UIPopoverController Class Reference
    8. UIStoryboardSegue Class Reference
    9. UITableViewController Class Reference
  2. Talk about one of the ways one might trigger a segue.
  3. Tell us a little about where and how a navigation controller can be configured.

Notes, comments and activities

Reference readings - read the first page and at this point, don't get stuck. There are lots of new words and concepts, but they mostly make sense in relation to each other, so best is to just read it all, THEN try to create a picture of the whole. Perhaps reread a day or two later.

Some of my notes - let me know if you find these useful and any suggestions for how to make them better:

ND.

Week 5 (11.18-11.24) OpenGL

Welcome to CMIS 215 Week 5!

For this week, please respond to the following:

  1. Present a specification for an OpenGL object - ie, a triangulation.
  2. Talk about animation in OpenGL.
  3. Tell us about your favorite OpenGL sprite, from the iOS 7.
  4. Tell us about an application designed to help create OpenGL objects that you have either worked with or found.
  5. Tell us about an app that uses OpenGL.

Notes, comments and activities

Reference readings - read the first page and at this point, don't get stuck. There are lots of new words and concepts, but they mostly make sense in relation to each other, so best is to just read it all, THEN try to create a picture of the whole. Perhaps reread a day or two later.

Week 6 (11.25-12.1) Security, Events

Welcome to CMIS 215 Week 6!

For this week, please respond to the following:

  1. Summarize an article about iOS security.
  2. Tell us about an object in iOS and the events it can generate.
  3. Talk about one of those events in more detail.

Notes, comments and activities

Reference readings - read the first page and at this point, don't get stuck. There are lots of new words and concepts, but they mostly make sense in relation to each other, so best is to just read it all, THEN try to create a picture of the whole. Perhaps reread a day or two later.

Week 7 (12.2-12.8) Media (audio, photo, video)

Welcome to CMIS 215 Week 7!

For this week, please respond to the following:

  1. Tell us about an app that you feel uses media particularly effectively.
  2. Tell us about another app that you feel is particularly poor at using the media capabilities of iOS (iPhone or iPad).
  3. What app would you like to create to exploit the media capabilities of iOS?
  4. Try creating a media related app in XCode, share what you did, and tell us some of what you learned by this experiment.

Notes, comments and activities

Reference readings - read the first page and at this point, don't get stuck. There are lots of new words and concepts, but they mostly make sense in relation to each other, so best is to just read it all, THEN try to create a picture of the whole. Perhaps reread a day or two later.

Week 8 (12.9-12.15) Publishing

Welcome to CMIS 215 Week 8!

For this week, please respond to the following:

  1. Tell us a little about what you have learned about publishing an app in the i-world.
  2. Tell us what you thought didn't work well in this class.
  3. Tell us a little about you thought worked particularly well in this class.
  4. I would appreciate any suggestions you have for improvements to this class.
Finally - I hope you all enjoyed this class and learned a lot! -
Best wishes as you go along,
Nicholas Duchon.

Notes, comments and activities

Reference readings - read the first page and at this point, don't get stuck. There are lots of new words and concepts, but they mostly make sense in relation to each other, so best is to just read it all, THEN try to create a picture of the whole. Perhaps reread a day or two later.

Assignments:

h1 - Getting started

  1. What are the display sizes in pixels for the various devices that support iOS (iPhones and iPads)?

  2. What are the app icon sizes for the various iOS devices?

  3. How do you simulate rotating an iOS device in the iOS Simulator?

  4. What method does one need to call when instantiating a class? What other kind of method is usually called?

  5. Explain the difference between a class method and an instance method?

  6. Explain the differences among class, instance and local variables.

  7. Would one put the following lines of code in a .m file or a .h file? Then explain ALL the tokens in both lines:
    + (NSString *) myMethodA: (NSString *) pa;
    - (NSDate *) myMethodB: (NSString *) pb thePlace: (NSURL *) pc;

  8. How does one get Quick Help in XCode?

  9. What are the 8 possible sections of a Quick Help entry?

  10. What are the 8 iOS application templates available in XCode version 5? Give a one sentence summary of each one's key characteristics.

h2 - Maps

  1. What are the 6 Map Kit data types?

  2. What are the 3 coordinate systems used by the Map Kit Framework? Give a short definition of each system.

  3. What tasks are added to the NSValue class by the Map Kit Framework?

  4. What are the steps needed to turn a zip code search into a latitude and longitude in the Map Kit Framework?

  5. What does it mean to register your app as a routing app?

  6. What features are required for your app to accept routing directions?

  7. How is an annotation added to a map?

  8. What is a map overlay, and how can one be added to a map? Try to keep this answer short and pretty general.

h3 - OpenGL

  1. What are the 3 frameworks closely associated with high-performance graphics?
  2. Where would you find support for physics-based dynamics? What protocol should dynamic objects conform to? What are the primary behaviors supported by that class?
  3. Where would you find the OpenGL ES specification?
  4. Where would you find information about how Apple has integrated OpenGL ES into the iOS?
  5. What device capabilities are available on the iPhone 5 that are not available on the iPhone 3GS?
  6. How is an app configured to ensure that the current device has the capabilities that app requires?
  7. List the steps required to draw a square using OpenGL on an iPhone? Are the steps different for an iPad?
  8. How do you add a texture to an OpenGL object?
  9. What are the basic steps in animating an object in OpenGL?

h4 - Media

  1. What are the 4 audio frameworks supported by iOS? Describe in a few words the key differences among them.
  2. What are the 6 Mid-level services in the Core Audio package?
  3. What is AUHAL? Describe this in one or two sentences.
  4. What are the 3 steps in taking a picture or movie with an image picker controller?
  5. What is the purpose of the following class: UIImagePickerControllerSourceTypePhotoLibrary?

References:

  1. iOS Technology Overview: Media Layer
  2. Core Audio Overview: Core Audio Essentials
  3. Core Audio Glossary: Glossary
  4. Camera Programming Topics for iOS: Taking Pictures and Movies
  5. Camera Programming Topics for iOS

p1 - A data base application

Design a database table that includes a time stamp (automatically provided by the Master-Detail Controller template), and at least two double values for latitude and longitude map coordinates and a delta indicating the size of the region the map is to display in Project 2.

Use the Master-Detail template to create a project that includes the database fields you have designed, and add to the detail view at least the following:

Your submission should include:

p2 - Maps

Continue previous app - add button to the detailed view to segue to a map view centered on the position of the detailed view.

Add a button to the new view to return from the map view to the detailed view.

Then add the capability of adding another location and using the map application present a route between those locations.

Your submission should include:

p3 - OpenGL

Create two objects using triangles and animate a distortion from one to the other. This is easier if the two objects have the same number of triangles and they are arranged in a corresponding manner relative the other triangles.

Your submission should include:

p4 - Media

Create an app that adds photos taken by the camera and sound recorded on your device to the data base application from Project 1.

Your submission should include: