Что должен знать android разработчик (Часть №2)
Каждый кто начинает освоение профессии андроид разработчика и интесуется вопросом android разработчик 2022, сталкивается на своем пути с проблемой, которая связана с основным вопросом -что должен знать android разработчик.
В этой статье я продолжу рассказ о том знаниями каких технологий должен владеть современный андроид разработчик.
Если Вы не читали предыдущую статью, то переходите к ознакомлению.
Android разработчик 2022: Что должен знать android разработчик — Room и Корутины
Андроид работает с нереляцонной базой данных SQLite. Мы как разработчики работаем с ней через библиотеку Room . Раньше мы напрямую работали с базой данных , но с появлением библотеки Room работа с локальной базой данных на порядок упростилось и работать с ней стало в разы приятнее.
Кроме того эта библиотека позволяет из коробки реализовать многопоточность через корутины — то есть например при клике по кнопке вы хотите что-то отправить в базу данных и перейти на следующий экран. В стандартной однопоточной реализации вы бы сначала записали данные в базу данных, а затем перешли бы на следующий экран -а это лишнее время. Многопоточность позволяет сразу переходить на след экран и паралельно записывать данные в базу даннных не дожидаясь окончания рабты с базой данных. Это в разы ускоряет работу с приложением.
MYSQL и Retrofit
Это конечно все хорошо, но в приложениях есть информация, которая часто меняется и должна быть доступна на всех устройствах, на которых установлено наше приложение. Как Вы понимаете просить обновлять приложение каждый раз при изменении такой информации это крайне не продуктивно.
К такой иформации относится например остатки товара, сам католог с товарами, список постов и многое другое.
У всех кто изучает андроид разработку возникает вопрос как же организовать работу с такой информацией. Все довольно просто подобную информацию нужно хранить на сервере в базе данных MYSQL.
Также на этом сервере необходимо написать запросы к этой базе данных на языке php, после чего с помощью библиотеки Retrofit научиться получать эти данные в мобильном приложении.
После этого мы сможем работать с ними получая информацию с сервера и отправляя обновленную информацию также обратно на сервер.
MVVM = MYSQL + Retrofit + Sqlite + Room + Корутниы
Вся проблема работы с базой данных на сервере в том, что процесс работы с ней напрямую довольно долгий и медленный.
Представьте ситуацию. Вам нужно получить данные о товарах определенной категории.
Вы обращаетесь на сервер по сети, после чего получаете и обрабатываете запрос на сервере.
Далее возвращаете контент в приложение и отображаете данные в соответствии с запросом. Посмотрите сколько шагов мы сделали, а это время
Поэтому в андроид разработке принят следующий подход. При запуске приложения мы получаем информацию с сервера, перезаписываем эту информацию в базу данных на устройстве — sqlite и работаем уже с этой информацией через библотеку Room.
Такой подход позволяет:
— увеличить скорость работы
— пользоваться приложеием даже если нет интернета
— получать данные с сервера при этом сохраняя эффективность работы, которую предоставляет библиотека Room
Такой подход пинято реализовывать с помощью паттерна архитектурного проектирования — MVVM.
Когда мы уже начали внедрять архитектуру MVVM — наступает период научиться реализовывать инъекцию зависимостей. Об этом поговорим в следующей статье. Если Вам понравилась данная статья, то поделитесь ею в социальных сетях и напишите свой комментарий! Спасибо за внимание!