ANDROID ALKALMAZÁSFEJLESZTÉS

Hasonló dokumentumok
ANDROID ALKALMAZÁSFEJLESZTÉS

ANDROID ALKALMAZÁSFEJLESZTÉS

Felhasználói felület megismerése, különböző felbontások támogatása

UI megismerése, különböző felbontások támogatása, használati jogok kérése

UI megismerése - 2. rész Adattárolás

SZOFTVERFEJLESZTÉS ANDROID PLATFORMRA. Dr. Iszály György Barna

Broadcast Service Widget

strings.xml res/values/strings.xml fájlban hozzuk létre a hiányzó string adatforrásainkat A jelenlegi helyett ez álljon: <resources> <string

Android 5.0.

Overview. Service. Application Activity Activity 2 Activity 3. Fragment. Fragment. Fragment. Frag ment. Fragment. Broadcast Receiver

4. A konténerek Konténerek LinearLayout

ANDROID ALKALMAZÁSFEJLESZTÉS

Mobil Informatikai Rendszerek

Alap számológép alkalmazás

Android Wear programozás. Nyitrai István

Optimalizálás Hatékony alkalmazás Androidra

Google Maps használata OSM, mint alternatív térkép

Újdonságok a Google műhelyéből. Péter Ekler

Mobil Informatikai Rendszerek

ANDROID ALKALMAZÁSFEJLESZTÉS

Android Pie újdonságai

ANDROID ALKALMAZÁSFEJLESZTÉS

Integrált fejlesztői környezet (IDE)

ANDROID ALKALMAZÁSFEJLESZTÉS

ANDROID ALKALMAZÁSFEJLESZTÉS

Mobil Informatikai Rendszerek

- láda- vagy játékleírásból láda/játéklistába visszatérve nem a lista elejére ugrik, hanem ugyanoda, ahol voltunk a listában

Mobil Informatikai Rendszerek

ANDROID ALKALMAZÁS FEJLESZTÉS

ANDROID ALKALMAZÁSFEJLESZTÉS

Szuper leaderboard. Display hirdetések. A főoldal tetején, a profession fejléc felett megjelenő banner típus. MÉRET (PX): 980x100. HETI ÁR: Ft

Mobil Informatikai Rendszerek

Szálkezelés Rajzolás képernyőre Bevitel kezelése - Érintő képernyő - Billentyűzet

A TANTÁRGY ADATLAPJA

Grafikus felületek készítése 1.

3. Egyszerű komponensek

Felhasználói kézikönyv - Android kliens

Mobilalkalmazás fejlesztés. Android I. előadás

SP-1101W Quick Installation Guide

Avery Design Pro 4.0

ViCA. Virtuális chipkártya alkalmazás

Point of View Android 2.3 Tablet Kézikönyv ProTab 2XL

Szálkezelés Rajzolás képernyőre Bevitel kezelése - Érintő képernyő - Billentyűzet

Gate Control okostelefon-alkalmazás

Szakköri segédanyag. Írta: Bátfai Norbert október 26.

Gate Control okostelefon-alkalmazás

Adattárolás Szenzorok

Mobil készülékek programozása


Mobil Telefonon Keresztüli Felügyelet Felhasználói Kézikönyv

FELHASZNÁLÓI KÉZIKÖNYV 1.sz. melléklet

ANDROID ALKALMAZÁSFEJLESZTÉS

Google Maps V2. OpenStreetMap, Mapsforge

Point of View Android 2.3 Tablet Kézikönyv ProTab 2XXL

SDI ALKALMAZÁS I. Workspace / ResourceView / Toolbar / IDR_MAINFRAME. Workspace / ResourceView / Menu / IDR_MAINFRAME

Előszó A Windows alkalmazásfejlesztés rövid története A Windows életútja A Windows 8 paradigmaváltása... 16

Sygic: Voucher Edition for Android telepítése

VISUAL BASIC ALAPISMERETEK

Online hirdetési specifikáció. Fidelio.hu

ANDROID EMULÁTOR. Avagy nincsen pénz drága telóra.

A Web Services protokoll használata hálózati szkennelésre (Windows Vista SP2 vagy újabb verzió, valamint Windows 7 és Windows 8 esetén)

