Дневник Flutter разработчика
211 subscribers
32 photos
1 video
2 files
19 links
Собираю полезности и излагаю мысли обо всей этой движухе.

GitHub: https://github.com/GereyTatarkhanov
Download Telegram
Если вы, как и я, задались вопросом: "Какие приложения на моем смартфоне сделаны на Flutter?", то могу поделиться с вами решением, которое обнаружил - это Flutter Shark.

Данное ПО не только покажет, что из вашего хлама на смартфоне сделано на Flutter, но еще и покажет библиотеки, которые были использованы в процессе разработки (Наверное это можно обойти обфускацией)
На IOS ссылку не нашел, может плохо искал.

Кстати, раньше был способ: скроллить то, что скроллится двумя пальцами, и скорость прокрутки увеличивалась в 2 раза. Это был явный баг, который легко отличал Flutter приложение от нативного. Сейчас его уже исправили.
👍43
Пост не совсем о Flutter. Вернее совсем не о Flutter. Но т.к. это дневник - я хочу поделиться этим.

Прошлая неделя была очень насыщенная: я работал на работе, готовился защищать диплом, далее спонтанный переезд, а ещё я побывал на Сулакском каньоне, где невероятно красивые пейзажи!

Сулаксий каньон - один из самых глубоких каньонов в мире, даже глубже чем Большой каньон (Grand Canyon) в США.
Глубина первого - 1920 метров, тогда как глубина второго на 63 метра выше (Куда мы без фактов из Википедии, верно?)

Кстати, спускаться вниз по серпантину то ещё веселье даже на внедорожнике😁
4🔥1🥰1
Я пропал. Я был занят тем, что готовился к собесам.

Три компании, три собеседования и три оффера

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

В одной компании собес был около 2-х часов😐, а собес в другой компании я раскидал всего за пол часа, отвечая на все вопросы идеально (по-моему скромному мнению). Третий собес был вообще не технический, а больше "за жизнь".

В итоге я получил 3 оффера и выбрал ту компанию, которая, как мне кажется, лучше всего для меня подходит (Хотя другие тоже были крутые).

А ещё обновил свою рабочую машину. Купил 14 дюймовый Mac на M3 Pro с 18 gb оперативы, а свой игровой HP Victus 16 выставил на продажу (и его уже покупают, прощайте игры).

Скоро будет контент покачественней, не расходимся.
Буду переписывать свой личный проект, и мне нужно будет знать ваше диванно-экспертное 😄 мнение  по поводу тех или иных фишек (шучу, ваше мнение реально будет нужно, чтобы улучшить качество приложения).

А вот что это за приложение... Узнаете скоро..🫠
👍9👏2❤‍🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Я представил как он пишет код😂:
;counter final 32 =
😁3
Мне тут показали одну штуку - FVM. Может и вам будет полезно. Это менеджер версий для Flutter SDK🤖

Это софт без графического интерфейса. Просто устанавливаешь по инструкции через терминал и там же можешь с ним взаимодейстовать (команды быстро запоминаются). FVM позволяет быстро скачать на ПК нужную версию Flutter SDK (или удалить), установить его в проект, посмотреть список уже скачанных версий и т.п.

Я обычно вручную менял пути до нужной версии SDK в файле "settings.json" в VS Code в зависимости от проекта🤷‍♂️ А так вроде круче😁

Updated:
тут в комментах👇 подсказали ещё один менеджер версий. По описанию - это все тоже самое, что и FVM, но ещё и + графический интерфейс.
Ссылка: https://github.com/fluttertools/sidekick

Updated ещё раз:
Это обёртка над FVM🙃
👍1
Много букаф получилось, но ладно...

Вы задумывались о том, как работают стандартные иконки во Flutter? Неужели нет? И вы считаете себя хорошими Flutter разработчиками после этого? Я тоже нет, кстати. Дыы🤷

