21
júl 03

iPhone fejlesztés: játék a gombokkal

fejlesztes - by Meta Add comments

Az előző bejegyzésben elkészítettünk egy Hello World alkalmazást, ami tipikusan az első programja minden programozónak bármilyen új környezetben, továbbá kicsit áttekintettük a fejlesztőkörnyezetet és a kapott eszközöket.

Most már ígérem tényleg fogunk kódolni, de ne essetek kétségbe, nem lesz olyan vészes. A mai leírás egy egyszerű program elkészítéséről fog szólni, ami felhasználja az előző bejegyzést is, szóval, aki nem tanulmányozta még át, annak ajánlom, hogy tegye meg mielőtt hozzákezd. Ezt megteheti itt: Előző bejegyzés

iphone_sdk_shift



Az alkalmazás nagyon egyszerű, mégis rá fog világítani néhány alapvető elvre az iPhone programozással kapcsolatban. Egy label és egy gomb fog szerepelni a kijelzőn, és ha megnyomjuk a gombot, a label felirata megváltozik.

Ha eddig nem mondtam volna, akkor minden program fejlesztésénél a Modell-View-Controller elv szerint történik a kivitelezés, tehát a megjelenítés és a modell teljesen elkülönül, és egymás között történő tranzakciókat a vezérlő logika végzi.
Röviden a következőről van szó:

Modell: Olyan osztályok, amik a az alkalmazás adatait tartalmazzák.
View: A kijelzőn megjelenő kép felépítése, ez tartalmazza a kontrollokat, és minden olyan további elemet, amellyel a felhasználó kölcsönhatásba léphet.
Controller: összeköti a modell és a view elemeket, és itt található az alkalmazáslogika, ami eldönti, hogyan fog reagálni a program a felhasználó utasításaira.

Most nem megyek bele az mvc szemléletbe bővebben, erről mindenki találhat bővebb leírást az interneten.

Irány a fejlesztés!
Indítsuk el az Xcode fejlesztőkörnyezetet, és hozzunk létre egy View based alkalmazást a File/New Project menüpont segítségével. Adjuk neki a ButtonTest nevet. Ha mindent jól csináltunk akkor hasonló kép fog fogadni minket.

1

Ahhoz, hogy egy, a View-n megjelenő kontrollt elérjünk, szükségünk lesz hozzá egy mutatóra, amit IBOutlet névvel azonosíthatunk. Nyissuk meg a ButtonTestViewController.h fájlt, és írjuk bele az új sorokat:

Picture3

A @property sorra azért van szükségünk, hogy ne kelljen külön set és get metódust írni minden egyes osztályváltozóhoz.
Ha ezzel megvagyunk, akkor már majdnem el is készültünk a header fájllal, azonban mit jelenthet az –(IBAction)Gombnyomas:(id)sender sor? Ha egy gombhoz szeretnénk hozzárendelni valamilyen eseményt, akkor azt szükséges előre definiálni. Ez természetesen egy metódus képében jelenik meg a controller osztályban. Ehhez a Gombnyomas-hoz fogjuk a gombunk megfelelő eseményét kötni.

Ha ezzel megvagyunk, akkor nyissuk meg a ButtonTestViewController.m fájlt. Ez az implementációs fájl, amibe a kódunkat fogjuk írni. Mivel a header fájlban definiáltunk egy property-t, itt szükségünk van a párjára, a @synthesize-ra. Ezzel mondjuk meg a fordítónak, hogy hozza létre a get és a set metódust. A második módosítás a Gombnyomas metódus implementálása.

Illesszük be a következő sort az @implementation ButtonTestViewController sor alá:

@synthesize kiiras;

Itt azt szeretnénk hogy a kiiras nevű label text tulajdonsága megváltozzon, amit a úgy érhetünk el, hogy létrehozunk egy új stringet, majd a kiiras.text-nek az új stringet adjuk
Az utolsó változtatás pedig a label felszabadítása a dealloc metódusban, mivel szeretnénk hogy a programunk jól kezelje a memóriát.
Az egész ButtonViewController.m fájl így fog kinézni:

Picture4

Most hogy végeztünk a kódolással, irány az interface builder, és építsük fel a programunk felhasználói felületét!
Kattintsunk duplán a ButtonTestViewController.xib fájlra, amivel elindíthatjuk az InterfaceBuilder-t.
Húzzunk a view-ra egy labelt és egy round rect button-t. A label feliratát változtassuk meg az attributes inspector-ban arra hogy „Még nem nyomtak meg!”, a gombét pedig arra hogy „Gomb”. Ekkor körülbelül így kell kinéznie a View ablaknak.

Picture7

Most már csak két dolog van hátra és készen is leszünk. Ahhoz hogy a program tudja melyik outlethez mi tartozik, arra van szüksége hogy mi összekössük őket. Jelöljük ki a label-t, és válasszuk a Tools/Connections Inspector menüpontot. Itt a „New referencing Outlet” felirat melletti kis karikára kattintva húzzuk az egeret egészen a ButtonTestViewController.xib fejlécű ablakra, és azon belül is a File’s Owner feliratra.

Picture11

Ott a felugró ablakban pedig válasszuk a „kiiras” opciót. Most kattintsunk a gombra, és hozzuk be újra a connections inspector-t. Itt láthatjuk a gombhoz kapcsolódó események listáját.

Picture6

Nekünk most a Touch Up Inside kell, ami akkor hívódik meg, amikor a felhasználó a gombon emeli fel az újját. Ezt is húzzuk a File’s Owner-re, ahol most a Gombnyomas-t valasszuk a felugró ablakból.

