Wednesday, September 3, 2014

IPhone Development Guide

MapKit:
https://developer.apple.com/videos/wwdc/2014/
https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/LocationAwarenessPG/Introduction/Introduction.html

Samples:
https://developer.apple.com/library/ios/referencelibrary/GettingStarted/RoadMapiOS/FirstTutorial.html
https://developer.apple.com/library/ios/referencelibrary/GettingStarted/RoadMapiOS/DesigningaUserInterface.html#//apple_ref/doc/uid/TP40011343-CH6-SW1
http://blog.strikeiron.com/bid/63338/Integrate-a-REST-API-into-an-iPhone-App-in-less-than-15-minutes

Framework:
UIKit.framework
Foundation Framework

Source Control:
Tool: SVN
https://developer.apple.com/Library/ios/documentation/ToolsLanguages/Conceptual/Xcode_Overview/Save_and_Revert_Changes_to_Files/ManageChanges.html


API:
https://developer.apple.com/library/mac/documentation/cocoa/conceptual/ProgrammingWithObjectiveC/Introduction/Introduction.html
https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIApplication_Class/Reference/Reference.html#//apple_ref/occ/cl/UIApplication
https://developer.apple.com/library/ios/navigation/
http://blog.teamtreehouse.com/the-beginners-guide-to-objective-c-language-and-variables
http://blog.teamtreehouse.com/the-beginners-guide-to-objective-c-methods


Objective-C Programming:
1. The @autoreleasepool statement is there to support memory management for your app. Automatic Reference Counting (ARC) makes memory management straightforward by getting the compiler to do the work of keeping track of who owns an object; @autoreleasepool is part of the memory management infrastructure.
2.  it’s important to understand that iOS apps are based on event-driven programming. In event-driven programming, the flow of the app is determined by events: system events or user actions. The user performs actions on the interface, which trigger events in the app. These events result in the execution of the app’s logic and manipulation of its data. The app’s response to user action is then reflected back in the interface.
3.  Objective-C is built on top of the C programming language and provides object-oriented capabilities and a dynamic runtime. You get all of the familiar elements, such as primitive types (int, float, and so on), structures, functions, pointers, and control flow constructs (while, if...else, and for statements). You also have access to the standard C library routines, such as those declared in stdlib.h and stdio.h.
4.  You make an object by creating an instance of a particular class. You do this by allocating it and initializing it with acceptable default values. When you allocate an object, you set aside enough memory for the object and set all instance variables to zero. Initialization sets an object’s initial state—that is, its instance variables and properties—to reasonable values and then returns the object. The purpose of initialization is to return a usable object. You need to both allocate and initialize an object to be able to use it.
5.  The NSString class provides an object wrapper for strings, offering advantages such as built-in memory management for storing arbitrary-length strings, support for different character encodings (particularly Unicode), and utilities for string formatting
6.  Any object you add to a collection will be kept alive at least as long as the collection is kept alive. That’s because collection classes use strong references to keep track of their contents
7.  As with the value classes described earlier in this chapter, you can create an array through allocation and initialization, class factory methods, or array literals.
8.  

Objective-C:
https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/ProgrammingWithObjectiveC/Introduction/Introduction.html#//apple_ref/doc/uid/TP40011210

Main Classes:
UIApplication - Singleton
UIApplicationDelegate

State Management:
1. Apps can be in the not running, inactive, active, background or suspended state. 


References:
http://stackoverflow.com/questions/11013587/differences-between-strong-and-weak-in-objective-c