Новая рецензия будет о книге, помогающей разработчикам стать профи в довольно редкой пока профессии Flutter/Dart Developer. Книга«Flutter и Dart. Сборник рецептов» (Flutter and Dart Cookbook) авторства Ричарда Роуза (Richard Rose) — это практическое руководство по разработке мобильных приложений с использованием Flutter и Dart. Книга построена на аналогии со сборником кулинарных рецептов, помогая разработчикам решать конкретные задачи на мобильных платформах. Рассматривается создание UI, работа с API, управление состоянием приложений и многие другие аспекты разработки на Flutter и Dart.

***

Начнем рецензию со ссылки на книгу “Flutter и Dart. Сборник рецептов: Разработка полнофункциональных облачных приложений” на сайте БХВ. Напомним, на все книги по компьютерным технологиям от издательств «БХВ Петербург», «Alist» и «Фолиант» доступен промокод SSPSOFT на скидку 25% как подарок читателям Хабра от нашего блога. 

Про востребованность профессии Flutter/Dart Developer на рынке труда РФ

Перед рецензией мы посмотрели, как представлены вакансии Flutter/Dart Developer на портале hh.ru. Их оказалось в целом не так много, если сравнивать, например, с более распространенными языками. И судя по всему, вакансий по разработке на Flutter/Dart в будущем будет больше. Основание так утверждать — в последние годы рынок мобильной разработки активно развивается, и одной из ключевых технологий, привлекающих внимание разработчиков и компаний, становится Flutter, фреймворк от Google. 

Вместе с Flutter широко используется язык программирования Dart, который служит основой для создания приложений на этой платформе. Можно резюмировать, что Flutter/Dart Developer — это разработчик, специализирующийся на создании кроссплатформенных мобильных приложений, которые работают как на Android, так и на iOS.

Как Flutter и Dart стали применяться в мобильной разработке

Скажем сразу, Flutter/Dart пока не являются ведущей средой для разработки мобильных приложений. Скорее, их можно отнести к инструментарию, о котором говорят как о «восходящей звезде». В реальной разработке лидерство по-прежнему за React Native, Kotlin, C#, и наверно, набора из HTML, CSS, JavaScript.

Но доля разработок на Flutter/Dart понемногу растет. Компании выбирают Flutter для разработки мобильных приложений прежде всего из-за преимуществ фреймворка в кроссплатформенности и производительности. Если посмотреть на отрасли, в которые преимущественно набирают разработчиков Flutter/Dart, то это финтехи, e-commerce и всевозможные стартапы. Стартапы или даже крупные компании выбирают Flutter именно под тестирование продуктовых гипотез, поскольку он позволяет быстро создавать мобильные приложения для различных платформ без необходимости нанимать (привлекать) отдельные команды разработчиков для Android и iOS.

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

Удобство разработки называют одним из основных преимуществ Flutter — фреймворк предлагает разработчикам богатый набор виджетов и инструментов для создания интерфейсов. Механизм«горячей перезагрузки» (hot reload) позволяет мгновенно видеть изменения без необходимости перекомпиляции всего приложения. Это ускоряет процесс разработки и делает работу более эффективной.

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

Зачем покупать эту книгу: плюсы и минусы книги для разработчика Flutter/Dart

Теперь вернемся к рецензии на книгу. В этот раз мы решили не рассматривать плюсы и минусы непосредственно конкретной книги, а дать это через призму инструментария в целом. Поскольку профессия Flutter/Dart Developer из статуса экзотики становится все более востребованной рынком, издательства вводят в свои планы выпуск пособий по мобильной разработке на Flutter/Dart и далее смотрят, как эти издания принимает аудитория читателей. 

И да, для работы с Flutter необходимо знание языка Dart. Хотя язык относительно прост для освоения, его нужно изучать специально, так как он не так широко используется, как JavaScript или другие популярные языки программирования. Это может быть барьером (некогда, лень, плохо дается и т.д.) для разработчиков, кто думает о переходе с других технологий.

Теперь о плюсах и минусах — стоит ли купить книгу и совершенствоваться как разработчик Flutter/Dart:

