Что нам стоит rest client построить

93
Что нам стоит REST Client построить? Матвей Мальков, Lead Android Developer

Upload: matvey-malkov

Post on 18-Jul-2015

109 views

Category:

Mobile


1 download

TRANSCRIPT

Page 1: Что нам стоит REST Client построить

Что нам стоит REST Client построить?Матвей Мальков, Lead Android Developer

Page 2: Что нам стоит REST Client построить

Обо мне

Page 3: Что нам стоит REST Client построить

–– 2GIS Android team

–– CodeFest mobile section

–– Noveo

Page 4: Что нам стоит REST Client построить

REST Client

Page 5: Что нам стоит REST Client построить

Хороший Клиент

Page 6: Что нам стоит REST Client построить

–– Отзывчивый UI

Page 7: Что нам стоит REST Client построить

–– Отзывчивый UI–– Данные есть всегда

Page 8: Что нам стоит REST Client построить

–– Отзывчивый UI–– Данные есть всегда–– Умные запросы

Page 9: Что нам стоит REST Client построить

–– Отзывчивый UI–– Данные есть всегда–– Умные запросы–– Гибкая архитектура

Page 10: Что нам стоит REST Client построить

–– Отзывчивый UI–– Данные есть всегда–– Умные запросы–– Гибкая архитектура–– Диагностируемый код

Page 11: Что нам стоит REST Client построить

Плохой клиент

Page 12: Что нам стоит REST Client построить

–– Отзывчивый UI–– Данные есть всегда–– Умные запросы–– Гибкая архитектура–– Диагностируемый код

Page 13: Что нам стоит REST Client построить

Структура

Page 14: Что нам стоит REST Client построить

UI

Background service

Request Handler

Rest Service

Cache

Page 15: Что нам стоит REST Client построить

UI

Background service

Request Handler

Rest Service

Cache

Page 16: Что нам стоит REST Client построить

UI

Background service

Request Handler

Rest Service

Cache

CacheAdapter

Page 17: Что нам стоит REST Client построить
Page 18: Что нам стоит REST Client построить

UI

Background service

Request Handler

Rest Service

Cache

CacheAdapter

Page 19: Что нам стоит REST Client построить

UI

Background service

Request Handler

Rest Service

Cache

CacheAdapter

Page 20: Что нам стоит REST Client построить

–– Async

Page 21: Что нам стоит REST Client построить

–– Async

–– Client-Server

Page 22: Что нам стоит REST Client построить

–– Async

–– Client-Server

–– XML, JSON

Page 23: Что нам стоит REST Client построить

–– Async

–– Client-Server

–– XML, JSON

–– Кэширование

Page 24: Что нам стоит REST Client построить
Page 25: Что нам стоит REST Client построить

Async && REST

Page 26: Что нам стоит REST Client построить

–– Ссылка

Page 27: Что нам стоит REST Client построить

–– Ссылка–– Хэдеры

Page 28: Что нам стоит REST Client построить

–– Ссылка–– Хэдеры–– Тип запроса

Page 29: Что нам стоит REST Client построить

–– Ссылка–– Хэдеры–– Тип запроса–– Тело

Page 30: Что нам стоит REST Client построить

–– Ссылка–– Хэдеры–– Тип запроса–– Тело–– HttpClient

Page 31: Что нам стоит REST Client построить

–– Ссылка–– Хэдеры–– Тип запроса–– Тело–– HttpClient

– отправит запрос– получит ответ

Page 32: Что нам стоит REST Client построить

Http Client

Page 33: Что нам стоит REST Client построить

–– Apache

–– HttpUrlConnection

–– OkHttp by Square

Page 34: Что нам стоит REST Client построить

–– stable!

Page 35: Что нам стоит REST Client построить

–– stable!–– Connection pooling (if not SPDY)

Page 36: Что нам стоит REST Client построить

–– stable!–– Connection pooling (if not SPDY)–– Proxy problems

Page 37: Что нам стоит REST Client построить

–– stable!–– Connection pooling (if not SPDY)–– Proxy problems–– Shared socket (if SPDY)

Page 38: Что нам стоит REST Client построить

–– stable!–– Connection pooling (if not SPDY)–– Proxy problems–– Shared socket (if SPDY)–– GZip

Page 39: Что нам стоит REST Client построить

