Ответ
На предыдущем месте работы с нуля разработал мобильное приложение для сети фитнес-клубов.
Цель проекта: цифровизация услуг клуба — онлайн-расписание, запись на тренировки, трекинг посещений и прогресса пользователя.
Ключевые решения и стек:
- Архитектура: MVVM + Coordinator для четкого разделения логики, навигации и тестируемости.
- UI: SwiftUI с кастомными компонентами и анимациями.
- Бизнес-логика и состояние: Combine для реактивного биндинга.
- Бэкенд и данные: Firebase (Authentication, Firestore, Cloud Functions).
- Локальное хранилище: CoreData для оффлайн-режима.
- Интеграции: EventKit для синхронизации записей с календарем, Push-уведомления.
Пример кода (ViewModel для экрана записи):
final class BookingViewModel: ObservableObject {
@Published var availableSlots: [TimeSlot] = []
@Published var isLoading = false
private let bookingService: BookingServiceProtocol
init(bookingService: BookingServiceProtocol) {
self.bookingService = bookingService
}
@MainActor
func fetchSlots(for date: Date) async {
isLoading = true
do {
availableSlots = try await bookingService.fetchAvailableSlots(for: date)
} catch {
// Обработка ошибки
}
isLoading = false
}
}
Результат: успешная публикация в App Store, приложение используется клиентами фитнес-сети.