🗊Презентация Клиент-серверные приложения

Нажмите для полного просмотра!
Клиент-серверные приложения, слайд №1Клиент-серверные приложения, слайд №2Клиент-серверные приложения, слайд №3Клиент-серверные приложения, слайд №4Клиент-серверные приложения, слайд №5Клиент-серверные приложения, слайд №6Клиент-серверные приложения, слайд №7Клиент-серверные приложения, слайд №8Клиент-серверные приложения, слайд №9Клиент-серверные приложения, слайд №10Клиент-серверные приложения, слайд №11Клиент-серверные приложения, слайд №12Клиент-серверные приложения, слайд №13Клиент-серверные приложения, слайд №14Клиент-серверные приложения, слайд №15Клиент-серверные приложения, слайд №16Клиент-серверные приложения, слайд №17Клиент-серверные приложения, слайд №18Клиент-серверные приложения, слайд №19Клиент-серверные приложения, слайд №20Клиент-серверные приложения, слайд №21Клиент-серверные приложения, слайд №22Клиент-серверные приложения, слайд №23Клиент-серверные приложения, слайд №24Клиент-серверные приложения, слайд №25Клиент-серверные приложения, слайд №26Клиент-серверные приложения, слайд №27Клиент-серверные приложения, слайд №28Клиент-серверные приложения, слайд №29Клиент-серверные приложения, слайд №30Клиент-серверные приложения, слайд №31Клиент-серверные приложения, слайд №32Клиент-серверные приложения, слайд №33Клиент-серверные приложения, слайд №34Клиент-серверные приложения, слайд №35Клиент-серверные приложения, слайд №36Клиент-серверные приложения, слайд №37Клиент-серверные приложения, слайд №38Клиент-серверные приложения, слайд №39Клиент-серверные приложения, слайд №40Клиент-серверные приложения, слайд №41Клиент-серверные приложения, слайд №42Клиент-серверные приложения, слайд №43Клиент-серверные приложения, слайд №44Клиент-серверные приложения, слайд №45Клиент-серверные приложения, слайд №46Клиент-серверные приложения, слайд №47Клиент-серверные приложения, слайд №48Клиент-серверные приложения, слайд №49Клиент-серверные приложения, слайд №50Клиент-серверные приложения, слайд №51Клиент-серверные приложения, слайд №52

Содержание

Вы можете ознакомиться и скачать презентацию на тему Клиент-серверные приложения. Доклад-сообщение содержит 52 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1





Василов Артур
Android Developer at e-Legion 
Google Developers Group Kazan
Описание слайда:
Василов Артур Android Developer at e-Legion Google Developers Group Kazan

Слайд 2





Введение в курс
Описание слайда:
Введение в курс

Слайд 3





Цели курса
Изучить вопросы и проблемы, связанные с разработкой клиент-серверных приложений
Изучить наиболее действенные и популярные методы построения архитектуры приложений, а также научиться применять их на практике
Описание слайда:
Цели курса Изучить вопросы и проблемы, связанные с разработкой клиент-серверных приложений Изучить наиболее действенные и популярные методы построения архитектуры приложений, а также научиться применять их на практике

Слайд 4





Формат курса
Занятие – 2-2,5 часа
Лекция – 60-80 минут
Практика – 40-60 минут
Дополнительная лекция – 15-20 минут
Командная работа над финальным проектом
Описание слайда:
Формат курса Занятие – 2-2,5 часа Лекция – 60-80 минут Практика – 40-60 минут Дополнительная лекция – 15-20 минут Командная работа над финальным проектом

Слайд 5





Рассматриваемые темы
Обработка смены конфигурации в Activity
Классические паттерны A/B/C для обеспечения клиент-серверного взаимодействия
Фреймворк RxJava и его применение в Android-разработке
Принципы Clean Architecture и их применение в построении архитектуры приложений
Описание слайда:
Рассматриваемые темы Обработка смены конфигурации в Activity Классические паттерны A/B/C для обеспечения клиент-серверного взаимодействия Фреймворк RxJava и его применение в Android-разработке Принципы Clean Architecture и их применение в построении архитектуры приложений

Слайд 6





Рассматриваемые темы
Паттерн MVP 
Unit-тестирование Android-приложений 
UI-тестирование Android-приложений 
Фреймворк DataBinding и его использование в паттерне MVVM
Описание слайда:
Рассматриваемые темы Паттерн MVP Unit-тестирование Android-приложений UI-тестирование Android-приложений Фреймворк DataBinding и его использование в паттерне MVVM

Слайд 7





Дополнительные темы
Проблема Backpressure в RxJava и способы ее решения
Библиотека Google Agera для построения архитектуры приложений
Библиотека Mosby для построения архитектуры приложений
Методология TDD (test-driven development)
Dagger 2 как библиотека для реализации принципа Dependency Injection
Описание слайда:
Дополнительные темы Проблема Backpressure в RxJava и способы ее решения Библиотека Google Agera для построения архитектуры приложений Библиотека Mosby для построения архитектуры приложений Методология TDD (test-driven development) Dagger 2 как библиотека для реализации принципа Dependency Injection

Слайд 8





Командный проект
После 5-ого занятия
Команды по 3 человека
Выбор идеи проекта https://github.com/toddmotto/public-apis 
Планирование задач по проекту
Реализация проекта в команде, работа в Github
Описание слайда:
Командный проект После 5-ого занятия Команды по 3 человека Выбор идеи проекта https://github.com/toddmotto/public-apis Планирование задач по проекту Реализация проекта в команде, работа в Github

Слайд 9





Введение в архитектуру клиент-серверных приложений
Описание слайда:
Введение в архитектуру клиент-серверных приложений

Слайд 10





Зачем?
От создателей       “и так сойдет”
Описание слайда:
Зачем? От создателей “и так сойдет”

Слайд 11





2007                                                    2008
Описание слайда:
2007 2008

Слайд 12





Так все же почему?
Крайне тяжело поддерживать
Невозможно писать Unit-тесты
Описание слайда:
Так все же почему? Крайне тяжело поддерживать Невозможно писать Unit-тесты

Слайд 13





MVC как AAA (Activity, Activity, Activity)
Описание слайда:
MVC как AAA (Activity, Activity, Activity)

Слайд 14





2014 - пора улучшить ситуацию
Концепция Material Design на конференции Google I/O
Описание слайда:
2014 - пора улучшить ситуацию Концепция Material Design на конференции Google I/O

Слайд 15





Fernando Cejas
2) Architecting Android...The clean way? 
http://fernandocejas.com/2014/09/03/architecting-android-the-clean-way/
Описание слайда:
Fernando Cejas 2) Architecting Android...The clean way? http://fernandocejas.com/2014/09/03/architecting-android-the-clean-way/

Слайд 16





Хорошая архитектура
Поддерживаемая, удобная, расширяемая и много других красивых прилагательных
Позволяет написание тестов
Описание слайда:
Хорошая архитектура Поддерживаемая, удобная, расширяемая и много других красивых прилагательных Позволяет написание тестов

Слайд 17





Много красивых прилагательных 
Модульность
Четкое именование
Короткие функции и классы
WTF / min -> 0
Описание слайда:
Много красивых прилагательных Модульность Четкое именование Короткие функции и классы WTF / min -> 0

Слайд 18





Тестирование
Unit-тесты для бизнес-логики
Минимум зависимостей от Android-классов в тестируемых модулях
+ Интеграционные тесты
Описание слайда:
Тестирование Unit-тесты для бизнес-логики Минимум зависимостей от Android-классов в тестируемых модулях + Интеграционные тесты

Слайд 19





Основные задачи при разработке клиент-серверных приложений
Описание слайда:
Основные задачи при разработке клиент-серверных приложений

Слайд 20





Клиент-серверные приложения
Организация клиент-серверного взаимодействия
Обеспечение возможности тестирования классов, содержащих бизнес-логику приложения
Описание слайда:
Клиент-серверные приложения Организация клиент-серверного взаимодействия Обеспечение возможности тестирования классов, содержащих бизнес-логику приложения

Слайд 21





Клиент-серверное взаимодействие
Обработка ошибок
Управление множеством запросов
Корректное управление закрытием приложения
Описание слайда:
Клиент-серверное взаимодействие Обработка ошибок Управление множеством запросов Корректное управление закрытием приложения

Слайд 22





Обеспечение возможности тестирования
Модульность классов
Минимальное число зависимостей от классов Android
Dependency Injection
Описание слайда:
Обеспечение возможности тестирования Модульность классов Минимальное число зависимостей от классов Android Dependency Injection

Слайд 23





Обработка смены конфигурации
Описание слайда:
Обработка смены конфигурации

Слайд 24





Проблемы
Все поля в Activity уничтожаются при пересоздании Activity – нужно уметь восстанавливать их
Нельзя повторно выполнять запросы и другие “тяжелые” задачи
Описание слайда:
Проблемы Все поля в Activity уничтожаются при пересоздании Activity – нужно уметь восстанавливать их Нельзя повторно выполнять запросы и другие “тяжелые” задачи

Слайд 25





Запрет на смену ориентации
Поддержка только одной ориентации в приложении часто сказывается не лучшим образом на UX
Не покрывает всех ситуаций, при которых Activity пересоздается
Описание слайда:
Запрет на смену ориентации Поддержка только одной ориентации в приложении часто сказывается не лучшим образом на UX Не покрывает всех ситуаций, при которых Activity пересоздается

Слайд 26





Ручная обработка смены конфигурации
Описание слайда:
Ручная обработка смены конфигурации

Слайд 27





Ручная обработка смены конфигурации
Система автоматически не меняет ресурсы (например, языковые ресурсы или ресурсы, зависящие от ориентации устройства)
Описание слайда:
Ручная обработка смены конфигурации Система автоматически не меняет ресурсы (например, языковые ресурсы или ресурсы, зависящие от ориентации устройства)

Слайд 28





Сохранение состояния в Bundle
Описание слайда:
Сохранение состояния в Bundle

Слайд 29





Сохранение состояния в Bundle
Описание слайда:
Сохранение состояния в Bundle

Слайд 30





Сохранение состояния в Bundle
Нельзя сохранять большие данные
Вносит дополнительную непростую логику
Описание слайда:
Сохранение состояния в Bundle Нельзя сохранять большие данные Вносит дополнительную непростую логику

Слайд 31





Retain Fragment
Описание слайда:
Retain Fragment

Слайд 32





Retain Fragment
Описание слайда:
Retain Fragment

Слайд 33





Retain Fragment
Описание слайда:
Retain Fragment

Слайд 34





Retain Fragment
Нужна аккуратность в использовании ссылок на Activity / Context
При закрытии приложения уничтожается
Описание слайда:
Retain Fragment Нужна аккуратность в использовании ссылок на Activity / Context При закрытии приложения уничтожается

Слайд 35





Loader
Класс для загрузки данных
Переживает пересоздание Activity 
Управляется специальным классом LoaderManager
Описание слайда:
Loader Класс для загрузки данных Переживает пересоздание Activity Управляется специальным классом LoaderManager

Слайд 36





Loader
Описание слайда:
Loader

Слайд 37





LoaderManager
public abstract <D> Loader<D> initLoader(int id, Bundle args,  LoaderManager.LoaderCallbacks<D> callback);
public abstract <D> Loader<D> restartLoader(int id, Bundle args, LoaderManager.LoaderCallbacks<D> callback);
Описание слайда:
LoaderManager public abstract <D> Loader<D> initLoader(int id, Bundle args, LoaderManager.LoaderCallbacks<D> callback); public abstract <D> Loader<D> restartLoader(int id, Bundle args, LoaderManager.LoaderCallbacks<D> callback);

Слайд 38





LoaderManager.LoaderCallbacks
public interface LoaderCallbacks<D> {
   public Loader<D> onCreateLoader(int id, Bundle args);
   public void onLoadFinished(Loader<D> loader, D data);
   public void onLoaderReset(Loader<D> loader);
}
Описание слайда:
LoaderManager.LoaderCallbacks public interface LoaderCallbacks<D> { public Loader<D> onCreateLoader(int id, Bundle args); public void onLoadFinished(Loader<D> loader, D data); public void onLoaderReset(Loader<D> loader); }

Слайд 39





LoaderManager.LoaderCallbacks
Описание слайда:
LoaderManager.LoaderCallbacks

Слайд 40





Запускаем работу лоадера
Описание слайда:
Запускаем работу лоадера

Слайд 41





LoaderManager
public abstract <D> Loader<D> initLoader(int id, Bundle args,  LoaderManager.LoaderCallbacks<D> callback);
public abstract <D> Loader<D> restartLoader(int id, Bundle args, LoaderManager.LoaderCallbacks<D> callback);
Описание слайда:
LoaderManager public abstract <D> Loader<D> initLoader(int id, Bundle args, LoaderManager.LoaderCallbacks<D> callback); public abstract <D> Loader<D> restartLoader(int id, Bundle args, LoaderManager.LoaderCallbacks<D> callback);

Слайд 42





Загружаем данные в лоадере
Описание слайда:
Загружаем данные в лоадере

Слайд 43





Loader
Описание слайда:
Loader

Слайд 44





Loader
protected void onStartLoading() {
}
protected void onForceLoad() {
}
protected void onStopLoading() {
}
Описание слайда:
Loader protected void onStartLoading() { } protected void onForceLoad() { } protected void onStopLoading() { }

Слайд 45





Создаем свой лоадер
Описание слайда:
Создаем свой лоадер

Слайд 46





Создаем свой лоадер
Описание слайда:
Создаем свой лоадер

Слайд 47





Загружаем данные
Описание слайда:
Загружаем данные

Слайд 48





Создаем свой лоадер
Описание слайда:
Создаем свой лоадер

Слайд 49





Loader
При закрытии приложения уничтожается
Неудобно обрабатывать ошибки
Много кода
Описание слайда:
Loader При закрытии приложения уничтожается Неудобно обрабатывать ошибки Много кода

Слайд 50





Практика
Описание слайда:
Практика

Слайд 51





Погода в нескольких городах
Проект LoaderWeather. Описание задачи в файле ru.gdgkazan.simpleweather.screen.weatherlist.WeatherListActivity
Нужно загрузить погоду во всех городах при старте приложения
Сделать это наиболее быстрым способом (не каждый город последовательно)
Возможность обновления через SwipeRefreshLayout
Обработка пересоздания Activity
Описание слайда:
Погода в нескольких городах Проект LoaderWeather. Описание задачи в файле ru.gdgkazan.simpleweather.screen.weatherlist.WeatherListActivity Нужно загрузить погоду во всех городах при старте приложения Сделать это наиболее быстрым способом (не каждый город последовательно) Возможность обновления через SwipeRefreshLayout Обработка пересоздания Activity

Слайд 52





Практика 2 - RxJava Loader
Реализуйте обертку в виде лоадера над RxJava (над Observable) таким образом, чтобы можно было сохранить мощь использования RxJava и при этом воспользоваться средствами лоадеров для обработки пересоздания Activity
Описание слайда:
Практика 2 - RxJava Loader Реализуйте обертку в виде лоадера над RxJava (над Observable) таким образом, чтобы можно было сохранить мощь использования RxJava и при этом воспользоваться средствами лоадеров для обработки пересоздания Activity



Похожие презентации
Mypresentation.ru
Загрузить презентацию