Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Offline iOS aplikacije

DaFED
April 01, 2015

Offline iOS aplikacije

DaFED#31
Speaker: Mlađan Antić
Kreiranje mobilnih aplikacija koje treba da se ponašaju offline isto kao i online su sve češći zahtevi klijenata. Sinhronizacija servera i klijentskih aplikacija je veliki izazov i noćna mora većini developera. U ovoj prezentaciji pričaće se o tehnikama i dizajn paternima koje se u BLGRD Creative koriste za rešenje tog problema.

DaFED

April 01, 2015
Tweet

More Decks by DaFED

Other Decks in Programming

Transcript

  1. Kada komunikacija “puca”? • Nema konekcije • Konekcija bez Interneta

    • “Prezauzeta” konekcija • Losa/Spora konekcija
  2. Internet konekcija je van naše kontrole. Korisničko iskustvo zavisi od

    toga kako menadžujemo komunikaciju client - server.
  3. 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
  4. 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
  5. 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
  6. 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
  7. Get server data Parse data Save data Notification Parse error

    Background Main Open view Use cache Update view Show error
  8. 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
  9. 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