← Все кейсы Обсудить проект
Приложение для iOS · 2026

Fintra

Личные финансы на SwiftUI: счета, операции, аналитика по категориям и защита входа.

SwiftUISwiftDataSwift ChartsFace IDiOS 17+
Открыть проект Демо по запросу
Экран проекта Fintra

О проекте

Приложение ведёт личный бюджет: счета и карты, доходы и расходы, категории и графики. Данные лежат локально на устройстве в SwiftData — без сервера и без аккаунта.

Интерфейс намеренно монохромный: белая карточка баланса как единственное светлое пятно на почти чёрном фоне, всё остальное — типографика и цифры.

Скриншот сделан на демонстрационном наборе операций — приложение работает без аккаунта, поэтому в кейсе показан заполненный месяц, а не пустой экран.

SwiftUIвесь интерфейс декларативный
SwiftDataлокальное хранилище
Face IDплюс PIN как запасной вход
4раздела: обзор, аналитика, счета, профиль
Задача

Что нужно было решить

Сделать приложение для учёта личных денег, которое не требует регистрации и не отправляет данные наружу, но при этом даёт полноценную аналитику.

Хранение только на устройстве, без сервера и облака
Быстрый ввод операции и мгновенный пересчёт баланса
Аналитика: динамика баланса и разбивка по категориям
Защита входа биометрией с запасным PIN-кодом
Тёмная тема как основной режим
Процесс

Этапы работы

Модель данных

Описали счета и операции в SwiftData со связями и каскадным удалением.

Аналитика

Вынесли расчёты в отдельный слой без побочных эффектов: динамика баланса, суммы месяца, разбивка по категориям.

Интерфейс

Собрали четыре раздела и лист быстрого добавления операции.

Графики

Подключили Swift Charts: линия баланса за 30 дней и структура расходов.

Защита входа

Добавили Face ID через LocalAuthentication и PIN-код в Keychain.

Сборка

Проект генерируется xcodegen, собирается xcodebuild и ставится на устройство.

Результат

Что получилось

0данных уходит с устройства
Мгновеннобаланс и графики пересчитываются при вводе операции
Face ID + PINдва способа входа, PIN хранится в Keychain

Нужен такой же уровень проработки?

Написать в Telegram →