Skip to content

freegatik/Weather

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🌤️ Weather App

Простое и элегантное iOS приложение для просмотра текущей погоды в различных городах мира.

📱 Описание

Weather App - это нативное iOS приложение, написанное на Swift, которое позволяет пользователям:

  • Искать погоду в любом городе мира
  • Просматривать историю последних поисков
  • Получать актуальную информацию о температуре, условиях и времени
  • Видеть иконки погодных условий

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

  • 🔍 Поиск по городам - введите название города и получите актуальную погоду
  • 📍 История поиска - приложение запоминает последние поиски для быстрого доступа
  • 🌡️ Детальная информация - температура, описание погоды, местное время
  • 🖼️ Визуальные элементы - иконки погодных условий для лучшего восприятия
  • 💾 Локальное хранение - данные сохраняются между сессиями

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

Приложение построено с использованием архитектурных принципов:

  • MVVM - Model-View-ViewModel для разделения логики и представления
  • Protocol-Oriented Programming - использование протоколов для гибкости
  • Dependency Injection - внедрение зависимостей для тестируемости

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

Weather/
├── AppDelegate/           # Конфигурация приложения
│   ├── AppDelegate.swift
│   └── SceneDelegate.swift
├── Services/             # Бизнес-логика и сервисы
│   ├── WeatherService/   # Сервис для работы с API погоды
│   ├── LastSearchCitiesProvider/ # Хранение истории поиска
│   └── Model/           # Модели данных
├── UI/                  # Пользовательский интерфейс
│   ├── MainViewController.swift # Главный экран
│   └── CityTableCell/   # Ячейка для отображения города
└── Resources/           # Ресурсы приложения
    ├── Assets.xcassets
    └── Info.plist

🛠️ Технологии

  • Swift
  • UIKit
  • SDWebImage
  • WeatherAPI
  • UserDefaults

📋 Требования

  • iOS 18.4+
  • Xcode 15.0+
  • Swift 5.0+

🚀 Установка и запуск

  1. Клонируйте репозиторий:

    git clone <repository-url>
    cd Weather
  2. Установите зависимости:

    pod install
  3. Откройте проект:

    open Weather.xcworkspace
  4. Выберите симулятор или устройство и запустите проект (⌘+R)

🔧 Настройка API

Приложение использует WeatherAPI для получения данных о погоде. API ключ уже настроен в коде, но для продакшена рекомендуется:

  1. Создать аккаунт на WeatherAPI.com
  2. Получить собственный API ключ
  3. Заменить ключ в файле WeatherService.swift

📱 Использование

  1. Поиск города: Введите название города в поисковую строку и нажмите "Search"
  2. Просмотр истории: При запуске приложения автоматически загружаются последние поиски
  3. Обновление данных: Потяните вниз для обновления информации

🎨 Особенности дизайна

  • Минималистичный и интуитивный интерфейс
  • Адаптивная верстка для различных размеров экранов
  • Плавные анимации и переходы
  • Поддержка темной темы iOS

🔒 Безопасность

  • API ключ хранится в коде (для демонстрации)
  • Все сетевые запросы выполняются через HTTPS
  • Валидация пользовательского ввода

🐛 Ограничения

  • Поддерживается только поиск по названию города
  • Нет поддержки геолокации
  • Ограниченное количество городов в истории (зависит от UserDefaults)

Создано для изучения iOS разработки

About

Простое и элегантное iOS приложение для просмотра текущей погоды в различных городах мира.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors