Приложение, написанное на flutter, позволяющее просматривать новости, полученные из newsAPI.
Приложение представляет собой ленту новостей по 2 категориям (выбор категории реальзован через tabBar) и страницу каждой новости, на которую можно попасть, нажав по ее карточке в ленте, и страницы с избранными новостями.
Данные получаются из newsAPI, обрабатываются при помощи json_serializable, после чего отображаются на экране пользователя. Используется библиотека Http для запросов и синтаксиса async await. Избранные новости хранятся при помощи shared_preferences (для защиты от перезагрузки) и отображаются при помощи ChangeNotifier (Riverpod).
- Работа с API
- Обработка полученных данных с использованием json_serializable
- 2 экрана просмотра новостей
- Поддержан функционал смены темы
- Механизм пагинации для ленты
- Механизм выбора избранных новостей
- Использование Riverpod для реализации управления состоянием UI
- Страница избранных новостей
- Разделение проекта на слои и декомпозиция логики
- Написаны Unit и Widget-тестов
- Внедрены анимации (переход между страницами, лайка, hero-анимации перехода на страницу новости)
- Поиск новостей
- Подключен github actions
cd flutter_app
flutter pub get
dart run build_runner build
flutter run


