Ответ
Pet-проекты — это полигон для изучения новых технологий и архитектурных подходов.
1. WeatherApp (Прогноз погоды)
- Стек: UIKit, CoreLocation, URLSession, CoreData, Combine.
- Цель: Изучение работы с REST API, фонового обновления и локального кэширования.
- Ключевые моменты:
- Запрос данных с OpenWeatherAPI.
- Кэширование ответов в CoreData для оффлайн-режима.
- Фоновое обновление по геопозиции.
- Пример сетевого слоя:
func fetchWeather(for city: String) async throws -> WeatherData { let url = URL(string: "https://api.openweathermap.org/...")! let (data, _) = try await URLSession.shared.data(from: url) return try JSONDecoder().decode(WeatherData.self, from: data) }
2. TaskTracker (Менеджер задач)
- Стек: SwiftUI, Firebase (Firestore, Auth), UserNotifications.
- Цель: Освоение SwiftUI и real-time баз данных.
- Ключевые моменты:
- Синхронизация задач между устройствами через Firestore.
- Локализованные push-уведомления о дедлайнах.
- Архитектура MVVM.
3. AR-Chess (Шахматы в дополненной реальности)
- Стек: ARKit, SceneKit, MultipeerConnectivity.
- Цель: Эксперименты с компьютерным зрением и сетевым взаимодействием.
- Ключевые моменты:
- Детекция плоскости и размещение шахматной доски.
- Физика перемещения фигур в SceneKit.
- P2P-мультиплеер через GameKit.
Общая цель: Углубленное понимание MVVM/VIPER, модульности (SPM) и написания тестов (XCTest).