CMIS 215 Class Notes - Fall 2013
Outline:
|
Notes:
- Be sure to remove XCode version 3.x - from the command
line!
- CoreDate can only selected from the New Project dialog
for the following:
- Master-Detail, Utility and Empty
- Bookmark references:
- Programming languages
|
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
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:
- Tell us about an app you like. What is good and bad about it.
- Same for an app that you think is particularly poor.
- Tell us about your experiences getting Xcode and the
first app running.
- Tell us about finding help!
- Talk about some parts of the code and environment
automatically generated by the Single View Application Xcode
template.
- List some good resources you have found.
Notes, comments and activities
- XCode - install this environment
- Do: Your First iOS App
- Single View Application template - start with this one for
this week
- Explore what you get with this template
- Add a few small items - say some buttons and some labels
- Change the background color
- Get the simulation running for iPhone and iPad
- Explore help - there is lots of it!
- Explore existing apps in the App store
- Get a key to work with your device in addition to using the
device simulators - this is optional really, but it makes
programming so much more fun.
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:
- Tell us about one of the framework you found interesting.
- Design a table you think is interesting.
- Tell us about some of the code that is new in the
Master-Detail Application template.
- 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:
- Tell us about an app that includes a map.
- Talk about a class or protocol in the map framework.
- 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:
- Tell us about a method in each of the following classes:
- UIView
Class Reference
- UIStoryboard
Class Reference
- UINavigationController
Class Reference
- UIPageViewController
Class Reference
- UISplitViewController
Class Reference
- UITabBarController
Class Reference
- UIPopoverController
Class Reference
- UIStoryboardSegue
Class Reference
- UITableViewController
Class Reference
- Talk about one of the ways one might trigger a segue.
- 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:
- Present a specification for an OpenGL object - ie, a
triangulation.
- Talk about animation in OpenGL.
- Tell us about your favorite OpenGL sprite, from the iOS 7.
- Tell us about an application designed to help create OpenGL
objects that you have either worked with or found.
- 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:
- Summarize an article about iOS security.
- Tell us about an object in iOS and the events it can generate.
- 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:
- Tell us about an app that you feel uses media particularly
effectively.
- Tell us about another app that you feel is particularly poor
at using the media capabilities of iOS (iPhone or iPad).
- What app would you like to create to exploit the media
capabilities of iOS?
- List some of the classes you think would be involved in such
an app.
- 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:
- Tell us a little about what you have learned about publishing
an app in the i-world.
- Tell us what you thought didn't work well in this class.
- Tell us a little about you thought worked particularly well in
this class.
- 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
- What are the display sizes in pixels for the various devices
that support iOS (iPhones and iPads)?
- What are the app icon sizes for the various iOS devices?
- How do you simulate rotating an iOS device in the iOS
Simulator?
- What method does one need to call when instantiating a class?
What other kind of method is usually called?
- Explain the difference between a class method and an instance
method?
- Explain the differences among class, instance and local
variables.
- 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;
- How does one get Quick Help in XCode?
- What are the 8 possible sections of a Quick Help entry?
- 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
- What are the 6 Map Kit data types?
- What are the 3 coordinate systems used by the Map Kit
Framework? Give a short definition of each system.
- What tasks are added to the NSValue class by the Map Kit
Framework?
- What are the steps needed to turn a zip code search into a
latitude and longitude in the Map Kit Framework?
- What does it mean to register your app as a routing app?
- What features are required for your app to accept routing
directions?
- How is an annotation added to a map?
- 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
- What are the 3 frameworks closely associated with
high-performance graphics?
- 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?
- Where would you find the OpenGL ES specification?
- Where would you find information about how Apple has
integrated OpenGL ES into the iOS?
- What device capabilities are available on the iPhone 5 that
are not available on the iPhone 3GS?
- How is an app configured to ensure that the current device has
the capabilities that app requires?
- List the steps required to draw a square using OpenGL on an
iPhone? Are the steps different for an iPad?
- How do you add a texture to an OpenGL object?
- What are the basic steps in animating an object in OpenGL?
h4 - Media
- What are the 4 audio frameworks supported by iOS? Describe in
a few words the key differences among them.
- What are the 6 Mid-level services in the Core Audio package?
- What is AUHAL? Describe this in one or two sentences.
- What are the 3 steps in taking a picture or movie with an
image picker controller?
- What is the purpose of the following class:
UIImagePickerControllerSourceTypePhotoLibrary?
References:
- iOS
Technology Overview: Media Layer
- Core
Audio Overview: Core Audio Essentials
- Core
Audio Glossary: Glossary
- Camera
Programming Topics for iOS: Taking Pictures and Movies
- 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:
- a text field
- a button that will change the background color of the detail
view between at least two different colors
- a button that will change the text field to at least five
different messages
- additional text fields to display the values of records and
let the user update them - thus the table should not have very
many fields for this project.
Your submission should include:
- The entire XCode project - as a zip file - including:
- custom icons for your app
- iPhone and iPad versions (so start with a universal
template)
- A readme file (documentation) including the following
sections:
- Your name
- Design
- template used
- list of the frameworks used in your project and how they
were used
- additional classes and files
- general structure of your solution
- User's Guide - how would a user view your app
- Test plan -
- how are you going to test your app to pursuade the
customer (me!) that it is working?
- This should be the FIRST thing you do, not the last
- Lessons Learned
- what was harder than you expected?
- what was easier?
- what lessons will you take on with you from this
experience?
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:
- The entire XCode project - as a zip file - including:
- custom icons for your app
- iPhone and iPad versions (so start with a universal
template)
- A readme file (documentation) including the following
sections:
- Your name
- Design
- template used
- list of the frameworks used in your project and how they
were used
- additional classes and files
- general structure of your solution
- User's Guide - how would a user view your app
- Test plan -
- how are you going to test your app to pursuade the
customer (me!) that it is working?
- This should be the FIRST thing you do, not the last
- Lessons Learned
- what was harder than you expected?
- what was easier?
- what lessons will you take on with you from this
experience?
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:
- The entire XCode project - as a zip file - including:
- custom icons for your app
- iPhone and iPad versions (so start with a universal
template)
- A readme file (documentation) including the following
sections:
- Your name
- Design
- template used
- list of the frameworks used in your project and how they
were used
- additional classes and files
- general structure of your solution
- User's Guide - how would a user view your app
- Test plan -
- how are you going to test your app to pursuade the
customer (me!) that it is working?
- This should be the FIRST thing you do, not the last
- Lessons Learned
- what was harder than you expected?
- what was easier?
- what lessons will you take on with you from this
experience?
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:
- The entire XCode project - as a zip file - including:
- custom icons for your app
- iPhone and iPad versions (so start with a universal
template)
- A readme file (documentation) including the following
sections:
- Your name
- Design
- template used
- list of the frameworks used in your project and how they
were used
- additional classes and files
- general structure of your solution
- User's Guide - how would a user view your app
- Test plan -
- how are you going to test your app to pursuade the
customer (me!) that it is working?
- This should be the FIRST thing you do, not the last
- Lessons Learned
- what was harder than you expected?
- what was easier?
- what lessons will you take on with you from this
experience?