ios alkalmazásfejlesztés Koltai Róbert

Hasonló dokumentumok
iphone programozás alapjai

iphone Programozás II. előadás február 14.

iphone programozás alapjai

iphone programozás alapjai I. Gyakorlat

Tartalomjegyzék. I. rész: Bevezetés. A szerzőről... xvii. Köszönetnyilvánítás... xix. Bevezetés... xxi. 1. Bevezetés az iphone programozásába...

iphone programozás alapjai IV. Gyakorlat

iphone programozás alapjai

Programozási technológia

Eseménykezelés. Szoftvertervezés és -fejlesztés II. előadás. Szénási Sándor.

Objektumorientált programozás Pál László. Sapientia EMTE, Csíkszereda, 2014/2015

ios alkalmazásfejlesztés alapjai Nagy Aszter András BME MIK

Országos Területrendezési Terv térképi mel ékleteinek WMS szolgáltatással történő elérése, MapInfo program alkalmazásával Útmutató 2010.

Elektromos roller töltőhálózat tervezése crowdsourcing alapokon

Országos Területrendezési Terv térképi mellékleteinek WMS szolgáltatással történő elérése, MapInfo program alkalmazásával

Már megismert fogalmak áttekintése

Adatszerkezetek Tömb, sor, verem. Dr. Iványi Péter

Generikus Típusok, Kollekciók

Windows rendszeradminisztráció és Microsoft szerveralkalmazások támogatása. 5. óra. Kocsis Gergely, Supák Zoltán

Webkezdő. A modul célja

Bevezetés az iphone programozásába

JAVA SE/ME tanfolyam tematika

ARM Cortex magú mikrovezérlők

Platform lehetőségek kutatása: ios. A Mobil multimédiás kliens fejlesztői eszközkészlet létrehozása című kutatás-fejlesztési projekthez

JAVA webes alkalmazások

A szerzõrõl... xi Bevezetés... xiii

ios alkalmazásfejlesztés Koltai Róbert

Kommunikáció. Folyamatok közötti kommunikáció. Minden elosztott rendszer alapja

Fejlesztői szemmel at K

Swing GUI készítése NetBeans IDE segítségével

és az instanceof operátor

Objektum orientáltság alapjai A Java nyelv Fordítás - futtatás

MIRASYS NVR általános ismertető

Java VIII. Az interfacei. és az instanceof operátor. Az interfészről általában. Interfészek JAVA-ban. Krizsán Zoltán

eseményvezérelt megoldások Vizuális programozás 5. előadás

iphone és Android két jó barát...

Programozás BMEKOKAA146. Dr. Bécsi Tamás 8. előadás

Bevezetés a Python programozási nyelvbe

Webes alkalmazások fejlesztése 2. előadás. Webfejlesztés MVC architektúrában (ASP.NET) Webfejlesztés MVC architektúrában Fejlesztés ASP.

Java programozási nyelv 4. rész Osztályok II.

A Java EE 5 plattform

C# Szálkezelés. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) C# Szálkezelés / 21

1. Template (sablon) 1.1. Függvénysablon Függvénysablon példányosítás Osztálysablon

Android Wear programozás. Nyitrai István

Analóg kamera menüi DINION 4000 AN. Gyors kezelési útmutató


MVC. Model View Controller

Digitális fényképezőgép Szoftver útmutató

Tartományi környezet

Mi az a Memory Management

1. Mi a fejállományok szerepe C és C++ nyelvben és hogyan használjuk őket? 2. Milyen alapvető változókat használhatunk a C és C++ nyelvben?

Broadcast Service Widget

Oracle Enterprise Manager: Az első teljesértékű felhő üzemeltetési megoldás

Az Oracle Fusion szakértői szemmel

A Web réteg architektúrája A JSF web alkalmazás keretrendszer. Bakay Árpád dr. NETvisor kft (30)

Osztályok. 4. gyakorlat

Webes alkalmazások fejlesztése. Bevezetés az ASP.NET MVC 5 keretrendszerbe

WCF, Entity Framework, ASP.NET, WPF 1. WCF service-t (adatbázissal Entity Framework) 2. ASP.NET kliens 3. WPF kliens

Az iskolai rendszerű képzésben az összefüggő szakmai gyakorlat időtartama. 10. évfolyam Adatbázis- és szoftverfejlesztés gyakorlat 50 óra

Operációs rendszerek. Az NT folyamatok kezelése