–– stable!–– Connection pooling (if not SPDY)–– Proxy problems–– Shared socket (if SPDY)–– GZip–– Interceptors!!!

Page 40: Что нам стоит REST Client построить
Page 41: Что нам стоит REST Client построить
Page 42: Что нам стоит REST Client построить
Page 43: Что нам стоит REST Client построить

Higher level

Page 44: Что нам стоит REST Client построить

–– Мало кода

–– Много функционала

–– Гибко

Page 45: Что нам стоит REST Client построить

Retrofit

Page 46: Что нам стоит REST Client построить
Page 47: Что нам стоит REST Client построить
Page 48: Что нам стоит REST Client построить
Page 49: Что нам стоит REST Client построить
Page 50: Что нам стоит REST Client построить
Page 51: Что нам стоит REST Client построить
Page 52: Что нам стоит REST Client построить

–– Логируйте

–– Не забывайте про хэдеры

–– Пагинация – ваш друг

–– interceptors

Page 53: Что нам стоит REST Client построить

XML/JSON

Page 54: Что нам стоит REST Client построить

–– XML JSON FTW!

Page 55: Что нам стоит REST Client построить

–– XML JSON FTW!–– Берите то, что надо

Page 56: Что нам стоит REST Client построить
Page 57: Что нам стоит REST Client построить
Page 58: Что нам стоит REST Client построить

–– XML JSON FTW!

–– Берите то, что надо

–– @SerializedName(“fieldName”)

Page 59: Что нам стоит REST Client построить
Page 60: Что нам стоит REST Client построить
Page 61: Что нам стоит REST Client построить
Page 62: Что нам стоит REST Client построить
Page 63: Что нам стоит REST Client построить

–– XML JSON FTW!

–– Берите то, что надо

–– @SerializedName(“fieldName”)

–– Версионируйте

Page 64: Что нам стоит REST Client построить

Кэширование

Page 65: Что нам стоит REST Client построить

–– SQLite

Page 66: Что нам стоит REST Client построить

–– SQLite–– Файлы

Page 67: Что нам стоит REST Client построить

–– SQLite–– Файлы–– LruCache

Page 68: Что нам стоит REST Client построить

–– SQLite–– Файлы–– LruCache–– NoSQL

Page 69: Что нам стоит REST Client построить

–– SQLite–– Файлы–– LruCache–– NoSQL

–– CouchBase Lite

Page 70: Что нам стоит REST Client построить

–– SQLite–– Файлы–– LruCache–– NoSQL

–– CouchBase Lite–– Realm

Page 71: Что нам стоит REST Client построить

–– NoSQL в SQL

Page 72: Что нам стоит REST Client построить
Page 73: Что нам стоит REST Client построить

–– NoSQL в SQL–– Мало столбцов

Page 74: Что нам стоит REST Client построить

–– NoSQL в SQL–– Мало столбцов–– Много данных

Page 75: Что нам стоит REST Client построить

–– NoSQL в SQL–– Мало столбцов–– Много данных–– Издержки на парсинг

Page 76: Что нам стоит REST Client построить

–– NoSQL в SQL–– Мало столбцов–– Много данных–– Издержки на парсинг

–– Структура!

Page 77: Что нам стоит REST Client построить

Bonus part

Page 78: Что нам стоит REST Client построить

Логирование

Page 79: Что нам стоит REST Client построить
Page 80: Что нам стоит REST Client построить
Page 81: Что нам стоит REST Client построить
Page 82: Что нам стоит REST Client построить

Как лучше?

Page 83: Что нам стоит REST Client построить

–– Логировать все события

Page 84: Что нам стоит REST Client построить
Page 85: Что нам стоит REST Client построить
Page 86: Что нам стоит REST Client построить

–– Логировать все события–– Логировать класс ошибок

Page 87: Что нам стоит REST Client построить

–– Логировать все события–– Логировать класс ошибок–– Иметь специальные обработчики

Page 88: Что нам стоит REST Client построить
Page 89: Что нам стоит REST Client построить

–– Логировать все события–– Логировать класс ошибок–– Иметь специальные обработчики–– Не кидать стэктрейсы в продакшене

Page 90: Что нам стоит REST Client построить
Page 91: Что нам стоит REST Client построить

Итоги монолога

Page 92: Что нам стоит REST Client построить
Page 93: Что нам стоит REST Client построить

Матвей Мальков

[email protected]

matveyka_jj

СПАСИБО