iPhone fejlesztési tapasztalatok

Kezdő iPhone fejlesztőként szeretném összefoglalni a tapasztalataimat. Ezek a bejegyzések remélhetőleg nem csak nekem lesznek hasznosak.

Friss topikok

  • laposvas: hello Tegnap előtti állapot szerint 591Ft-ot vesz le amikor beregisztrálsz! Utánna az Xcode letöl... (2011.12.11. 21:28) Xcode használata

Linkblog

Változók deklarálása

2011.05.06. 16:31 shell8104

A következő néhány cikkben megpróbálom összefoglalni az Objective-C alapokat, mit hogyan kell leírni ezen a nyelven. Elsőként nézzük a változók deklarálását!

Először is vannak a primitív típusok. Ezeknél csak a típust kell megadni és a változó nevét. Ezután már használatba is vehetjük a változónkat. Ilyen típusok lehetnek az int, float és a double. Használatuk a következő:

int age;
age = 30;
age = age + 1;

 

A primitív típusok után vegyük elő a különböző objektum típusú változókat. Itt meg kell említeni, hogy pointerekkel tudunk létre hozni objektumokból változókat a memóriában. A pointer az objektum memóriában elfoglalt helyére mutat. A pointereket egy "*" karakterrel jelöljük és csak a deklarációban kell szerepeltetni. Használat közben már nem kell kiírni. Vegyünk például egy stringet reprezentáló osztályt, ez az NSString. Deklaráljunk egy NSString típusú változót:

NSString *testNSString;
testNSString = [[NSString alloc] init];

 

Nézzünk meg még egy érdekes dolgot, a tulajdonságokat, vagy property-ket. Ha létrehozunk egy saját osztályt, azon belül biztos szükségünk lesz változókra. Ezeket a változókat elérhetjük úgy is, hogy készítünk egy getter és egy setter metódust, ez azonban kényelmetlen lehet, ha sok változónk van és egy idő után unalmas is lehet megírni gépiesen ezeket a metódusokat. Ha ezt nem szeretnénk, választhatjuk a következő módszert: az osztály interfészében deklaráljuk a változót és az Objective-C-re bízzuk a getter és setter metódusok generálását. Nézzünk egy példát:

#import <Cocoa/Cocoa.h>

@interface Message : NSObject {
    NSString *greetingMessage;
}

@property (retain, nonatomic) NSString *greetingMessage;

- (void) greetings;

@end

 

A korábbi példánkat bővítjük ki. Az interfészbe felvettünk egy NSString típusú változót. A @property direktívával mondjuk meg hogy tulajdonságként szeretnénk használni a változót.

 

#import "Message.h"

@implementation Message

@synthesize greetingMessage;

- (void) greetings {
    NSLog(greetingMessage);
}

@end

 

Az implementációs fájlban a @synthesize direktívával azt mondjuk meg, hogy az Objective-C generálja le nekünk a getter és setter metódusokat.

 

Az eddigieket pedig így használhatjuk:

#import <Foundation/Foundation.h>
#import "Message.h"

int main (int argc, const char * argv[]) {
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];

    // insert code here...
    Message * message = [[Message alloc] init];
    message.greetingMessage = @"Property Test Message";
    [message greetings];
    [message release];
    [pool drain];
    return 0;
}

 

A példányosítás után értéket adunk a változónknak. A tulajdonságunknak köszönhetően "."-al hivatkozunk rá, nem "[]"-el, ahogy a példányosításnál is láttuk.

A követező post a controll flow témakörröl fog szólni.

Xcode használata

2011.04.25. 11:35 shell8104

Első ránézésre három lehetőségünk van feltelepíteni az Xcode-ot.

A Mac-hez kapott telepítő DVD-n megtalálható az Xcode 3-as verziója, ezt feltelepítve le is jön hozzá egy frissítés, így nálam most 3.2.6-os a verzió. Ahhoz, hogy az iOS SDK-t is fel tudjuk telepíteni, be kell lépni az AppleID-val ide: http://developer.apple.com/iphone, és le kell tölteni az iOS SDK-t, ez akár több giga is lehet. Ha nem fizettünk elő, akkor csak a legfrissebb verziót fogjuk látni, ha fizetős fejlesztők vagyunk, látjuk a korábbi verziókat is.

A második opció, hogy letöltjük az App Store-ból az Xcode 4-es verzióját. Ezt 4 €-ért tehetjük meg.

A harmadik, hogy előfizetünk a Developer Account-ra, ami $99/év (külön kell iOS-re és Mac-re előfizetni). Ezért nem csak az Xcode-ot kapjuk, hanem dokumentációkat és a jogot, hogy felrakjuk az alkalmazásunkat az App Store-ba.

