+ All Categories
Home > Education > Android co-mi-usnadnuje-zivot

Android co-mi-usnadnuje-zivot

Date post: 08-Jul-2015
Category:
Upload: michal-ursiny
View: 109 times
Download: 2 times
Share this document with a friend
22
Co mi usnadňuje život Tipy z vývoje pro Android OS Michal Ursiny / Fuerte International www.fuerteint.com
Transcript
Page 1: Android co-mi-usnadnuje-zivot

Co mi usnadňuje život

Tipy z vývoje pro Android OS

Michal Ursiny / Fuerte Internationalwww.fuerteint.com

Page 2: Android co-mi-usnadnuje-zivot

Někdy se cítíte

Page 3: Android co-mi-usnadnuje-zivot

A přitom by jste chtěli

Page 4: Android co-mi-usnadnuje-zivot

Jak na to

● redukujte složitost problému● někdo to už vyřešil před Vámi – naučte se to● poučte se z vlastních chyb / nevhodných řešení● sledujte vývoj, novinky, reflektujte

Page 5: Android co-mi-usnadnuje-zivot

Co jsem se naučil já

● ContentProviders + Loadery● Google Play Services● Volley

Page 6: Android co-mi-usnadnuje-zivot

Sample project: nearby

● https://bitbucket.org/ursimon/nearby● demonstruje vše ;-)

Page 7: Android co-mi-usnadnuje-zivot

ContentProvider + Loader

● pro ukládání dat v appce● dříve dbHelper = složité, problematické při

vícevláknovém zpracováním● ContentProvider = thread safe, poskytuje

notifikace o změně● Ve spojení s Loader zjednodušuje zobrazování

dat v appce

Page 8: Android co-mi-usnadnuje-zivot

ContentProvider + Loader

● Jak to celé implementovat...

● Hotový ContentProvider do AndroidManifest s atributem exported=“false“ = jen pro Vaši appku

● Ve své Activity / Fragment implementujte LoaderManager.LoaderCallbacks<Cursor>

● OnCreateLoader – vytváříte Loader, query

● OnLoaderFinished – dostanete Cursor – co s ním? Klasicky do adapteru

Page 9: Android co-mi-usnadnuje-zivot

ContentProvider + Loader

● Jak ho napsat?● Koukněte se na fungující příklad nebo● Nechte si ho vygenerovat!

https://github.com/fedepaol/Android-sql-lite-helper

Page 10: Android co-mi-usnadnuje-zivot

O víc se nestaráte

Page 11: Android co-mi-usnadnuje-zivot

ContentProvider + Loader

● Podrobnější info:● Power your app with Content Provider

Mathieu Calba DroidCon London / 2013 :https://speakerdeck.com/mathieu_calba/power-your-app-with-content-provider

● aDevMeetup #7: Michal Havryluk - Jak efektivně pracovat s databází(suspendedNotifications)http://www.youtube.com/watch?v=sX0n6kNvrDg

Page 12: Android co-mi-usnadnuje-zivot

Google Play Services

● Google mapy do appky● Zjednodušuje získání lokace (FusionProvider)● GeoFencing a více● Součástí SDK

Page 13: Android co-mi-usnadnuje-zivot

Google Play Services

● Jak získat lokaci?● Importujete Google Play Services library project● Implementujete

GooglePlayServices.ConnectionCallbacks● Získate LocationClient

Page 14: Android co-mi-usnadnuje-zivot

Google Play Services

● LocationClient.getLastLocation() vrací nejlepší a nejnovější pozici – může stačit, ale může být taky NULL :-(

● LocationClient.requestLocationUpdates(LocationRequest, LocationListener)požádáte o location request a dostanete lokaci v LocationListeneru

Page 15: Android co-mi-usnadnuje-zivot

O víc se nestaráte

Page 16: Android co-mi-usnadnuje-zivot

Volley

● Android knihovna pro networking● Přímo od Google (používá Google Play Store)● Je rychlá, cachuje requesty, paralelní

zpracování requestů● Ve spojení s Gson vám může vracet přímo

objekty – nic neparsujete● NetworkImageView – view komponenta pro

nahrávání obrázků ze sítě

Page 17: Android co-mi-usnadnuje-zivot

Volley

● Google I/O 2013 - Volley: Easy, Fast Networking for Android:http://www.youtube.com/watch?v=yhv8l9F44qo

● Repository:https://android.googlesource.com/platform/frameworks/volleystačí vybuildovat jako library project a výsledný jar do vašeho projektu

● Docs:http://files.evancharlton.com/volley-docs/

Page 18: Android co-mi-usnadnuje-zivot

Volley - Request

● subclass Application = inicializace queue, imageloader● RequestQueue queue = MyVolley.getRequestQueue();● Vytvoříte request:GsonRequest<PlacesResponse> categoryRequest = new GsonRequest<PlacesResponse>(Method.GET, callURL, PlacesResponse.class, createMyReqSuccessListener(), createMyReqErrorListener());

● queue.add(categoryRequest);

Page 19: Android co-mi-usnadnuje-zivot

Volley - Requestprivate Response.Listener<PlacesResponse> createMyReqSuccessListener() {

return new Response.Listener<PlacesResponse>() {

@Override

public void onResponse(PlacesResponse response) {

// you have your object HERE!

}}

● Alternativně: StringRequest = dostáváte String, JsonObjectRequest = dostáváte Json

● Lze rozšířit: SimpleXMLRequesthttps://gist.github.com/itsalif/6149365

● GsonRequestHeaders – s rozšířením s podporou headers + bodyhttps://gist.github.com/ursimon/7743040

Page 20: Android co-mi-usnadnuje-zivot

Volley - NetworkImageView

● Komponenta přímo do Layoutu <com.android.volley.toolbox.NetworkImageView/>

● A pak už jen: image.setImageUrl(myUrl, MyVolley.getImageLoader());

Page 21: Android co-mi-usnadnuje-zivot

O víc se nestaráte

Page 22: Android co-mi-usnadnuje-zivot

Díky!

● Slideshare: http://www.slideshare.net/ursimon● Twitter: @ursimon● Email: [email protected]


Recommended