Я ничего не писал на этом сайте уже 3 года, но на это есть причина. В этой статье я напишу о своем пути в качестве разработчика программного обеспечения и о том, как я решил вернуться в мобильную разработку, но теперь уже на Flutter и Dart.
Как вы знаете, я начал свою карьеру в качестве Android-разработчика на Java, проработал на этой должности несколько лет, потом перешел на Kotlin. За это время я приобрел огромный опыт в команде высококвалифицированных разработчиков.
Затем я решил попробовать веб-разработку, потому что мне всегда были любопытны разные аспекты разработки: frontend, backend, мобильная разработка — я хотел попробовать все.
Следующие несколько лет я был сосредоточен на веб-разработке, а именно на Javascript + React. Что сказать, React великолепен — это очень гибкий и быстрый инструмент, особенно в сочетании с такими решениями для управления состоянием как Redux и MobX. Я был очень доволен своим опытом работы на React, но хотел снова заняться мобильной разработкой.
Назад в мобильную разработку
Через несколько лет работы в вебе я услышал о React Native и решил попробовать этот новый для меня инструмент. Это было мне близко, так как мобильный разработчик я знаю специфику этой области, и теперь я знаю веб-разработку с использованием React, поэтому в принципе для меня было естественным попробовать такой фреймворк для мобильной разработки. Следующие несколько несколько коммерческих проектов я написал используя React Native и, к сожалению… меня он не впечатлил.
В то время React Native был довольно сырой (хотя он и сейчас не очень). В нем было много критических изменений и постоянная поддержка, переписывание/дописывание проектов было довольно трудоемким и болезненным. Главный плюс и одновременно главный минус React Native — это JavaScript bridge для связи с нативными модулями Android и iOS. Он позволяет быстро делать простые решения, но для средних и больших проектов это становится проблемой.
То же самое и с документацией, развертыванием, непрерывной интеграцией и деливери. Даже такие базовые функции как раутинг выглядит как костыль. НО это был мой опыт работы с React Native, я знаю много разработчиков, которым нравится этот фреймворк, им нравится тот факт, что он использует Javascript, им все-равно на некоторые недостатки этого фреймворка, и им он просто нравится. Но это явно не мой случай.
Как я пришел к Flutter
В 2018 году я услышал о новом инструменте под названием Flutter. Это кроссплатформенный фреймворк для разработки, в котором используется новый для меня язык Dart. И я был очень рад попробовать что-то совсем новое на рынке мобильной разработки.
Информации даже по простым темам было не так много, поэтому я начал с официальных туториалов, примеров приложений, я смотрел все, читал все блоги, которые мог найти. И мне это действительно нравилось. С того времени я полностью перешел на Flutter разработку, пошел ва-банк. Я был очень взволнован.
Но было несколько проблем, которые мне пришлось преодолеть, чтобы начать разработку на флаттере. Например, Flutter использует язык Dart для создания интерфейсов. Я давно не слышал о нем. В последний раз это было в 2011 году, когда Google представил Dart в качестве замены javascript в веб-разработке, но по какой-то причине этого не произошло. Но Дарт показался мне очень знакомым. Dart — это объектно-ориентированный язык, имеет синтаксис в стиле C. На него повлияли современные языки, такие как Java, JavaScript, Kotlin. Stateless и Stateful Flutter виджеты похожи на компоненты React и тому подобное.
Мне были знакомы многие концепции. Но вы знаете старую поговорку: если вы знаете только Delphi, то, когда вы изучите новый язык, вы будете писать код в стиле Delphi. И это 100% правда. Чтобы написать код в Dart стиле, мне пришлось адаптироваться к нему и начать думать в стиле Dart во время написания Flutter приложений. Конечно же это потребовало некоторых усилий, но я очень доволен, что перешел на Flutter.
Итак, основная причина, по которой я решил переключиться на Flutter, заключается не только в том, что я могу очень быстро создавать кроссплатформенные приложения для Android, iOS, а теперь и для Web. Также практика показала, что для меня Flutter — самый производительный и простой инструмент для создания любых приложений, несмотря на сложность дизайна и бизнес-требований. Конечно, у него есть некоторые ограничения, недостатки и ошибки, но я чувствую, что он растет быстрее, чем другие, я вижу будущее в этом инструменте и я доволен качеством своей работы, а это самое главное.
На моем канале YouTube я планирую делиться полученными знаниями, лучшими практиками и выученными методами разработки на Flutter. Там будут публиковаться интересные подходы и фишки флатера.
Буду благодарен за любые ваши отзывы, лайки, комментарии и предложения — все, что может помочь мне принести больше пользы тебе, читатель.