Старший iOS-разработчик из VK Евгений Ёлчев: как вкатиться во Flutter и зачем это нужно
Нет, это не песня Rammstein Mutter — это платформа для быстрой разработки мобильных приложений Flutter. И даже рифмы с песней брутальных немцев нет 👹
Иллюстрация: Flutter logo / Wikimedia / Vatjaii / Ambur / Cleanpng / Meery Mary для Skillbox Media
Евгений Ёлчев
об эксперте
Старший iOS-разработчик во «ВКонтакте». Раньше был фулстеком, бэкендером и DevOps-инженером, руководил отделом мобильной разработки, три года преподавал iOS-разработку в GeekBrains, был деканом факультета. Состоит в программном комитете конференции Podlodka iOS Crew, ведёт YouTube-канал с видеоуроками по Flutter. В Twitter пишет под ником @tygeddar.
Я люблю изучать новые технологии, поэтому однажды попробовал Flutter, и он мне понравился. Flutter — фреймворк от Google, который позволяет создавать приложения под все платформы: веб, Windows, Linux, macOS, iOS и Android. А ещё с его помощью можно писать интерфейсы для бортового компьютера Toyota.
Преимущества Flutter
Разработчику писать под Flutter приятно и удобно. Например, с технической точки зрения мне приятнее писать код для него, чем для iOS, потому что инструменты Flutter более developer friendly:
- Работа IDE с Flutter и Dart — автодополнение и рефакторинг.
- HotReload позволяет видеть результат изменений сразу же, без повторной компиляции и перезапуска приложения.
- Удобный менеджер зависимостей и другие тулы.
Плюс я люблю иногда создавать для самого себя утилиты, которые буду использовать в будущем, — а так как я пользуюсь не только Mac и iPhone, то я высоко оценил возможность написать программу один раз и запускать её на всех платформах. Да я даже могу поделиться ею с друзьями, которые используют Android. То есть с Flutter мне не надо писать одну и ту же программу два или три раза под разные платформы.
Flutter хорош тем, что позволяет делать достаточно хорошие интерфейсы. Но они выглядят не так, как нативные. Если сравнить нативное и Flutter-приложение для iOS, то будут существенные отличия — и не в пользу Flutter. Разнятся механики — например, скролл совсем не такой, как в нативных приложениях под iOS. Если человек пользуется iPhone, он, скорее всего, заметит разницу.
Но всё равно уровень приложений, созданных с помощью Flutter, вполне высокий — можно пилить минимально жизнеспособный продукт (MVP), какие-то небольшие приложения и даже серьёзные проекты. Например, если банк не хочет создавать суперидеальное приложение, которое лучше решений конкурентов и поэтому способно само привлекать новых пользователей, а просто стремится предоставить клиентам хороший сервис, то Flutter впишется в проект на ура.
Но если вы начинающий разработчик, то учить Flutter в качестве одного из первых фреймворков я бы не советовал. Вакансий с ним меньше, чем с другими стеками. А вот если вы сравнивали Flutter с iOS и Android и он вам всё-таки понравился, нет причин себе отказывать. В конце концов, пусть вакансий и немного, вам нужна всего лишь одна.
Как освоить Flutter и сколько времени нужно
Вкатиться во Flutter можно разными способами. Я предпочитаю открывать сайт с документацией и разделом Quick Start, изучить его и документы, а потом сразу начать писать приложение. У меня есть опыт в разработке, поэтому мне не составляет большого труда сразу же вести разработку на новом фреймворке.
Попутно, конечно, придётся что-то погуглить, почитать дополнительные статьи, позадавать вопросы другим разработчикам. Но всё это уже актуально для advanced level — для начала же достаточно просто изучить документацию. Но я знаю, что не все могут прочесть документацию и сразу начать писать. Поэтому новичкам проще будет взять какую-нибудь книжечку или курс.
Например, бесплатный курс есть на моём YouTube-канале — можно открыть его и начать смотреть уроки, даже если вы ещё ничего не знаете о программировании. Я всё объясняю пошагово: что такое программирование, что такое языки программирования, какие парадигмы программирования существуют — и постепенно перехожу к Flutter, объясняю что это такое и как он устроен.
Ролики выходят раз в неделю. Мне нравится учить людей, однажды я это попробовал и с тех пор никак не могу остановиться.
Сколько времени понадобится, чтобы изучить Flutter, — зависит от бэкграунда. Легче всего будет мобильному разработчику, чуть сложнее — фронтенд-разработчику, ведь он не знаком с концепциями мобильных приложений. Часто фронтенд-разработчики пытаются делать интерфейсы по аналогии с вебом, а потом сталкиваются из-за этого с проблемами.
Бэкенд-разработчикам приходится труднее всех, потому что они не знакомы с концепциями UI. Однако освоить Flutter будет полезно — можно перейти из бэкенда в фулстек, научившись писать на Flutter утилиты, оборачивать голые данные в приложения или создавать UI.
Мне на то, чтобы изучить Flutter, потребовалось три месяца. Но я знаю, что некоторые люди изучают его от полугода до года. Программирование строится на разных концепциях, поэтому скорость изучения новых фреймворков и языков зависит от того, какие из этих концепций вы уже знаете. И проблема не столько в том, чтобы изучить конкретный фреймворк, сколько в том, чтобы усвоить и переварить новую концепцию.