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

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

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

Android 5.0.

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

4. A konténerek Konténerek LinearLayout

Mobil Informatikai Rendszerek

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

Android Pie újdonságai

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

A TANTÁRGY ADATLAPJA

Mobil Informatikai Rendszerek

ANDROID ALKALMAZÁSFEJLESZTÉS

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

Mobil Informatikai Rendszerek

ANDROID ALKALMAZÁS FEJLESZTÉS

Alap számológép alkalmazás

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

- 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

Android Wear programozás. Nyitrai István

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

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

ANDROID ALKALMAZÁSFEJLESZTÉS

Mobil készülékek programozása

ANDROID ALKALMAZÁSFEJLESZTÉS

Mobil Informatikai Rendszerek

ANDROID ALKALMAZÁSFEJLESZTÉS

Responsive Web Design. Dr. Nyéki Lajos 2019

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

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

ANDROID ALKALMAZÁSFEJLESZTÉS

ANDROID ALKALMAZÁSFEJLESZTÉS

Gate Control okostelefon-alkalmazás

Avery Design Pro 4.0

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

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

Gate Control okostelefon-alkalmazás

Gate Control okostelefon-alkalmazás

Mobil SEO Kell-e külön foglalkozni a mobil jelenlétünk kereső optimalizálásával? Adam Lunczner Digital Director

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


A szoftverfejlesztés eszközei

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

Fejlesztői szemmel at K

Programozási környezetek

Multimédiás adatbázisok

3. Egyszerű komponensek

Internetes térkép publikálási technikák, szabványok, trendek, nyílt forráskódú megoldások

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

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

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

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

VIDEÓ INTERNET PROTOKOLL VIP RENDSZER

1. DVNAV letöltése és telepítése

Eseményvezérelt alkalmazások

ViCA. Virtuális chipkártya alkalmazás

Sygic: Voucher Edition for Android telepítése

Innovation Delivered. Szekeres Csaba. M-Prospect Kft. Fordítási és tolmácsolási üzletágvezető, SDL Trados partner

3C / DIY DVR H.264 Multiplex 4CH/8CH Network DVR Mobiltelefon/PDA/Egér támogatás ET-DVR / ET-DVR-08200

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

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

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

Hova tart a cross platform mérés?

Programozási technológia

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

Pick Pack Pont kereső és boltválasztó alkalmazás

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

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

VISUAL BASIC ALAPISMERETEK

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)

PÉLDATÁR BEGYAKORLÓ FELADAT SÍKFESZÜLTSÉGI PÉLDA MEGOLDÁSA VÉGESELEM-MÓDSZERREL

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

Crossplatform mobil fejlesztőkörnyezet kiválasztását támogató kutatás

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

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

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

Komponens alapú fejlesztés

WQMobile 1.0 kezelési útmutató

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

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

Operációs rendszerek. Az X Window rendszer

Blackberry 9000 (Bold) HTC Diamond 2. HTC 6262 Hero

Kiterjesztett valóság az iparban

Russmedia Hírportálok. Médiaajánlat

Több app. Egy kódbázis

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.

i1400 Image Processing Guide A-61623_zh-tw

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

ÚTMUTATÓ A KREATÍVOK ELKÉSZÍTÉSÉHEZ

Acer kivetítők 3D technológiával. Gyorsútmutató

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

RIA Rich Internet Application

Földmérési és Távérzékelési Intézet

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

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

Átírás:

ANDROID ALKALMAZÁSFEJLESZTÉS Felhasználói felület megismerése Különböző felbontások támogatása Sicz-Mesziár János s icz-meszia r. j a n o s @ n ik. u n i - o b u d a. h u Mezei József m e z e i.jozsef @ n i k. u n i - o b u d a. h u 2018. szeptember 24.

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!

Modern layout: ConstraintLayout 3 Hasonló működésű, mint a RelativeLayout Gyermekek egymáshoz képest fejezik ki pozíciójukat Android 2.3+ támogatott, legalább Android Studio 2.3 Minden View-nak két constraint kell: horizontal, vertical Multiple constraint támogatott Bővebben: https://developer.android.com/training/constraint-layout/index.html Layout Editor támogatás: https://developer.android.com/studio/write/layout-editor.html

