Flutter-разработка набирает популярность. И мы в «Финаме» заметили, что начинающим специалистам бывает не так-то просто понять, как стать разработчиком, как сориентироваться в новой технологии. Поэтому в этой публикации мы хотим дать слово трем нашим молодым сотрудникам, которые расскажут, как они стали Flutter-разработчиками, какие технологии им пришлось для этого освоить и какие трудности преодолеть.

Статья может быть полезна всем, кто ищет дорожные карты этого пути: с чего начать и какие скилы освоить, чтобы начать карьеру в мире Flutter, какие могут быть подводные камни и особенно — на что обратить внимание молодым специалистам.

Артем

Чтобы вспомнить, как я начинал путь во Flutter, пришлось сдуть пыль со старых конспектов. Первым языком программирования, с которого я, как и многие другие, начинал еще в школе, был Pascal. В университете сразу же начались пары по C# (C Sharp) и Python.

В тот период я пробовал свои силы в написании пет-проектов на Unity для Android, но в какой-то момент узнал о Flutter-технологии. Единая кодовая база для web-а, для desktop-а и для мобильных платформ — первую мою реакцию можно описать фразой «а что, так можно было?». Естественно, я решил попробовать, каково это: писать один код и реализовывать его на все платформы. Мотивации добавило, что мой друг, с которым сидели тогда за одной партой, тоже этим загорелся, и мы стали друг друга поддерживать.

Какие инструменты и источники помогли

Когда я начал активно изучать все относящееся к Flutter, то, как и большинство, начал с YouTube и официальной документации от Google. Когда этой информации перестало хватать, я перешел на статьи разработчиков мобильных приложений Surf и различные курсы, находившиеся в открытом доступе.

Если говорить о технологиях и инструментах, которые я самостоятельно изучал на этом этапе, то стоит упомянуть JSON Serializable, REST, Shared Preferences и Firebase. К тому же без понимания, что такое объектно-ориентированное программирование (ООП), и принципов чистого кода (SOLID, KISS) мне было бы сложнее влиться в рабочий процесс. А еще мне повезло, что к тому моменту я как фрилансер немного занимался UI/UX-дизайном и понимал принципы построения интерфейсов.

С какими сложностями пришлось столкнуться

Изучать теоретическую базу это, конечно, важно. Но главное и самое тяжелое — практика. Без нее мне поначалу бывало трудно. Как работает Flutter, я узнал не когда прочитал десятки статей или посмотрел все обучающие плейлисты на YouTube, а когда сам сел за код.

Есть много публикаций в духе «Топ-10 простых приложений, которые надо написать начинающему разработчику». Так вот, можно брать любую из них и начинать кодить все подряд, это развивает понимание, как должна выглядеть структура приложения, оттачивает навыки clean code, управления состояниями и т.д. А когда сталкиваешься с какими-то сложностями, мешающими двигаться дальше, стоит гуглить видеоролики и статьи узкой направленности, которые помогут решить задачу. И сразу же применять полученные знания на практике. Только в этом случае они становятся по-настоящему полезными, усваиваются вместе с преодолением очередной преграды.

Писать на Dart на самом деле не так уж сложно. Но дьявол кроется в деталях оптимизации.

Начало карьеры Flutter-разработчика

По мере освоения Flutter передо мной встал вопрос трудоустройства: хотелось найти позицию джуна или стажировку. Основная сложность заключалась в поиске адекватных вакансий, которых, из-за перенасыщенности IT-сферы после ковида, было немного — тем более от более-менее известных компаний.

После трудоустройства я продолжил оттачивать свои скилы, однако скажу честно: постигать эту область можно бесконечно. И какие бы интересные и сложные задачи ни ставились на работе, для их решения нужно постоянно практиковаться и на собственных пет-проектах. К примеру, сейчас в университете в рамках дипломной работы я пишу приложение на Flutter, и этот опыт помогает мне эффективнее писать код в «Финаме». И наоборот: рабочий опыт помогает писать диплом качественнее.

Первые достижения

На сегодняшний день как раз это приложение и есть мое главное достижение на ниве Flutter-разработки. В моем университете есть возможность защитить стартап как диплом, и я уже подался на ряд грантов, где подтвердился интерес инвесторов. Возможно, этот учебный проект выльется во что-то большее, но до этого еще нужно дожить.

Марсель

Мой путь во Flutter-разработку начался с интереса к программированию в школе. Уже в университете, осваивая профессию frontend-разработчика, я узнал о технологии Flutter: мой куратор рассказал про язык Dart и фреймворк Flutter, и показал приложение, которое можно было скачать в сторе. Я так загорелся созданием мобильных приложений для iOS и Android с помощью единой кодовой базы, что на следующий же день начал настраивать окружение и вскоре запустил свой первый пет-проект.

Какие инструменты и источники помогли

Освоить язык Dart мне помогла как официальная документация, так и видеоролики на YouTube. А также книга Станислава Чернышева «Основы Dart», где сложные темы рассматривались на конкретных примерах.

Освоение фреймворка Flutter также началось с чтения документации и продолжилось экспериментами с виджетами, которые я поочередно добавлял в тот пет-проект. Затем я нашел ряд выложенных в открытый доступ прототипов и дизайнов, начал пытаться воспроизвести и проапгрейдить их, каждый раз создавая все более сложные макеты.

С какими сложностями пришлось столкнуться

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

Также, помимо хорошо усвоенной теоретической базы, нужно было постоянно отслеживать новые тенденции и обновления, поскольку Flutter очень быстро развивается, обрастая новыми функциями. Отдельно пришлось заморочиться, вникая в специфику каждой мобильной платформы (Android/iOS).

Начало карьеры

