Skip to content

Latest commit

 

History

51 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🌤 WeatherApp – iOS Weather Application

iOS 15.0+ Swift 5.9+ UIKit MVP License MIT

Минималистичное iOS приложение погоды с архитектурой MVP и кастомным UIKit-интерфейсом

Темная тема      Светлая тема

✨ Основные возможности

Функция Описание
🌍 Актуальная погода Получение текущих погодных данных через API
🕒 Почасовой прогноз Отображение прогноза на несколько часов вперед
📅 Прогноз на несколько дней Удобное переключение вкладок
💨 Дополнительные параметры Ветер, влажность, осадки
🎨 Кастомный UI Тёмная тема, glassmorphism элементы
🌐 Работа через URLSession Нативная работа с сетью без сторонних библиотек

🏗️ Архитектура

Приложение разработано с использованием архитектурного паттерна MVP (Model-View-Presenter), что обеспечивает четкое разделение ответственности и тестируемость.

graph TD
    A[WeatherViewController] <--> B[WeatherPresenter]
    B --> C[WeatherData]
    B --> D[WeatherService]
    B --> F[Cache]
    E[WeatherModuleBuilder] --> A
    E --> B
Loading

📌 Подход:

  • View — отвечает только за отображение данных
  • Presenter — содержит бизнес-логику и форматирование данных
  • Model — структуры данных API
  • Service Layer — работа с сетью через URLSession

🛠 Технологический стек

  • UI Framework: UIKit
  • Архитектура: MVP
  • Networking: URLSession
  • Парсинг: Codable
  • Layout: AutoLayout (programmatic UI)
  • Dependency Assembly: Builder pattern
  • Assets: Figma Community UI Kits

📁 Структура проекта

WeatherApp/
├── 🚀 App/                 # Жизненный цикл приложения
│   ├── AppDelegate.swift
│   └── SceneDelegate.swift
├── 🛠️ Core/                # Общие компоненты и утилиты
│   ├── Components/         # Переиспользуемые UI элементы
│   ├── Extensions/         # Расширения стандартных типов
│   └── Factories/          # Фабрики для создания объектов
├── 🌐 Network/             # Сетевой слой
│   └── WeatherService.swift # Запросы к API погоды
├── 🎨 Resources/           # Ресурсы
│   ├── Fonts/              # Кастомные шрифты
│   └── Assets.xcassets     # Изображения и иконки
└── 📦 WeatherModule/       # Модуль главного экрана
    ├── Builder/            # Сборка модуля (DI)
    ├── Models/             # Модели данных
    ├── Presenters/         # Бизнес-логика (WeatherPresenter)
    └── Views/              # UI слой (ViewController, Cells)

🚀 Быстрый старт

Требования

  • macOS 13+
  • Xcode 15+
  • iOS 15+

Установка

  1. Клонирование репозитория

    git clone https://github.com/YourUsername/WeatherApp.git
    cd WeatherApp
  2. Настройка API Key

    • Получите ключ на сервисе погоды (например, OpenWeatherMap)
    • Добавьте его в WeatherService.swift
  3. Запуск

    • Откройте WeatherApp.xcodeproj
    • Выберите симулятор (например, iPhone 15)
    • Нажмите Cmd + R

🎨 Дизайн и ресурсы

Интерфейс приложения основан на бесплатных Figma Community ресурсах:

  1. Weather App UI Kit
    https://www.figma.com/community/file/1289964365602571637

  2. Weather Icons Kit
    https://www.figma.com/community/file/1059229179375580154/weather-icons-kit

  3. Weather Glassmorphism Icons
    https://www.figma.com/community/file/1126777451931792118/weather-glassmorphism-icon

Дизайны используются в соответствии с лицензиями Figma Community (Free for personal & commercial use с обязательным указанием авторства при необходимости).
Все права на оригинальные UI-концепты и иконки принадлежат их авторам.


📄 Лицензия

Проект распространяется под лицензией MIT.


⭐ Если проект оказался полезным — поставьте звезду!

Releases

Contributors

Languages