Slide 1

Slide 1 text

Your phone is offline? Mladjan Antic BLGRD Creative

Slide 2

Slide 2 text

Kada komunikacija “puca”? • Nema konekcije • Konekcija bez Interneta • “Prezauzeta” konekcija • Losa/Spora konekcija

Slide 3

Slide 3 text

Internet konekcija je van naše kontrole. Korisničko iskustvo zavisi od toga kako menadžujemo komunikaciju client - server.

Slide 4

Slide 4 text

Specijalne situacije • Kada korisnik želi da kontroliše drugi uređaj u realnom vremenu • Kada postoji neka server-side, kompleksnija validacija • Kada je bitna stavka timestamp podatak • Kada stari podaci više nisu aktuelni

Slide 5

Slide 5 text

Standardni flow View open Show loading offline message Request data Show data offline message

Slide 6

Slide 6 text

Koji su tu problemi? • Stvari koje su van naše kontrole utiču na korisničko iskustvo korisnika • API requests se šalju češće ili u pogrešnim trenutcima • Blokiranje interfejsa, što ostavlja utisak sporije aplikacije

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

A kako treba? • Ne treba prikazivati error poruke na koje korisnik nije uticao, i nisu njegova greška. • Pametno povlačiti sveže podatke sa servera • Kreirati ekrane sa podacima iz keša • Čuvati sve podatke sa servera u keš, možda je korisnik platio za te podatke • Hendluj parsiranje odgovora sa servera u background-u

Slide 9

Slide 9 text

Kada osvežavati podatke? • Kada korisnik to implicitno zatraži • Kada aplikacija uđe u foreground • U predefinisanim vremenskim intervalima • Background fetch • Kada stigne određena push notifikacija • Ne prekidaj korisnika dok gleda view ili skroluje tabelu

Slide 10

Slide 10 text

Get server data Parse data Save data Notification Parse error Background Main Open view Use cache Update view Show error

Slide 11

Slide 11 text

Unos korisnika • Uneti prvo podatke u lokalnu bazu • Sinhronizovati podatke kada je to moguće, u background-u • Setovati sync flag, sa statusom • Koristiti Queue izmena koje treba poslati na server • Queue moze biti serijalizovan na disk ukoliko se nešto nepredviđeno desi

Slide 12

Slide 12 text

Review • Više je situacija u kojima app ne može da komunicira sa serverom • Kreirajte view-ove koristeći postojeće podatke iz keša- baze • Snimajte u bazu sve što stigne sa servera • Tagujte objekte sync flag-om • Hendlujte sve error poruke! • Koristite background mode za background fetch

Slide 13

Slide 13 text

@kondormit Q & A