Gate Control okostelefon-alkalmazás

Programozási technológia

i1400 Image Processing Guide A-61623_zh-tw

Point of View Mobii 945 IPS Android 4.1 Tablet PC. Tartalomjegyzék Általános tudnivalók használathoz Jogi nyilatkozat...

Symbian Nokia. A Symbian gyártója és a Nokia szabad forráskódúvá tette a Symbiant, így szabadon fejleszthetőek az applikációk a szoftverre.

DWG fájlok megosztása, megtekintése és szerkesztése bárkivel, bárhol, bármikor

Számítástechnika II. BMEKOKAA Előadás. Dr. Bécsi Tamás

ONYX BOOX60 FELHASZNÁLÓI KÉZIKÖNYV

Programozási környezetek

ZH mintapélda. Feladat. Felület

Komplex feliratok készítése Maplex-el. Beke Dániel

Csavarda mobil áruház

ELEKTRONIKUS CSATORNÁKON KERESZTÜLI ÉRTÉKPAPÍR FORGALMAZÁS HASZNÁLATI FELTÉTELEI

Java bevezet o Kab odi L aszl o Kab odi L aszl o Java bevezet o

ELEKTRONIKUS CSATORNÁKON KERESZTÜLI ÉRTÉKPAPÍR FORGALMAZÁS HASZNÁLATI FELTÉTELEI

Bluetooth Szoftverfrissítési Útmutató Android Okostelefonok segítségével. Kompatibilis 2012 utáni termékekkel CDE-13xBT & CDE-W235BT & CDA-137BTi

FELHASZNÁLÓI KÉZIKÖNYV 1.sz. melléklet

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

Windows hálózati adminisztráció segédlet a gyakorlati órákhoz

Szoftverfejlesztés a Google Android OS-re (Android 3.0, API level 11)

Inform Média Lapkiadó boon.hu. Médiaajánlat

Android alkalmazásfejlesztési alapismeretek. Kozák Ferenc

SWS 500 HU FELHASZNÁLÓI KÉZIKÖNYV. Megjegyzés: A mobiltelefon nem tartozék.

Leica ScanStation C10 A Minden az egyben lézerszkenner bármilyen feladatra

Szoftvertechnológia alapjai Java előadások

A készülék fő egységei X1 X1 (kizárólag vezeték nélküli kamera esetében X1 X1 X1 X1 X1

BusEye online személyre szabott utastájékoztató mobil alkalmazás fejlesztése

Eseményvezérelt alkalmazások

Operációs rendszerek III.

Java programozási nyelv 5. rész Osztályok III.

libgdx alapok, első alkalmazás

A WORDPRESS TESTRESZABÁSA (MEGJELENÉS MENÜ ELEMEI)

GGMM M4. Használati útmutató. M4 vezeték nélküli hangrendszer csomag tartalma. Kezelő egység:

Grafikus felhasználói felületek. Dr. Szendrei Rudolf Informatikai Kar Eötvös Loránd Tudományegyetem. Programozási technológia I. Dr.

CEMP SALES HOUSE ÁRLISTA. Érvényes: január 7-től visszavonásig

Internet alkamazások Készítette: Methos L. Müller Készült: 2010

A MOBIL ALKALMAZÁSFEJLESZTÉS ALAPJAI

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

VIDEÓ INTERNET PROTOKOLL VIP RENDSZER

Átírás:

ANDROID ALKALMAZÁSFEJLESZTÉS Felhasználói felület megismerése Különböző felbontások támogatása sicz- m e s z i a r. j a n o s @ n i k. u n i - o b u d a. h u Sicz-Mesziár János 2017. február 18.

Deprecated Layouts 2 Ősosztály: ViewGroup Olyan tárolók, melynek gyermeke lehet: View / Widget Tároló / Layout TableLayout AbsoluteLayout TabLayout Gallery LinearLayout UI elemek egymás után. Horizontal vagy Vertical. Méretezés arányokkal. RelativeLayout Egymáshoz képest adhatjuk meg pozíciót. Leghatékonyabb layout. Speciálisak ScrollView HorizontalScrollView ListView GridView ViewPager ViewFlipper FrameLayout Minden gyermek a bal felső sarokhoz igazodik GridLayout Mozaik szerű elrendezés Android 4.0-tól!= GridView! Bővebben itt!

View / Widget 3 Button, TextView, EditText, Checkbox, Radio button, Toogle button, Spinner, ImageView,. <Button android:id="@+id/button1" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/txt"... /> Egyedi azonosító, hivatkozás: Java: R.id.button1 XML: @id/button1 Méret szélesség, magasság: MATCH_PARENT WRAP_CONTENT [SIZE][dp px] Resource elérés, res/strings.xml: <item name="txt">gomb</item>

Dialogs 4 Ősosztály: Dialog Az aktuális Activity / Fragment előtt jelenik meg Beépített gombok: PositiveButton NegativeButton NeutralButton AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); builder.setmessage(r.string.dialog_message).settitle(r.string.dialog_title); AlertDialog dialog = builder.create();

