fbpx

Каталог статей

Каталог статей для размещения статей информационного характера

Как выучить

5 советов по изучению Flutter как профессионала от создателя курса Flutter

5 советов, как изучить Flutter как профессионал [от создателя курса Flutter]

Я преподаю Flutter уже четыре года. И до сих пор получаю огромное удовольствие.

За это время я стал наставником большого количества студентов. Я получаю электронные письма, комментарии к видео на моем канале YouTube, сообщения в Twitter (@seenickcode) или сообщения на моем сервере Discord.

Я заметил одну повторяющуюся закономерность. Студенты жалуются, что у них уходят месяцы на изучение основ Flutter и, более того, они еще не пытались ничего создать самостоятельно. Они жалуются, что застряли в учебном аду – термин, который мы слышим слишком часто.

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

Прежде чем мы начнем с совета номер один, если вы меня еще не знаете, меня зовут Ник, и я преподаю Flutter. Моя цель – использовать 20-летний опыт работы в качестве инженера-программиста, 10 лет из которых я работаю в мобильном пространстве, сотрудничая как со стартапами, так и с компаниями из списка Fortune 500, и поделиться некоторыми своими советами. Загляните на мой сайт fluttercrashcourse.com, где я разместил несколько бесплатных курсов по Flutter.

Итак, теперь давайте перейдем к совету №1.

Совет №1: обучение наиболее эффективно в виде “многопользовательской игры”, а не “однопользовательской кампании”.

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

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

Кроме того, этот репозиторий GitHub открывает дверь для начала разговора и общения с другими членами сообщества. Посмотрите на странице сообщества Flutter Community список идей о том, как связаться с другими https://flutter.dev/community. Если вы хотите, вы можете

Онлайн-сообщества – это эхо-камеры, и, к сожалению, они склонны увековечивать проблемы, которые неоправданно преувеличены. Новички замечают, что другие рассматривают ту же тему, и думают, что им тоже нужно добавить это к своим целям обучения. Я лично рассматриваю “пакет управления состоянием” – это пакет, который упрощает передачу данных по дереву виджетов. Один из разработчиков Flutter и экс-Googler Мэтт Кэрролл хорошо объясняет это здесь , канал YT здесь .

Если вы создаете простое приложение, особенно если вы новичок во Flutter, я могу гарантировать, что в 90% случаев вам не понадобится пакет “управления состояниями”. Большинство мобильных приложений в реальном мире часто работают с бэкендом, который уже поддерживает состояние. Небольшая часть приложений будет нуждаться в каком-то локальном состоянии, например, в базе данных, запущенной на устройстве. В остальном, если у вас не очень сложный пользовательский интерфейс и вы не хотите делиться этим состоянием между виджетами и реактивно отображать обновления, скорее всего, вы будете просто полагаться на получение данных из бэкенда, когда это необходимо.

Еще одна причина избегать “пакетов управления состоянием” заключается в том, что, как более или менее универсальная истина в программной инженерии, две самые сложные вещи – это именование вещей и кэширование (т.е. “состояние”). Поэтому лучше всего сделать свою мобильную кодовую базу как можно более простой, потому что если в вашем приложении есть ошибка, повторная отправка исправления отнимает много времени. Большинство современных приложений также имеют веб-компонент, и в любом случае вы захотите перенести большую часть этой сложности на бэкэнд.

С учетом сказанного, если вам нужно легко передавать состояние и избежать некоторых сетевых вызовов, вы можете использовать InheritedWidget, который встроен в Flutter, или, если вы действительно хотите упростить работу с ним, пакет Provider – это то, что я использовал. Кроме того, забудьте об этом, пока у вас действительно нет необходимости.

Совет №3: поиск “лучшей архитектуры Flutter”, “лучшего шаблона организации кода” или “лучшего x” потратит ваше время впустую.

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

В случае с “архитектурой” Flutteer, если вы только начинаете, вы можете сэкономить себе много времени и забыть об этом. Сосредоточьтесь сначала на создании чего-то, улучшайте это, переписывайте, узнавайте мнения других и пишите больше приложений. Учитесь на практике, изучайте лучшие практики по ходу дела и выясняйте, что лучше для вас. Публикуйте свой код, получайте отзывы от других, более опытных, чем вы. Это подводит меня к следующему совету.

Вместо этого стремитесь изучать лучшие практики. Поспрашивайте, пишите на Stack Overview, публикуйте свой код и спрашивайте у людей в сообществе и т.д.

Совет № 4: если вы новичок в мобильной разработке и Flutter, сосредоточьтесь на виджетах и навыках, которые вам нужны, избегайте навыков, которые вам, возможно, не понадобятся в ближайшее время.

Так что же вам “нужно” изучить? Во-первых, на мой взгляд, если вы можете написать приложение, которое представляет простой прокручиваемый список текста и изображений, с возможностью нажатия на элемент и отображения “подробного” экрана (классическая формула “главное, подробное”, которую мы видим в большинстве приложений) с некоторыми основными макетами, то вы должны начать с отличного старта. Если вы хотите продвинуться дальше, я бы выбрал обучение получению данных из URL для наполнения вашего приложения.

Прежде чем устанавливать Flutter на свою машину, попробуйте сначала что-нибудь на https://dartpad.dev/flutter. Это отличный способ перечислить некоторые полезные виджеты, с которыми вы можете захотеть познакомиться, такие как ListView, Text, Image, Navigator, Column и т.д.

Сначала сосредоточьтесь на практических навыках.

Совет №5: Flutter – это лишь один из многих навыков, которые вам понадобятся, если вы хотите сделать карьеру в области мобильной или кроссплатформенной разработки.

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

Так что же вам делать? Не увлекайтесь продвинутой разработкой пользовательского интерфейса (если только это не то, что вы действительно очень любите, тогда это замечательно) и сбалансируйте это с пониманием того, как получить данные с удаленного URL, как отправить данные, как распространить ваше приложение и сделать высококачественные активы, такие как значки приложения и т.д., как оптимизировать ваше приложение путем кэширования больших активов, таких как изображения, в CDN и т.д.

Если вам нужны дополнительные советы, не стесняйтесь, напишите мне по адресу nick@fluttercrashcourse.com с указанием ваших целей, и я смогу порекомендовать вам путь обучения, который вы можете рассмотреть.

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

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

что-то привлекательное для этого поста

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *