Кроссплатформенный клиент для сервиса FinApp, созданный с использованием фреймворка Flutter. Приложение позволяет пользователям подключать свои банковские счета, отслеживать балансы и анализировать транзакции в едином интерфейсе.
- Безопасная аутентификация и управление сессиями: Вход и регистрация с сохранением сессии между перезапусками приложения с помощью
shared_preferences. - Динамическая панель счетов: Главный экран отображает консолидированную информацию по всем счетам, сгруппированную по банкам. Каждая карточка банка показывает промежуточный итог, а в шапке приложения виден общий баланс по всем активам.
- Проактивная синхронизация данных: При запуске приложения или ручном обновлении (pull-to-refresh) происходит автоматический опрос всех активных подключений для получения самых свежих данных о счетах и балансах.
- Управление подключениями: Удобный интерфейс для добавления новых банков (список загружается с сервера) и удаления существующих подключений.
- Детальная информация: Просмотр расширенных данных по каждому счету, включая имя владельца, тип счета и его текущий статус.
- Аналитика оборотов: Возможность рассчитать и просмотреть общую сумму поступлений и списаний по счету за выбранный период.
- Продуманный UX: Приложение использует индикаторы загрузки, всплывающие уведомления (SnackBar) для обратной связи и отформатированный вывод валют для лучшего восприятия.
- Фреймворк: Flutter
- Язык: Dart
- Управление состоянием: Provider для внедрения зависимостей (DI) и управления состоянием.
- Локальное хранилище: shared_preferences для сохранения токена аутентификации и ID пользователя.
- Работа с сетью: Пакет http для выполнения всех запросов к REST API.
- UI и графика:
- flutter_svg для качественного отображения иконок банков.
- intl для корректного форматирования дат и валют.
- Flutter SDK: Убедитесь, что у вас установлен Flutter. Для проверки выполните
flutter doctor. Инструкции по установке. - Запущенный Backend: Фронтенд-приложение требует работающего бэкенда. Убедитесь, что он запущен и доступен по сети. Инструкции находятся в главном README.md.
Это самый важный шаг! Чтобы приложение могло подключиться к вашему локальному бэкенд-серверу, необходимо указать правильный IP-адрес.
- Откройте файл
lib/utils/constants.dart. - Найдите IP-адрес вашего компьютера в локальной сети (например,
192.168.1.100).- macOS/Linux:
ifconfig | grep "inet " - Windows:
ipconfig(ищите "IPv4-адрес")
- macOS/Linux:
- Замените значение константы
_yourComputerIPна ваш IP:// lib/utils/constants.dart const String _yourComputerIP = "192.168.1.100"; // <-- ЗАМЕНИТЕ ЭТОТ IP!
- Если вы запускаете Android-эмулятор, используйте
API_BASE_URL_ANDROID_EMULATOR. Во всех остальных случаях (iOS-симулятор, Web, Desktop, реальное устройство) подойдетAPI_BASE_URL_NETWORK.
- Установите зависимости:
flutter pub get
- Запустите приложение на целевой платформе:
flutter run -d chrome # Для Web flutter run -d macos # Для macOS flutter run # Для подключенного мобильного устройства или эмулятора
Код организован по принципу "feature-first", где каждая функциональная часть имеет свои модели, экраны и сервисы.
frontend/
├── lib/
│ ├── api/ # Логика для взаимодействия с API бэкенда.
│ ├── models/ # Классы моделей данных (Account, Bank, Connection).
│ ├── providers/ # ChangeNotifier'ы для управления состоянием (e.g., AuthProvider).
│ ├── screens/ # UI-экраны приложения (Login, Accounts, Connections).
│ ├── utils/ # Вспомогательные утилиты, константы и форматирование.
│ ├── widgets/ # Переиспользуемые UI-компоненты (карточки, кнопки).
│ └── main.dart # Точка входа в приложение, настройка роутинга и провайдеров.
├── assets/ # Статические ресурсы (если есть).
├── android/, ios/, ... # Платформо-специфичные файлы.
└── pubspec.yaml # Файл конфигурации проекта и зависимостей.
Для создания релизной версии приложения используйте команду flutter build:```bash
flutter build web
flutter build apk
flutter build ipa
flutter build windows