Skip to content
/ News Public

📰 A news app for Android that works with the "Inshorts News API"

Notifications You must be signed in to change notification settings

FezzMad/News

Repository files navigation

News

📰 A news app for Android that works with the "Inshorts News API"

Новости

📰 Новостное android-приложение, которое работает с "Inshorts News API"

Приложение состоит из трёх фрагментов: стартовый, со списком новостей и с детализацией отдельной новости.

1. Стартовый фрагмент

Стартовый фрагмент

В этом фрагменте происходит загрузка данных с помощью ViewModel с API с использованием библиотеки Retrofit2, если есть интернет-соединение, или с локальной базы данных Room, если подключения к интернету нет. После успешного получения данных список новостей помещается в Bundle и передаётся с помощью NavGraph во фрагмент со списком новостей. Благодаря LiveData происходит автоматический переход к новостному фрагменту.

2. Фрагмент со списком новостей

Стартовый фрагмент

Новостной экран принимает Bundle от стартового фрагмента со списокм внутри и выводит данные в RecyclerView через Adapter. Подгрузка изображения реализована с помощью библиотеки Picasso. Информацию можно обновить в этом же фрагменте с помощью Pull To Refresh, реализованного с помощью SwipeRefreshLayout. То есть достаточно "упереться" в начало списка и потянуть вниз. Если интернет-соединение отсутствует, то при обновлении приложение выведет короткий Toast с текстом "Check your internet connection". По нажатию карточки с новостью вся информация по выбранному элементу также, как и в стартовом фрагменте, помещается в Bundle и передаётся с помощью NavGraph во фрагмент отдельной новости. Вместе с этим происходит переход на последний фрагмент.

3. Фрагмент с детализацией отдельной новости

Стартовый фрагмент

Фрагмент с детализацией новости принимает Bundle, содержащий всю информацию по ней, от фрагмента со списоком и выводит данные пользователю. При переходе назад с помощью жеста или навигационной кнопки, приложение возвращает пользователя к списку новостей. Вернуться на стартовый фрагмент нельзя.