Простое ToDo приложение, создаваемое в рамках летней школы Яндекса.
-
Flutter flavor для dev и normal окружения, отличаются названиями пакета и в лаунчере
-
Router (Navigator 2.0) инкапсулированная с помощью абстрактного класса навигация, с поддержкой диплинков для открытия приложения и создания задачи, а так же для открытия конкретной задачи.
https://ysstodo.pages.dev/newTask
https://ysstodo.pages.dev/task/id
(На Android 12+ необходимо дать приложению разрешение на открытие этих ссылок в настройках системы)
-
Специальный режим для планшетов и ландскейпной ориентации.
-
Firebase Crashlytics и Firebase Analytics
-
Firebase App Distribution
-
Github Workflow с линтером, форматером, сборкой и деплоем в FAD
-
Работа с сервером:
- Реализованы функции добавления, изменения, удаления тасков.
- Реализована функция загрузки тасков при запуске приложения
- Индикация факта загрузки с сервера
- Обработка основных возможных ошибок
-
Сохранение данных в локальном хранилище для офлайн работы
-
Полноценный офлайн режим с последующей доотправкой данных при выходе в сеть
Мердж происходит по пронципу last-to-win, сверяются даты удаления / изменения, сохраняется наиболее свежая версия (или удаляется, если позже всего было произведено удаление)
-
Несколько простых юнит тестов бизнес логики
-
Интеграционный тест добавления задачи
-
Локализация Russian/English с поддержкой Android 12+ переключения языков для конкретного приложения.
-
Тёмная/Светлая тема.
-
Анимированный заголовок, скрывающий часть элементов при прокрутке.
-
Анимированное добавление и удаление ивентов.
-
Анимированная смена статуса ивента
https://ysstodo.pages.dev — web версия [временно неактуально]
Вы можете найти последнюю версию для Android на странице Github Releases.
Расшифровка версий:
- app-arm64-v8a-release.apk — 64-битный релиз для всех современных устройств
- app-arm-v7a-release.apk — 32-битный релиз для очень старых устройств, не поддерживающих релиз выше
- app-x86_64-release.apk — релиз для экотических андроид устройств не с arm процессорами (amd/intel)
Для самостоятельной сборки необходимо
- указать переменные host и token с помощью Dart define
Пример команды: flutter build apk --split-per-abi --dart-define TOKEN=your_token --dart-define HOST=https://google.com
- установить firebase по инструкции и выполнить команду
flutterfire config