Явный плюс — получите навыки кроссплатформенной разработки. Flutter позволяет создавать приложения для множества платформ, включая Android, iOS, веб и даже десктопных систем. Это дает разработчикам больше возможностей для самореализации, а также делает их навыки более универсальными и востребованными.

Упомянутая выше «горячая перезагрузка» в Flutter значительно ускоряет процесс разработки, так как позволяет вносить изменения в код и сразу же видеть результат. Это не только экономит время разработчиков, но и делает процесс работы более плавным и менее стрессовым.

Второй плюс — вы научитесь создавать быстрые приложения. Flutter обеспечивает высокую производительность приложений благодаря использованию языка Dart и компиляции в нативный код. Это позволяет создавать приложения, которые работают быстро и стабильно, даже на устройствах со скромными процессорами и памятью.

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

Минус №1 — вы встретите ограничения в нативных возможностях. Хотя Flutter позволяет создавать кроссплатформенные приложения, есть определенные ограничения при работе с нативными функциями операционных систем. Например, при работе с некоторыми специфическими аппаратными функциями (камерой, GPS) может потребоваться писать дополнительные нативные модули для каждой платформы, что усложняет процесс разработки.

Минус №2 — вам придется расти вместе с технологией. Хотя Flutter активно развивается, эта технология всё ещё молода по сравнению с нативными инструментами разработки для Android и iOS. Это означает, что могут возникнуть проблемы с совместимостью или недоступностью некоторых библиотек, особенно если сравнивать с более зрелыми фреймворками, такими как React Native или Xamarin.

Что интересного в главах

Теперь подробно рассмотрим книгу «Flutter и Dart. Сборник рецептов». С оглавлением русского издания можно познакомиться здесь. А дальше будут наши аннотации ко всем 17 главам книги, и для лучшего восприятия — отдельным предложением в каждой аннотации добавлен «сухой остаток» о пользе данной главы: 

Глава 1. Переменные в Dart  

В первой главе рассматриваются основы переменных в Dart: работа с целыми числами, дробными значениями, строками и булевыми переменными. Читатель узнает, как объявлять константы и управлять пустыми значениями (null).

Глава 2. Исследование управления потоком  

Описаны ключевые конструкции управления потоком: условия, циклы, итерирование по коллекциям, перечисления и обработка исключений. Полезно для понимания процесса управления логикой выполнения программы и работы с различными сценариями.

Глава 3. Реализация функций  

В третьей главе объясняются методы создания функций, использования параметров, возврата значений и работы с анонимными функциями. Материал главы важен для навыков структурирования кода, повторного использования и оптимизации.

Глава 4. Структуры List и Map  

Из этой главы вы узнаете, как создавать списки и карты, изменять их содержимое и работать с более сложными типами данных. Это полезно для хранения и поиска данных в приложении.

Глава 5. Объектно—ориентированный Dart  

Здесь рассматриваются основные принципы ООП в Dart: создание классов, конструкторы, наследование, интерфейсы и примеси. Глава важна для понимания организации кода и создания модульных, легко расширяемых приложений.

Глава 6. Тестирование приложений Dart  

В этой главе описываются методы добавления и выполнения тестов в приложении, группировка тестов, а также создание мок—данных для тестирования. Материал полезен для обеспечения высокого качества кода и предотвращения ошибок.

Глава 7. Знакомство со средой разработки Flutter  

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

Глава 8. Ассеты  

Рассматривается, как добавить и управлять ресурсами, такими как изображения, шрифты google и пакеты через файл `pubspec.yaml`. Это необходимо для кастомизации и расширения функциональности приложения.

Глава 9. Работа с виджетами  

В главе подробно объясняются различные типы виджетов, включая статические и динамические, а также их использование для создания интерфейсов. Владение навыками работы с виджетами будет полезно для создания сложных пользовательских интерфейсов в приложениях Flutter.

Глава 10. Разработка пользовательских интерфейсов  

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

Глава 11. Организация данных на экране  

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

Глава 12. Навигация по страницам в Flutter  

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

