O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.
A mobilszoftver két értéke az
Android platform szemszögéből
peter.ekler@aut.bme.hu
A szoftver két értéke
• Másodlagos érték: a szoftver viselkedése - a szoftver azt
csinálja hibamentesen, amit a felhasznál...
Android eszközök
Mi a szoftvermérnök feladata?
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 ...
Kódolási elvek, megfontolások
Reference: https://cleancoders.com/
• Új szoftver rendszerek fő jellemzői:
> Folyamatosan változó követelmények
• Agilis fejlesztés
• Csapatmunka
• Kódminőség...
• Elnevezés
> Small scope: long, descriptive name
> Big scope: short name
• Kis osztályok
• Egy függvény csak egy dologért...
Android fejlesztés
• Hibamentes, hatékony működés
• Megfelelő library-k és eszközök ismerete, illetve használata
• Fejlesz...
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 ka...
Android Studió újdonságok
Navigation Editor
Theme Editor
• Több méret egyidejű nyomonkövetése
• Témák áttekintése
• Android verzió alapú renderelés
• Drag&Drop
• Komponens fa
Live...
Lint
• Android
> Spell checking 
> Android XML fájlok vizsgálata
> Régebbi verziókon nem elérhető attribútumok
> Hardcode...
• Live template: CTRL + J
> Live template készítés: Tools-> „Save as live template”
• Jobbegér-> „Compare with clipboard”
...
• „Import Android Code Sample”
• Gazdag projekt készlet
> Leírás
> Preview !
• API képességek felderítése
• API-k megfelel...
Android Support Library-k
Support Library típusok
• Support V4
> Pl. NestedScrollView
• Media Router
> android.support.v7.media
• RecyclerView
> Din...
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....
Android külső osztálykönyvtárak és
eszközök
Külső könyvtárak
• Dagger: http://square.github.io/dagger
• ButterKnife: http://jakewharton.github.io/butterknife
• Retrof...
Clean Architektúra
• Viper (View, Interactor, Presenter, Entity, Routing):
> http://mutualmobile.github.io/blog/2013/12/04...
Stetho
• Fő funkciók:
> Adatbázisok vizsgálata
> Hálózati kommunikáció
> View hierarchy
• Használat:
> Saját Application o...
További eszközök
• Genymobile:
> Custom firmware készítés
> Teszt környezet
> http://www.genymobile.com/
• Samsung Remote ...
Esettanulmány: SocialDriving
VehicleICT architektúra - SensorHUB
Monitoring
Interface
Business
Intelligence and
Reporting
Automated Data
Analysis
Push
...
SocialDriving koncepció
• Közösségi vezetés, „gamification” elemek
• Háttérben futó vezetési stílus felügyelet
• Fogyasztá...
Fogyasztás, káros anyag kibocsátás
Élő térkép, hely függő értesítések
Együttműködés meglévő navigációs
szoftverekkel (lebegő ablak)
Android Wear – jövő a jelenben
SocialDriving – okosóra megoldás
Köszönöm a figyelmet!
http://blog.autsoft.hu
http://www.autsoft.hu/ peter.ekler@aut.bme.hu
Próximos SlideShares
Carregando em…5
×

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

387 visualizações

Publicada em

A mobil alkalmazások rohamos léptékben terjednek az élet minden területén. Fejlesztőként fontos, hogy az alkalmazás és a forráskód minőségére és karbantarthatóságára is ügyeljünk, különösen ha hosszú távra tervezünk. Az előadás keretében szóba kerülnek alkalmazás fejlesztési legjobb gyakorlatok és újdonságok az Android platform tükrében.

Az előadás felvétele: https://youtu.be/zRCin-lcdSY?slideshare

Publicada em: Celular
  • Seja o primeiro a comentar

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

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

×