dr. ekler péter: a mobilszoftver két értéke – legjobb gyakorlatok és újdonságok az android...
TRANSCRIPT
![Page 2: Dr. Ekler Péter: A mobilszoftver két értéke – legjobb gyakorlatok és újdonságok az Android platform tükrében](https://reader031.vdocuments.net/reader031/viewer/2022030213/589d58c81a28abef688b5597/html5/thumbnails/2.jpg)
A szoftver két értéke
• Másodlagos érték: a szoftver viselkedése - a szoftver azt csinálja hibamentesen, amit a felhasználó elvár
• Elsődleges érték: Tolerálja és egyszerűen alkalmazkodik a folyamatos változásokhoz, tehát könnyű módosítani (software is soft)
![Page 3: Dr. Ekler Péter: A mobilszoftver két értéke – legjobb gyakorlatok és újdonságok az Android platform tükrében](https://reader031.vdocuments.net/reader031/viewer/2022030213/589d58c81a28abef688b5597/html5/thumbnails/3.jpg)
Android eszközök
![Page 4: Dr. Ekler Péter: A mobilszoftver két értéke – legjobb gyakorlatok és újdonságok az Android platform tükrében](https://reader031.vdocuments.net/reader031/viewer/2022030213/589d58c81a28abef688b5597/html5/thumbnails/4.jpg)
Mi a szoftvermérnök feladata?
![Page 5: Dr. Ekler Péter: A mobilszoftver két értéke – legjobb gyakorlatok és újdonságok az Android platform tükrében](https://reader031.vdocuments.net/reader031/viewer/2022030213/589d58c81a28abef688b5597/html5/thumbnails/5.jpg)
Kihívások
• Volt már valaha dolgunk rossz kóddal?
• „Olvasni a kódot több idő, mint írni”
• Volt már olyan eset, hogy nem volt idő egy feladat „szakszerű” megoldására, a kód tisztítására, a rövid határidő miatt?
„Ahogy nő a kód mennyisége, úgy csökken a fejlesztők produktivitása.”
![Page 6: Dr. Ekler Péter: A mobilszoftver két értéke – legjobb gyakorlatok és újdonságok az Android platform tükrében](https://reader031.vdocuments.net/reader031/viewer/2022030213/589d58c81a28abef688b5597/html5/thumbnails/6.jpg)
Kódolási elvek, megfontolások
Reference: https://cleancoders.com/
![Page 7: Dr. Ekler Péter: A mobilszoftver két értéke – legjobb gyakorlatok és újdonságok az Android platform tükrében](https://reader031.vdocuments.net/reader031/viewer/2022030213/589d58c81a28abef688b5597/html5/thumbnails/7.jpg)
• Új szoftver rendszerek fő jellemzői:> Folyamatosan változó követelmények
• Agilis fejlesztés
• Csapatmunka
• Kódminőség
• Szoftver életciklus
Mi a Clean Code? Miért van rá szükség?
• Mi a szoftver igazi értéke?> Karbantarthatóság
> Folyamatos továbbfejleszthetőség és szállítás
![Page 8: Dr. Ekler Péter: A mobilszoftver két értéke – legjobb gyakorlatok és újdonságok az Android platform tükrében](https://reader031.vdocuments.net/reader031/viewer/2022030213/589d58c81a28abef688b5597/html5/thumbnails/8.jpg)
• Elnevezés> Small scope: long, descriptive name> Big scope: short name
• Kis osztályok
• Egy függvény csak egy dologért felelős
• Rövid metódusok> Maximum ~4 sor!
• Kevés argumentum> Maximum 3
• Nincs boolean argumentum
• Nincs „kimeneti” argumentum
Alap Clean Code elvek
![Page 9: Dr. Ekler Péter: A mobilszoftver két értéke – legjobb gyakorlatok és újdonságok az Android platform tükrében](https://reader031.vdocuments.net/reader031/viewer/2022030213/589d58c81a28abef688b5597/html5/thumbnails/9.jpg)
Android fejlesztés• Hibamentes, hatékony működés• Megfelelő library-k és eszközök ismerete, illetve használata• Fejlesztőkörnyezet kialakítása
> Verziókezelés
> Continous Integration (Jenkins, CircleCI, …)
> Tesztelés
– Unit tesztek
– Integrációs tesztek
– Teszt környezet
• Clean code
> Kódminőség
> Kód újrafelhasználhatóság
> SOLID tervezési elvek
> Refaktor
• Optimalizálás> Memória, CPU használat és energiafogyasztás
• Test Driven Development
![Page 10: Dr. Ekler Péter: A mobilszoftver két értéke – legjobb gyakorlatok és újdonságok az Android platform tükrében](https://reader031.vdocuments.net/reader031/viewer/2022030213/589d58c81a28abef688b5597/html5/thumbnails/10.jpg)
Cserkész szabály
• Nem elég jól megírni a kódot, hanem tisztán is kell tartani
• „Hagyd a tábort tisztábban, mint ahogy kaptad!”
![Page 11: Dr. Ekler Péter: A mobilszoftver két értéke – legjobb gyakorlatok és újdonságok az Android platform tükrében](https://reader031.vdocuments.net/reader031/viewer/2022030213/589d58c81a28abef688b5597/html5/thumbnails/11.jpg)
Android Studió újdonságok
![Page 12: Dr. Ekler Péter: A mobilszoftver két értéke – legjobb gyakorlatok és újdonságok az Android platform tükrében](https://reader031.vdocuments.net/reader031/viewer/2022030213/589d58c81a28abef688b5597/html5/thumbnails/12.jpg)
Navigation Editor
![Page 13: Dr. Ekler Péter: A mobilszoftver két értéke – legjobb gyakorlatok és újdonságok az Android platform tükrében](https://reader031.vdocuments.net/reader031/viewer/2022030213/589d58c81a28abef688b5597/html5/thumbnails/13.jpg)
Theme Editor
![Page 14: Dr. Ekler Péter: A mobilszoftver két értéke – legjobb gyakorlatok és újdonságok az Android platform tükrében](https://reader031.vdocuments.net/reader031/viewer/2022030213/589d58c81a28abef688b5597/html5/thumbnails/14.jpg)
• Több méret egyidejű nyomonkövetése
• Témák áttekintése
• Android verzió alapú renderelés
• Drag&Drop
• Komponens fa
Live layout (preview all screen size)
![Page 15: Dr. Ekler Péter: A mobilszoftver két értéke – legjobb gyakorlatok és újdonságok az Android platform tükrében](https://reader031.vdocuments.net/reader031/viewer/2022030213/589d58c81a28abef688b5597/html5/thumbnails/15.jpg)
Lint• Android
> Spell checking
> Android XML fájlok vizsgálata
> Régebbi verziókon nem elérhető attribútumok
> Hardcode text
> Lokalizáció használatára figyelmeztet– pl. SimpleDateFormat
> Layout felfújás parent megadás nélkül
> Padding margin symmetry
> Nem használt erőforrások
> Láthatóságok– pl. hol lehet szigorúbb
• Cody style
• Control flow
• Data flow
• Declaration redundancy
• Import
• Lehetséges bugok> itt pár érdekes példa
• XML
![Page 16: Dr. Ekler Péter: A mobilszoftver két értéke – legjobb gyakorlatok és újdonságok az Android platform tükrében](https://reader031.vdocuments.net/reader031/viewer/2022030213/589d58c81a28abef688b5597/html5/thumbnails/16.jpg)
• Live template: CTRL + J> Live template készítés: Tools-> „Save as live template”
• Jobbegér-> „Compare with clipboard”
• Jobbegér-> „Create Gist”
• Osztálynév kijelölés -> Alt+Enter -> „Create Test”
• Jobbegér-> „Search with Google”
• XML Validator
• Tools -> New scratch file
• …
További érdekességek
![Page 17: Dr. Ekler Péter: A mobilszoftver két értéke – legjobb gyakorlatok és újdonságok az Android platform tükrében](https://reader031.vdocuments.net/reader031/viewer/2022030213/589d58c81a28abef688b5597/html5/thumbnails/17.jpg)
• „Import Android Code Sample”
• Gazdag projekt készlet> Leírás
> Preview !
• API képességek felderítése
• API-k megfelelő használatának megismerése
• Ötletek
Példa projektek – API explorer
![Page 18: Dr. Ekler Péter: A mobilszoftver két értéke – legjobb gyakorlatok és újdonságok az Android platform tükrében](https://reader031.vdocuments.net/reader031/viewer/2022030213/589d58c81a28abef688b5597/html5/thumbnails/18.jpg)
Android Support Library-k
![Page 19: Dr. Ekler Péter: A mobilszoftver két értéke – legjobb gyakorlatok és újdonságok az Android platform tükrében](https://reader031.vdocuments.net/reader031/viewer/2022030213/589d58c81a28abef688b5597/html5/thumbnails/19.jpg)
Support Library típusok• Support V4
> Pl. NestedScrollView
• Media Router> android.support.v7.media
• RecyclerView> Dinamikus tartalmak, listák
• AppCompat> Általános widgetek
• Design Support Library> Material design elemek
• Custom Tabs Support Library
• Leanback> Android TV design
• Palette> Színek kiválasztása képekből
• …és…?:
• Percent Support Library
• További util libek, például Maps Util Lib:> https://developers.google.com/maps/documentation/android-api/utility/
![Page 20: Dr. Ekler Péter: A mobilszoftver két értéke – legjobb gyakorlatok és újdonságok az Android platform tükrében](https://reader031.vdocuments.net/reader031/viewer/2022030213/589d58c81a28abef688b5597/html5/thumbnails/20.jpg)
Percent Support Library• Százalék alapú méret megadás
• Függőség:> com.android.support:percent:23.0.0
• Példa:
<android.support.percent.PercentRelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"android:layout_width="match_parent"android:layout_height="match_parent">
<Viewandroid:id="@+id/top_left"android:layout_width="0dp"android:layout_height="0dp"android:layout_alignParentTop="true"android:background="#ff44aacc"app:layout_heightPercent="20%"app:layout_widthPercent="70%" />
</android.support.percent.PercentRelativeLayout>
![Page 21: Dr. Ekler Péter: A mobilszoftver két értéke – legjobb gyakorlatok és újdonságok az Android platform tükrében](https://reader031.vdocuments.net/reader031/viewer/2022030213/589d58c81a28abef688b5597/html5/thumbnails/21.jpg)
Android külső osztálykönyvtárak és eszközök
![Page 22: Dr. Ekler Péter: A mobilszoftver két értéke – legjobb gyakorlatok és újdonságok az Android platform tükrében](https://reader031.vdocuments.net/reader031/viewer/2022030213/589d58c81a28abef688b5597/html5/thumbnails/22.jpg)
Külső könyvtárak• Dagger: http://square.github.io/dagger
• ButterKnife: http://jakewharton.github.io/butterknife
• Retrofit: http://square.github.io/retrofit
• OkHttp: http://square.github.io/okhttp
• Glide? https://github.com/bumptech/glide
• LeakCanary: http://github.com/square/leakcanary
• RetroLambda: https://github.com/orfjackal/retrolambda
• RxJava: https://github.com/ReactiveX/RxJava
• RxAndroid: https://github.com/ReactiveX/RxAndroid
![Page 23: Dr. Ekler Péter: A mobilszoftver két értéke – legjobb gyakorlatok és újdonságok az Android platform tükrében](https://reader031.vdocuments.net/reader031/viewer/2022030213/589d58c81a28abef688b5597/html5/thumbnails/23.jpg)
Clean Architektúra• Viper (View, Interactor, Presenter, Entity, Routing):
> http://mutualmobile.github.io/blog/2013/12/04/viper-introduction/
• Clean Architecture:> https://github.com/android10/Android-
CleanArchitecture> http://fernandocejas.com/2014/09/03/architecting-
android-the-clean-way/> http://fernandocejas.com/2015/07/18/architecting-
android-the-evolution/
• Facebook flux architecture:> https://facebook.github.io/flux/docs/overview.html#cont
ent
![Page 24: Dr. Ekler Péter: A mobilszoftver két értéke – legjobb gyakorlatok és újdonságok az Android platform tükrében](https://reader031.vdocuments.net/reader031/viewer/2022030213/589d58c81a28abef688b5597/html5/thumbnails/24.jpg)
Stetho
• Fő funkciók:> Adatbázisok vizsgálata
> Hálózati kommunikáció
> View hierarchy
• Használat:> Saját Application osztály
–Stetho.initializeWithDefaults(this);
> chrome://inspect/#devices
![Page 25: Dr. Ekler Péter: A mobilszoftver két értéke – legjobb gyakorlatok és újdonságok az Android platform tükrében](https://reader031.vdocuments.net/reader031/viewer/2022030213/589d58c81a28abef688b5597/html5/thumbnails/25.jpg)
További eszközök
• Genymobile:> Custom firmware készítés
> Teszt környezet
> http://www.genymobile.com/
• Samsung Remote Test lab:> http://developer.samsung.com/remotetestlab/rtlDev
iceList.action
• Material icon pack-ok:> Hivatalos: https://www.google.com/design/icons/
> 3rd party, bővített: https://materialdesignicons.com/
![Page 26: Dr. Ekler Péter: A mobilszoftver két értéke – legjobb gyakorlatok és újdonságok az Android platform tükrében](https://reader031.vdocuments.net/reader031/viewer/2022030213/589d58c81a28abef688b5597/html5/thumbnails/26.jpg)
Esettanulmány: SocialDriving
![Page 27: Dr. Ekler Péter: A mobilszoftver két értéke – legjobb gyakorlatok és újdonságok az Android platform tükrében](https://reader031.vdocuments.net/reader031/viewer/2022030213/589d58c81a28abef688b5597/html5/thumbnails/27.jpg)
VehicleICT architektúra - SensorHUB
Monitoring Interface
Business Intelligence and
Reporting
Automated Data Analysis
Push Notification
Service
Vehicle Data Query Interface
RAW Data
Hadoop
Analytic. DB 1
AnalyticDB 2
AnalyticDB n
OBD2
CAN Bus
Adat gyűjtés, helyi szolgáltatások, megjelenítés
BI Reports and Dashboards
Monitoring Data
Alkalmazások és szolgáltatások
Személyre szabott visszajelzés,
közösségi integráció,PUSH értesítések
![Page 28: Dr. Ekler Péter: A mobilszoftver két értéke – legjobb gyakorlatok és újdonságok az Android platform tükrében](https://reader031.vdocuments.net/reader031/viewer/2022030213/589d58c81a28abef688b5597/html5/thumbnails/28.jpg)
SocialDriving koncepció
• Közösségi vezetés, „gamification” elemek
• Háttérben futó vezetési stílus felügyelet
• Fogyasztás és káros anyag kibocsátás összehasonlítás
> Hasonló autók és motortípusok> Hasonló időben utazók> Hasonló vezetési stílusú sofőrök
• OBD eszköz nélkül is kipróbálható
• Hely alapú értesítések, flotta és szerviz szolgáltatások
![Page 29: Dr. Ekler Péter: A mobilszoftver két értéke – legjobb gyakorlatok és újdonságok az Android platform tükrében](https://reader031.vdocuments.net/reader031/viewer/2022030213/589d58c81a28abef688b5597/html5/thumbnails/29.jpg)
Fogyasztás, káros anyag kibocsátás
![Page 30: Dr. Ekler Péter: A mobilszoftver két értéke – legjobb gyakorlatok és újdonságok az Android platform tükrében](https://reader031.vdocuments.net/reader031/viewer/2022030213/589d58c81a28abef688b5597/html5/thumbnails/30.jpg)
Élő térkép, hely függő értesítések
![Page 31: Dr. Ekler Péter: A mobilszoftver két értéke – legjobb gyakorlatok és újdonságok az Android platform tükrében](https://reader031.vdocuments.net/reader031/viewer/2022030213/589d58c81a28abef688b5597/html5/thumbnails/31.jpg)
Együttműködés meglévő navigációs szoftverekkel (lebegő ablak)
![Page 32: Dr. Ekler Péter: A mobilszoftver két értéke – legjobb gyakorlatok és újdonságok az Android platform tükrében](https://reader031.vdocuments.net/reader031/viewer/2022030213/589d58c81a28abef688b5597/html5/thumbnails/32.jpg)
Android Wear – jövő a jelenben
![Page 33: Dr. Ekler Péter: A mobilszoftver két értéke – legjobb gyakorlatok és újdonságok az Android platform tükrében](https://reader031.vdocuments.net/reader031/viewer/2022030213/589d58c81a28abef688b5597/html5/thumbnails/33.jpg)
SocialDriving – okosóra megoldás