Mentsük el az fájlt, és zárjuk be az Interface Buildert. Most már tényleg csak egy dolog maradt hátra: futtassuk az alkalmazást!
Ha mindent jól csináltunk, valami hasonlót kell látnunk mint ez:

Picture12

Aki nem bírna magával meglátogathatja a blogomat is.

21 Responses to “iPhone fejlesztés: játék a gombokkal”

  1. Andras Says:

    Jo reggelt.most már csak a gepemet kellene lecserelni egy macre.

    VálaszVálasz
  2. skl Says:

    @Andras: ha netán lecserléd és kevés a 2giga ram szóljá,me még van 2 ramom eladó :D

    VálaszVálasz
  3. Andras Says:

    Hm:)

    VálaszVálasz
  4. admin Says:

    @Andras: Reggelt :) @skl: pfff :)

    VálaszVálasz
  5. Ginopapa Says:

    @Andras: Hogy ne legyen hiányérzeted :D
    aptana.com/iphone

    VálaszVálasz
  6. nico Says:

    De jó nektek akinek apple gépe van!

    VálaszVálasz
  7. Ginopapa Says:

    @nico: Neked is ajánlom az oldalt mert az jo winfosra ! Neked is jo lesz :D

    VálaszVálasz
  8. Andras Says:

    Ginopapa.köszönöm

    VálaszVálasz
  9. zoltan Says:

    kicsit ciki
    index. hu/tech/hardver/2009/07/02/35_fok_folott_kikapcsol_az_iphone/

    VálaszVálasz
  10. iTrash Says:

    @zoltan: megnéztem a linket…és tudtommal ez már a 3Gben is megtalálható, csak nem 35foknál :D
    Viszont az, hogy -17 foknál ne próbálkozzunk a használattal :S Most akkor szerencsétlen oroszok…ott lesz még felháborodás :S
    Remélem nállunk nem lesz ilyen időszak… :)

    VálaszVálasz
  11. csigger Says:

    hát őszintén szólva ez az iphone programozás engem is érdekelne, annyira nem is vagyok sügér hozzá, mer már volt szerencsém más nyelvekben progit írni, és ahogy látom alapjaiban ugyanolyan! :)

    VálaszVálasz
  12. Trubica Says:

    @Ginopapa:
    Köszi a linket. Már régóta kerestem fejlesztőkörnyezetet windows alá, de eddig nem volt semmi.
    Most tölti, remélem működik is rendesen.

    VálaszVálasz
  13. Cyberbird Says:

    Amugy egesz sok pcre is fel lehet rakni az osxet. Nekem miota fent van a 10.5.7 gyakorlatilag csak játszani megyek át windowsra :) googlebe osx86 és wiki, aztán onnan rengteg leiras lesz, milyen hardvereken megy, mitlyen kextet kell leszedni stb.

    VálaszVálasz
  14. tHeShAdOw Says:

    @Ginopapa: Ez “csak” web alkalmazások fejlesztéséhez jó.

    VálaszVálasz
  15. halix Says:

    Sziasztok ! Lehet hogy mérgesek lesztek rám , de lenne egy számomra Fontos kérdésem felétek !
    Valaki mondjon már légyszíves nekem olyan videó konvertáló programot ami , a videó méretét is le csökkenti és létezik olyan program , amivel a fájljaimat kóddal letudom védeni , hogy csak én tudjam megnyitni ?

    Előre is köszönöm és elnézést kérek !

    VálaszVálasz
  16. tibor73 Says:

    @skl: 800-as ramod van?

    VálaszVálasz
  17. siriuspapa Says:

    @Cyberbird: szia!

    én leszedtem egy osx-et windiws-ra, 10.5.6. vmiér az istennek se akar bootolni a dvd-rol, irtam már 3at. lehet,h maga a lemez a szar. nem tudnál dobni nekem egy linket arrol, h hohhan tudom leszedni, ami neked van?

    elore is ksozi szépen

    VálaszVálasz
  18. Teddy Says:

    GINOPAPA + többiek!
    Felesleges letöltenetek, mert az nem valódi (natív) iPhone alkalmazásokra való, hanem már a 1.0-ban bemutatott web applicationre. Valójában olyan weblapokat írhatsz, amik hozzáférnek a telefonkönyvhöz, meg a naptárhoz.

    VálaszVálasz
  19. Teddy Says:

    Halix: veszel egy macet és mindkettőre azonnal választ ad, amint kiveszed a dobozból :-)
    És még iPhone-ra is fejleszthetsz rajta :-D

    VálaszVálasz
  20. Ginopapa Says:

    @Teddy: Akkor ez nem jött be ! Igaz nem lenne rossz ha winfoson is lehetne fejleszteni mert ahogy nézem hasonlo mint a flash irása és abban elég jo vagyok ! Lenne egy két ötletem amit megoldanék ha lehetöség lenne rá !

    VálaszVálasz
  21. aren85 Says:

    Sorry OFF-ert
    de szeretnek en is csatlakozni a fejleszteshez illetve kiprobalni a program ill jatek irast kis gyakrolatom van benne de sajnos windows 7em van most es macen lehet csak vegre hajtani megprobaltam felrakni ezt a verziot Kalyway_10.5.2_DVD_Intel_Amd de nem megy.tudna nekem vki segiteni osx leopard installban ill honnan szedjem le a megfelelo verziot.
    toshiba laptop intel core duo 2gb rammal.satellite l40-17u a tipusa a laptopomnak.
    elore is koszonom a segitseget.
    Byez all!

    Aren

    VálaszVálasz

Leave a Reply