Tanulás közben én ezt a sorrendet fogom használni, Objective-C-hez, és az első iPhone próbálkozásokhoz tökéletes az ingyenes 3-as verzió. A publikáláshoz meg muszáj a Developer Account.

Nézzünk meg egy egyszerű projektet:

Indítsuk el az Xcode-ot és hozzunk létre egy új projektet. A Mac OS X alatt válasszuk az "application" menüpontot a bal oldali ablakban. Utána jobb oldalon válasszuk a "Command line tool"-t és alatta a type combo-ból a "Foundation"-t. Menjünk tovább és nevezzük el a projektünket "HelloWorld"-nek. Létre is jött az első projektünk :)

Bal oldalon, a "Groups & Files" alatt nyissuk meg a "Source" mappát. Itt láthatók a projekthez tartozó fájlok. Egy lényeges van, ez a "HelloWorld.m". Ebben a fájlban található a main metódus. Adjunk hozzá egy új fájlt a projekthez: jobb klikk (CTRL + klikk) a source mappán -> Add -> new file. Bal oldalon Cocoa class -> jobb oldalon Objective-C class, alul a subclass NSObject. Nevezzük el a fájlt Message-nek (legyen kipipálva, hogy jöjjön létre a Message.h is, ez az alapértelmezett).

Objective-C-ben ha létrehozunk egy osztályt, az két fájlból áll. a ".h" kiterjesztés az osztályunk interfésze, itt kell deklarálni a változóinkat és a metódusokat. A ".m" kiterjesztésű fájl az implementációt tartalmazza. Nyissuk meg a Message.h fájlt és vegyük fel bele az üdvözlő metódusunkat:

 #import <Cocoa/Cocoa.h>


@interface Message : NSObject {

}

- (void) greetings;

@end

 Nyissuk meg a Message.m fájlt, és gépeljük be a következő sorokat:

#import "Message.h"


@implementation Message

- (void) greetings {
    NSLog(@"Hello World!");
}

@end

 Anélkül, hogy különösebb magyarázatokat fűznénk a kódhoz, látható, hogy az interfészben deklaráltuk a greetings metódust, ez egy példány metódus, ami azt jelenti, hogy létre kell hoznunk egy példányt ahhoz, hogy meg tudjuk hívni. Az implementációs fájlban írtuk le, hogy mit csináljon a greetings metódus (írja ki a "Hello World!" szöveget).

Elkészültünk a Message osztállyal, már csak használatba kell vennünk. Nyissuk meg a "HelloWorld.m" fájlt, és gépeljük be a következőt:

#import <Foundation/Foundation.h>
#import "Message.h"

int main (int argc, const char * argv[]) {
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];

    // insert code here...
    Message * message = [[Message alloc] init];
    [message greetings];
    [message release];
    [pool drain];
    return 0;
}

 A második sorban megmondjuk, hogy a kódban használni szeretnénk a Message osztályunkat. Az "insert code here" sor alatt sorban a következőket tesszük meg: példányosítunk egy objektumot, meghívjuk a greetings metódusát, majd gondoskodunk róla, hogy szabadítsuk fel a memóriát, miután már nincs szükségünk a message objektumra.

Futtassuk a programot! Nyomjuk meg a SHIFT+COMMAND+R billentyűket, ezzel megnyitjuk a Debugger Console ablakot. Ebben az ablakban nyomjuk meg a Build and Run gombot. Ha mindent jól csináltunk, akkor láthatjuk futni a programunkat, vastag betűvel megjelenik a "Hello World!" felirat. Ha valamit félre gépeltünk, akkor hibajelzést kapunk, javítsuk ki a hibákat és futtassuk újra!

Első lépések

2011.04.24. 23:20 shell8104

Régóta érdekel az iPhone-os fejlesztés, úgy döntöttem, hogy most belekezdek. Első lépésként vennem kellett egy mac-et. A 2011 eleji szériára esett a választásom, abból is a legkisebb darabra, a 13 colos i5-ös gépre. Ár/érték arányban ez volt a legmegfelelőbb. Ha magammal kell vinni, ezt is épp elég cipelni, ha otthon vagyok, úgyis kirakom a képet egy nagy monitorra.

Az első egy-két nap után sikerült beállítani mindent, ennyi idő alatt átszoktam a mac os x-re windows után :)

Azért kezdtem el ennek a blognak az írását, hogy összegyűjtsem a tapasztalataimat. Nekem biztos hasznos lesz később visszanézni a bejegyzéseket, remélehtőleg másnak is segíteni fog egy-két cikk.

A terv az, hogy elsőre az Objective-C-vel ismerkedem meg, utána jöhetnek a konkrét iPhone-os témák.

Szóval jó szórakozást az olvasáshoz, kezdjünk hozzá!

 

süti beállítások módosítása