Távközlési és Médiainformatikai Tanszék Hálózatok és szolgáltatások szakirány Szolgáltatások és alkalmazások Apple App Store Sándor Roland Martin
Indulás, kezdetek 2007. június: megjelenik az iphone (kb. 20 alkalmazással) 2008. március: megjelenik az iphone SDK 2008. július: App Store indulás itunes frissítéssel Megjelenik az iphone 3G, iphone 2.0.1 szoftverrel, App Store támogatással A megjelenést követő első hétvégén (júl. 11-13.) 10 millió alkalmazás letöltés 2014.03.17. Sándor Roland Martin 2
App Store ios alkalmazások terjesztésére szolgáló digitális platform Alkalmazások böngészhetők és letölthetők Közvetlenül ios eszközre (iphone, ipad, ipod) PC-re itunes-szal Vásárlás: free, paid és in-app monetization Típusok: (Top) free / paid, Top grossing apps Általánosságban egy egységes piac, azonban vannak nemzeti határok Age Rating icloud Minden országnak saját App Store-ja van 4+, 9+, 12+, 17+ és No Rating Nem egyértelmű, számos gray area és képmutatás Megvásárolt alkalmazások, zene, stb. tárolására, így az összes ios eszközön elérhető (5 GB ingyenes tárhely) 2014.03.17. Sándor Roland Martin 3
App Store statisztikák Number of available apps in the itunes App Store from 2008 to 2013 (cumulative) Cumulative number of apps downloaded from the Apple Store from June 2008 to October 2013 (in billions) 2014.03.17. Sándor Roland Martin 4
Alkalmazás bevételek 2014.03.17. Sándor Roland Martin 5
Üzleti modell Az Apple felhasználók jellemzően vásárolnak fizetős alkalmazásokat A fejlesztőknek anyagilag jobban megéri ios-re fejleszteni A fejlesztő határozza meg az alkalmazás árát Az Apple jobban kedveli a fizetős alkalmazásokat Az ingyenes alkalmazások terjesztéséből nem szerez hasznot A fizetős alkalmazás 30%-át az Apple, 70%-át a fejlesztő kapja További bevételi források In-App Purchase Ingyenes és fizetős alkalmazásban prémium tartalom, előfizetés vásárlása Freemium Business Model Az alkalmazás ingyen letölthető, használható Egyes további funkcionalitások, kiterjesztések már fizetősek 2014.03.17. Sándor Roland Martin 6
Fejlesztés 1 App Strore-ban való megjelenéshez a fejlesztett alkalmazást az Apple-nek alá kell írnia Alapvető megbízhatósági tesztek és vizsgálatok Approval / Rejection (felhasználói helyzet reklámozáshoz, nem dokumentált API használata) Ad-hoc terjesztés:.ipa fájl csak az Apple által engedélyezett eszközökre Guidelines: segít megelőzni, elkerülni a problémákat a jogi, erőszakos, kérdésekben App Store Review Guidelines ios Human Interface Guidelines UI Design Dos and Don ts ios Developer Programs ios Developer Program ($99/year) ios Developer Enterprise Program ($299/year) Cégeknek, szervezeteknek, kormányzati szerveknek belső használatra készített alkalmazások ios Developer University Program (Free) 2014.03.17. Sándor Roland Martin 7
Fejlesztés 2 Natív szoftverfejlesztés Objective-C-ben írt, gépi kódra lefordított alkalmazás Felhasználhatóak C/C++ kódban írt könyvtárak/kódrészletek ios alkalmazások bundle-ök formájában léteznek AppName.app nevű meghatározott felépítésű könyvtár (alkalmazás binárisok, erőforrások) App ID: minden alkalmazáshoz egy egyedi (programozó által választott) azonosító tartozik (pl.: hu.developer.app) Az alkalmazás telepítéshez egy meghatározott helyre kell másolni Az alkalmazások framework-ökön keresztül érik el az ios funkciókat Framework: DLL + erőforrások + header-ök 2014.03.17. Sándor Roland Martin 8
Fejlesztés 3 Sandbox / Fájlrendszer Sandbox környezet Az alkalmazás nem tud akárhová írni a háttértáron, csak a saját sandbox írható (biztonságos, könnyen karbantartható) Az alkalmazások közötti kommunikáció erősen korlátozott Minden resource a sandbox-on belül van Documents: minden, amivel a felhasználó dolgozni szeretne (létrehozott fájlok, letöltött képek, adatbázis) Documents/Inbox: más alkalmazásoktól származó fájlok Library: alkalmazás specifikus, de nem felhasználói fájlok Library/cache: letöltött tartalmak, igény esetén újra letölthetők tmp: átmeneti tárolásra (túl nagy, hogy a memóriába tegyük, nem akarjuk, hogy sokáig megmaradjon) 2014.03.17. Sándor Roland Martin 9
Fejlesztés 4 Külső (3rd-party) kódkönyvtárak használata gyakori UI elemek: Cocoa Controls Core Data segítő, hálózati kommunikáció egyszerűsítése, REST hívások Általában forráskód formájában érhetőek el A források bemásolhatók a saját projektbe, így belefordul az alkalmazásba (függőségek feloldása) Cocoapods: ios Dependency Manager Megadhatók a külső kódkönyvtáraktól való függőségek (letölthetők és frissíthetők) A kódkönyvtárak git repository-ban elérhetővé tehető (a Cocoapods-hoz be kell regisztrálni) A függőségek Podfile nevű szöveges fájlban vannak leírva Műveletek: pods install, pods update pl.: AFNetworking, CocoaLumberJack, RestKit 2014.03.17. Sándor Roland Martin 10
Fejlesztőeszközök Xcode: Editor, Interface builder, Debugger, Compiler, ios SDK ios Simulator iphone és ipad Mac OS X alatt való szimulálása Hardveres képességek szimulálása: orientáció, hardver gombok, rázás, szimulált pozíció Instruments Futási idejű elemző (profiler) Képes mérni és kielemezni az alkalmazások különféle futás idejű tulajdonságait: memóriafogyasztás, energiafogyasztás, hálózati forgalom, stb. 2014.03.17. Sándor Roland Martin 11
Debug, Tesztelés, Static analyzer Asserting Tesztelés Xcode-ba épített funkció, mely kielemzi a forráskódot még a futás előtt, több hibát képes jelezni (pl. memóriaszivárgás) Olyan feltételeket fogalmazunk meg, melyeknek teljesülniük kell a helyes működéshez, ha a megadott feltétel nem teljesül leáll a futás OCUnit (XCUnit): SDK-ban beépítve megtalálható unit tesztelő keretrendszer, a tesztek egymástól függetlenül (izoláltan) futnak le TestFlight: bétatesztelést segítő szolgáltatás Automatizált UI tesztelés (teszt szkript írása Instruments használatával) CocoaLumberjack AppleDoc Loggoló library, képes többszintű logolásra és logolni különböző helyekre Apple-szerű dokumentáció generálása közvetlenül a forráskódból (~Javadoc) 2014.03.17. Sándor Roland Martin 12
Fejlesztés Xamarin-nal C# /.NET alapú cross-platform fejlesztés ios / Android / Windows Phone platformokra Natív alkalmazások készítése Windows-on / OS X-en Ahead-Of-Time (AOT) fordítás: IL kódból még a fejlesztői gépen ios bináris kód fordul (tehát nem JIT) Működik a.net garbage collection és elérhetőek a.net class library-k Szimulátoron való tesztelés továbbra is OS X-en Xamarin with Visual Studio / Xamarin Studio Amire alkalmas: nagy, komplex közös üzleti logika / adatréteg / hálózati kommunikáció, viszonylag vékony UI-réteggel Kódbázis módosítás nélküli újrafelhasználása A felületet minden platformhoz natív módon kell újrafejleszteni 2014.03.17. Sándor Roland Martin 13
Sprite Kit ios 7-en beépített keretrendszer 2D játékok fejlesztéséhez, az Apple válasza a 3rd-party megoldásokra (pl. Cocos2D) Előnyök: ios-be beépített, nincs szükség külső library-kre; támogatja a texture atlase-okat, részecskéket Hátrányok: ios-hez kötöttség, kezdeti állapotban van Az eszköz grafikus hardverét használja 2D képek előállításához magas FPS szám mellett Támogatott tartalmak: (nem) textúrázott téglalapok (sprite-ok), szöveg, tetszőleges CGPath-alapú alakzatok, videó Effektek, animációk használhatók 2014.03.17. Sándor Roland Martin 14
Kérdések? Köszönöm a figyelmet! 2014.03.17. Sándor Roland Martin 15