Project structure
Полная структура проекта Thrust с описанием каждой папки и ключевых файлов.Корневая структура
Thrust/ (Основной код)
Core - Ядро приложения
| Файл | Назначение |
|---|---|
Thrust.swift | Entry point приложения, настройка Environment |
AppDelegate.swift | Lifecycle events, push notifications |
MainView.swift | Root view с TabBar и глобальной навигацией |
DataSchema.swift | SwiftData schema versions и миграции |
AppModelContainer.swift | Конфигурация ModelContainer |
AppTab.swift | Enum для табов приложения |
AppGroup.swift | App Group для виджетов |
Thrust.swift- добавление новых Environment объектовMainView.swift- изменение структуры табовDataSchema.swift- миграции данных при изменении моделей
Models - Модели данных (29 моделей)
| Модель | Файл | Описание |
|---|---|---|
Transaction | Transaction.swift | Транзакции (доходы, расходы, переводы) |
Account | Account.swift | Счета (наличные, сбережения, кредитки, долги) |
Budget | Budget.swift | Бюджеты с периодами и rollover |
Goal | Goal.swift | Цели сбережений с автоматизацией |
Category | Category.swift | Категории транзакций (иерархия) |
Tag | Tag.swift | Теги для транзакций |
RecurringPayment | RecurringPayment.swift | Регулярные платежи |
StockHolding | StockHolding.swift | Позиции в акциях |
CryptoWallet | CryptoWallet.swift | Крипто кошельки |
UserProfile | UserProfile.swift | Профиль пользователя |
ChatConversation | ChatConversation.swift | История чатов с AI CFO |
AutomationRule | AutomationRule.swift | Правила автоматизации |
SplitTemplate | SplitTemplate.swift | Шаблоны split транзакций |
TransactionGroup | TransactionGroup.swift | Группы транзакций |
@ModelмакросUUIDдля idDateдля timestamps- Relationships для связей
Features - Функциональные модули (34 модуля)
Dashboard
DashboardView.swift- главный файл, содержит layoutDashboardViewModel.swift- вся бизнес-логика- Добавление новой секции: создайте view в
Sections/
Transactions
TransactionsListModule.swift- переиспользуемый модуль спискаUniversalTransactionEditor.swift- универсальный редакторTransactionRowView.swift- кастомизируемая строка
Accounts
Budgeting
Goals
Investments
AI CFO
LeapCFOService.swift (70KB) - весь AI функционал
Reports
Settings
Managers - Менеджеры (30+ менеджеров)
| Менеджер | Файл | Назначение |
|---|---|---|
GamificationManager | Managers/Gamification/GamificationManager.swift | XP, уровни, достижения |
AchievementManager | Managers/Gamification/AchievementManager.swift | Система достижений |
NotificationManager | Managers/NotificationManager.swift | Push уведомления |
PrivacyManager | Managers/PrivacyManager.swift | Ghost/Connected режимы |
CloudKitManager | Managers/CloudKitManager.swift | CloudKit синхронизация |
CryptoWalletManager | Features/Investments/Crypto/CryptoWalletManager.swift | Управление крипто кошельками |
SheetCoordinator | Coordinators/SheetCoordinator.swift | Координация sheets |
HapticsManager | Managers/HapticsManager.swift | Тактильная обратная связь |
LocationManager | Managers/LocationManager.swift | Геолокация |
SpotlightIndexer | Managers/SpotlightIndexer.swift | iOS Spotlight интеграция |
- Создайте класс с
@Observable:
- Добавьте в Environment в
Thrust.swift:
- Используйте в views:
Services - Сервисы
| Сервис | Файл | Назначение |
|---|---|---|
LeapCFOService | FoundationModels/LeapCFOService.swift | AI CFO (on-device) |
GoCardlessBankService | Modules/Finance/GoCardlessBankService.swift | Банковская синхронизация |
CoinGeckoAPIService | Features/Investments/Crypto/CoinGeckoAPIService.swift | Цены криптовалют |
StocksAPIService | Features/Investments/Stocks/StocksAPIService.swift | Данные по акциям |
NewsAPIService | Services/NewsAPIService.swift | Финансовые новости |
CurrencyRates | Services/CurrencyRates.swift | Курсы валют |
TransactionSearchService | Services/Search/TransactionSearchService.swift | Поиск транзакций |
Engines - Аналитические движки
| Движок | Файл | Что делает |
|---|---|---|
AnalyticsEngine | Engines/AnalyticsEngine.swift | Базовая аналитика |
ForecastingEngine | Engines/ForecastingEngine.swift | Прогнозирование балансов |
InsightEngine | Engines/InsightEngine.swift | Генерация инсайтов |
SafeToSpendEngine | Engines/SafeToSpendEngine.swift | Расчет безопасной суммы |
NetWorthCalculator | Engines/NetWorthCalculator.swift | Чистый капитал |
PnLCalculator | Engines/PnLCalculator.swift | Profit & Loss |
RiskAnalyzer | Engines/RiskAnalyzer.swift | Анализ рисков |
IntelligentCategorizer | Engines/IntelligentCategorizer.swift | ML категоризация |
SavingsAutomationEngine | Engines/SavingsAutomationEngine.swift | Автоматизация сбережений |
Components - Переиспользуемые компоненты
- Используется в 3+ местах
- Имеет сложную логику
- Нужна переиспользуемость
Design - Дизайн система
Extensions - Расширения
Utilities - Утилиты
Widgets и Extensions
ThrustLiveActivity
Тесты
Unit Tests
UI Tests
Ресурсы
Assets
Локализация
Конфигурация
Secrets
Entitlements
Скрипты
Важные файлы
Конфигурация проекта
| Файл | Назначение |
|---|---|
Package.swift | SPM зависимости |
Thrust-app-Info.plist | App info |
Configuration.storekit | StoreKit конфигурация |
PrivacyInfo.xcprivacy | Privacy manifest |
.xcode-cloud/ | Xcode Cloud CI/CD |
Документация
| Файл | Назначение |
|---|---|
README.md | Главный README |
CLAUDE.md | Инструкции для AI ассистента |
ACKNOWLEDGMENTS.md | Благодарности |
COMPLETE_FEATURES_DOCUMENTATION.md | Полная документация функций |
Навигация по коду
Найти функцию
По названию:- Транзакции →
Features/Transactions/ - Бюджеты →
Modules/Budget/ - Цели →
Goals/ - AI CFO →
FoundationModels/ - Крипто →
Features/Investments/Crypto/ - Настройки →
Features/Settings/
Найти UI компонент
- Проверьте
Components/- переиспользуемые компоненты - Проверьте
Design/- дизайн-система - Проверьте модуль функции - специфичные компоненты