Android alkalmazásfejlesztési alapismeretek Kozák Ferenc 2014.08.26.
www.innobile.hu
Bevezetés elé Piaci részesedés - Felhasználók
Android alkalmazás-fejlesztési alapismeretek
2
Bevezetés elé Piaci részesedés - Felhasználók
WP az iPhone előtt • Finn • Olasz • Magyar • Maláj • Mexico • Lengyel • + még 19 piac
Android alkalmazás-fejlesztési alapismeretek
3
Bevezetés elé Piaci részesedés - Felhasználók
Android alkalmazás-fejlesztési alapismeretek
4
Bevezetés elé Piaci részesedés - Felhasználók
Magyarország – 2013 Q2 • 432 ezer okostelefon eladás • 49%-os növekedés • Android 84% • iPhone és WP 7-7% • Legfrisebb adatok szerint WP 10% felett
Android alkalmazás-fejlesztési alapismeretek
5
Bevezetés elé Piaci részesedés - Fejlesztők
Android alkalmazás-fejlesztési alapismeretek
6
Bevezetés elé Piaci részesedés - Alkalmazások száma
• • • •
BlackBerry – 150 ezer Windows Phone – 300 ezer App Store – 1.2 millió Android – 1.3 millió
Android alkalmazás-fejlesztési alapismeretek
7
Bevezetés elé Piaci részesedés – Fejlesztői bevételek
Android alkalmazás-fejlesztési alapismeretek
8
Bevezetés Az android sikerének okai I.
• Brand lett az OS-ből • Google • Egységes rendszer képe • NEM AZ!
• Linux alapú – teljesen nyílt • Nem csak mobilkészüléken • Átkonfigurálható a rendszer (root)
Android alkalmazás-fejlesztési alapismeretek
9
Bevezetés Az android sikerének okai II.
• Számos webes szolgáltatás beépítve (Gmail, YouTube, Google Docs, Picasa…) • iOS-hez hasonló UX • Széles készülékpaletta • Minőség, ár, teljesítmény
• Gyors fejlesztés • Marketing Android alkalmazás-fejlesztési alapismeretek
10
Bevezetés Az android története
• Android Incorporated felvásárlása • 2007 Open Handset Alliance bejelenti • 80+ vállalat • • • • •
14 operátor – T-mobile, Vodafone, Sprint… 23 készülékgyártó – ASUS, Dell, Samsung… 22 félvezetőgyártó – Intel, Nvidia… 17 szoftvergyártó – Google, Ebay… 12 egyéb
• Fluktál a résztvevők összetétele • Tagok ingyen kapják meg az OS-t Android alkalmazás-fejlesztési alapismeretek
11
Bevezetés Az android története
• 2008 HTC G1
Android alkalmazás-fejlesztési alapismeretek
12
Gyártóknak miért érte meg? Kicsi • Könnyű betörés a piacra • Remek ár/érték • Új márkák • Szolgáltató, mint gyártó
Android alkalmazás-fejlesztési alapismeretek
Nagy • • • •
Ingyenes Nincs saját OS Eladás csökken Létkérdés
13
Akiknek nem érte meg • Apple • iOS
• Microsoft • Google vs MS
• Nokia • Symbian miatt kicsit beragadtak • Android elutasítása után a MS felé fordultak és lett Windows Phone + Lumia
Android alkalmazás-fejlesztési alapismeretek
14
Android evolúció • Gyors fejlődés • Nagy különbségek • Visszafele kompatibilitás • Vannak törések
• Név mindig valamilyen édesség
Android alkalmazás-fejlesztési alapismeretek
15
Android evolúció 1.0 – 1.1
• • • •
2008 október – Apple pie Rengeteg gyermekbetegség Nehézkes használat UI, UX megbukott Inkább demó
• 2009 február – Banana bread • Nem hozott nagy változást
Android alkalmazás-fejlesztési alapismeretek
16
Android evolúció 1.5 – 1.6
• 2009 április – Cupcake • UI, UX reform, animációk • Új kernel • Szoftveres billentyűzet
• 2009 szeptember – Donut • Android market • Hangfelismerés
Android alkalmazás-fejlesztési alapismeretek
17
Android evolúció 2.0-2.3.3
• 2009 október – Eclair • Új UI (HTML5, tablet támogatás) • Multi-touch
• 2010 május – Froyo • JIT támogatás
• 2010 december – Gingerbread • Nexus S • Új UI, NFC, Szenzorok sora
Android alkalmazás-fejlesztési alapismeretek
18
Android evolúció 3.0 – 3.2
• 2011 január – Honeycomb • TABLETre optimalizált UI, UX • Többmagos processzorok
• 2011 május • USB eszközök támogatása • Widgetek
• 2011 július • Szinte csak optimalizálás
Android alkalmazás-fejlesztési alapismeretek
19
Android evolúció 4.0 – 4.4.4
• 2011 október – Ice cream sandwich • 2-es és 3-as verziók egyesítése • Skálázható felület – majd később • Ma ismert menü, feladatkezelő és készenléti kijelző
• 2012 július, november, 2013 július – Jelly bean • 2013 október – Kit Kat • ART futtatókörnyezet opcionálisan Android alkalmazás-fejlesztési alapismeretek
20
Android evolúció Jövő?
• 5.0 - Android L
• Material – design • Letölthető a fejlesztői verzió Android alkalmazás-fejlesztési alapismeretek
21
Jelenlegi felállás • Mire éri meg fejleszteni és mire nem?
Android alkalmazás-fejlesztési alapismeretek
22
Platform felépítése
Android alkalmazás-fejlesztési alapismeretek
23
Fejlesztés • Saját SDK • • • •
Dokumentáció, példakódok (Java) AVD manager, ADB driver, DDMS 3rd Party kiegészítők (Google APIk) Gazdag API • • • • •
UI elemkészlet Stílusok, témák Arcfelismerés Szenzorok NFC, Wifi…
• De van NDK is • multiplatform, számításigényes feladatokhoz (C++)
Android alkalmazás-fejlesztési alapismeretek
24
Fejlesztés • Eclipse ADT - múlt • Plugin • Eclipse előnyei, hátrányai
• Android Studio (béta) - jövő • • • •
JetBrains IntelliJ alapú (PhpStorm, WebStorm, …) Apple – Xcode mintára 0.8 – de már most jobb WYSIWYG Editor
Android alkalmazás-fejlesztési alapismeretek
25
Android futtatási környezete • Sandbox mode – biztonságos környezet • Saját virtuális gép • Saját Linux process • Szükséges legkevesebb jogosultság
• Különféle jogok hozzáférésekhez • Telefonkönyv, szenzorok, sms, internet • Telepítésnél nézitek mihez adtok jogot?
Android alkalmazás-fejlesztési alapismeretek
26
Alkalmazás felépítése • Számos komponens, amik lazán csatolva kapcsolódnak egymáshoz • 4 fajta • • • •
• • • •
Activity Service Content Provider Broadcast Reciever
Különböző szerep Önállóan aktiválódhatnak Más alkalmazás is hívhatja őket Manifest állományban vannak leírva
Android alkalmazás-fejlesztési alapismeretek
27
Activity • Tipikusan egy képernyő, amin valamit lehet csinálni • Sok ilyen alkot egy alkalmazást • Lapozunk köztük • Egymást hívogatják • Tipikusan egy fő activityből mehetünk a többibe
Android alkalmazás-fejlesztési alapismeretek
28
Service • Háttérben futó szolgáltatás • Nincs felülete • Zenelejátszó • Hálózati állomány letöltő
• Activity • Indíthatja • Csatlakozhat hozzá
Android alkalmazás-fejlesztési alapismeretek
29
Content provider • Tartalmat szolgáltat • Fájl, SQLite, WEB, Perzisztens adattár
• Nyilvános, más alkalmazások is látják • Telefonkönyv, SMSek, Hívási előzmények is így érhetőek el
Android alkalmazás-fejlesztési alapismeretek
30
Broadcast reciever • Rendszer szintű eseményeket kapja el • Bejövö hívás, alacsony töltöttség, … • Írhatunk sajátot, alkalmazás jelzi, ha elkészült valamivel • Nincs UI • Más alkalmazások kezelik le a jelzéseiket(elindulnak, kiírnak valamit)
Android alkalmazás-fejlesztési alapismeretek
31
Mire jó ez? • Rendkívül rugalmas a komponensek halmaza miatt • Egyik alkalmazás activity-je indíthat egy másikban levőt (Intent) • Ha végeztünk, visszatérhetünk az eredetibe • Felhasználónak egybefüggőnek tűnik • Újrafelhasználhatóság fontos Android alkalmazás-fejlesztési alapismeretek
32
Manifest • XML alapú • Alkalmazás leírása • Komponensek paraméterei • Követelmények • Engedélyek – internet, névjegy… • API – minimum szint • Hardware – Szenzorok, kamera • API – Google Maps, Market, Facebook • Telepítéskor kerül feldolgozásra
• Rendszer számára csak az itt levő dolgok léteznek Android alkalmazás-fejlesztési alapismeretek
33
Erőforrások • „res” mappa és azon belül speciálisan több más • • • • • •
XML alapú felületek /res/layout Képek – res/drawable Animációk – res/anim Stílus – res/values/styles.xml Szövegek - res/values/strings.xml Színek – res/values/colors.xml
• Egyedi azonosítójuk van • R.java állományba generálódnak • Minősítőkkel készülékre szabható Android alkalmazás-fejlesztési alapismeretek
34
Felhasználói felületek • • • •
Legfontosabb UI, UX Lehetnek eltérések Számtalan eltérő készülék Gazdag beépített UI elemekben, de mi is készíthetünk újat • Stílus, XML átírás • Teljesen új View
Android alkalmazás-fejlesztési alapismeretek
35
Képernyőfelbontások Automatikus mechanizmus Könnyű programozni Erőforrás fájlokat kell definiálni Más layout telefonhoz, tablethez, órához • Egy APK fájl, de akár minden készülék támogatható • • • •
• Sok probléma van vele így is
Android alkalmazás-fejlesztési alapismeretek
36
Képernyőfelbontások Fogalmak
• Fizikai képátló – small, normal, large, extra large • Pixelsűrűség – dpi (dots per inch) •
ldpi, mdpi, tvhdpi, hdpi, xhdpi, xxhdpi
• Orientáció – álló, fekvő (változó vagy rögzített) • Felbontás – px (nem használatos UI-nál) • Sűrűség független felbontás – virtuális • dip = dp * (dpi / 160)
• Szükség van rájuk Android alkalmazás-fejlesztési alapismeretek
37
Képernyőfelbontások
Android alkalmazás-fejlesztési alapismeretek
38
Erőforrások futás időben • Lehetőség van más-más erőforrás használatára a méret és sűrűség függvényében • Különböző layoutok, drawable • Nem csak kijelző, akár nyelv is lehet minősítő • Nincs szükség minden kombinációra, elég lehet 1 is res/ drawable-xhdpi/ awesomeimage.png drawable-hdpi/ awesomeimage.png drawable-mdpi/ awesomeimage.png drawable-ldpi/ awesomeimage.png Android alkalmazás-fejlesztési alapismeretek
res/ layout/ layout.xml layout-small/ layout.xml layout-large/ layout.xml layout-xlarge-land/ layout.xml
res/ values/ strings.xml values-en/ strings.xml values-fr/ strings.xml values-de/ strings.xml 39
Mit érünk el ezekkel?
Android alkalmazás-fejlesztési alapismeretek
40
Layoutok • XML • Drag&Drop vagy kézzel írjuk
• Gyakori elemek • • • •
Linear-, Relative-, Frame-, TableLayout Grid-, Tab-, List-, Web-, Scroll- MapView Widgetek – Button, ImageButton, DatePicker, EditText Felugró ablakok – Toast, Alert-, ProgressDialog
• Lehet kódból is létrehozni felületet • Hozzáadni XML-ben definiált blokkot Android alkalmazás-fejlesztési alapismeretek
41
Térjünk vissza az Activitykhez • Manifestben definiáljuk az indulásit • Action - alkalmazás fő belépési pontja • Category - jelenjen meg az indítható programok listájában
Android alkalmazás-fejlesztési alapismeretek
42
Activity életciklus • Callback függvények • Felül kell definiálni őket • Ős osztálybeli metódusának meghívása • •
super.onCreate super.onResume stb
• FONTOS: csak az onPause garantált • Le kell kezelni az activity állapotának mentését és visszatöltését
Android alkalmazás-fejlesztési alapismeretek
43
Állapot mentés - visszatöltés
Android alkalmazás-fejlesztési alapismeretek
44
Activity indítása • Intent segítségével • action • data • extra
• startActivity(Intent) • Explicit vagy Implicit • Explicit – van címzett • Implicit – rendszer majd eldönti
• PendingIntent - időzítve Android alkalmazás-fejlesztési alapismeretek
45
Alkalmazások stackje • Back stack • Activityk egymáson – LIFO • Vissza gomb innen vesz ki • Több ilyen is lehet párhuzamosan - Multitask
Android alkalmazás-fejlesztési alapismeretek
46
Demo I. • Készítsük el az első Alkalmazást • Projekt felépítése • Minimális layout • Resource-ok
• Nézzük meg az életciklust • • • •
Emulator Igazi készülék Logolás Eseménykezelés
Android alkalmazás-fejlesztési alapismeretek
47
Fragmentek • Majdnem mint az Activityk • Képernyő egy nagyobb részéért felelős objektumok • Modulárisabban lehet építkezni, több ilyen is kihelyezhetünk egy felületre, de lehet csak egyet is (telefon/tablet) • Fragment mindig Activityhez csatolt
Android alkalmazás-fejlesztési alapismeretek
48
Fragmentek
Android alkalmazás-fejlesztési alapismeretek
49
Fragmentek • Dinamikus és statikus csatolás • Kódból • Fragmant manager kezeli őket
• XML
tag • Hivatalos support library 1.6-ig • ViewPager is fragmenteket használ
Android alkalmazás-fejlesztési alapismeretek
50
Listák • ListView amely egy ListAdapter-t tartalmaz • Ez tárolja és jeleníti meg a benne levő elemeket • Hozzáadás, törlés, szerkesztés • Értesíti az UI-t a változásról • Ki lehet kényszeríteni
Android alkalmazás-fejlesztési alapismeretek
51
Adatkötés • Adatok kivezetése az UI-ra • Adapter kell hozzá, mely tárolja az objekumokat • ListView, GridView, ExpandableListView, …
• Ha nem ugyanolyanok az elemek • ScrollView sok Viewval
• Általában saját adapter kell • Minimális tudással is könnyű
Android alkalmazás-fejlesztési alapismeretek
52
Demo II. • Fragment alapú alkalmazás • Kezdő Fragment egy lista, ami betölt egy másik Fragmentet az adott tartalommal
Android alkalmazás-fejlesztési alapismeretek
53
Adattárolás • Alkalmazás lelke • • • • •
Beállítások Adatok Cache Állapot Flag
Android alkalmazás-fejlesztési alapismeretek
54
Lehetőségek adattárolásra • SharedPreferences • Kulcs-érték
• Privát tár • Csak az alkalmazás éri el (rootolt telefon)
• SD tár • SQLite • Hálózat
Android alkalmazás-fejlesztési alapismeretek
55
Shared Preferences • Alaptípusok mentése hosszútávra • OS elfedi a valós tárolást •
Private, World_readable, World_writable
• Több ilyen is lehet egy alkalmazásnak • getSharedPreferences(String name, int mode)
• Preferences Framework • XML alapú • Beállításokhoz, PreferenceActivity
Android alkalmazás-fejlesztési alapismeretek
56
Fájlkezelés • Internal storage • Védett • Jogosultság mint a SharedPrefnél
• Externak storage • SD kártya, bárki által olvasható • Lehet belső memóriában is
• Ha alkalmazáshoz kellenek akkor a res/raw mappába tegyük Android alkalmazás-fejlesztési alapismeretek
57
SQLite • Teljes értékű relációs adatbázis (MySQL) • Nincs ORM • Van • • • •
SQL szintakszis Tranzakciók Prepared statement Kulcsok
• Fileokban tárolódik, lassú lehet Android alkalmazás-fejlesztési alapismeretek
58
Hálózati tárolás • Felhő • Saját szerver • Google cloud platform szintű támogatással
Android alkalmazás-fejlesztési alapismeretek
59
Service - érintőlegesen • 2 típus – Lehet egyszerre mindkettő is • Indított • • • •
Valamilyen komponens elindítja Fut a komponens után is Feladatot hajt végre majd leáll (OS nem fogja) Csak a hívó fér hozzá
• Kapcsolt • • • •
Magától indul Kapcsolódásig fut – hosszabb életű Többen is használhatják Nem kell leállítani
Android alkalmazás-fejlesztési alapismeretek
60
Service életciklus
Android alkalmazás-fejlesztési alapismeretek
61
Helymeghatározás • Elvárt szolgáltatás • Számtalan alkalmazás erre épül • Helyfüggő szolgáltatások
• Módjai • • • •
GPS Mobilhálózat GPS+Mobilhálózat – A-GPS WLAN
Android alkalmazás-fejlesztési alapismeretek
62
Helymeghatározás • Korlátok • Pontosság • Energiafogyasztás • Szabadtér
• Google Location API • Rendszerszintű DataProvider
Android alkalmazás-fejlesztési alapismeretek
63
Google Maps • Térkép megjelenítése • Teljes szabadság rajta • • • • •
Nagyítás Térkép/műhold Overlayek POI-k Egyéb vonalak, ábrák rajzolása
• Play Services SDK része Android alkalmazás-fejlesztési alapismeretek
64
Hálózati kapcsolat • Lehetőség van a WIFI és 3G kapcsolat kezelésére, ellenőrzésére • Mire jó ez? • Az alkalmazással tudunk a hálózathoz kapcsolódni, le- és feltölteni dolgokat.
• Socket – TCP/UDP • HTTP/HTTPS • HttpURLConnection vagy HttpClient Android alkalmazás-fejlesztési alapismeretek
65
HTTP lekérés • Amíg letöltődik valami addig mi történik? • Fagyás nem elfogadható az UI felületen • Más szálban kell letöltenünk, hogy ne blokkoljuk a fő szálat • Letöltés után az UI-t módosítjuk, DE • Android csak fő szálból enged módosítani • • • • •
Activity.runOnUiThread(Runnable) View.post(Runnable) View.postDelayed(Runnable, long) Handler AsyncTask
Android alkalmazás-fejlesztési alapismeretek
66
Demo III. • Hálózati kapcsolat, letöltés • UI blokkolással • Kijavítva AsyncTask segítségével
• Beállítások menü XMLből • SharedPreferences beolvasás, írás
Android alkalmazás-fejlesztési alapismeretek
67
Hálózati kommunikáció • Kedden volt róla szó • • • •
XML JSON CSV Lehet saját is
• Rengeteg példa és könyvtár
Android alkalmazás-fejlesztési alapismeretek
68
Android GCM • • • • • •
Értesítések (Facebook, Google) Ne a mobil kérdezzen, fordított irány Szerver oldali implementáció kell Ingyenesen lehet regisztrálni Rövid üzenetek(4Kbyte) Sok meglévő szerver oldali implementáció
Android alkalmazás-fejlesztési alapismeretek
69
Értesítések • Nem csak a hálózatról kaphatunk figyelmeztetést • Alkalmazás is küldhet a notification bar-ra • • • • •
Status bar ikon Extended status bar info (és Intent indítás) LEDek villogtatása Vibrálás Hanglejátszás
Android alkalmazás-fejlesztési alapismeretek
70
Demo IV • Notification alkalmazás
Android alkalmazás-fejlesztési alapismeretek
71
Mit csinálhatunk még? • Multimédia • • • • • • • •
Kamera Arcfelismerés Hangfelvétel Hanglejátszás MP3 lejátszás Video lejátszás Hangfelismerés TextToSpeech
Android alkalmazás-fejlesztési alapismeretek
72
Telefonhívások • Bejövő, kimenő hívások kezelés • Eseménykezelés
• Programozott hívás • Intent segítségével • Action_call • Action_dial
• Saját tárcsázó • Saját VoIP kliens
Android alkalmazás-fejlesztési alapismeretek
73
SMS kezelés • 4.0 – tól akár a teljes SMS alkalmazás lecserélhető • Névjegyek, naptárbejegyzések, hívásnapló hozzáférhető • Hogy érhetjük el őket? • SMS-t telefónián keresztül • Tableten nincs Android alkalmazás-fejlesztési alapismeretek
74
Szenzorok • Komplett arzenál • • • • • • • • •
Gyorsulásmérő Iránytű Fényerősség érzékelő Közelségérzékelő Giroszkóp Elforgatás Hőmérséklet Páratartalom Nyomés
• Lekérdezhetőek és rendszer szinten használhatóak
Android alkalmazás-fejlesztési alapismeretek
75
Szenzorok használata • Mindig eseménykezelten • Mérés után onChange metódus hívódik
• Óvatosan az erőforrással • Állítsuk be a mérések gyakoriságát • Állítsuk le mindig csak akkor mérjen amikor kell
Android alkalmazás-fejlesztési alapismeretek
76
Tesztelés • Teszt keretrendszer • JUnit
• Mit kell tesztelni? • Felületet – megjelenés, helyes interakciók • Üzleti réteg – funkciókat, amiket megvalósítottunk • Akkuhasználat • Orientáció, billentyűzet váltás Android alkalmazás-fejlesztési alapismeretek
77
Tesztelésnél kibukó gyakori hibák • NullPointer, ANR, SecurityError… • Felhasználó nem megfelelően használja – nem a mi fejünkkel gondolkodik • Fel kell készülni a nem rendeltetésszerű használatra is
• Külső szolgáltatás, komponens nem specifikusan működik, ezáltal a mi alkalmazásunk is váratlan hibát produkálhat Android alkalmazás-fejlesztési alapismeretek
78
Memória és energia menedzsment • • • •
Különösen fontos Nem korlátlan a kapacitás Akkumlátor gyorsan lemerül Memória max 20MB • Egy nagyobb kép el tudja vinni
• GC van, nem mi irányítunk
Android alkalmazás-fejlesztési alapismeretek
79
Garbage Collector • Nem azonnal szabadul fel • Gyorsan lefut • De! sok elem esetén belassulhat és akadhat az UI • Optimalizálni kell • Újrahasznosítás • Static változók
• DDMS Memory Allocation Tracker Android alkalmazás-fejlesztési alapismeretek
80
DDMS
Android alkalmazás-fejlesztési alapismeretek
81
Google Play • Rengeteg hasznos szolgáltatás • • • • •
Felhasználói hitelesítés Alkalmazáson belüli fizetés Licenszelés Backup Statisztikák
Android alkalmazás-fejlesztési alapismeretek
82
Google developer console • KÉP
Android alkalmazás-fejlesztési alapismeretek
83
Google developer console • KÉP
Android alkalmazás-fejlesztési alapismeretek
84
Biztonsági kérdések • Minden program saját felhasználóval • Rootolás után hozzáférhetővé válik a rendszer • /data/data/hu.csomag.nev
• Káros alkalmazások • Engedélyeket figyelni kell • Emelet díjas sms-ek, telefonhívások • Adatokhoz hozzáférés • Pl SMSben kapott 2 szintű azonosítás Android alkalmazás-fejlesztési alapismeretek
85
Biztonsági kérdések • Playen kívülről telepített alkalmazások • Amazon Store, HTC Apps belefér
• Csomagtelepítés spoofolható • Szétcsatolt folyamat
• Google távolról hozzáfér a telefonhoz • Killswitch • Storeba feltöltésnél automatikus ellenőrzés
• Fő kockázat a felhasználó Android alkalmazás-fejlesztési alapismeretek
86
Élet a telefonon és tableten túl • • • • •
Smart Watch Google Tv Google Glass Autók Szinte bármi (hűtő, sütő, kenyérpirító)
• Mindenre rátehető és rá is teszik.
Android alkalmazás-fejlesztési alapismeretek
87
Ami mindenkit érdekel • Hogyan fogunk úgy fürödni a pénzben, mint Dagobert bácsi? • Erre kicsi az esély, inkább zsebpénz lesz
Android alkalmazás-fejlesztési alapismeretek
88
Mivel tudunk pénzt keresni • • • • •
Kód eladása megrendelőnek Kód licenszelése megrendelőnek Alkalmazás eladása felhasználónak Reklámok Alkalmazáson belüli vásárlás
Android alkalmazás-fejlesztési alapismeretek
89
Alkalmazás eladása • Különböző Alkalmazás boltokon keresztül • Apple App Store • Google Play • Windows Store • Amazon App store
• 70% - a fejlesztőé általában
Android alkalmazás-fejlesztési alapismeretek
90
iOS vs Android
Android alkalmazás-fejlesztési alapismeretek
91
Okok • Android sokkal elterjedtebb a szegényebb országokban az olcsó készülékek miatt • Akinek telik drága iPhonera az az alkalmazást is megveszi • Más a felhasználók magatartása
Android alkalmazás-fejlesztési alapismeretek
92
Reklámok • Mindegyik platformnak van saját reklám APIja • AdMob • iAd • WP Advertising • Vannak 3rd party által készítettek is
• TapJoy • AdFonic
• 1000 megjelenés – $0.5 - $1 • Semmibe nem kerül, de nem is hoz sokat • Idegesítő lehet Android alkalmazás-fejlesztési alapismeretek
93
In-App Purchase • Freemium model elterjedése • Ingyenes alkalmazás • • • •
Új funkciók Élet Játékpénz Reklám eltüntetése
• Jelenleg ez a legelterjedtebb • Jól működik Android alkalmazás-fejlesztési alapismeretek
94
In-App purchase • Store-on keresztül vásárolunk • Megbízható • Gyors • Egyszerű
• Ingyen ki tudja mindenki próbálni az alkalmazást, de kényelmi szolgáltatásokat adhatunk pénzért • Pszichologiai okai is vannak
Android alkalmazás-fejlesztési alapismeretek
95
In-App purchase 2013
Android alkalmazás-fejlesztési alapismeretek
96
Fejlesztői licenszek • Apple • • • •
1 évre $99 Szigorú ellenőrzés Publikálás is körülményes 100 eszköz, éves megújításnál törölhető belőle
Android alkalmazás-fejlesztési alapismeretek
97
Fejlesztői licenszek • Google • • • • •
Egyszeri $25 Minimális ellenőrzés Publikálás nincs ellenőrízve Legszabadabb a fejlesztés Nincs eszköz limit
Android alkalmazás-fejlesztési alapismeretek
98
Fejlesztői licenszek • Windows Phone 8 • • • •
Évi $99 Szigorú ellenőrzés Google és Apple között valahol 3 eszköz, de cserélhető
Android alkalmazás-fejlesztési alapismeretek
99