Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Forecast

Forecast — приложение прогноза погоды для iOS, разработанное на Swift и UIKit.

Приложение отображает текущую погоду, почасовой прогноз на 48 часов, прогноз на 14 дней и подробные погодные показатели. Архитектура проекта построена на MVP, используется современная асинхронная модель async/await и покрытие бизнес-логики модульными тестами.

Скриншоты

Image

Возможности

  • Текущая погода — отображение актуальных погодных условий в режиме реального времени.
  • Почасовой прогноз — прогноз погоды на ближайшие 48 часов.
  • Прогноз на 14 дней — долгосрочный прогноз с ежедневными данными.
  • Определение местоположения — автоматическое получение погоды для текущей геолокации пользователя.
  • Pull to Refresh — ручное обновление данных с помощью жеста обновления.
  • Обработка ошибок — возможность повторить запрос при возникновении ошибки сети.
  • Программная верстка — интерфейс полностью реализован на UIKit с использованием Auto Layout без Storyboard.
  • Compositional Layout — современная организация коллекций с помощью UICollectionViewCompositionalLayout.

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

  • Swift + UIKit (программная верстка)
  • MVP (Model–View–Presenter)
  • Swift Concurrency (async/await)
  • CoreLocation — работа с геолокацией
  • URLSession — выполнение сетевых запросов
  • Dependency Injection — внедрение зависимостей через Factory
  • XCTest — модульное тестирование

Архитектура

Проект разделен на несколько независимых слоев:

  • Presentation — экраны приложения и презентеры.
  • Services — сетевой слой, сервис геолокации и другие сервисы.
  • Models — модели данных.
  • Mapper — преобразование моделей API в модели, используемые интерфейсом.
  • UI Components — переиспользуемые компоненты пользовательского интерфейса.

Проект имеет модульную структуру и использует внедрение зависимостей через паттерн Factory, что упрощает тестирование, поддержку и дальнейшее развитие приложения.

Установка

git clone https://github.com/rfhfv/Forecast.git
cd Forecast
open Forecast.xcodeproj

About

UIKit, MVP, async/await, CoreLocation

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Contributors

Languages