Мобильные приложения
Что приготовить — Android
Тот же подбор рецептов, но родным приложением: 1,5 МБ, полностью офлайн, без единого разрешения.
О проекте
Android-версия «Что приготовить» на Kotlin. Работает полностью офлайн и не запрашивает разрешений — доступа в интернет нет даже в манифесте: база лежит в ассетах, свои рецепты в файле во внутренней памяти, корзина в настройках приложения. Рецепты и каталог общие с веб-версией, база собирается из одного источника.
Что внутри
- APK 1,5 МБ: R8 с обфускацией, вырезание ресурсов, только два языка в сборке
- Целые числа вместо строк: попадание продукта в корзину — обращение к булеву массиву по индексу, а не сравнение строк
- Параллельные массивы вместо объектов — меньше нагрузки на сборщик мусора при прокрутке
- Двухфазный подбор: сортировка считает только счётчики, подробный разбор — лишь для карточек на экране
- Потоковый разбор базы через JsonReader: строки второго языка пропускаются на лету и не попадают в память
- Полностью векторная адаптивная иконка — ни одного PNG под плотности экрана