TGViewer
Channel Public Channel
Сёрф Flutter-разработка

Сёрф Flutter-разработка

@surf_flutter

Комьюнити Flutter-разработчиков Сёрф.

📚 Делимся полезными материалами и обучаем стажёров

💬 Чат → t.me/+HL9Xac3ChFhmMmZi

🧑🏻‍💻 Вакансии: career.surf.ru
📲 По вопросам @SurfAskBot
Subscribers
3.2K
Photos
762
Videos
56
Links
279

Showing posts older than #199 · Back to latest

Older Posts 9 shown
Post #198 1.43K
Один из спикеров Surf Flutter Tbilisi Meetup Марк напоминает о мероприятии! Все подробности и регистрация — по ссылке.
Post #197 1.36K

This post (sticker, poll or similar) has no web preview. Open in Telegram

  • 👍 12
  • ❤ 5
  • 🔥 2
Post #195 1.2K

Forwarded from Сёрф Технологии

(барабанная дробь) 🥁 Объявляем даты летней школы!

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

🤟 Лекции и мастер-классы по направлениям разработки, аналитики, проджект-менеджмента и тестирования;
🤟 Преподаватели — опытные Сёрферы и менторы наших стажёров и джунов;
🤟 Чатики, где обмениваются опытом и нетворкают;
🤟 Возможность закрыть практику в вузе, получить сертификат и проект в портфолио;
🤟 Из бонусов: мемы, живое общение, хорошее настроение.

🏆 Вдобавок ко всему, лучшие участники могут стать частью команды Surf!

Ждём всех, кому интересны IT и мобильная разработка. Выбирай направление и регистрируйся!

#мероприятия
  • 🔥 9
  • 🤩 3
  • ❤ 1
Post #189 1.59K
Что такое typedef

typedef — сокращение от type definition или «определение типа».

В документации используется понятие «type alias» — «псевдоним типа», которое ближе к сути. По факту мы просто создаем псевдоним (синоним) для существующего типа данных или функции с целью повышения читаемости кода (иногда эти самые типы могут быть очень сложные или ни о чем не говорящие). Это достаточно старая штука и само ключевое слово typedef также используется в C/C++.

Пример для псевдонимов типов:

typedef SuggestionsState = ListenableState<EntityState<List<ProductEntity>>>;

typedef RequestBody<T> = Map<String, Map<String, T>>;

Кстати, возможность сделать так, как указано выше, появилась только два года назад в версии 2.13. Раньше typedef можно было использовать только для функций. А до версии 1.24 вы обязаны были создать typedef, чтоб передавать функцию, например, как параметр.

Надо еще сказать, что псевдонимы для типов данных используются не часто, чаще можно встретить для функций, вроде таких:

typedef DataWidgetBuilder<T> = Widget Function(BuildContext context, T data);

typedef ColorChangeCallback = void Function(Color color);
  • 👍 20
  • ⚡ 6
  • ❤ 1
  • 🔥 1
Post #184 2.3K
Приглашаем на митап с Yandex Go и Akvelon 🙋

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

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

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

#мероприятия
  • 🔥 21
  • ❤ 3
  • 👏 2
  • 🤣 1
Post #182 1.7K
Dart 3: что нового

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

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

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

#экспертный
Хабр Dart 3 на практике: что принесёт нам мажорное обновление языка В декабре у Flutter Dev Podcast вышел выпуск про синтаксический сахар. Мы обсуждали будущее Dart, новые фичи, которые были в планах. Выпуск оказался пророческим: всё, о чём мы говорили, окажется в...
  • 🔥 20
  • 👍 3
  • 👏 3
Post #179 1.7K
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
  • 👍 17
  • ❤ 2
  • 🔥 2
Post #174 1.6K
Передача параметра в метод: по ссылке или по значению?

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

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

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
  • 🔥 8
  • ❤ 6
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →