📰 A news app for Android that works with the "Inshorts News API"
📰 Новостное android-приложение, которое работает с "Inshorts News API"
Приложение состоит из трёх фрагментов: стартовый, со списком новостей и с детализацией отдельной новости.
В этом фрагменте происходит загрузка данных с помощью ViewModel с API с использованием библиотеки Retrofit2, если есть интернет-соединение, или с локальной базы данных Room, если подключения к интернету нет. После успешного получения данных список новостей помещается в Bundle и передаётся с помощью NavGraph во фрагмент со списком новостей. Благодаря LiveData происходит автоматический переход к новостному фрагменту.
Новостной экран принимает Bundle от стартового фрагмента со списокм внутри и выводит данные в RecyclerView через Adapter. Подгрузка изображения реализована с помощью библиотеки Picasso. Информацию можно обновить в этом же фрагменте с помощью Pull To Refresh, реализованного с помощью SwipeRefreshLayout. То есть достаточно "упереться" в начало списка и потянуть вниз. Если интернет-соединение отсутствует, то при обновлении приложение выведет короткий Toast с текстом "Check your internet connection". По нажатию карточки с новостью вся информация по выбранному элементу также, как и в стартовом фрагменте, помещается в Bundle и передаётся с помощью NavGraph во фрагмент отдельной новости. Вместе с этим происходит переход на последний фрагмент.
Фрагмент с детализацией новости принимает Bundle, содержащий всю информацию по ней, от фрагмента со списоком и выводит данные пользователю. При переходе назад с помощью жеста или навигационной кнопки, приложение возвращает пользователя к списку новостей. Вернуться на стартовый фрагмент нельзя.