1 Pillanatfelvétel gomb Nyomja meg a Pillanatfelvétel gombot képek készítéséhez.

The modular mitmót system. DPY kijelző kártya C API

Objective-C PPKE-ITK

1. fejezet: Bevezetés. 2. fejezet: Első lépések

Thermo1 Graph. Felhasználói segédlet

Ismerkedés az Office 2007 felhasználói felületével

XML Webszolgáltatás alapú osztott alkalmazás fejlesztése Johanyák Zsolt Csaba 1

SOPHOS simple + secure. A dobozba rejtett biztonság UTM 9. Kókai Gábor - Sophos Advanced Engineer Balogh Viktor - Sophos Architect SOPHOS

Ismerkedés az új felülettel


















A Java nyelv. Dialógus ablakok. Elek Tibor

OOP. Alapelvek Elek Tibor

Az iphone fejlesztés alapjai

A mobil alkalmazás. Felhasználói útmutató - ios

OOP #14 (referencia-elv)

Operációs rendszerek. Az NT memóriakezelése

Használati utasítás Prestigio Nobile PER3562. Alapvető műveletek

Smart Pointer koncepciója

Webes alkalmazások fejlesztése 4. előadás. Megjelenítés és tartalomkezelés (ASP.NET)

Java Programozás 11. Ea: MVC modell

Hová tűnt a sok kereszthivatkozás?

Wi-Drive Használati útmutató

PC kártya és a szoftver telepítése, indítása után ( ID, jelszó : admin, admin)

Mio Technology Limited C510, C710. Gyors használati utasítás a Mio Map v3 programhoz. Magyar

Java biztonsági megoldások. Sandbox, Security

Átírás:

ios alkalmazásfejlesztés Koltai Róbert

mit vettünk a múlt órán? mi az a protocol? szintaktikája? mire jó a category? milyen memóriakezelés van ios-en? mi ennek a 4 állapota? mi a főszabály? + 4 része mi az az ARC? mi az új az ARC-s property-k használatában? 2

mai óra felépítése ismétlés ios app lifecycle MVC view viewcontroler navigationcontroller 3

ios Core OS OSX Kernel Mach 3.0 BSD Sockets Security Power Management Keychain Access Certificates File System Bonjour 4

ios Core Services Collections AddressBook Networking File Access SQLite Core Location NetServices Threading Preferences URL Utilities 5

ios Media Core Audio OpenAL Audio Mixing Audio Recording Video Playback JPEG, PNG, TIFF PDF Quartz (2D) Core Animation OpenGL ES 6

ios Cocoa Touch Multi-Touch Core Motion View Hierarchy Localization Controls Alerts Web View Map Kit Image Picker Camera 7

application lifecycle alkalmazás állapotai not running inactive active background suspended 8

application lifecycle application delegate - (void)application:didfinishlaunchingwithoptions: (NSDictionary *)launchoptions; - (void)applicationwillresignactive: - (void)applicationdidbecomeactive: - (void)applicationdidenterbackground: - (void)applicationwillenterforeground: 9

application lifecycle application delegate - (BOOL)application:handleOpenURL:(NSURL *)url; - (void)applicationdidreceivememorywarning: - (void)application:didreceivelocalnotification: (UILocalNotification *)notification; - (void)application:didreceiveremotenotification: (NSDictionary *)userinfo; - (void)applicationwillterminate: 10

MVC Model az alkalmazás lényege, maga az app(nem a megjelenítés) View amit a user lát Controller a modelt hogyan prezentáljuk a user felé 11

MVC Stanford 2011 fall / 1 / 15-37. 12

View coordinates origó: a bal felső sarok egységek: pontok (nem pixelek) (0,0) x (320,250) y 13

View coordinates bounds center frame (0,0) 250 320 (0,0) 200 x 320 y 14

View coordinates bounds center (0,0) frame frame bounds frame (0,0) bounds x y 15

View coordinates bounds center frame superview subviews(array) add remove 16

View - kóddal való összekötés Hogyan tudunk a kódból változtatni az UIn? Hogyan tudjuk a UI események hatására műveleteket végezni? Lényegében az alábbi két dolgot kell megoldanunk: Referenciát (mutatót) kell szereznünk a betöltött UI struktúra bizonyos objektumaira Meg kell adnunk eseménykezelőket bizonyos UI objektumok egyes eseményeire 17