Pickers Lényegében funkció specifikus Dialog: DatePicker TimePicker Bővebben: http://developer.android.com/guide/topics/ ui/controls/pickers.html 5

Notifications Toast notification Szöveges tartalom, felbukkanó buborékban Toast.makeText( getcontext(), "Buborék", Toast.LENGTH_SHORT ).show(); SnackBar Snackbar.makeText( getcontext(), "Buborék", Snackbar.LENGTH_SHORT ).show(); 6 Status Bar notification Egy értesítési terület. Jelly Bean óta kibontható. Notifications: Egyszeri értesítés, Clear gomb hatására törölhető Ongoing: folyamatban lévőekről értesítés Pl.: zenelejátszó. Nem törölhető. 1. Content title 2. Large icon 3. Content text 4. Content info 5. Small icon 6. Time

Toolbar 7 ActionBar (3.0 óta) tovább gondolva Material Designnal jelent meg (5.0 óta) Support library segítségével Androidon (<5.0) is használható Már nem fixen a decor-window része, hanem az alkalmazáson belül flexibilisen bárhová elhelyezhető és testreszabbható View. Tipikusan az alábbi feladatokra jó, mint: Navigáció, cím, brand, logó, context menü Bővebben: http://developer.android.com/training/appbar/index.html

Adapter views 8 ListView, GridView, Spinner, ViewPager, Gallery Az adatokat egy adapteren keresztül biztosítjuk az UI számára. Előre implementált adapter (Pl.: ArrayAdapter) Mi implementáljuk (BaseAdapter leszármazott) Módszer előnyei Az adatok tárolási módja nem meghatározott Pl.: SD kártya, SQLite adatbázis, internet, Vagy: lista, tömb, hashmap, UI szétválasztva az adattól Optimális erőforrás felhasználás Nagy adatmennyiség kezelése (akár >10E listaelem kezelése)

Adapter views (2) hogyan működik? 9 Ősosztály: BaseAdapter Implementációk: ArrayAdapter, SpinnerAdapter, CursorAdapter, public class CustomAdapter extends BaseAdapter{ int getcount() {} Object getitem(int position) {} long getitemid(int position) {} View getview(int position, View convertview, ViewGroup parent) {} }

Adapter views (3) hogyan működik jól? 10 Probléma: Minden pozicióban: Adapter.getView(); Minden esetben új View objektumot létrehozni költséges! Több ezer elem esetén? Nem látható UI elemek újrahasznosítása: public View getview(int position, View convertview, ViewGroup parent) { ViewHolder holder; if (convertview == null) { convertview = minflater.inflate(r.layout.list_item, null); holder = new ViewHolder(); holder.text = (TextView) convertview.findviewbyid(r.id.text); convertview.settag(holder); } else holder = (ViewHolder) convertview.gettag(); } holder.text.settext(data[position]); return convertview;

XML drawables 11 Egyszerűbb alakzatokat, rajzokat, képeket, viselkedéseket leírhatunk XML-ben is Példák Layer-list Több kép együttes kezelése rétegekben. State-list Különböző állapotokhoz rendelt grafikai elemek. Például focused, pressed, hover, stb Level-list Különböző szintekhez rendelt grafikai elemek. Például Wi-Fi, fényerő vagy akkumulátor állapotokat ábrázoló képek. Shape Egy egyszerű alakzat (rectangle, oval, ) leírása. Kitöltési szín, vonal szín, sarkok kerekítése,

