iOS: prima applicazione per iPhone

Creazione della prima app

Ora creeremo una semplice applicazione a visualizzazione singola (un'app vuota) che verrà eseguita sul simulatore iOS.

I passi sono come segue.

Step 1 - Apri Xcode e seleziona Create a new Xcode project.

Step 2 - Seleziona Single View Application.

Step 3 - Immettere il nome del prodotto, ovvero il nome dell'applicazione, il nome dell'organizzazione e quindi l'identificativo dell'azienda.

Step 4 - Assicurati che Use Automatic Reference Countingè selezionato per rilasciare automaticamente le risorse allocate una volta che esce dall'ambito. Fare clic su Avanti.

Step 5 - Seleziona la directory per il progetto e seleziona crea.

Step 6 - Vedrai una schermata come segue -

Nella schermata sopra, sarai in grado di selezionare gli orientamenti supportati, costruire e rilasciare le impostazioni. Esiste un obiettivo di distribuzione sul campo, la versione del dispositivo da cui vogliamo supportare, selezioniamo 4.3, che è l'obiettivo di distribuzione minimo consentito ora. Per ora, questi non sono necessari e concentriamoci sull'esecuzione dell'applicazione.

Step 7 - Ora, seleziona il simulatore iPhone nel menu a discesa vicino al pulsante Esegui e seleziona Esegui.

Step 8- Questo è tutto; hai eseguito con successo la tua prima applicazione. Otterrai un output come segue:

Ora cambiamo il colore di sfondo, solo per iniziare con il generatore di interfacce. Seleziona ViewController.xib. Seleziona l'opzione di sfondo sul lato destro, cambia il colore e corri.

Nel progetto precedente, per impostazione predefinita, l'obiettivo di distribuzione sarebbe stato impostato su iOS 6.0 e il layout automatico sarà abilitato. Per garantire che la nostra applicazione venga eseguita su dispositivi con iOS 4.3 in poi, abbiamo già modificato l'obiettivo di distribuzione all'inizio della creazione di questa applicazione, ma non abbiamo disabilitato il layout automatico.

Per disabilitare il layout automatico, dobbiamo deselezionare la casella di controllo del layout automatico nell'ispettore dei file di ciascun pennino, cioè i file xib. Le varie sezioni dell'IDE del progetto Xcode sono riportate nella figura seguente (Cortesia: documentazione utente di Apple Xcode 4).

L'ispettore file si trova nella barra di selezione dell'ispettore come mostrato sopra e il layout automatico può essere deselezionato lì. Il layout automatico può essere utilizzato quando si desidera scegliere come target solo i dispositivi iOS 6. Inoltre, sarai in grado di utilizzare molte nuove funzionalità come il libretto se aumenti l'obiettivo di distribuzione a iOS 6. Per ora, restiamo fedeli a iOS 4.3 come obiettivo di distribuzione.

Codice della prima applicazione iOS

Troverai cinque diversi file che sarebbero stati generati per la tua applicazione. Sono elencati come segue:

  • AppDelegate.h
  • AppDelegate.m
  • ViewController.h
  • ViewController.m
  • ViewController.xib

AppDelegate.h

// Header File that provides all UI related items. 
#import <UIKit/UIKit.h> 

// Forward declaration (Used when class will be defined /imported in future)
@class ViewController;  

// Interface for Appdelegate
@interface AppDelegate : UIResponder <UIApplicationDelegate>

// Property window 
@property (strong, nonatomic) UIWindow *window; 

// Property Viewcontroller

@property (strong, nonatomic) ViewController *viewController;
//this marks end of interface 
@end

Important items in code -

  • AppDelegate eredita da UIResponder che gestisce gli eventi iOS.

  • Implementa i metodi delegati di UIApplicationDelegate, che fornisce eventi chiave dell'applicazione come il completamento dell'avvio, il termine e così via.

  • Oggetto UIWindow per gestire e coordinare le varie visualizzazioni sullo schermo del dispositivo iOS. È come la vista di base su cui vengono caricate tutte le altre viste. Generalmente c'è solo una finestra per un'applicazione.

  • UIViewController per gestire il flusso dello schermo.

AppDelegate.m

// Imports the class Appdelegate's interface
import "AppDelegate.h" 

// Imports the viewcontroller to be loaded
#import "ViewController.h" 

// Class definition starts here
@implementation AppDelegate 


// Method to intimate us that the application launched successfully
- (BOOL)application:(UIApplication *)application 
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
   self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
   
   // Override point for customization after application launch.
   self.viewController = [[ViewController alloc]
   initWithNibName:@"ViewController" bundle:nil];
   self.window.rootViewController = self.viewController;
   [self.window makeKeyAndVisible];
   return YES;
}

- (void)applicationWillResignActive:(UIApplication *)application {
   /* Use this method to release shared resources, save user data,
   invalidate timers, and store enough application state information
   to restore your application to its current state in case it is 
   terminated later. If your application supports background 
   execution, this method is called instead of
   applicationWillTerminate: when the user quits.*/
}

- (void)applicationWillEnterForeground:(UIApplication *)application {
   /* Called as part of the transition from the background to the 
   inactive state. Here you can undo many of the changes made on 
   entering the background.*/
}

- (void)applicationDidBecomeActive:(UIApplication *)application {
   /* Restart any tasks that were paused (or not yet started) while 
   the application was inactive. If the application was previously in 
   the background, optionally refresh the user interface.*/
}

- (void)applicationWillTerminate:(UIApplication *)application {
   /* Called when the application is about to terminate. Save data if 
   appropriate. See also applicationDidEnterBackground:. */
}

- (void)applicationWillTerminate:(UIApplication *)application {
   /* Called when the application is about to terminate. Save data if appropriate.
   See also applicationDidEnterBackground:. */
}
@end

Important items in code -

  • I delegati di UIApplication vengono definiti qui. Tutti i metodi definiti sopra sono delegati dell'applicazione dell'interfaccia utente e non contengono metodi definiti dall'utente.

  • L'oggetto UIWindow viene allocato per contenere l'applicazione allocata.

  • UIViewController viene allocato come controller di visualizzazione iniziale della finestra.

  • Per rendere visibile la finestra, viene chiamato il metodo makeKeyAndVisible.

ViewController.h

#import <UIKit/UIKit.h> 

// Interface for class ViewController
@interface ViewController : UIViewController 

@end

Important items in code -

  • La classe ViewController eredita UIViewController, che fornisce il modello di gestione della visualizzazione fondamentale per le applicazioni iOS.

ViewController.m

#import "ViewController.h"

// Category, an extension of ViewController class
@interface ViewController ()

@end

@implementation ViewController  

- (void)viewDidLoad {
   [super viewDidLoad];
   // Do any additional setup after loading the view, typically from a nib.
}

- (void)didReceiveMemoryWarning {
   [super didReceiveMemoryWarning];
   // Dispose of any resources that can be recreated.
}
@end

Important items in code -

  • Due metodi implementati qui sono definiti nella classe base UIViewController.

  • Eseguire la configurazione iniziale in viewDidLoad che viene chiamato dopo il caricamento della vista.

  • Il metodo didReceiveMemoryWarning viene chiamato in caso di avviso di memoria.