Задача состояла в создании удобного и современного инструмента для контроля личных финансов. Требовалось разработать нативное Android-приложение, которое позволяло бы пользователям быстро отслеживать доходы и расходы, анализировать траты и иметь доступ к данным без интернета.
Ключевым требованием было использование актуальных стандартов разработки Google (Modern Android Development), обеспечение высокой производительности и приятного пользовательского опыта (UX) с поддержкой системных тем оформления.
Я спроектировал и реализовал приложение Expenso, используя язык Kotlin и современные компоненты экосистемы Android Jetpack.
Техническая реализация включала:
Архитектура: Внедрение паттерна MVVM (Model-View-ViewModel) для четкого разделения логики и интерфейса, что упрощает поддержку и тестирование кода.
Работа с данными: Использование библиотеки Room (SQLite) для надежного локального хранения транзакций и DataStore для настроек. Реализован слой Repository для абстрагирования источников данных.
Асинхронность: Применение Kotlin Coroutines и Flow для фоновых операций и реактивного обновления интерфейса без блокировки основного потока.
UI/UX: Разработка адаптивного дизайна в Figma с полной поддержкой светлой и темной тем (Dark Mode). Использованы Material Components для нативного внешнего вида. Навигация реализована через Jetpack Navigation Component.
DI: Настройка внедрения зависимостей (предположительно Hilt/Koin, судя по структуре di в пакетах) для модульности кода.
Создано стабильное beta-версия приложения Expenso, готовая к использованию.
Пользователи получили:
— Интуитивно понятный интерфейс для добавления и редактирования транзакций.
— Полноценную работу офлайн (все данные сохраняются на устройстве).
— Автоматическую адаптацию под тему системы (светлая/темная).
— Чистый и поддерживаемый код, соответствующий лучшим практикам Android-разработки (Clean Architecture).
Проект демонстрирует навыки работы с полным циклом создания мобильного приложения: от проектирования базы данных и архитектуры до верстки сложных экранов и настройки навигации.