Styles / Themes 12 Stílusok alakíthatóak ki, melyeket nagy hatékonysággal lehet újrahasznosítani, és egységesen kezelni. res/values/styles.xml <resource> <style name="mystyle" parent="@android:style/widget.button"> <item name="android:background">#556677</item> </style> </resource> res/layout/activity_main.xml <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="gomb" style="@style/mystyle" />

Különböző felbontású készülékek támogatása

Problémák 14

Qualifiers (minősítők) 15 Különböző esetekre különböző megközelítés szükséges. Sok IF és SWITCH helyett minősítőket definiáltak. Automatikus kiértékelés, aktuálisan jellemző mappából dolgozik. Néhány minősítő: Gyakorlatban: Ugyanaz a kép 3 különböző méretben Kombinálhatóak! Ugyanazon felület különböző leírása portrai és landscape Ikon méretek 36x36 for low-density 48x48 for medium-density 72x72 for high-density 96x96 for extra high-density

9-Patch Dinamikus tartalom esetén, ha egyéni hátteret használunk akkor az eltorzulhat. Pl.: egy gombnál Speciális PNG fájllal meghatározhatjuk mely részeket nyújthatjuk meg a mintaképen. (bal oldal és fent) Szélén fekete pixelekkel jelöljük meg ezt a nyújtható területet. Jobb oldalt és lent a kitöltési területet jelölhetjük meg. Mindig *.9.png kiterjesztésű Van hozzá eszköz: [SDK path] / tools / draw9patch.bat 16

Density Independent Pixel (DIP, DP) 17 DP vagy DIP (Density-Independent Pixel) Egy virtuális pixel-egység, sűrűség-független képpont. 160dpi felbontású készüléken 1dp = 1px. Eltérő pixelsűrűség esetén automatikusan átváltja az alábbi módon: pixels = dips * (density / 160) Ez alapján néhány példa: 160dpi felbontás esetén, 10dp = 10px 240dpi felbontás esetén, 10dp = 15px SP vagy SIP (Scale-Independent Pixel) Mint a DP, csak szöveg esetén használatos. android:textsize="16sp"

Adaptív design 18

Backward compatibility

Probléma: lassú terjedés 20 Annak ellenére, hogy a rendszer ingyenes az új Android verziók lassan terjednek, melynek potenciális okai: Az eszközgyártóknak az eladott készülékek jelentik a bevételt, így maximum 2-3 Android főverzióra való frissítés a jellemző. Növekvő hardver igények az újabb Android rendszerek megjelenésével. (Ez részben igaz) Egyéni, gyártói megjelenés adaptálása az új rendszerre. HTC Sense, Samsung TouchWiz, LG UI,... Következmény: Nő a széttagoltság, túl sok különböző Android verzió, amit kezelni kell az alkalmazásokban. Új Android arculati elememek adaptálásának problémája. Pure (<2.3), Holo design(3.0-4.4), Material design (>5.0) Új API-k adta lehetőségek nehezen terjednek.

Google válasza: Google Play services 21 Google egyik válasza a fregmentáció csökkentésére a Google Play services. Minden készülékre (>2.2) automatikusan települ, ha a Play Store telepítve van. A háttérben automatikusan frissül. Tartalmazza az új Google szolgáltatások API-jait, mint például: Google Maps V2, Location API, GCM, In-app purchase, Analytics, Google Drive API, Wearable API, Wallet, Game API,

Google válasza: Support library 22 Az egyes Android verziókkal összhangban ki szoktak adni több kompatibilitási csomagot is, ami igény szerint beépíthető az alkalmazásokba. Például a Material Design elemei is ezekkel vihetőek vissza akár Android 2.3 verzióig is. Support library (v4, v7, v8, v13) V7 Support library: AppCompat, CardView, GridLayout, MediaRouter, Palette, RecycleView, Preference Leanback library Design Support library Custom Tabs Support library Percent Support library Multidex Support library Annotations Support library