Gubin_dev – Telegram
Gubin_dev
129 subscribers
49 photos
7 videos
5 files
33 links
Авторский канал, где публикаются новости о технологиях. В основном конечно Flutter <3

Мой тг: @webmadness
Download Telegram
Отсоединение первой ступени прошло успешно, затем произошла "Быстрая внеплановая разборка ракеты-носителя Starship" 😁

Ракета преодолела около 148км над землей. Международная авиационная организация (ФАИ) считает границей космоса 100км.

Это было потрясающе!
🔥2💋1
В эту субботу (25.11) прошла конференция DevFest Astrakhan.

Я счастлив, что удалось порадовать моих земляков докладом про особенности отрисовки UI на Flutter. В городе много молодых, умных и амбициозных ребят.

Надеюсь в ближайшее время появится запись доклада и я смогу ею поделиться с вами. А пока выкладываю ссылку на исходный код проекта (там же есть и презентация).

Напишу еще парочку разъясняющих постов по этому докладу)
👍3👏2💋1
Прозрачность во Флаттер

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

Сам по себе виджет Opacity вызывает операцию saveLayer (см операции skia). Эта операция занимает много времени в масштабе одного кадра и ее вызов происходит неочевидно. Говоря о примерах вызова saveLayer, можно привести накладывание шейдера, в некоторых случаях источником вызова может стать ClipRRect.

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

Ссылочка на официальную доку
💋1
This media is not supported in your browser
VIEW IN TELEGRAM
Малоизвестный инструмент отладки на Flutter

Skia debugger позволяет посмотреть как ваша страница рисовалась на экране шаг за шагом.

Для этого вам необходимо перейти на страницу, которую хотите отладить, перейти в консоль и написать команду

flutter screenshot --type=skia --vm-service-url=<vm-observatory-url>

vm-observatory-url вы можете увидеть когда запускаете приложение через консоль или когда переходите в devtools, в url-строке есть get параметр с этим адресом. Вот пример такой строки: http://127.0.0.1:49609/gYvhoIlPpbE=

Стоит отметить, что в skia debugger можно посмотреть операции, которые не отображаются в devtools
2🔥2💋1
Всех поздравляю, победил Флюттер

Ожидаемо, но нервишки в конце пошалили
🎉7
Итак, 100 задач на литкоде

Завтра будет алгоритмический собес. Очень переживаю, как обычно.

Я честно готовился, решал задачи и открыл для себя много нового.

👍 - верю, что собес пройдешь
🤡 - посмотрим, что будет, то будет
👍10🤡2🌚1
Разбор задачи AA1 с собеседования в Яндекс

Условие задачи:
Дан список неотрицательных целых чисел, повторяющихся элементов в списке нет. Нужно преобразовать его в строку, сворачивая соседние по числовому ряду числа в диапазоны.

Примеры:
[1,4,5,2,3,9,8,11,0] => "0-5,8-9,11"
[1,4,3,2] => "1-4"
[1,4] => "1,4"
[1,2] => "1-2"


1 решение:
Всего есть два решения (мне известных): в начале сортируем входной массив, затем идем по этому массиву, ищем разрывы и записываем их в строку (Память - O(1), время - O(N * log N));

2 решение:
Первым проходом записываем все числа в HashSet, затем берем случайным образом число из HashSet до тех пор, пока она не окажется пустой. Затем ищем крайнее число слева для нахождения исходного диапазона, затем идем вправо от этого числа, попутно удаляем найденные числа из HashSet (Память - O(N), время - O(N)), но есть нюанс, этот алгоритм не сортирует конечный результат, а лишь находит диапазоны.

А какое решение больше нравится вам?

1 решение - 🤡
2 решение - 😍
😍4🙊2👍1🙉1
Открывается набор на программу Сириуса и Яндекса

«Научно-практический интенсив по мобильной разработке»

Если вы уже какое-то время занимаетесь программированием и вам интересна мобильная разработка, это ваш шанс пройти насыщенный знаниями курс по ios или flutter.

Вас ждут 2 недели лекций и семинаров под руководством опытных разработчиков Яндекса.

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

Год назад я и сам проходил этот интенсив, атмосфера там бомбовая а ночное море завораживает)

Канал про технологии - @Gubin_dev

Ссылка - https://yandex.ru/yaintern/siriusmobile

😍 - подам заявку
🙈 - уже побывал
🤡 - я в своем познании настолько преисполнился
🤡5👍3🙊3😍2
Пара мыслей по поводу стейт менеджмента в Flutter

Мы пытаемся рассматривать bloc, riverpod и другие менеджеры состояний как место где можно писать бизнес-логику и хранить состояние.

Я считаю, что стоит строго отделить инструменты управления состоянием UI и состоянием системы.

Есть несколько аргументов:
- изменения состояния системы не обязательно будет затрагивать слой UI
- объекты bloc подвязываются к ЖЦ виджетов
- bloc включает в себя данные, необходимые для UI.

Из redux я вспонил понятие Global State. И кажется мы совсем забыли про него. А ведь это важная часть системы. Его недостатком в Flutter можно считать попытку позиционировать себя как Global State. НЕЛЬЗЯ ХРАНИТЬ ВСЕ ЯЙЦА В ОДНОЙ КОРЗИНЕ. Redux желал быть всеобъемлющим.

Надеюсь сформировать мысли по поводу того как должен выглядеть такой State Holder.

Пока такие термины: агрегат, транзакции, промежуточная консистентность состояния

Канал про технологии - @Gubin_dev
👍2😱21🔥1
Там Билайн на днях поделился своей архитектурой в статье

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

Мне конкретно не нравится, что они модифицируют классы виджетов для реализации DI. С другой стороны, интересное решение, чтобы не плодить вызовы одного объекта (например, локатора). Но почему бы тогда не использовать простой provider?

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

Канал про технологии - @Gubin_dev
👍31🔥1😱1
15 февраля сгонял на Mobile Peerlab от Яндекса

Было круто и атмосферно! Поболтали в тусовочно-домашнем формате. Обсудили флаттер в вебе, архитектуру (как без этого), поговорили про Backend-Driven UI. Ну и просто поболтали и обменились опытом.

Было несколько треков: flutter, android, ios.

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

А пока делюсь с вами фоточками

Подробнее можно почитать на сайте: https://dev.go.yandex/events/peer-lab
4🔥3💋2
Работа с rootBundle в Flutter

rootBundle позволяет подгружать файлы из ассетов, однако не все знают, что эта операция является синхронной и в devtools, на вкладке performance она отображается как AssetManager::GetAsMapping.

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

Кстати, есть интересный участок кода во flutter (можно увидеть на скрине или по ссылке) https://github.com/flutter/flutter/blob/master/packages/flutter/lib/src/services/asset_bundle.dart#L88

Получается, что в некоторых случаях даже лучше просто вычислить значение в изоляте?

А еще некоторые ассеты могут вызываться в worker thread’е)
https://github.com/flutter/engine/pull/6648
3🗿2🔥1🤔1