В кроссплатформенной мобильной разработке у нас есть несколько альтернатив. Мой основной опыт работы с React Native, но за последние 4–5 дней я накопил 17 часов опыта работы с Flutter (по данным Toggl). Мое вдохновение более подробно изучить эту технологию пришло из исследования Material Design и чтения этой публикации на Medium.

После того, как я получил вдохновение и новую причину, чтобы больше взглянуть на Flutter (хотя я скрывал r / flutterDev больше года). Я ознакомился с дорожной картой Flutter на 2019 год, и мне очень понравилось, что команды Flutter сосредоточились на разработке платформы. Вот почему я раньше особо не смотрел на Flutter: это продукт Google, и, хотя поддержка Google хороша, я также видел, насколько быстро Google может убить продукт. Глядя на дорожную карту, я чувствую, что платформа привлекает к себе необходимое внимание, и это подтолкнуло меня попробовать что-то с ней сделать.

Итак, к проекту и разуму. Я вернулся к первому проекту, в котором участвовал, когда получил работу. Это гибридное мобильное приложение. Это приложение HSEQ, где пользователь может быстро просмотреть недавнее воздействие химических веществ на работе или добавить новое воздействие в реестр. Приложение состоит из 5 экранов, включая страницу настроек и логин. Это маленькое и не слишком сложное приложение, и это был идеальный проект для изучения новой технологии. Он имеет все основы, процесс входа в систему, выборку данных из REST-api и просмотр данных из результатов, а затем отправку некоторых данных обратно в него.

Сегодня я закончил прототип этого приложения. Как я уже говорил ранее, мне потребовалось 17 часов, включая исследование и изучение Dart2 и Flutter. Один из моих коллег спросил меня о моем мнении по этому поводу, и он сказал, что я очень высоко оценил это, сказав: «Я не ненавижу это?», И я думаю, что это правда.

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

Что для меня странно с Flutter, так это то, что он не похож ни на что, с чем я работал раньше, но кажется знакомым. Для меня это не похоже на JavaScript, но похоже на него.

Flutter решает некоторые из моих проблем с JavaScript и React Native, и это то, что Flutter и Dart скомпилированы с помощью AOT. За то, что я испытал сейчас; это означает, что производительность кажется более плавной, а сбои происходят более изящно. Если выборка отвечает чем-то, чего не ожидает код, приложение не переходит в «красный экран смерти», а просто остается на последнем месте, где все сработало, и ведет себя так, как будто ничего не произошло. Во время разработки это не так раздражает, и держать приложение открытым, если что-то пойдет не так, гораздо лучше, чем внезапно вернуть пользователя на рабочий стол.

Во-вторых, я упомянул документацию Flutter. Удивительно, у них даже есть «Flutter для разработчиков React Native». Это хорошая идея, и она хорошо реализована. Этот раздел позволил избежать гугл-запросов типа «Как отправить проп в класс во флаттере»; потому что в документации для этого есть отдельный раздел!

Что круто во Flutter, так это то, что он позволяет мне использовать мои существующие знания и относительно быстро переносить их во Flutter. Flutter легко освоить, и он дает хорошую производительность.

📝 Прочтите этот рассказ позже в Журнале.

🗞 Просыпайтесь каждое воскресное утро и слышите самые интересные истории, мнения и новости недели, ожидающие в вашем почтовом ящике: Получите примечательный информационный бюллетень›