Introducción al
 desarrollo iOS




   16.02.13
Who I am?



   Jorge   Maroto García.
   iOS   Developer @ Tactilapp.
   +2   años jugando con iOS.
   Fanboy.
Contenido
 Plataforma.

 Lenguaje.

 SDK.

 IDE.

4   Ejemplos (https://github.com/patoroco/taller-iOS).
 Herramientas     útiles.
iPhone
29.06.07
  iPhone 2G.
iPhone OS 1.0.




                 Fuente: Wikipedia
06.03.08
SDK (beta).



Fuente: Wikipedia
11.07.08
                      iPhone 3G.
                    iPhone OS 2.0.
                       AppStore.




Fuente: Wikipedia
19.06.09
  iPhone 3GS
iPhone OS 3.0
 Copy & Paste




            Fuente: Wikipedia
24.06.10
 iPhone 4
   iOS 4
Multitask!!!




               Fuente: Wikipedia
06.06.11
                    iPhone 4S
                       iOS 5
                     Full ARC
                    Storyboard




Fuente: Wikipedia
24.09.12
 iPhone 5
   iOS 6
AutoLayout




             Fuente: Wikipedia
El lenguaje
Objective-C
 Brad   Cox, 1980.
 NextStep,   1988.
 Orientado   a objetos.
 Superconjunto    de C.
 GCC    / LLVM.
 Recolector   de basura. ARC.
 Pase   de mensajes.
                           Fuente: Wikipedia
Objective-C II
 Sintaxis   de C.
 Interface   (.h) / Implementación (.m).
 Herencia    simple.
 Protocolos.

 Properties.

 Métodos     de clase (+) / Métodos de instancia (-).
Ejemplo de método

    - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    return self;
}
SDK
Capas




Fuente: http://mobile.tutsplus.com
Foundation

 NSString

 NSNumber

 NSArray    / NSDictionary / NSSet + mutables
 NSDate

 NS<...>
Cocoa Touch
 UIViewController   / UITableViewController
 UITabBarController

 UINavigationController

 UIView

 UIButton

 UIWebView

 UI<...>
Herramientas de
   desarrollo
XCode
Desarrollo: XCode
OLA K ASE
Aplicaciones
Sandboxing




  Fuente: http://dev.apple.com
Ciclo de vida de una
     aplicación




       Fuente: http://jorgemaroto.es
Conceptos

 IBOutlet.

 IBAction.

 UITabBarController.

 Plantilla   nueva: TabBar.
 UIAlertView.
¿Un pomodoro?
Conceptos

 UINavigationController

 UITableView.

 Delegados.

 Frameworks     (Social).
¿Qué está pasando?
Conceptos

 Third-party  libraries (AFNetworking).
  https://github.com/AFNetworking/AFNetworking
 Parsear   XML.
 UIWebViewController.

 StoryBoard.
StoryBoards
StoryBoards




 Fuente: http://www.emmahoughtonportfolio.com
Las noticias
Algunas herramientas útiles
 Dash.
  http://kapeli.com/

 Cocoa       Pods.
  http://cocoapods.org/

 TestFlight.
  https://testflightapp.com/

 Parse.
  https://parse.com/

 UrbanAirShip.
  http://urbanairship.com
Ya he terminado mi
app, ¿cómo me forro?

 Cuenta   de desarrollador de Apple (80€/año).
 Subir   aplicación a la AppStore.
 Cruzar   los dedos para que la publiquen.
¿Y ahora?

 Multitud   de frameworks.
 Librerías   muy interesantes.
 Libros.

 Tests   (OCUnit incluido en el SDK).
 Github.    Lee, lee, lee!!!
Gracias




                                         Jorge Maroto García
                                         @patoroco
https://github.com/patoroco/taller-iOS   jorge@tactilapp.com

Taller de iniciación a iOS