www.innobile.hu
Android alkalmazásfejlesztési alapismeretek
2014.08.26.
Kozák Ferenc
Android alkalmazás-fejlesztési alapismeretek
Bevezetés eléPiaci részesedés - Felhasználók
2
Android alkalmazás-fejlesztési alapismeretek
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
3
Android alkalmazás-fejlesztési alapismeretek
Bevezetés eléPiaci részesedés - Felhasználók
4
Android alkalmazás-fejlesztési alapismeretek
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
5
Android alkalmazás-fejlesztési alapismeretek
Bevezetés eléPiaci részesedés - Fejlesztők
6
Android alkalmazás-fejlesztési alapismeretek
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ó
7
Android alkalmazás-fejlesztési alapismeretek
Bevezetés eléPiaci részesedés – Fejlesztői bevételek
8
Android alkalmazás-fejlesztési alapismeretek
BevezetésAz android sikerének okai I.
• Brand lett az OS-ből
• Egységes rendszer képe
• NEM AZ!
• Linux alapú – teljesen nyílt
• Nem csak mobilkészüléken
• Átkonfigurálható a rendszer (root)
9
Android alkalmazás-fejlesztési alapismeretek
BevezetésAz 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
10
Android alkalmazás-fejlesztési alapismeretek
BevezetésAz 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
11
Android alkalmazás-fejlesztési alapismeretek
BevezetésAz android története
• 2008 HTC G1
12
Android alkalmazás-fejlesztési alapismeretek
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ó
Nagy
• Ingyenes
• Nincs saját OS
• Eladás csökken
• Létkérdés
13
Android alkalmazás-fejlesztési alapismeretek
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
14
Android alkalmazás-fejlesztési alapismeretek
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
15
Android alkalmazás-fejlesztési alapismeretek
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
16
Android alkalmazás-fejlesztési alapismeretek
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
17
Android alkalmazás-fejlesztési alapismeretek
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
18
Android alkalmazás-fejlesztési alapismeretek
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
19
Android alkalmazás-fejlesztési alapismeretek
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
20
Android alkalmazás-fejlesztési alapismeretek
Android evolúcióJövő?
• 5.0 - Android L
• Material – design
• Letölthető a fejlesztői verzió
21
Android alkalmazás-fejlesztési alapismeretek
Jelenlegi felállás
• Mire éri meg fejleszteni és mire nem?
22
Android alkalmazás-fejlesztési alapismeretek
Platform felépítése
23
Android alkalmazás-fejlesztési alapismeretek
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++)
24
Android alkalmazás-fejlesztési alapismeretek
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
25
Android alkalmazás-fejlesztési alapismeretek
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?
26
Android alkalmazás-fejlesztési alapismeretek
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
27
Android alkalmazás-fejlesztési alapismeretek
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
28
Android alkalmazás-fejlesztési alapismeretek
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á
29
Android alkalmazás-fejlesztési alapismeretek
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
30
Android alkalmazás-fejlesztési alapismeretek
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)
31
Android alkalmazás-fejlesztési alapismeretek
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
32
Android alkalmazás-fejlesztési alapismeretek
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
33
Android alkalmazás-fejlesztési alapismeretek
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ó
34
Android alkalmazás-fejlesztési alapismeretek
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
35
Android alkalmazás-fejlesztési alapismeretek
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
36
Android alkalmazás-fejlesztési alapismeretek
KépernyőfelbontásokFogalmak
• 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
37
Android alkalmazás-fejlesztési alapismeretek
Képernyőfelbontások
38
Android alkalmazás-fejlesztési alapismeretek
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
39
res/drawable-xhdpi/
awesomeimage.pngdrawable-hdpi/
awesomeimage.pngdrawable-mdpi/
awesomeimage.pngdrawable-ldpi/
awesomeimage.png
res/layout/
layout.xmllayout-small/
layout.xmllayout-large/
layout.xmllayout-xlarge-land/
layout.xml
res/values/
strings.xmlvalues-en/
strings.xmlvalues-fr/
strings.xmlvalues-de/
strings.xml
Android alkalmazás-fejlesztési alapismeretek
Mit érünk el ezekkel?
40
Android alkalmazás-fejlesztési alapismeretek
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
41
Android alkalmazás-fejlesztési alapismeretek
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
42
Android alkalmazás-fejlesztési alapismeretek
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
43
Android alkalmazás-fejlesztési alapismeretek
Állapot mentés - visszatöltés
44
Android alkalmazás-fejlesztési alapismeretek
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
45
Android alkalmazás-fejlesztési alapismeretek
Alkalmazások stackje
• Back stack
• Activityk egymáson – LIFO
• Vissza gomb innen vesz ki
• Több ilyen is lehet párhuzamosan - Multitask
46
Android alkalmazás-fejlesztési alapismeretek
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
47
Android alkalmazás-fejlesztési alapismeretek
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
48
Android alkalmazás-fejlesztési alapismeretek
Fragmentek
49
Android alkalmazás-fejlesztési alapismeretek
Fragmentek
• Dinamikus és statikus csatolás
• Kódból
• Fragmant manager kezeli őket
• XML <fragment> tag
• Hivatalos support library 1.6-ig
• ViewPager is fragmenteket
használ
50
Android alkalmazás-fejlesztési alapismeretek
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
51
Android alkalmazás-fejlesztési alapismeretek
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ű
52
Android alkalmazás-fejlesztési alapismeretek
Demo II.
• Fragment alapú alkalmazás
• Kezdő Fragment egy lista, ami betölt
egy másik Fragmentet az adott
tartalommal
53
Android alkalmazás-fejlesztési alapismeretek
Adattárolás
• Alkalmazás lelke
• Beállítások
• Adatok
• Cache
• Állapot
• Flag
54
Android alkalmazás-fejlesztési alapismeretek
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
55
Android alkalmazás-fejlesztési alapismeretek
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
56
Android alkalmazás-fejlesztési alapismeretek
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
57
Android alkalmazás-fejlesztési alapismeretek
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
58
Android alkalmazás-fejlesztési alapismeretek
Hálózati tárolás
• Felhő
• Saját szerver
• Google cloud platform szintű
támogatással
59
Android alkalmazás-fejlesztési alapismeretek
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
60
Android alkalmazás-fejlesztési alapismeretek
Service életciklus
61
Android alkalmazás-fejlesztési alapismeretek
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
62
Android alkalmazás-fejlesztési alapismeretek
Helymeghatározás
• Korlátok
• Pontosság
• Energiafogyasztás
• Szabadtér
• Google Location API
• Rendszerszintű DataProvider
63
Android alkalmazás-fejlesztési alapismeretek
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
64
Android alkalmazás-fejlesztési alapismeretek
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
65
Android alkalmazás-fejlesztési alapismeretek
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
66
Android alkalmazás-fejlesztési alapismeretek
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
67
Android alkalmazás-fejlesztési alapismeretek
Hálózati kommunikáció
• Kedden volt róla szó
• XML
• JSON
• CSV
• Lehet saját is
• Rengeteg példa és könyvtár
68
Android alkalmazás-fejlesztési alapismeretek
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ó
69
Android alkalmazás-fejlesztési alapismeretek
É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
70
Android alkalmazás-fejlesztési alapismeretek
Demo IV
• Notification alkalmazás
71
Android alkalmazás-fejlesztési alapismeretek
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
72
Android alkalmazás-fejlesztési alapismeretek
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
73
Android alkalmazás-fejlesztési alapismeretek
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
74
Android alkalmazás-fejlesztési alapismeretek
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
75
Android alkalmazás-fejlesztési alapismeretek
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
76
Android alkalmazás-fejlesztési alapismeretek
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
77
Android alkalmazás-fejlesztési alapismeretek
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
78
Android alkalmazás-fejlesztési alapismeretek
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
79
Android alkalmazás-fejlesztési alapismeretek
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
80
Android alkalmazás-fejlesztési alapismeretek
DDMS
81
Android alkalmazás-fejlesztési alapismeretek
Google Play
• Rengeteg hasznos szolgáltatás
• Felhasználói hitelesítés
• Alkalmazáson belüli fizetés
• Licenszelés
• Backup
• Statisztikák
82
Android alkalmazás-fejlesztési alapismeretek
Google developer console
• KÉP
83
Android alkalmazás-fejlesztési alapismeretek
Google developer console
• KÉP
84
Android alkalmazás-fejlesztési alapismeretek
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
85
Android alkalmazás-fejlesztési alapismeretek
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ó
86
Android alkalmazás-fejlesztési alapismeretek
É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.
87
Android alkalmazás-fejlesztési alapismeretek
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
88
Android alkalmazás-fejlesztési alapismeretek
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
89
Android alkalmazás-fejlesztési alapismeretek
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
90
Android alkalmazás-fejlesztési alapismeretek
iOS vs Android
91
Android alkalmazás-fejlesztési alapismeretek
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
92
Android alkalmazás-fejlesztési alapismeretek
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
93
Android alkalmazás-fejlesztési alapismeretek
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
94
Android alkalmazás-fejlesztési alapismeretek
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
95
Android alkalmazás-fejlesztési alapismeretek
In-App purchase 2013
96
Android alkalmazás-fejlesztési alapismeretek
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
97
Android alkalmazás-fejlesztési alapismeretek
Fejlesztői licenszek
• Egyszeri $25
• Minimális ellenőrzés
• Publikálás nincs ellenőrízve
• Legszabadabb a fejlesztés
• Nincs eszköz limit
98
Android alkalmazás-fejlesztési alapismeretek
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ő
99