Modern layout: FlexboxLayout CSS Flexible Box Layout Module működésének megfelelő Jól használható reszponzív felület kialakítására Tekinthetjük feltúrbózott LinearLayout-nak is Box wrap: nincs elég hely a View-nak új sorba kerül Split screen miatt különösen hasznos Android Developers Blog Open Source 4

View / Widget 5 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 6 Ősosztály: Dialog Az aktuális Activity / Fragment előtt jelenik meg Beépített gombok: PositiveButton NegativeButton NeutralButton AlertDialog.Builder(activity).setMessage(R.string.dialog_message).setTitle(R.string.dialog_title).setPositive("OK") { // TODO: click on positive button of dialog }.show()

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

Notifications Toast notification Szöveges tartalom, felbukkanó buborékban Toast.makeText( contxt, "Buborék", Toast.LENGTH_SHORT ).show() SnackBar Snackbar.makeText( context, "Buborék", Snackbar.LENGTH_SHORT ).show() 8 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 9 <3.0 Window title Pure design 3.0 5.0 ActionBar Holo design 5.0+ Toolbar Material design Support library visszafele kompatibilis Már nem fixen a DecorWindow 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 10 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? 11 Ősosztály: BaseAdapter Implementációk: ArrayAdapter, SpinnerAdapter, CursorAdapter, class CustomAdapter : BaseAdapter{ fun getcount() : Int { /* */ } fun getitem(position: Int) : Object {/* */ } fun getitemid(position: Int) : Long {/* */ } fun getview(position: Int, convertview: View, parent: ViewGroup) : View {} }

Adapter views (3) hogyan működik jól? 12 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: fun getview(position: Int, convertview: View, parent: ViewGroup) : View { var holder : ViewHolder? = null if (convertview == null) { convertview = minflater.inflate(r.layout.list_item, null) holder = ViewHolder() holder.text = convertview.findviewbyid(r.id.text) convertview.tag = holder } else holder = convertview.tag as ViewHolder } holder?.text?.text = DATA[position] return convertview

Modern layout: RecyclerView 13 Sok AdapterView implementáció helyett egyetlen megoldás Adatokat kiszolgáló Adapter mellett leválasztják a Layout, azaz a gyermekek pozícionálásának szabály rendszerét is Működéséhez deifniálni kell: RecycleView.Adapter RecycleView.LayoutManager LinearLayoutManager GridLayoutManager StaggeredGridLayoutManager https://developer.android.com/guide/topics/ui /layout/recyclerview.html

XML drawables 14 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 15 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 17

Qualifiers (minősítők) 18 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 19

Vector drawable 20 Android 5.0+, support library használatával régebbi is Lényegében túrbózott ShapeDrawable: rajzolást írja le, vonalak, görbék, egyenesek, színek Minőség romlás nélkül skálázható Kisebb APK méret, nincsen több változat a képből SVG-hez hasonló, XML leírót használ Android Studio support: SVG to Vector drawable converter Bővebben: https://developer.android.com/guide/topics/graphics/vector-drawableresources.html AnimatedVectorDrawable is elérhető https://developer.android.com/reference/android/graphics/drawable/animatedvect ordrawable.html Path morphing: https://lewismcgeary.github.io/posts/animated-vector-drawable-pathmorphing/

Density & Scale Independent Pixel (DP, SP) 21 DP vagy DIP (Density-Independent Pixel) Egy virtuális pixel-egység, sűrűségfü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) 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 22

Backward compatibility

Probléma: lassú terjedés 24 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 25 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 26 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

Android Jetpack 2018 őszétől 27 Lényegében a support library világának újragondolása, Android szoftver komponensek gyűjteménye. Mostanra értelmét vesztette a support library API level alapú (v4, v7, v8, v13) felosztása. Így már gyakoribb frissítések is jöhetnek. Az andoridx.* csomagnév alá kerül át az összes support library funkció. AndroidX refaktorálási dokumentáció. 4 alapvető kategóriára bomlik: Foundation Behavior Architecture UI Forrás: https://developer.android.com/jetpack/