Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Приложение SwiftUI с использованием Ghibli API

Проект разработан с использованием следующих технологий:

  • SwiftUI с новым фреймворком Observation для более высокой производительности
  • URLSession и async/await для выполнения сетевых запросов
  • MVVM с выделенным сервисным слоем
  • Unit Testing для тестирования бизнес-логики

Используемое API

API Studio Ghibli: https://ghibliapi.vercel.app/

  • Base URL: https://ghibliapi.vercel.app/
  • Используемые endpoints: /films, /people
  • Аутентификация: не требуется

Возможности

  • TabView с независимыми NavigationStack для каждой вкладки.
  • Экран списка — загрузка данных из API и отображение списка фильмов.
  • Экран деталей — подробная информация о фильме с асинхронной загрузкой изображений.
  • Тестирование — использование моков и внедрения зависимостей (Dependency Injection).

Image       Image

Избранное (локальное хранение данных)

Приложение позволяет добавлять фильмы в избранное с сохранением данных локально между запусками.

Image

Поиск

Реализован поиск по фильмам с фильтрацией результатов и асинхронным debounce, что снижает количество лишних операций при вводе текста.

Image

Настройки

Настройки приложения позволяют изменять тему оформления. Выбранная тема сохраняется в UserDefaults и автоматически восстанавливается при следующем запуске.

Image

Технический стек

  • SwiftUI
  • Observation
  • MVVM (Model–View–ViewModel)
  • URLSession
  • Swift Concurrency (async/await)
  • Dependency Injection
  • Unit Testing
  • UserDefaults для хранения пользовательских настроек
  • Локальное хранение данных для избранных фильмов

About

SwiftUI, MVVM, async/await, Observation feature

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Contributors

Languages