Tuesday, April 08, 2014

iOS 7 Training Course by Stanford University

iOS 7 training course, Developing iOS Apps for iPhone and iPad, offered by Paul Hegarty, University of Stanford was published on Oct 28, 2013 at iTunesU. I did not realized its availability until today. Actually WWDC 2014 will be on June 2, 2014. New iOS features will be announced in about two months time.

Here is the description of the course:

Updated for iOS 7. Tools and APIs required to build application for the iPhone platform using the iOS SDK. Users interface designs for mobile devices and unique user interactions using multi-touch technologies. Objective-oreiented design using model-controller paradigm, memory management, Objective topics includes: objective-oriented database API, animation, multi-threading and performance considerations.

Prerequisites: C language and objective-orianted programming experience

Recommended: Programming Abstractions.

Offered by Stanford School of Engineering and released with Creative Commons BY-NC-SA licenses.  If you have disability-related accessibility question, please email cs193p-accessibility@lists.stanford.edu.

Couse Outline

I. Couse Introduction, Overview of iOS, MVC Objective-C
II. Xcode 5
III. Objetive-C
IV. Foundation, Attributed Strings
V. View Controller Lifecycle

This course is on the top of Cources in iTunesU.

Today I finished the first course. I am going to update this blog with my progress.

NameFinished DateNotes
1. Class Logistics, Overview of iOS, Objective-C2014-04-08MVC is explained in 1st lesson!
2. Xcode 52014-04-09Created card matching game (Matchismo) project in Xcode 5
3. Objective-C2014-04-09Updated the project with model class CardGame class. Demonstrated communication between Controller and Model & View in Xcode.
4. Foundation and Attributed Strings2014-04-09More on Objetive-C, id, introspection(query id class type and method implementation; Foundation: NSObject, NSArry, NSNumber, NSData, NSDIrectionary, NSUserDefaults, NSRange, UIFont UIColor, NSAttributedString(new in iOS 7).
5. View Controller Lifecycle2014-04-10Continue on attributed string with UITextView (new attributed string for the view). View controller lifecycle and Notification (radio station communication mechanism) with new Attributor demo project.
6. Polymorphism with Controllers, UINavigation, UITableBar2014-04-10Polymorphism: Subclass and abstract class; MVCs controlled by navigation or tab controllers.
7. View and Guestures2014-04-11Views are most often constructed in Xcode graphically. Override drawRect:for customized UIView class, to draw your own staff.  Use UIBezierPath to draw.  Drawing text: UILabel, NSAttributedString.

UIGuestureRecgonizer  for accept inputs: pan, pinch,  rotation, swipe, and tap.

Demo: SuperCard: draw card in customized view class, and handle swipe gesture to turn card, pinch gesture to scale card image.
8. Protocols, Blocks and Animation2014-04-12First two are very important coding practices in Objective-C. Block of codes can be attached to methods as a way for customized implementation. iOS 7 adds two ways to do animation, view animation methods and animator with behaviors. Demo DropIt project shows the power of animations.
9. Animation and Autolayout2014-04-13Continued the previous demo on animation: less tippy, add trap to dropping view with line.
Autolayout is powerful in iOS 7. Paul explained three ways to do it in Xcode: 1. use guidelines, 2. tools in Xcode bottom, and 3. control-click.
Demo: update previous Attibutor project with auto layout, simple and nicely done!

10. Multithreading, Scroll View2014-04-13iOS 7 utilizes blocks to make multithreading much easy to manage and control. Demo project imaginarium shows downloading image with multithreading technique and scroll view to host image with zooming feature.
11. Table View and iPad2014-04-14Table view has been in iOS since iPhone first version. It is a very popular way to show data. Paul showed activity indicator for table view. This may be something new in iOS 7. The second part is about iPad. Demo: universal app Shutterbug displaying photos from Flikr.
12. Documents and Core Data2014-04-14Document is used for storage, here Core data is using it as storage. Core data has been in iOS for long time, but it has been updated extensively. Xcode provides working nice UI and classes for data creation, update, deletion and query. Paul explains basics in a clear layout logic.
13. Core Data and Table View2014-04-15This lecture contains a lot of information about core data, radio notification pub and sub, application delegate, and background execution. All are explained quickly in Photomanian project.
14. UIApplication, Network Activity2014-04-16Briefly on UIApplication: sharedApplication and delegate. One property networkActivityVisible, maybe confusing when you have a lots of activities and turning it on or off. Demo Photomanian, iPad, show photos, and popover. Maps: core classes for Maps. Tip on working on iPad or iPhone, copy and paste storyboard!
15. MapKit and Embed Segue2014-04-16Quickly through MapKit classes. Continued to Photomanian demo, iPhone: replaced PhotoByPhotographer's tableview with mapvuew; iPad: two ways to show maps and photos, first one similar to iPhone's flow out, and second embed view by embed segue, very cool!
16. Modal Segue and Text Field2014-04-17Last segue in this lecture. The only difference is unwise segue, set action to storybord green icon in view. Text field is for text input in one line. Demo: Photomanian, add photos from camera (no camera information in this class) by modal segue, alert view, cancel or add a photo to photographer.

Also showed how to start CLocation manager and to get location of latitude and longitude. 
17. Camera, Core Motion, Application Lifecycle2014-04-18Camera: continued to demo Photomaian to add "Take photo" to new photo view.

In second half, Paul explained Motion APIs first, then he demoed a project Bouncer with no storyboard, all in codes, redBlock and blackBlock to bounce based on animation and motion manager. 
18. Localization, Adding UI to Settings2014-04-18Paul showed tick to localize strings: search for @" in .m, #define for localization, and then gesturing in finder to generate strings. Xcode provides UI for stroryboard localization. Use . for localized strings. Demo: Photomanian localization

For settings, Paul uses Bouncer as demo to as slider for alacrity setting.


Manish Pandey said...

Thanks for your informative article on ios mobile application development. Your article helped me to explore the future of mobile apps developers. Having sound knowledge on mobile application development will help you to float in mobile application development. IOS Training in Chennai