Anzeige
Anzeige

Más contenido relacionado

Anzeige

Dr. Ekler Péter: A mobilszoftver két értéke – legjobb gyakorlatok és újdonságok az Android platform tükrében

  1. A mobilszoftver két értéke az Android platform szemszögéből peter.ekler@aut.bme.hu
  2. 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)
  3. Android eszközök
  4. Mi a szoftvermérnök feladata?
  5. 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.”
  6. Kódolási elvek, megfontolások Reference: https://cleancoders.com/
  7. • Ú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
  8. • 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
  9. 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
  10. 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!”
  11. Android Studió újdonságok
  12. Navigation Editor
  13. Theme Editor
  14. • 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)
  15. 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
  16. • 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
  17. • „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
  18. Android Support Library-k
  19. 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/
  20. 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.PercentRelativeLayout xmlns: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"> <View android: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>
  21. Android külső osztálykönyvtárak és eszközök
  22. 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
  23. 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
  24. 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
  25. 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/
  26. Esettanulmány: SocialDriving
  27. 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 Analytic DB 2 Analytic DB 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
  28. 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
  29. Fogyasztás, káros anyag kibocsátás
  30. Élő térkép, hely függő értesítések
  31. Együttműködés meglévő navigációs szoftverekkel (lebegő ablak)
  32. Android Wear – jövő a jelenben
  33. SocialDriving – okosóra megoldás
  34. Köszönöm a figyelmet! http://blog.autsoft.hu http://www.autsoft.hu/ peter.ekler@aut.bme.hu
Anzeige