В своих личных проектах всегда юзал пакет flutter_svg для векторной графики. И даже не думал, как обстоят дела со стандартным классом IconData.
Столкнулся с этим в рабочем проекте, где для отображение тех иконок, которые нарисовал наш дизайнер используется тот же подход, что и в стандартных, а именно - это шрифты!

Для чего это нужно⁉️ Этот подход имеет один большой плюс:
Шрифты иконок занимают заметно меньше места в памяти в сравнении с отдельными SVG файлами, а также они менее ресурсоемки. Также, как и с SVG, можно манипулировать размерами и цветами таких иконок прямо в коде.

Когда их не надо использовать⁉️ Если вам нужна более сложная векторная графика с градиентом цветов и с множеством слоев и деталей, то лучше использовать SVG - ведь этот подходит включает в себя полноценный язык разметки и умеет создавать более сложную графику.

Как мне добавить иконки-шрифты в проект также, как это сделали разработчики фреймворка⁉️ Для этого есть специальные инструменты. К примеру, вы можете загрузить свои SVG иконки на этот сайт, и скачать уже готовый Dart файл с нужным кодом и файлом с шрифтами (не забудьте указать путь до файла с шрифтами в pubspec.yaml). Если возникли проблемы с отображением иконок, то попробуйте для начала переконвертировать линии в своем SVG в заливки, это упростит ваши иконки.

Немного про аргументы класса IconData❗️