Во время поиска работы для меня было важно, чтобы в большой компании активно использовался Flutter. Отфильтровав вакансии, наткнулся на «Финам». Меня привлекло, что в команде много специалистов с опытом, что создало отличные возможности для обучения и роста.

В «Финаме» меня ждала интересная стажировка. Изначально я откликнулся на вакансию миддла: решил, была не была, постараюсь пройти, не получится — сделаю выводы. Прошел собеседование, оно длилось около двух часов: захватывало и лайв-кодинг, были и теоретическая, и алгоритмическая части. На миддла я не прошел, но согласился пойти стажером.

И не пожалел. Стажировка была серьезная: мы писали проект для Google Play и App Store с нуля, была команда стажирующихся, свой проект, тимлид. Помню, когда закончили работу, пошли первые скачивания, первый фидбэк — вот это было классно, за это я благодарен.

Первые достижения

Пожалуй, это приложение и можно назвать моим первым профессиональным достижением. Этот проект стал не просто шагом в карьере, но и отточил мои навыки командной работы.

Начинающим из освоенных мной материалов могу порекомендовать канал LazyLoad Dart на YouTube, вот эти открытые видеоуроки и вот такой роадмап.

Никита

Мой путь в IT начался c написание проекта для Android в 11 классе для поступления в вуз. Про Flutter я впервые услышал уже в универе, однако в детали начал вникать только во время летнего электива, организованного одной большой компанией.

После этого я начал самостоятельно изучать технологию по роликам с YouTube и материалам разных курсов, доступных в сети. Опираясь на них, я сделал несколько пет-проектов. Один, например, позволял подгружать в мобильное приложение новости с сайтов. А другой — контент по «Рику и Морти».

Параллельно в вузе шел курс, на котором навыки Flutter-разработки оказались востребованными: там от нас требовалось принимать участие в разработке аналога образовательной платформы Moodle. Это был хороший момент, чтобы подналечь на Dart и подучиться общению с заказчиками.

Какие инструменты и источники помогли

Хотя на Reddit или StackOverflow можно найти большую часть вопросов, которые задают на собеседованиях на любую IT-специальность, отдельно мне помог совет подтянуть перед собеседованием знания по системе удаленного вызова процедур gRPC (Remote Procedure Calls). Но моим преимуществом стало то, что об этом мы говорили как раз на втором курсе, и мне не нужно было осваивать ее с нуля.

Кроме того, для успешной работы в команде в компании нужно не только знать Dart и фреймворк Flutter. Нужно и иметь представления о бизнес-процессах фирмы, о том, как на практике устроен цикл разработки (например, методологию Agile), чтобы не «плыть» на рабочих созвонах.

С какими сложностями пришлось столкнуться

Сейчас я могу сказать, что для успешного входа во Flutter-разработку важно не спешить. На старте может быть соблазн объять необъятное, чтобы за месяц почувствовать себя настоящим фронтендером. Но когда начинаешь торопиться, то упускаешь разные тонкости, которые могут «выстрелить» позже. У меня так было с future – задачами, которые выполняются асинхронно и завершаются (успешно или с ошибкой) когда-то в будущем. Во всем, относящемся к future, async, await, Isolate и параллельному выполнению кода, важно скрупулезно разобраться, прежде чем кидаться в бой.

Также могу посоветовать молодым специалистам не бояться ходить на собеседования, потому что умение вести себя на них тоже приходит с опытом. У меня было несколько однокурсников, которые так волновались, что, даже зная ответы на вопросы эйчара, первые 3-4 раза не могли связать и двух слов.

Начало карьеры

Когда я почувствовал, что начинаю немного разбираться, решил попробовать свои силы в стартапе, который делал маркетплейс, на это потребовалось примерно три месяца. В августе 2023 года, уже на третьем курсе, я увидел вакансию «Финама» и вскоре начал тут работу.

Первые достижения

Если говорить о достижениях, то пока для меня успехом является сам факт участия в разработке чего-то крупного. Я рад, что смог успешно пройти стажировку и влиться в штат.

Начинающим из освоенных мной материалов могу порекомендовать вот этот хендбук.

Резюме

Путь Flutter-разработчика бывает непрост, и наши герои, конечно, только в его начале. Но при должном энтузиазме и целеустремленности стать Flutter-разработчиком можно, начав с открытых источников. Все герои статьи проделали именно такой путь, и то, что они попали к нам — доказательство их первых успехов.

Тех же, кто уже вкатился во Flutter и реализуется в нем, приглашаем в комментариях рассказать, как эту технологию осваивали вы.

Комментарии (15)


  1. Sabirman
    01.11.2024 13:25

    А гугл же вроде уже забросил flutter. Какие у него перспективы теперь?


    1. AuToMaton
      01.11.2024 13:25

      Не забросил, а напротив - занялся. В плане сокращения издержек и чистки команды. Один из вычищенных уже создал форк с целью помощи Flutter путём обмена кодом.

      На этом фоне взрывной рост статей о Flutter на Хабре наводит меня на размышления.


  1. saag
    01.11.2024 13:25

    А есть кому это потом продать?


  1. gen1lee
    01.11.2024 13:25

    Нет ни одной нормальной причины выбрать Flutter вместо React Native. Dart намного хуже TS, фреймворк хуже React, линтеры хуже, популярность сильно меньше чем React + TS, доступность (accessibility) хуже чем у React Native Web, система лейаутов у RN flex, как и в вебе. С новой архитектурой RN производительность больше не проблема, хотя и раньше не особо была проблемой. Проекты крутые на RN на слуху, в том числе от самих Facebook - и это крайне важно с точки зрения будущей поддержки, у Flutter все грустно, гугл его забросил и не использует. Мусор.


    1. Spinoza0
      01.11.2024 13:25

      Толсто )