Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
오프라인과 앱서비스 - 드로이드 나이츠 2019
Search
fr-rannte
April 05, 2019
Programming
440
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
오프라인과 앱서비스 - 드로이드 나이츠 2019
Droid Knights 2019 발표자료 공유합니다.
fr-rannte
April 05, 2019
Other Decks in Programming
See All in Programming
Atomic Design, Enforced: Scaling Mobile Design Systems (next.app devCon / droidCon Berlin 2026)
steliosf
PRO
0
170
パズルゲームの作り方 / how to make puzzle games
kaityo256
PRO
2
290
Event is what happens
moro
2
770
TechTown - Creating Composable Callables in Contemporary C++
rollbear
0
130
なぜCTOを降りてFDEを選んだのか?〜なぜプロダクト企業がFDEで顧客の現場に踏み込むのか〜
gonta
1
210
RAG の “R” を Swift で覗いてみる 〜「意味から探す」検索の仕組み〜
nao_randd
0
160
機械に任せるテスト、人が見るテスト ⽣成AIで引き直した、運⽤保守フェーズの線引き
dske104
0
190
Long Living Tokens, Die, Die, Die! (or: The One Ring is Banned in Modern)
sylph01
0
300
UnityでSystem.Net.WebSocketsなWebSocketサーバが動かないのでUnity Monoのコードを覗いてみた / about implementing websocket server with unity mono
drumath2237
1
610
Domain-Driven Transformation
hschwentner
2
2.3k
Findy - エンジニア向け会社紹介/Findy Company Deck
findyinc
6
400k
Kotlinの15年とServer-Side Kotlin
n_takehata
1
150
Featured
See All Featured
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.9k
Making the Leap to Tech Lead
cromwellryan
135
10k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
203
77k
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
410
The SEO Collaboration Effect
kristinabergwall1
1
590
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6.1k
The Curious Case for Waylosing
cassininazir
1
570
How Software Deployment tools have changed in the past 20 years
geshan
2
35k
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
300
Transcript
오프라인과 앱 서비스
모바일 개발자 이름 : 김현 경력 : 2012년 ~ 현재
2
Mobile Developer I am Hyun Kim I am working at
Fast Retailing @ Tokyo You can find me at https://rannte.tistory.com
[email protected]
3
오프라인 24시간 내에 네트워크 장애를 겪은적있나요? 4
네트워크 접속성공률 99.97% 네트워크 전송성공률 99.43% 출처 : 과학기술정보통신부 2018년도
통신서비스 품질평가 결과
건물 안 엘레베이터 지하
네트워크가 끊어지면 어떻게 하지? 7
일반적인 네트워크 오류 대응 8
오프라인 이슈에 대한 대응사례 소개 9
Enterprise business rules Application business rules Interface adapters Frameworks and
drivers External Interfaces UI DB Devices W eb Controllers Presenters Gateways Use Cases Entities
Dependency Injection Platform views UI libs BM Usecase Domain View
Model View Platform independent ViewModel View Cache API Data Manager Data Transformation Storage & retrieval Model DB Mapper
Dagger Platfor m views Lottie Groupie androidx Plain Kotlin Rx
Java Domain View Model View Platform independent Rx Java Databinding androidx.lifecycle Databinding Rx Java Retrofit Rx Java Data Transformation Storage & retrieval Model Object Box Plain Kotlin
현재 구현 상황 View Model Usecase Data Manager Local Entity
BM Data STREAM Remote
예외처리 데이터를 저장해 두었다가 데이터 갱신에 문제가 생겼을 경우 대체하여
사용하는 방법 1.
예외처리 View Model Usecase Data Manager Local Entity BM Data
STREAM Remote CACHE Entity
예외처리 View Model Usecase Data Manager Local Entity BM Data
STREAM Remote CACHE 에러 발생 Entity
예외처리 샘플 코드
예외처리 샘플 코드
예외처리 View Model Usecase Data Manager Local Entity BM Data
STREAM Remote 에러 발생 Error signal onError
예외처리 샘플 코드
예외처리 샘플 코드
Error 스트림을 이용해 오프라인 UI 구현
오프라인 모드 데이터 사용을 임의로 제한하여 오프라인 데이터로만 서비스를 제공하는
방법 2.
Spotify Youtube
오프라인 모드 View Model Usecase Data Manager Local DB Entity
BM Data STREAM
로컬DB를 오프라인 외의 상황에도 사용한다면..? 26
오프라인 우선모드 화면 갱신은 로컬DB의 변화에 종속하도록 하고 서버와 동기화를
통하여 서비스를 제공하는 방법 3.
오프라인 우선모드 View Model Usecase Data Manager Updater Entity BM
Data STREAM
Structure Layers Data Data Domain Updater Remote Local Data Manager
UseCase
Local Structure - Updater Updater fetch Local DB Stream Remote
Server REST API Observer sync
0.1 sec 31
Updater ◼ 온라인 / 오프라인 데이터에 대한 인터페이스 제공 ◼
온라인 / 오프라인 간의 동기화 작업을 담당 ◼ 오프라인 스토리지 변경에 대한 Observer 를 제공
Updater
오프라인 데이터 처리 ◼ 마지막 동기화 시간 기록 ◼ 민감한
데이터는 유효시간 설정 ◼ 유효시간이 지난 데이터 표시시 UI 표시
Any Question?