View - outlet Olyan változókat (Outleteket) adhatunk meg, amelyekbe a rendszer betöltéskor automatikusan beteszi a megadott objektumokat. Belehelyezzük a kódba az Outlet propertyket IBOutlet jelölőt kell használnunk, innen tudja az Interface Builder, hogy az adott property egy Outlet Az Interface Builderben beállítjuk, hogy melyik objektumot akarjuk betölteni a property-be. A View betöltéskor a rendszer automatikusan behelyezi a hivatkozást. A kódban típusosan elérjük a betöltött UI elemet. 18

View - outlet @interface ViewController : UIViewController! @property (weak, nonatomic) IBOutlet UITextField *resulttextfield;! @end 19

View - action megadhatjuk azokat a metódusokat, amelyeket a rendszer meghívjon bizonyos események bekövetkeztekor belehelyezzük a kódba az Action metódusokat az IBAction visszatérési értéket kell használni, ami igazából void, de innen tudja a rendszer, hogy ez egy Action metódus. Paramétere vagy nincs a metódusnak, vagy egy (id) sender paramért kaphat, ami azt az objektumot tartalmazza, amelyre vonatkozik az esemény. az Interface Builderben beállítjuk, hogy melyik objektum melyik eseménye váltsa ki a hívást. (pl. Touch Up Inside) az esemény bekövetkeztekor automatikusan meghívódik a metódus. 20

View - action @interface ViewController : UIViewController! - (IBAction)numberPushed:(id)sender;! @end 21

View Interface Builder XIB fájl UI a képernyőn Build Programkód Megjelenítés NIB fájl Betöltés Objektum példány 22

UIViewController MVC/controller a UIViewController-nek van egy nagyon fontos proberty-je: @property(nonatomic, retain) UIView *view; van életciklusa 23

UIViewController lifecycle az életciklusa az alloc, init-tel kezdődik - (id)initwithnibname:(nsstring *)nibnameornil bundle:(nsbundle *)nibbundleornil! ha a nibname nil(nem használunk.xib filet), akkor a UIViewController automatikusan meghívja: - (void)loadview önnmagaban([self loadview])! NE HASZNÁLJUK egyszerre a.xib-t és a loadview-t 24

UIViewController lifecycle - (void)viewdidload inicializálás és az outletek beállitása után de a bounds még nincs beállítva! - (void)viewwillappear:(bool)animated mielőtt megjelenik a kijelzőn a végén állítódik be a bounds! - (void)viewdidappear:(bool)animated! - (void)viewwilldisappear:(bool)animated mielőtt eltűnik a kijelzőről állapot mentés, adat mentés - (void)viewdiddisappear:(bool)animated 25

controller of the controllers speciális View Controller, ami MVC-k gyűjteményét kezeli UINavigationController UITabBarController 26

UINavigationController több, hierarchikus képernyő közötti navigációt segíti stack (verem) jellegű működéssel rendelkezik úgy tudunk lépkedni az egyes képernyők között, hogy a visszalépéseknél nem kel tudnunk mi volt a szülő képernyőnk nagyon gyakran használt komponens gyakran használják táblázatokkal együtt 27

UINavigationController NavigationBar képernyő tetején elhelyezkedő sáv megmutatja az adott view címét lehetőséget ad a visszalépésre az előző szintre a vissza gombon mindig az előző szint címe van jobb oldalán van hely egy szabad gombnak 28

UINavigationController létrehozás: alloc/init meg kell adni egy rootviewcontrollert push [self.navigationcontroller pushviewcontroller:nextviewcontroller animated:yes]; pop [self.navigationcontroller poptorootviewcontrolleranimated:yes]; [self.navigationcontroller popviewcontrolleranimated:yes]; [self.navigationcontroller poptoviewcontroller:prevviewcontroller animated:yes]; 29

UINavigationController 30

UINavigationController 31

UITabBarController több view között lehet fülekkel váltogatni képernyő alján szokott elhelyezkedni általában ez a legkülső navigációs elem maximum 5 lap fér el, ezután megjelenik a more lehetőség 32

UITabBarController lehet benne NavigationController, de mindig a TabBarController a külső elem általában nem igényel programozás, beállítjuk a betöltendő ViewControllereket, és a többit kezeli magától egyszerre mindig egy fül lehet aktív, a többi megőrzi állapotát és bármikor átválthatunk 33

UITabBarController 34

köszönöm a figyelmet! Koltai Róbert robert.koltai@ponte.hu