Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
! Jerzy Chalupski chalup, futuresimple " jerzy.chalupski@gmail.com Offline mode in Android apps Base CRM http://porcupineprogrammer.blogspot.com/ #
Slide 2
Slide 2 text
WHAT WHY HOW
Slide 3
Slide 3 text
WHAT is offline mode?
Slide 4
Slide 4 text
What happens when you send and email from Gmail app?
Slide 5
Slide 5 text
What happens if your connection is down?
Slide 6
Slide 6 text
What happens if your connection is down?
Slide 7
Slide 7 text
No content
Slide 8
Slide 8 text
RECAP Offline mode = fully functional app without connection
Slide 9
Slide 9 text
WHY should I bother?
Slide 10
Slide 10 text
Life is too short to worry about the internet connection.
Slide 11
Slide 11 text
I had to watch the animated circle for 2 seconds.
Slide 12
Slide 12 text
They want to post the photos of their dinner on Instagram! People want to DO THINGS!
Slide 13
Slide 13 text
SLOOOOOOW TIMEOUTS RETRYS NETWORK ERRORS HANDLING LIT SCREEN DATA PLAN USAGE
Slide 14
Slide 14 text
ˑˑˑˑ˒ “Unbearably sloooooow.”
Slide 15
Slide 15 text
ˑˑˑˑ˒ “Drains my battery.”
Slide 16
Slide 16 text
ˑˑˑˑ˒ “Crashes all the time.”
Slide 17
Slide 17 text
No content
Slide 18
Slide 18 text
RECAP BETTER UX
Slide 19
Slide 19 text
RECAP BETTER UX BETTER BATTERY LIFE
Slide 20
Slide 20 text
RECAP BETTER UX BETTER BATTERY LIFE BETTER CODE
Slide 21
Slide 21 text
RECAP BETTER UX BETTER BATTERY LIFE BETTER CODE
Slide 22
Slide 22 text
HOW do I implement it?
Slide 23
Slide 23 text
UI Http Client
Slide 24
Slide 24 text
UI Http Client SLOW FLAKY
Slide 25
Slide 25 text
UI Http Client SLOW FLAKY CACHE ALL THE THINGS!
Slide 26
Slide 26 text
Http Client SLOW FLAKY Storage FAST RELIABLE UI
Slide 27
Slide 27 text
Storage Http Client SLOW FLAKY UI FAST RELIABLE GET
Slide 28
Slide 28 text
Http Client SLOW FLAKY Storage FAST RELIABLE UI GET POST
Slide 29
Slide 29 text
Sync Service Http Client UI Storage GET POST
Slide 30
Slide 30 text
AbstractThreadedSyncAdapter Http Client UI ContentProvider SQLite DB CursorLoader
Slide 31
Slide 31 text
Sync Service Http Client UI Storage
Slide 32
Slide 32 text
Sync Service Http Client UI Storage
Slide 33
Slide 33 text
Sync Service Http Client UI Storage
Slide 34
Slide 34 text
BACKEND MOBILE
Slide 35
Slide 35 text
BACKEND MOBILE
Slide 36
Slide 36 text
BACKEND MOBILE
Slide 37
Slide 37 text
BACKEND MOBILE
Slide 38
Slide 38 text
BACKEND MOBILE
Slide 39
Slide 39 text
BACKEND MOBILE
Slide 40
Slide 40 text
BACKEND MOBILE
Slide 41
Slide 41 text
BACKEND MOBILE
Slide 42
Slide 42 text
BACKEND MOBILE
Slide 43
Slide 43 text
BACKEND MOBILE
Slide 44
Slide 44 text
BACKEND MOBILE
Slide 45
Slide 45 text
BACKEND MOBILE
Slide 46
Slide 46 text
BACKEND MOBILE 250k items?
Slide 47
Slide 47 text
BACKEND MOBILE ?
Slide 48
Slide 48 text
BACKEND MOBILE
Slide 49
Slide 49 text
BACKEND MOBILE
Slide 50
Slide 50 text
BACKEND MOBILE OFFLINE MODE = DATA MIGRATIONS
Slide 51
Slide 51 text
As pleasant as data migrations with SQLiteOpenHelper.
Slide 52
Slide 52 text
BACKEND MOBILE 1 2 1 2
Slide 53
Slide 53 text
BACKEND MOBILE 1 2 1 2 3
Slide 54
Slide 54 text
BACKEND MOBILE 1 2 1 2 3 3
Slide 55
Slide 55 text
BACKEND MOBILE 1 2 1 2 3 3 3
Slide 56
Slide 56 text
BACKEND MOBILE 1 2 1 2 3 3 3
Slide 57
Slide 57 text
BACKEND MOBILE 1A 2B 1 2
Slide 58
Slide 58 text
BACKEND MOBILE 1A 2B 1 2 3
Slide 59
Slide 59 text
BACKEND MOBILE 1A 2B 1 2 3 C
Slide 60
Slide 60 text
BACKEND MOBILE 1A 2B 1 2 3 C C
Slide 61
Slide 61 text
BACKEND MOBILE 1A 2B 1 2 3 C 4C C
Slide 62
Slide 62 text
BACKEND MOBILE 1A 2B 1 2 3 C 4 3 4C
Slide 63
Slide 63 text
BACKEND MOBILE 1A 2B 1 2 3 4 3 4C
Slide 64
Slide 64 text
BACKEND MOBILE 1A 2B 1 2 3 4 3D 4C
Slide 65
Slide 65 text
BACKEND MOBILE 1A 2B 1 2 2 3C 3
Slide 66
Slide 66 text
BACKEND MOBILE 1A 2B 1 2 2 2 3C 3
Slide 67
Slide 67 text
BACKEND MOBILE 1A 2B 1 2 2 D 2 3C 3 ?
Slide 68
Slide 68 text
BACKEND MOBILE 1A 2B 1 2 2 D 2 3C 3 D
Slide 69
Slide 69 text
BACKEND MOBILE 1A 2B 1 2 2 D 2 3C 3 D
Slide 70
Slide 70 text
BACKEND MOBILE 1A 2B 1 2 2 D 2 3C 3 D
Slide 71
Slide 71 text
BACKEND MOBILE 1A 2B 1 2 2 D 2 3C 3 D D
Slide 72
Slide 72 text
BACKEND MOBILE 1A 2B 1 2 2 D 2 3C 3 D 4D D
Slide 73
Slide 73 text
BACKEND MOBILE 1A 2B 1 2 2 D 2 3C 3 D 4D 4D
Slide 74
Slide 74 text
4D BACKEND MOBILE 1A 2B 1 2 2 2 3C 3 D 4
Slide 75
Slide 75 text
4D BACKEND MOBILE 1A 2B 1 2 2 2 3C 3 4 4
Slide 76
Slide 76 text
4D BACKEND MOBILE 1A 2B 1 2 2 2 3C 3 4 4
Slide 77
Slide 77 text
“My friend, you’re entering a world of pain” WALTER SOBCHAK
Slide 78
Slide 78 text
UUID
Slide 79
Slide 79 text
RECAP OFFLINE MODE = MIGRATIONS
Slide 80
Slide 80 text
RECAP UUID OR WORLD OF PAIN OFFLINE MODE = MIGRATIONS
Slide 81
Slide 81 text
Sync Service Http Client UI Storage
Slide 82
Slide 82 text
Sync Service Http Client UI Storage
Slide 83
Slide 83 text
“For every complex problem there is an answer that is clear, simple and wrong.” HENRY LOUIS MENCKEN
Slide 84
Slide 84 text
Sync Service Http Client UI Storage CONFLICTS
Slide 85
Slide 85 text
Sync Service Http Client UI Storage CONFLICTS DUPLICATES
Slide 86
Slide 86 text
Sync Service Http Client UI Storage CONFLICTS HANDLING LARGE DATA SETS DUPLICATES
Slide 87
Slide 87 text
Sync Service Http Client UI Storage CONFLICTS HANDLING LARGE DATA SETS DUPLICATES BATTERY USAGE
Slide 88
Slide 88 text
No content
Slide 89
Slide 89 text
!futuresimple chalup
Slide 90
Slide 90 text
?
Slide 91
Slide 91 text
Thanks.