В прошлом году мы (Клуб ИКТ Национальной школы Гамини Диссанаяке) соревновались на Codefest, организованном SLIIT. Мы заняли 1-е место в старшей возрастной категории. Продукт, который мы разработали для конкурса, назывался LEAF — Learn Earn And Fun», мобильное приложение-викторина, которое награждает вас кредитами.

Серверная часть приложения LEAF была основана на Nest.js с базой данных MongoDB (прочитайте статью от нашего бэкэнд-разработчика), а внешний интерфейс был разработан с помощью Flutter.

Flutter – это инструментарий пользовательского интерфейса Google для создания красивых, компилируемых в собственном коде приложений для мобильных устройств, Интернета и настольных компьютеров из единой кодовой базы (веб-результат😋).

Основной поток приложения LEAF был следующим:
Вход/Регистрация -> Главное меню -> Экран MCQ -> Экран результатов

Поэтому мы сделали прототип полного приложения, в котором есть все необходимые экраны с помощью Adobe XD.

Благодаря XD мы получили все необходимые активы отдельно при экспорте наших дизайнов.

Затем Мастера виджетов начали писать 🧙

У нас было 2 ноутбука для фронтенд-разработки с разными характеристиками. Только один ноутбук имел достаточную мощность для одновременной работы Android Studio, нескольких вкладок Chrome и эмулятора. Благодаря поддержке Visual Studio Code во Flutter помог и другой ноутбук с низкими характеристиками.

После 2 дней кодирования, в основном отладки 😊, мы создали первую версию релиза приложения LEAF. Codemagic (CI/CD для проектов Flutter и мобильных приложений) нам очень помог в процессе ❤.

Связь между интерфейсом и сервером осуществлялась через REST API. Пакет Flutter httpупростил задачу. Поваренная книга здесь.

Кнопки загружаются с изображениями/активами. Все фоны также загружаются с изображениями.

Благодаря флаттеру мы не тратили время на переполнение стека, потому что все было очень просто. Почти в каждом контенте приложения использовались методологии флаттера по умолчанию. Даже управление состоянием осуществлялось с помощью виджетов State-full. Мы планировали, что приложение лучше всего будет работать с виджетами с полным состоянием на ранних этапах.

Так как все виджеты были запланированы до разработки в Adobe XD, мы были в курсе кошмаров разработчиков 😎.

Приложение Leaf будет доступно для публики в конце 2k21.