Простое и элегантное 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+
-
Клонируйте репозиторий:
git clone <repository-url> cd Weather
-
Установите зависимости:
pod install
-
Откройте проект:
open Weather.xcworkspace
-
Выберите симулятор или устройство и запустите проект (⌘+R)
Приложение использует WeatherAPI для получения данных о погоде. API ключ уже настроен в коде, но для продакшена рекомендуется:
- Создать аккаунт на WeatherAPI.com
- Получить собственный API ключ
- Заменить ключ в файле
WeatherService.swift
- Поиск города: Введите название города в поисковую строку и нажмите "Search"
- Просмотр истории: При запуске приложения автоматически загружаются последние поиски
- Обновление данных: Потяните вниз для обновления информации
- Минималистичный и интуитивный интерфейс
- Адаптивная верстка для различных размеров экранов
- Плавные анимации и переходы
- Поддержка темной темы iOS
- API ключ хранится в коде (для демонстрации)
- Все сетевые запросы выполняются через HTTPS
- Валидация пользовательского ввода
- Поддерживается только поиск по названию города
- Нет поддержки геолокации
- Ограниченное количество городов в истории (зависит от UserDefaults)
Создано для изучения iOS разработки