Surf Flutter Team – Telegram
Surf Flutter Team
3.13K subscribers
676 photos
54 videos
265 links
Комьюнити Flutter-разработчиков Surf.

🛠 Разработали решения для KFC, Росбанка и Medium Quality
📚 Делимся полезными материалами и обучаем стажёров

💬 Чат → https://news.1rj.ru/str/+aJbtJ4znXCBhOGIy

🧑🏻‍💻 Вакансии: career.surf.ru
📲 По вопросам @SurfAskBot
Download Telegram
Как прошёл Flutter Weekend Study Jam 🐦

8-9 апреля провели уже традиционный третий Flutter Study Jam. В субботу наши опытные инженеры делились знаниями в теоретической сессии (посмотреть лекции можно здесь), в воскресенье же состоялась практическая часть. У ребят было задание, которое они должны были выполнить за 10 часов.

Работы призёров и победителя:
🌐 Артём Баркалов
🌐 Максим Прозоров
🌐 Нуртлеу Шайзолла
🌐 Симон Бутенко
🌐 Максим Заречнев
🌐 Максим Яковлев
🥇 Олег Карачаев

Впечатления организаторов и участников узнай в карточках 👆

Ждём всех на следующих Study Jam’ах!
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥226👏5👍1
Коллеги организуют прямой эфир, присоединяйтесь 👍
Forwarded from Surf Mobile Team
Прямой эфир: что нового в Android и чем нам помогут нейросети 📱

Обсудим нововведения Android 14 и использование нейросетей в нативной разработке в прямом эфире! У микрофона:

— Алексей Рябков, Surf Android TeamLead
— Герман Прошунин, Surf Android Developer
— Максим Кругликов, Surf Android Developer
— Кирилл Розов, Tinkoff Staff Engineer, автор YouTube-канала Android Broadcast

📅 14 апреля, 17:00 по мск
📌 YouTube-канал «Surf Tech»

Ждём всех 😉
👍4
Как Flutter Team пилил стриминг 💻

В новой статье на Хабре Flutter-разработчик Тимур Тхаркахов рассказывает про наш стриминг на Flutter — проект The Hole. В процессе встретили немало проблем: недостаточная функциональность пакета видеоплеера, сложности с реализацией фичи картинка-в-картинке, специфические для платформ ошибки.

Были специфичные для Flutter баги. И были засады, которые специфичны для натива.

Читай статью по ссылке 👈🏻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20🔥7
Передача параметра в метод: по ссылке или по значению?

Недавно в командном чатике коснулись вопроса о способах передачи параметра в метод. И вот вам небольшая задачка.

Попробуйте определить вывод у такого на первый взгляд нехитрого кода:

class Test {
int val;

Test(this.val);
}

void main() {
int number = 0;
Test test = Test(0);

fn1(number, test);
print('N-$number V-${test.val}');

fn2(number, test);
print('N-$number V-${test.val}');
}

void fn1(int number, Test test) {
number = 1;
test.val = 1;
}

void fn2(int number, Test test) {
number = 2;
test = Test(2);
print('N-$number V-${test.val}');
}

Правильный ответ:
N-0 V-1
N-2 V-2
N-0 V-1

Ссылка из бонус-сектора карточек — статья Numbers in Dart.
👍17🔥86
Late нам друг или враг? ⚠️
Иногда — враг

Вместе с Sound null safety в 2021 году появилось новое ключевое слово late.

Что такое late

Согласно документации, его можно использовать для двух случаев:

1️⃣ Декларирование non-nullable переменной, которая обязательно (помните об этом ⚠️) должна быть инициализирована позже.

2️⃣ Ленивая, или lazy-инициализация переменных: она происходит только при первом обращении.

Немного подробнее про использовании late для lazy-инициализации

Lazy-инициализацию используют по двум причинам:

🔹 Когда нужен доступ к this для инициализации объекта. Например, для создания AnimationController нам нужно передать this в параметр vsync, т. к. контроллеру нужен TickerProvider. В этом случае мы вынуждены будем использовать late: по-другому никак.

🔹 Когда хотим оптимизировать ресурсы устройства через инициализацию только действительно нужных объектов. В этом случае использовать late необязательно, но очень желательно — а иногда даже необходимо.

Правда, тут есть нюансы. Подробнее на картинках 👆👆👆

➡️ Давайте представим: вы создаёте стрим и хотите сразу создать слушателя к нему.

Вроде бы все правильно и «по-взрослому», но… вы ничего не услышите 👂— переменная sub так и останется «late», она по-прежнему не инициализирована.

➡️ Чтобы исключить такую ситуацию, нужно определить подписку так, как на третьей картинке.

Well done! В таком виде всё будет работать. Хорошей практикой ещё будет сделать controller и sub приватными, если это возможно, но это уже тонкости.

👉 Живой пример на DartPad
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍172🔥2
Dart 3: что нового

В подкасте Flutter Dev Podcast мы пытались предсказать, что поменяется в языке. И выпуск оказался пророческим!

Flutter Engineering Manager в Surf Марк Абраменко рассказал, как новые фичи помогут на практике и как от этого изменится способ взаимодействия с языком.

👉 Смотреть, лайкать, комментировать — по ссылке.

#экспертный
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥20👍3👏3
Приглашаем на митап с Yandex Go и Akvelon 🙋

Surf Flutter Team ждут тебя на митапе в Грузии — ламповым комьюнити обсудим последние апдейты Dart, обменяемся опытом и круто проведём время.

📅 1 июня, 19:00
🏢 Тбилиси, ул. Шалва Нуцубидзе, 129
(10 минут от станции метро Важа-Пшавела)

Смотри программу митапа в карточках и регистрируйся по ссылке.

#мероприятия
🔥213👏2🤣1