100
www.innobile.hu Android alkalmazásfejlesztési alapismeretek 2014.08.26. Kozák Ferenc

Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

www.innobile.hu

Android alkalmazásfejlesztési alapismeretek

2014.08.26.

Kozák Ferenc

Page 2: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

Android alkalmazás-fejlesztési alapismeretek

Bevezetés eléPiaci részesedés - Felhasználók

2

Page 3: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

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

Page 4: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

Android alkalmazás-fejlesztési alapismeretek

Bevezetés eléPiaci részesedés - Felhasználók

4

Page 5: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

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

Page 6: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

Android alkalmazás-fejlesztési alapismeretek

Bevezetés eléPiaci részesedés - Fejlesztők

6

Page 7: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

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

Page 8: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

Android alkalmazás-fejlesztési alapismeretek

Bevezetés eléPiaci részesedés – Fejlesztői bevételek

8

Page 9: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

Android alkalmazás-fejlesztési alapismeretek

BevezetésAz 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)

9

Page 10: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

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

Page 11: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

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

Page 12: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

Android alkalmazás-fejlesztési alapismeretek

BevezetésAz android története

• 2008 HTC G1

12

Page 13: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

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

Page 14: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

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

Page 15: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

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

Page 16: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

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

Page 17: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

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

Page 18: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

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

Page 19: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

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

Page 20: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

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

Page 21: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

Android alkalmazás-fejlesztési alapismeretek

Android evolúcióJövő?

• 5.0 - Android L

• Material – design

• Letölthető a fejlesztői verzió

21

Page 22: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

Android alkalmazás-fejlesztési alapismeretek

Jelenlegi felállás

• Mire éri meg fejleszteni és mire nem?

22

Page 23: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

Android alkalmazás-fejlesztési alapismeretek

Platform felépítése

23

Page 24: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

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

Page 25: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

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

Page 26: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

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

Page 27: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

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

Page 28: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

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

Page 29: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

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

Page 30: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

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

Page 31: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

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

Page 32: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

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

Page 33: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

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

Page 34: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

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

Page 35: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

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

Page 36: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

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

Page 37: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

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

Page 38: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

Android alkalmazás-fejlesztési alapismeretek

Képernyőfelbontások

38

Page 39: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

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

Page 40: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

Android alkalmazás-fejlesztési alapismeretek

Mit érünk el ezekkel?

40

Page 41: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

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

Page 42: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

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

Page 43: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

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

Page 44: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

Android alkalmazás-fejlesztési alapismeretek

Állapot mentés - visszatöltés

44

Page 45: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

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

Page 46: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

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

Page 47: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

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

Page 48: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

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

Page 49: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

Android alkalmazás-fejlesztési alapismeretek

Fragmentek

49

Page 50: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

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

Page 51: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

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

Page 52: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

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

Page 53: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

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

Page 54: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

Android alkalmazás-fejlesztési alapismeretek

Adattárolás

• Alkalmazás lelke

• Beállítások

• Adatok

• Cache

• Állapot

• Flag

54

Page 55: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

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

Page 56: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

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

Page 57: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

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

Page 58: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

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

Page 59: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

Android alkalmazás-fejlesztési alapismeretek

Hálózati tárolás

• Felhő

• Saját szerver

• Google cloud platform szintű

támogatással

59

Page 60: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

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

Page 61: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

Android alkalmazás-fejlesztési alapismeretek

Service életciklus

61

Page 62: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

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

Page 63: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

Android alkalmazás-fejlesztési alapismeretek

Helymeghatározás

• Korlátok

• Pontosság

• Energiafogyasztás

• Szabadtér

• Google Location API

• Rendszerszintű DataProvider

63

Page 64: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

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

Page 65: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

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

Page 66: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

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

Page 67: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

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

Page 68: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

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

Page 69: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

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

Page 70: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

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

Page 71: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

Android alkalmazás-fejlesztési alapismeretek

Demo IV

• Notification alkalmazás

71

Page 72: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

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

Page 73: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

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

Page 74: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

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

Page 75: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

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

Page 76: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

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

Page 77: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

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

Page 78: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

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

Page 79: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

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

Page 80: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

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

Page 81: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

Android alkalmazás-fejlesztési alapismeretek

DDMS

81

Page 82: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

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

Page 83: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

Android alkalmazás-fejlesztési alapismeretek

Google developer console

• KÉP

83

Page 84: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

Android alkalmazás-fejlesztési alapismeretek

Google developer console

• KÉP

84

Page 85: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

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

Page 86: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

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

Page 87: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

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

Page 88: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

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

Page 89: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

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

Page 90: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

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

Page 91: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

Android alkalmazás-fejlesztési alapismeretek

iOS vs Android

91

Page 92: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

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

Page 93: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

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

Page 94: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

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

Page 95: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

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

Page 96: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

Android alkalmazás-fejlesztési alapismeretek

In-App purchase 2013

96

Page 97: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

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

Page 98: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

Android alkalmazás-fejlesztési alapismeretek

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

98

Page 99: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver

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

Page 100: Android alkalmazásfejlesztési alapismeretek Kozák Ferenc · 2014-09-12 · Android GCM •Értesítések (Facebook, Google) •Ne a mobil kérdezzen, fordított irány •Szerver