🔵 codePoint – это целочисленное значение (int), которое представляет символ в наборе шрифтов. Оно указывает на конкретную иконку в шрифтовом файле.
🔵 fontFamily - cтрока (String), указывающая на семейство шрифтов, из которого иконка будет браться.
🔵 fontPackage - cтрока (String), указывающая пакет, в котором содержится семейство шрифтов.
🔵 matchTextDirection - bool значение, указывающее, следует ли изменять направление отображения иконки в зависимости от направления текста (полезно, когда используете иконку с текстом, и надо поменять направление текста внутри иконки, к примеру, когда пользователь переключатеся на арабский язык, где текст читается справа налево.

Можете посмотреть этот ролик на ютубе, если VPN есть🤖 (Дожили.. Надеюсь на сервера Одноклассников это не повлияет, а то останемся без главной соц сети мира).
👍91🔥1
Вчера с помощью своего великолепного ума (а также готовых решений на stack overflow🤫) и MethodChannel's, которые нужны для общения с нативной частью, написал для Android и IOS методы, которые сообщают о том, включен ли экран в данный момент или выключен. Потом до меня дошло, что подобная логика не совсем то, что нужно - а нужно (в рамках моей задачи) на самом деле следить за application lifecycle.

Для чайников: жизненный цикл приложения - это очередь состояний, которое проходит приложение с момента запуска и до момента закрытия. Грубо говоря: запуск, опциональный выход в бэкграунд, после выхода из бэкграунда - resume, а также закрытие приложения в конце (на самом деле это не все, я лишь перечислил так, чтоб можно было понять, что такое lifecycle).

Так вот, поняв, что мне нужно следить за этим, а не включен ли или выключен ли экран, я начал опять же с помощью своего великолепного ума (а также готовых решений на stack overflow🤫) реализовывать общение с нативкой по новому. И потратив на это несколько часов драгоценного времени (то был выходной) совершенно случайно наткнулся на дефолтный класс AppLifecycleListener в котором вся эта логика, и даже больше, уже реализована. Tкни на гиперссылку и прочитай подробнее в доках

Делюсь этим с вами в попытке сэкономить вам время, вдруг тоже не знали. 🫥
🔥74😁3
Всем привет! Меня давно нет, а вас стало только больше🔥 Спасибо огромное, что не только не отписываетесь, а наоборот присоединяетесь к каналу.
Придумывать причины по которым меня долго нет не буду, изначально был слишком занят, а когда был занят не слишком, то было тупо лень о чем-то писать, искать информацию, чтобы делать контент и т.п.

Но сейчас я в отпуске (правда он уже почти закончился) и пишу ТЗ для дизайнера, который будет делать дизайн для моего собственного (с братом) проекта!!! Будем пилить его вместе с моим братом, который по совместительству бэк-разработчик, в свободное от основной работы время.

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

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

Оставайтесь на связи! (не будьте как я😊😁)
👍4🔥31
Привет! Чем я сейчас занят:

❗️Все еще пишу ТЗ для дизайнера, который будет рисовать приложение в Figma. К слову, это не так-то просто как казалось изначально и занимает довольно много времени. Похоже придется просыпаться пораньше, чтобы этим позаниматься прежде чем приступать к задачам с основной работы.

Во время описания приложения обнаруживается много дыр и недочетов в изначальной задумке. Но это имеет и обратный эффект: мы это переигрываем в плюсы (Да-да! Это не баг, а фича). А также смотрим похожие приложения и забираем самое лучшее, что в них есть, отсекая все худшее.

❗️Переехал. Вот прямо сегодня. И вместо того, чтобы раскладывать вещи пишу этот пост🤷. Не знаю для чего эта инфа, но пусть будет (многа букаф).

❗️А еще есть ощущение, что в изучении английского языка у меня стагнация. Техническая документация читается легко, а вот с неформальным английским прослеживаются трудности. Раньше учил по Duolingo, но из-за однообразия задач мне стало скучно. Также я смотрю фильмы и сериалы на английском и включаю английские субтитры (однако понимаю где-то 50% того, что говорят, остальное как-то по контексту определяю).

Был бы очень рад, если поделитесь своими способами изучения. Расскажите в комментариях как вы любите это делать и используете ли для этого какие-то приложения или сервисы.
4👍2👏1
Hello🖖. Хочу рассказать про Flock (Спойлер: это тоже самое, что и Flutter).

Я кратко перескажу пост Мэта Кэррола (Директор Flock и по-моему, бывший разработчик в команде Flutter), но это не обойдется без моих комментариев😌

📍Они форкнули Flutter. Зачем?

Основная причина связана с тем, что некогда ранее, а именно в 2023 году, Goggle заморозили себе мозги количество сотрудников команды Flutter (то есть им в голову взбрело не брать новых сотрудников, а не в криокамеры поместить текущих, если вы об этом подумали). А в этом году, как вы уже помните истошные крики паникёров и глупые ухмылки kmp'шников, Google провели ряд сокращений, которые коснулись и официальной команды Flutter. В результате чего, по мнению данного персонажа (Мэта Кэррола) осталось около 50 сотрудников в Flutter Team.

Также утверждается, что в мире больше одного миллиона разработчиков, которые используют Flutter. И в результате несложных подсчётов можно догадаться, что 50 человек не успевают своевременно обслуживать запросы 1 миллиона разработчиков (исправлять баги, смотреть контрибьюты, создавать за них виджеты и вообще приложения целиком по тапу на одну кнопку и т.п.).

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

📍 Чем полезен Flock?

Так как это тот же Flutter, вы можете поставить его себе на ПК и использовать, возможно там уже будут решены какие-то проблемы, issue на которые висят давно, но которые именно для вашего случая остаются актуальными. Версиями также можно управлять посредством FVM (Flutter version manager - про него я уже рассказывал где-то выше).

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

📍 Как ты можешь быть полезен проекту Flock?

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

Еще - специалист с большим опытом может занять место лида по какому-нибудь направленияю. К примеру, сам Мэт Кэррол не только директор, но и Framework-lead (хз чем он занимается правда), а Джэсси Эзелл (тоже хз кто такой, наверное важный чел) - engine-lead (движком рулит короче).

❗️Ну вот, теперь у вас, как и у меня, есть представление о том, что такое Flock и зачем он нужен.
Если знаете больше или я где-то ошибся - непременно пишите в комментах.
Спасибо за внимание!
🔥61🥴1
Твоя трудовая книжка глазами HR, когда ты "вкатываешься" в it из другой профессии
😁7
На прошедшем FlutterInProduction показали вот такие участки кода. На мой взгляд нуу такое себе...😐
Описание класса с указанием аргументов прямо после названия норм (но пока еще не понятно какой там синтаксис дальше), а вот декораторы (первый скриншот с описанием MyButton) как будто вообще не то.
Вы что думаете?🤔
🔥5🥴3
Друзья, вас уже чуть больше 200! Это не огромное количество, конечно, но и не скажешь, что мало🥹
Спасибо, что подписываетесь, читаете, оставляете комментарии и реакции. Директ вообще завален вашими восторженными комментариями и просьбами отправить автограф, не успеваю отвечать всем. Хоть я и не часто выкладываю посты (думаю если это было бы иначе, вас было бы еще больше). Благодарен вам за это!

2024 год заканчивается и пора подводить итоги. В этом году произошло не мало изменений в моей жизни:
Я успел много раз переехать, устроился на крутейшую работу flutter разработчкиком в крупную компанию с офигенным коллективом, попробовал себя в роли ментора, запустил этот канал, познакомился с интересными и умными людьми, купил частный самолет, подружился с Илоном Маском, слетал на Венеру... Ладно, переборщил, переезжал я не так часто, а всего несколько раз😌

А следующий год планирую провести еще интереснее, о чем расскажу ниже👇

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

Идея невероятно банальна и совершенно ординарна - это агрегатор ресторанов!🍕🍣
Хоть таких приложений очень много, но не в моем маленьком городке. И хотелось бы занять эту нишу здесь, где заказывать необходимо через whatsapp, телегу или даже инсту. И кто знает - может быть оно распространится и далеко за пределы моего города и станет мировым брендом №1 и все мишленовские рестораны захотят со мной работать. Да, именно так оно и будет.

В общем и целом, как докончу писать ТЗ - расскажу вам более подробно о том, какие фичи в планах (думаю, что особенно интересным будет партнерское приложение, я планирую гибкий инструмент для настройки меню, акций и всяких прочих "ресторанских" дел). Буду делиться с вами о трудностях разработки и о проделанной работе.

Поздравляю вас с наступающим новым годом, и пусть он у всех будет успешным и продуктивным!🎉🎊

А как прошел ваш год? И какие цели поставили себе на следующий? 🎯🤔

P.S.: опять много букаф от меня...
👍6👏3🏆1🎅1
Если у вас, как и у меня, возникла необходимость закрыть экран macbook так, чтобы он не перешел в режим сна, и при этом вы не хотите ставить ноут на зарядку (а только так можно этого добиться с помощью стандартных настроек, ну или я слепой и не нашел) - то вы можете юзать в терминале такие команды:

sudo pmset disablesleep 1 - Отключить засыпание
sudo pmset disablesleep 0 - Включить засыпание
Ну а я пошел чуть дальше и чтоб не возиться с терминалом написал App для MacOS.
Важный момент: в app используются те же команды, а они выполняются через суперюзера (sudo который), и чтобы у вас Аntisleep работал корректно необходимо добавить в файл sudoers несколько строк (которые отключат запрашивание пароля именно для этих двух команд) и вот как это сделать:
❗️В терминале выполните команду: sudo visudo.
❗️Добавьте следующие 2 строки в конец файла:
ваш_пользователь ALL=(ALL) NOPASSWD: /usr/bin/pmset disablesleep 0
ваш_пользователь ALL=(ALL) NOPASSWD: /usr/bin/pmset disablesleep 1
("ваш_пользователь" поменяйте на имя вашего пользователя).
❗️Сохранить изменения (Нажать Esc и выполнить :w)
❗️Выйти (Выполнить :x).

Готово!
🔥5👍3