Programam in Objective-C, prima noastra aplicatie pentru iOS in XCode 4.2

Nu se pot crea aplicatii iOS utilizând un computer Windows sau Linux, de aceea primul lucru de care veți avea nevoie este de un Mac, sau cel putin un PC care rulează OSX. Al doilea lucru pe care trebuie să-l faci este să descărci Xcode de pe siteul official al companiei Apple http://developer.apple.com/xcode/index.php, și să-l instalezi pe calculatorul tău.

Creăm proiectul

Pentru a începe cu crearea de noi applicatii iOS, vom crea un proiect nou.

Deschidem Xcode, când va fi încărcat, veţi vedea ecranul de bun venit.

În această fereastra, faceţi clic pe “Create a new Xcode project”.

Se va deschide fereastra ce conține template-urile.

Selectăm “Emthy Application”.

Pagina următoare vă va permite să definiţi numele proiectului şi identificatorul. Identificator este numele aplicaţiei. Îl puteţi vedea ca un nume de domeniu scris inversat. Dacă domenul site-ului dvs. este mycompany.com, identificatorul dvs. ar fi com.mycompany.APPLICATIONNAME.

 

Nu uitam sa deselectam “Use Core Data” si “Include Unit Test“.

În baza locaţiei pe care o selectaţi și a numelui proiectului, va fi creat un dosar cu acel nume şi fişierele proiectului nostru vor fi fixate acolo. Imediat după salvarea template-ului, vei observa cum iți este organizată fereastra de lucru.

 

Câteva lecții despre Objective-C

Fiecare obiect(clasă) într-un proiect Xcode are un fişier de antet cu extensia “.h“, şi un fişier de implimentare cu extensia “.m“.

  • În fișierul de antet (header file) se definește interfaţa obiectului (clasei), se importă fişierele,  se declara variabilele şi se declara metodele(funcţiile).
  • Fișierele care poseda extensiunea ”.m” , sunt numite fişiere de implementare (implementation file). În aceste fișiere își are reședința codul de baza al computatorului. Acesta este fișierul în care vă este pus în aplicare codul pentru obiect (clasa),  aici are loc adăugarea codului pentru metode (funcții), aici se manipulează variabilele dumneavoastră, sau se suprascrie şi personalizează clasa părinte.

Tot ceea de ce vom avea nevoie pentru a scrie codul și pentru a accesa interfaţa utilizatorului, vom găsi pe partea stângă a ecranului în “Project navigator“.

După cum puteţi vedea, aveţi posibilitatea să deschideți fiecare dintre dosare pentru a face cunoștință cu conţinutul acestuia.

Aici veți găsi 2 fișiere: “AppDelegate.h” si “AppDelegate.m” aceste fișiere se folosesc pentru declararea clasei “AppDelegate” care lansează și  gestionează aplicatia dumneavoastră.

Dacă aveţi orice particularizare necesară în timpul lansării/încheierii aplicației, sau atunci când aplicaţia trece în modul  ”background“, in acest caz puteţi introduce codul aici. Însă, în majoritatea cazurilor, puteţi ignora “AppDelegate”.

Atunci când veți face click pe aceste fişiere, Xcode va deschide o fereastră de cod sursă pe partea dreaptă a ecranului proiectului. Veţi observa că Xcode a pus deja o multime de lucruri acolo, fapt care ne va scuti de puțin tapat.

Modificam un pic codul

Deschidem fișierul “AppDelegate.h“, el trebuie să contină codul de mai jos

//
//  AppDelegate.m
//  HelloWorld
//
//  Created by XCode.md on 11/11/11.
//  Copyright (c) 2011 XCode.md. All rights reserved.
//
#import <UIKit/UIKit.h>
@interface AppDelegate : UIResponder <UIApplicationDelegate>
@property (strong, nonatomic) UIWindow *window;
@end

Deschidem fișierul “AppDelegate.m“, găsim aceste rânduri de cod

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];

și le comentăm sau le eliminam.

Acest fișier ar trebui să arate conțină următorul cod

//
//  AppDelegate.m
//  HelloWorld
//
//  Created by XCode.md on 11/11/11.
//  Copyright (c) 2011 XCode.md. All rights reserved.
//
#import "AppDelegate.h"
@implementation AppDelegate

@synthesize window = _window;

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
//self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
//self.window.backgroundColor = [UIColor whiteColor];
//[self.window makeKeyAndVisible];
return YES;
}

- (void)applicationWillResignActive:(UIApplication *)application
{
/*
Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game.
*/
}

- (void)applicationDidEnterBackground:(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:.
*/
}

@end

Creăm interfața utilizatorului

Pentru a începe, avem nevoie de un fișier de interfață cu care vom lucra. Din meniul din stânga selectăm “Project navigator“, pe dosarul “HelloWord”  facem click cu butonul din dreapta a mouse-ului și selectăm “New File“.

Din fereastra cu template-uri, care se va deschide, selectam “User Interface” >”Storyborad” și facem click pe “Next

Așa cum aplicația noastră este pentru dispozitive din familia iPhone selectăm “iPhone” și apăsăm pe ”Next

În fereastra urmatoare indicăm numele fișierului și îl creăm.

Dupa ce creăm fișierul de interfată “HelloWorldStoryboard.storyboard“, îl selectăm, și se va deschide fereastra următoare

În meniul din dreapta avem o listă cu elemente de interfață predefinite numită “Object Library“. În caz că nu vedem aceste elemente ne ducem la “View” > “Utilities” > “Show Object Library“. Această bibliotecă cu elemente de interfață este utilizată, în primul rând, pentru a alege elementele interfeței utilizatorului pe care dorim să le includem în aplicaţia noastră.

Din biblioteca de obiecte selectam elementul “View Controller” și-l tragem în chenarul gri

Găsim în lista de obiecte elementul “Label View” și-l tragem în ferestruica aplicaţiei noastre.

Înlocuim textul “Label” cu  textul “Salut Lume!“. Folosind instrumentele, care vor aparea în partea dreaptă a ecranului, putem edita modul în care apare textul.

În parea stânga a ecranului, facem click pe proiectul nostru “HelloWorld”  și în fereastra care se va deschide în campul “Main Storyborad” indicăm numele fișierului nostru de interfață “HelloWorldStoryboard“, nu e nevoie de a indica extensia.

Acum efectuăm un “test drive”. Apăsam butonul “Run”

 

Xcode va lansa acum Simulatorul iOS cu aplicaţia noastră în ea.

 

Pentru cei ce doresc sa descarce acest proiect am pus la dispozitie codul sursa

Leave a Reply

You must be logged in to post a comment.