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.