Красивое и удобное iOS приложение для отслеживания личных финансов с наглядными графиками
Приложение разработано в образовательных целях на основе отличного видеоурока на YouTube. Оригинальный туториал можно посмотреть здесь: Build a SwiftUI App - Expense Tracker.
| Функция | Описание |
|---|---|
| 📊 Наглядные графики | Визуализация изменения баланса с помощью интерактивных линейных графиков |
| 💸 Учет транзакций | Удобный просмотр последних доходов и расходов с красивыми иконками категорий |
| 📁 Группировка по месяцам | Автоматическая сортировка и группировка истории операций по месяцам и дням |
| 🌓 Поддержка тем | Полная и нативная поддержка как светлой, так и тёмной темы iOS |
| 🎨 Современный UI | Плавные анимации, скругленные карточки и размытие фона (Glassmorphism) |
Приложение построено с использованием паттерна MVVM (Model-View-ViewModel) для четкого разделения логики и пользовательского интерфейса:
graph TD
A[SwiftUI Views] <--> B[TransactionListViewModel]
B --> C[TransactionModel]
C -.-> B
B --> D[Extensions]
A --> F[SwiftUICharts]
- UI Framework: SwiftUI
- Архитектура: MVVM (Model-View-ViewModel)
- Графики: Сторонняя библиотека
SwiftUICharts - Коллекции: Apple
swift-collectionsдля оптимизированной работы с данными
В проекте используются следующие пакеты Swift Package Manager:
swift-collections(1.5.0) — для использованияOrderedDictionaryпри группировке транзакций.SwiftUICharts(2.0.0-beta.2) — для отрисовки красивого графика на главном экране.
ExpenseTracker/
├── 📱 App/
│ └── ExpenseTrackerApp.swift # Точка входа в приложение
├── 🛠 Extensions/
│ └── Extensions.swift # Расширения для цветов, дат и форматов
├── 📊 Model/
│ └── TransactionModel.swift # Модель данных транзакции и категории
├── 🧠 ViewModel/
│ └── TransactionListViewModel.swift # Логика обработки и группировки данных
├── 🖼 Views/ # SwiftUI компоненты
│ ├── ContentView.swift # Корневое представление с навигацией
│ ├── RecentTransactionList.swift # Блок последних транзакций на главном экране
│ ├── TransactionList.swift # Полный список транзакций с группировкой
│ ├── TransactionRow.swift # Дизайн отдельной ячейки транзакции
│ └── Assets.xcassets # Цвета и иконки
└── 🧪 Preview Content/
├── PreviewData.swift # Моковые данные для Canvas превью
└── Preview Assets.xcassets # Ассеты для превью
- macOS: 12.0+ (Monterey или новее)
- Xcode: 14.0+
- iOS: 15.0+
-
Клонирование репозитория
git clone https://github.com/ТВОЙ_NICKNAME/ExpenseTracker.git cd ExpenseTracker -
Открытие проекта
open ExpenseTracker.xcodeproj
-
Загрузка зависимостей
- Дождитесь пока Xcode автоматически подтянет пакеты
swift-collectionsиSwiftUICharts(File -> Packages -> Resolve Package Versions).
- Дождитесь пока Xcode автоматически подтянет пакеты
-
Сборка и запуск
- Выберите нужный симулятор (например, iPhone 14 Pro)
- Нажмите
Cmd + Rили кнопку▶️ Play в Xcode
-
Главный экран (Overview)
- Наверху отображается график баланса. Вы можете провести по нему пальцем (если поддерживается библиотекой), чтобы увидеть значения.
- Ниже представлен список недавних транзакций (Recent Transactions).
-
Просмотр всех операций
- Нажмите кнопку
See All >в блоке недавних транзакций. - Откроется экран, где все ваши доходы и расходы удобно сгруппированы по месяцам.
- Нажмите кнопку
-
Темная тема
- Измените тему системы в настройках симулятора (
Cmd + Shift + A), чтобы увидеть, как приложение красиво адаптируется под темный режим.
- Измените тему системы в настройках симулятора (
⭐ Поставьте звезду, если вам понравился этот проект!