Глава 13. Работа с ассетами данных

Глава объясняет, как эффективно управлять данными: локальные и удаленные JSON—данные, преобразование данных в классы Dart. Полезно для понимания интеграции внешних данных и API.

Глава 14. Тестирование пользовательского интерфейса с помощью Flutter  

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

Глава 15. Работа с Firebase и Flutter  

Рассматривается интеграция платформы Firebase в проекты Flutter, включая базы данных Firestore и аутентификацию. Это полезно для разработки приложений, использующих облачную инфраструктуру и для организации взаимодействия с базами данных.

Глава 16. Введение в облачные сервисы  

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

Глава 17. Начинаем разработку игр  

Читатель узнает, как использовать библиотеку Flame для создания игр на Flutter, а также про добавления спрайтов, движения объектов и столкновений. Глава будет полезна для разработчиков, интересующихся созданием простых игр, в том числе на Android.

В книге также есть очень полезное Приложение. В нем — описание шагов по настройке среды разработки для Flutter и Dart, включая установку SDK, настройку редакторов и инструментов.

Заключение

Покупая книгу«Flutter и Dart. Сборник рецептов», вы продвинетесь в профессии Flutter/Dart Developer. Это перспективное и востребованное направление в мобильной разработке, которое продолжает набирать популярность.благодаря кроссплатформенным возможностям, высокой производительности и поддержке со стороны Google, 

Flutter становится предпочтительным выбором для многих компаний. Однако, как и любая профессия в ИТ, эта специализация имеет свои плюсы и минусы. Разработчики, владеющие Flutter и Dart, могут рассчитывать на стабильный спрос и высокие зарплаты, но должны быть готовы к необходимости много учиться, преодолевать технические вызовы и ограничения в этой еще только развивающейся технологии.

Добавим каплю рекламы от нашего блога: компания SSP SOFT приглашает на позиции инженеров QA и DevOps, системного аналитика, аналитика данных, разработчиков на Java, JS, React и Python, 1С — см. страницу на hh.ru. Если вашей специальности нет в текущих вакансиях, все равно присылайте резюме, т.к. новые позиции в командах открываются еженедельно (пишите в Telegram или на почту job@ssp-soft.com).

Успехов в изучении и практическом применении Flutter и Dart!

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


  1. fognature1
    11.10.2024 01:00

    Как-то начало статьи немного не сходится с реальностью.

    "Полтора десятка вакансий на всю РФ на HH" - если перейти по вашей ссылке, но отредактировать фильтры (снять СПб и поставить всю Россию), то будет не менее 50 вакансий (11 октября 2024). Лично мне знакомы компании, которые сейчас активно нанимают Flutter-разработчиков к себе в штат.

    "лидерство по-прежнему за React Native, Kotlin, C#, и наверно, набора из HTML, CSS, JavaScript". Разберем тезис подробнее:
    - Kotlin - да, хотя KMP только набирает популярность.
    - React Native уже несколько лет, как проиграл эту гонку, посмотреть даже количество докладов на конференциях и статей по нему за последние года 2 (скажу честно, на Mobius (крупнейшей в РФ конференции по мобильной разработке) по Flutter стабильно по несколько докладов, а по RN давно не было).
    - C#, вернее Xamarin, никогда сильно и не был лидером, а по последним (за этот год) новостям, он им никогда и не станет.
    - Набор из HTML, CSS, JS только если брать PWA. Но это не полноценные мобильные приложения. А если имеется ввиду Cordova, Ionic и т. п., это уже порядком уставшие технологии, которым в свое время React Native и пришел на смену.

    К дальнейшим тезисам претензий нет, все сказано по делу. Спасибо за описание этой книги!


    1. sergbe Автор
      11.10.2024 01:00

      Спасибо за конструктивный коммент. Про количество вакансий поправил.


  1. CpedniyNikon228
    11.10.2024 01:00

    Не нравится, что книга не затрагивает темы использования стейт менеджеров и отделения логики от верстки.

    И использование Flame, это же совсем кринж, там все через одно местро работает