34
A mobilszoftver két értéke az Android platform szemszögéből [email protected]

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

Embed Size (px)

Citation preview

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

A mobilszoftver két értéke az Android platform szemszögéből

[email protected]

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

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

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

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

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

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

• Ú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

• 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

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

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

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

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

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

• 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

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

• 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

• „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

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

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

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

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

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

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

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

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

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

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

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

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

É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

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

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

SocialDriving – okosóra megoldás

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

Köszönöm a figyelmet!

http://blog.autsoft.hu

http://www.autsoft.hu/ [email protected]