Можете официально считать это фишкой канала: когда мне лень некогда писать полезные посты, я просто прошу ChatGPT сгенерить какую-нибудь дичь на тему флаттера.
На этот раз всратые советы по написанию кода:
☝️ Переменные, объявленные внутри StatefulWidget, должны быть объявлены с приставкой "внутри_".
☝️ Если вы хотите использовать async/await в Flutter, то вы должны совершить жертвоприношение в виде некоторого количества капель крови каждый раз, когда используете эту конструкцию.
☝️ Никогда не делайте бэкапы своего кода на Dart и Flutter. Это займет слишком много места на вашем жестком диске, а вам все равно не пригодится.
☝️ Если вам нужно протестировать свой код на Flutter, сделайте это на живом питоне. Никаких виртуальных машин и эмуляторов - только настоящий змей.
☝️ Для того, чтобы гарантировать эффективность вашего кода, каждый аргумент функции должен иметь уникальный идентификатор, который был сгенерирован на основе вашего хронотипа.
☝️ Если ты пишешь на Dart, то всегда начинай свой код со слов "import 'dart:math';", чтобы дать своей программе более математический характер.
☝️ Если ты пишешь на Dart, то всегда используй const, даже когда это не имеет смысла, чтобы показать свое уважение к памяти и оптимизации.
А ещё завтра выступаю на Стачке в Ульяновске, так что если вы внезапно тоже там будете — ловите в местах, где базарят за флаттер.
На этот раз всратые советы по написанию кода:
А ещё завтра выступаю на Стачке в Ульяновске, так что если вы внезапно тоже там будете — ловите в местах, где базарят за флаттер.
Please open Telegram to view this post
VIEW IN TELEGRAM
😁13🦄6🔥4🌭2✍1💩1
На Стачке был круглый стол, на котором обсуждали тренды в мобильной разработке, в том числе и кроссплатформу.
Среди участников были и ребята из аутсорс компаний (в частности Agima и MadBrains). И они в один голос сказали, что сейчас новым заказчикам уже не нужно продавать флаттер — они уже сами всё почитали, изучили, и сами приходят с запросом “давайте нам ваш флаттер”.
Для меня это стало откровением — я думал, что в заказной разработке просвещение заказчиков про флаттер всё ещё требует некоторого усилия, а оказывается уже всё продано — бери и делай.
Плюс звучали тоже любопытные числа, что штат Flutter разработчиков за последний год (вроде бы) вырос на 50%, в то время как мобильных — на 10-15%.
Так что можете пересказывать это flutter-скептикам вокруг вас, если таковые имеются — а то они всё проспят!🥱
Среди участников были и ребята из аутсорс компаний (в частности Agima и MadBrains). И они в один голос сказали, что сейчас новым заказчикам уже не нужно продавать флаттер — они уже сами всё почитали, изучили, и сами приходят с запросом “давайте нам ваш флаттер”.
Для меня это стало откровением — я думал, что в заказной разработке просвещение заказчиков про флаттер всё ещё требует некоторого усилия, а оказывается уже всё продано — бери и делай.
Плюс звучали тоже любопытные числа, что штат Flutter разработчиков за последний год (вроде бы) вырос на 50%, в то время как мобильных — на 10-15%.
Так что можете пересказывать это flutter-скептикам вокруг вас, если таковые имеются — а то они всё проспят!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥10💯3😱1😈1😴1
Ну чо, почалось, погнали бустить канал!
Для этого нужно обновить телегу — и тогда сможете тыкнуть по ссылке и респектнуть каналу, а за это я смогу постить тут сториз💅
Для этого нужно обновить телегу — и тогда сможете тыкнуть по ссылке и респектнуть каналу, а за это я смогу постить тут сториз
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegram
Flutter Bro
Проголосуйте за канал, чтобы он получил больше возможностей.
💅10❤2👎2⚡1🔥1😁1
Андроидеры тут? Как вам идея Dagger 2, но на Dart?
С приятным удивлением узнал, что в Яндексе есть и затаившиеся дарт/флаттер-разработчики, которые хоть и работают в другом стеке, но в свободное время и для дарта что-то поделывают.
Как раз на прошлой неделе один из таких коллег-разработчиков показывал свой пакет: jugger.
Честно, сам пока не добрался попробовать, только доку почитал — ну это реально Dagger, круто. Так что если у вас есть большое и теплое чувство к андроидному DI, то может быть jugger — это кандидат на ваше сердечко. Ещё есть статья на хабре от автора.
И раз уж такая песня, то давайте-ка обсудим: какие (можно несколько) способы связывать зависимости в проекте вам нравятся больше всего?
С приятным удивлением узнал, что в Яндексе есть и затаившиеся дарт/флаттер-разработчики, которые хоть и работают в другом стеке, но в свободное время и для дарта что-то поделывают.
Как раз на прошлой неделе один из таких коллег-разработчиков показывал свой пакет: jugger.
Честно, сам пока не добрался попробовать, только доку почитал — ну это реально Dagger, круто. Так что если у вас есть большое и теплое чувство к андроидному DI, то может быть jugger — это кандидат на ваше сердечко. Ещё есть статья на хабре от автора.
И раз уж такая песня, то давайте-ка обсудим: какие (можно несколько) способы связывать зависимости в проекте вам нравятся больше всего?
👍4🔥3👌2🤷♂1
Мои любимые способы связывать зависимости во Flutter
Anonymous Poll
5%
GetX
19%
GetIt
26%
GetIt + Injectable
26%
Provider
26%
Riverpod
17%
Просто класс с полями-зависимостями
8%
Синглтоны
2%
jugger
17%
Любой, главное чтобы проект был душевный
6%
Всё это хайп, я пользуюсь андеграундными решениями
Заглянул тут случайно в один из самых первых проектов, которые писал на флаттере, и увидел там ошибку, от которой лучше постараться избавиться как можно раньше. Я там написал абстрактный виджет, а потом от него отнаследовался!
"Composition over inheritance" (композиция вместо наследования). Во флаттере это не просто технически более гибкое решение — это своего рода философия, которая лежит в основе всего фреймворка.
Как избежать ошибки? Ну, собственно, не делать как делал я:
1. Не писать виджетов с модификатором abstract
2. Не делать extends ни от каких виджетов, кроме базовых Stateful/Stateless
У этих правил есть несколько исключений, но в подавляющем большинстве случаев они не нужны. Когда-нибудь напишу про них отдельно.
Если нужны детали и причины, то вот несколько ссылочек:
1. Про композицию в доке флаттера
2. Кусочек из видео 6-летней давности про эту философию
3. Можно загуглить фразу "Composition over inheritance", там много материалов помимо флаттера
P.S. Я хоть и немного загружен в последнее время, но про канал не забываю, и уже есть несколько черновиков, о чём бы ещё хотел рассказать — так что не теряйте.
"Composition over inheritance" (композиция вместо наследования). Во флаттере это не просто технически более гибкое решение — это своего рода философия, которая лежит в основе всего фреймворка.
Как избежать ошибки? Ну, собственно, не делать как делал я:
1. Не писать виджетов с модификатором abstract
2. Не делать extends ни от каких виджетов, кроме базовых Stateful/Stateless
У этих правил есть несколько исключений, но в подавляющем большинстве случаев они не нужны. Когда-нибудь напишу про них отдельно.
Если нужны детали и причины, то вот несколько ссылочек:
1. Про композицию в доке флаттера
2. Кусочек из видео 6-летней давности про эту философию
3. Можно загуглить фразу "Composition over inheritance", там много материалов помимо флаттера
P.S. Я хоть и немного загружен в последнее время, но про канал не забываю, и уже есть несколько черновиков, о чём бы ещё хотел рассказать — так что не теряйте.
👍16❤5🔥4😈2💩1
Ну всё, теперь заживем! Завезли "non-null promotion for private final fields".
Теперь по порядку: дропнулся Flutter 3.16, а вместе с ним и Dart 3.2.
И помимо кучи прочих крутых штук, полечили старую боль, от которой у всех рано или поздно припекало: даже если ваше поле final и вы проверили его на non-null, то ниже дарт всё равно требовал проверять опять 🗿 И приходилось извращаться и присваивать это final-поле в локальное final-значение, и дальше работать с ним — только тогда тот самый non-null promotion начинал работать.
Но если у вас вдруг припекает не только от final-полей, но и от var-полей, которые не умеют в non-null promotion, то придется вас разочаровать — var так промоутить нельзя: вот gist с примером, а вот такой же dartpad, чтобы потыкать.
Теперь по порядку: дропнулся Flutter 3.16, а вместе с ним и Dart 3.2.
И помимо кучи прочих крутых штук, полечили старую боль, от которой у всех рано или поздно припекало: даже если ваше поле final и вы проверили его на non-null, то ниже дарт всё равно требовал проверять опять 🗿 И приходилось извращаться и присваивать это final-поле в локальное final-значение, и дальше работать с ним — только тогда тот самый non-null promotion начинал работать.
class A {
final int? _nullableField;
const A(this._nullableField);
check() {
if (_nullableField == null) {
return;
}
// Тут _nullableField уже никогда не будет null,
// но в версиях ниже 3.2 всё равно будет ошибка компиляции.
int nonNullVar = _nullableField;
}
}
Но если у вас вдруг припекает не только от final-полей, но и от var-полей, которые не умеют в non-null promotion, то придется вас разочаровать — var так промоутить нельзя: вот gist с примером, а вот такой же dartpad, чтобы потыкать.
🍾17🎉3❤2👍2💩1
Flutter Bro
Универсальный ответ на вопросы "С чего начать?" и "Как систематизировать знания?": плейлист с лекциями по Flutter от Яндекса. Это сборник из лекций со Школ Мобильной Разработки 2021 и 2022 годов. Лекции сгруппированы по темам и по порядку усложнения. В части…
Прошлый пин с яндексовыми материалами для погружения во Flutter немного устарел, поэтому вот обновление, чтобы всегда было под рукой.
Flutter Handbook — текстовый учебник на базе Академии Яндекса
Школа Мобильной Разработки 2023 — полный видео-курс из открытого лектория.
Школа Мобильной Разработки 2021-2022 — публичная часть лектория прошлых лет.
Читайте и смотрите сами, советуйте друзьям☕️
Flutter Handbook — текстовый учебник на базе Академии Яндекса
Школа Мобильной Разработки 2023 — полный видео-курс из открытого лектория.
Школа Мобильной Разработки 2021-2022 — публичная часть лектория прошлых лет.
Читайте и смотрите сами, советуйте друзьям
Please open Telegram to view this post
VIEW IN TELEGRAM
❤19🔥4✍2👍2💩1👌1💯1🤝1 1
Flutter Bro pinned «Прошлый пин с яндексовыми материалами для погружения во Flutter немного устарел, поэтому вот обновление, чтобы всегда было под рукой. Flutter Handbook — текстовый учебник на базе Академии Яндекса Школа Мобильной Разработки 2023 — полный видео-курс из открытого…»
Сегодня одним постом аж два анонса!
Дебаты Flutter vs Kotlin Multiplatform
5 декабря (т.е. завтра), в 19:00 по Москве, на конференции YaTalks, в прямом эфире будут проходить дебаты между двумя хайповейшими кроссплатформенными технологиями. Выступать на стороне флаттера будут небезызвестные Гена Евстратов (Яндекс Про) и Женя Сатуров (Surf, Flutter Dev Podcast).
Независимо от результатов, это будет легендарно! Поэтому ставьте напоминалку в календарь.
Опрос по архитектурным подходам во Flutter
Думаю, не мне одному было интересно посмотреть на распределение интереса к разным подходам связывания зависимостей. Поэтому я решил пойти дальше и в целом собрать статистику по таким основополагающим темам как state-management, связывание зависимостей, работа с UI, бизнес-логика, структура проекта и т.д. Всех приглашаю проходить опрос и распространять среди всех, кто интересуется флаттером и кому есть что сказать на эту тему!
Через некоторое время я саккумулирую получившиеся результаты и замучу какую-нибудь классную инфографику — и все мы станем чуть лучше понимать друг друга: какие инструменты нам ближе, а какие вызывают больше всего противоречий.
Надеюсь, анонсы вам понравились, спасибо что читаете и вовлекаетесь в движухи! ❤️
Дебаты Flutter vs Kotlin Multiplatform
5 декабря (т.е. завтра), в 19:00 по Москве, на конференции YaTalks, в прямом эфире будут проходить дебаты между двумя хайповейшими кроссплатформенными технологиями. Выступать на стороне флаттера будут небезызвестные Гена Евстратов (Яндекс Про) и Женя Сатуров (Surf, Flutter Dev Podcast).
Независимо от результатов, это будет легендарно! Поэтому ставьте напоминалку в календарь.
Опрос по архитектурным подходам во Flutter
Думаю, не мне одному было интересно посмотреть на распределение интереса к разным подходам связывания зависимостей. Поэтому я решил пойти дальше и в целом собрать статистику по таким основополагающим темам как state-management, связывание зависимостей, работа с UI, бизнес-логика, структура проекта и т.д. Всех приглашаю проходить опрос и распространять среди всех, кто интересуется флаттером и кому есть что сказать на эту тему!
Через некоторое время я саккумулирую получившиеся результаты и замучу какую-нибудь классную инфографику — и все мы станем чуть лучше понимать друг друга: какие инструменты нам ближе, а какие вызывают больше всего противоречий.
Надеюсь, анонсы вам понравились, спасибо что читаете и вовлекаетесь в движухи! ❤️
Flutter Bro
Сегодня одним постом аж два анонса! Дебаты Flutter vs Kotlin Multiplatform 5 декабря (т.е. завтра), в 19:00 по Москве, на конференции YaTalks, в прямом эфире будут проходить дебаты между двумя хайповейшими кроссплатформенными технологиями. Выступать на…
Если не смогли посмотреть дебаты Flutter vs KMP — уже появилась запись. Крутой формат на давно зревшую тему, получилось живо и напряженно.
Выиграл Flutter со счетом 75% к 25%. Так что смотрите запись и запоминайте аргументы на случай важных переговоров с коллегами.
И, раз уж эти два инфоповода у меня так связались, то ещё раз напоминаю про архитектурный опрос — залетайте, если ещё не проходили! А если уже проходили — а такие точно были, и вас не мало, — моя искренняя благодарность вам☺️
И, раз уж эти два инфоповода у меня так связались, то ещё раз напоминаю про архитектурный опрос — залетайте, если ещё не проходили! А если уже проходили — а такие точно были, и вас не мало, — моя искренняя благодарность вам
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Кросс-платформа будущего: Flutter или KMP / Дебаты спикеров из Контура, Яндекс Go, Surf, Effective
Flutter или KMP — что лучше? За какой кросс-платформенной технологией будущее? Вместе искали ответ на этот вопрос в формате дебатов.
Позиции Flutter защищали:
— Геннадий Евстратов, руководитель мобильной разработки Яндекс Про, Яндекс Go
— Евгений Сатуров…
Позиции Flutter защищали:
— Геннадий Евстратов, руководитель мобильной разработки Яндекс Про, Яндекс Go
— Евгений Сатуров…
Флаттер поддерживает смешанную реальность! 🤔
Вот, пожалуйста, хоть дефолтный счётчик, хоть огромный (во всех смыслах) Яндекс Про — на Quest 3 все из коробки завелось.
Я начинал пользоваться VR ещё со времён HTC Vive, сейчас решил вернуться и посмотреть на новый виток технологии, и пока у меня впечатление такое: почти 5 лет прошло, а самое кайфовое развлечение всё то же —рубить кубы в Beat Saber ! 💃
Но Mixed Reality ощущается, конечно, футуристично. Думаю, что рано или поздно шлем скукожится до размеров относительно удобных очков, и мы будем жить как в этом видео. С его публикации прошло семь лет и теперь можно так же пальцами тыкаться в воздух.
Вот, пожалуйста, хоть дефолтный счётчик, хоть огромный (во всех смыслах) Яндекс Про — на Quest 3 все из коробки завелось.
Я начинал пользоваться VR ещё со времён HTC Vive, сейчас решил вернуться и посмотреть на новый виток технологии, и пока у меня впечатление такое: почти 5 лет прошло, а самое кайфовое развлечение всё то же —
Но Mixed Reality ощущается, конечно, футуристично. Думаю, что рано или поздно шлем скукожится до размеров относительно удобных очков, и мы будем жить как в этом видео. С его публикации прошло семь лет и теперь можно так же пальцами тыкаться в воздух.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
31 декабря — очень сентиментальный день, поэтому я просто хочу сказать вам спасибо!
Уверен, что и нас всех, и объединивший нас Flutter, ждёт интересное и счастливое будущее. И мы в нём продолжим вдохновлять друг друга на новые движухи🦮
Поздравляю с наступающим Новым годом!🍾
Уверен, что и нас всех, и объединивший нас Flutter, ждёт интересное и счастливое будущее. И мы в нём продолжим вдохновлять друг друга на новые движухи
Поздравляю с наступающим Новым годом!
Please open Telegram to view this post
VIEW IN TELEGRAM
🎄41 7🍾4 4 3👾1
А вот и предстоящая движуха: интенсив по мобильной разработке в Сириусе! Две недели в конце марта, два параллельных трека: iOS и, конечно же, Flutter.
Весь интенсив, каждый день, мы будем встречаться оффлайн: разбираться с мобильной разработкой и делать проекты. А ещё в Сириусе в это время очень приятная погодка и примерно 0 туристов, потому что межсезонье.
Ну и не устану повторять, что самое крутое в таких активностях — это люди. И нет, даже не менторы, а как раз наоборот, сами студенты! Все на одной волне, все с горящими глазами и идеями, все готовы и работать с кайфом, и отдыхать с кайфом.
Так что если вы студент вуза(наверное это единственный минус программы — она только для студентов) и хотите на интенсив, то бегом подавать заявку, пока приём не закончился.
PS: Фотка с прошлогоднего интенсива✨
PPS: Кто уже участвовал в любой яндексовой образовательной штуке — ставьте🎓 , будем знать, что вы среди нас.
Весь интенсив, каждый день, мы будем встречаться оффлайн: разбираться с мобильной разработкой и делать проекты. А ещё в Сириусе в это время очень приятная погодка и примерно 0 туристов, потому что межсезонье.
Ну и не устану повторять, что самое крутое в таких активностях — это люди. И нет, даже не менторы, а как раз наоборот, сами студенты! Все на одной волне, все с горящими глазами и идеями, все готовы и работать с кайфом, и отдыхать с кайфом.
Так что если вы студент вуза
PS: Фотка с прошлогоднего интенсива
PPS: Кто уже участвовал в любой яндексовой образовательной штуке — ставьте
Please open Telegram to view this post
VIEW IN TELEGRAM
AI-сообщество вчера засуетилось — OpenAI запустили магазин GPT-ботов (нужен VPN и подписка 😬 ) .
Своих ботов в платной версии можно было создавать уже пару месяцев, так что я успел поэкспериментировать с ботом по флаттеру. И вот теперь стало можно не только создать своего, но и поискать чужих — ну и я решил посмотреть, сколько там уже наспавнилось флаттер-ботов.
Нашел 10 штук, не считая своего. Почти все боты — это советники, ещё есть генератор Dart-кода из фигмы. У всех спросил исходный промпт — все, кроме одного,(ему респект 😄 ) отрапортовали весь промпт целиком 🫡
Кажется уже пора запускать курс для вузов по промпт безопасности.
Зато добросердечность этих гптшек помогла убедиться, что у моего ботика вполне годный и продуманный исходный промпт — не зря я его кропотливо сам по кусочкам писал и дописывал, а не через конструктор ботов собирал.
Короче, если у вас есть платная подписка на ChatGPT — велком пробовать: FlutterBro.
Своих ботов в платной версии можно было создавать уже пару месяцев, так что я успел поэкспериментировать с ботом по флаттеру. И вот теперь стало можно не только создать своего, но и поискать чужих — ну и я решил посмотреть, сколько там уже наспавнилось флаттер-ботов.
Нашел 10 штук, не считая своего. Почти все боты — это советники, ещё есть генератор Dart-кода из фигмы. У всех спросил исходный промпт — все, кроме одного,
Кажется уже пора запускать курс для вузов по промпт безопасности.
Зато добросердечность этих гптшек помогла убедиться, что у моего ботика вполне годный и продуманный исходный промпт — не зря я его кропотливо сам по кусочкам писал и дописывал, а не через конструктор ботов собирал.
Короче, если у вас есть платная подписка на ChatGPT — велком пробовать: FlutterBro.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12👍4👾3 2
Ну и опросик: какой сервис генеративного ИИ используете?
Anonymous Poll
43%
Бесплатный ChatGPT 3.5
19%
Платный ChatGPT 4
15%
Бесплатный телеграм-бот/сайт-обертку над ChatGPT
2%
Платный телеграм-бот/сайт-обертку над ChatGPT
7%
YandexGPT! 😍
2%
Какой-то другой GPT (Gemini, Anthropic AI, etc)
4%
Не пользуюсь, но планирую начать с бесплатного
1%
Не пользуюсь, но планирую начать с платного
6%
Не пользуюсь и не планирую
👍5 3💩1
"Практически с боем курантов мы представляем наш последний выпуск в этом году. У микрофона: …" — тот выпуск Flutter Dev Podcast я слушал 26 декабря, в 2019 году. В нём рассказывали, что в Яндекс Такси есть команда, которая пишет на Flutter. Спустя два месяца я уже работал в этой команде 🌚
И уже почти 4 года души в ней не чаю. С тех пор она выросла из 6 человек в одну из крутейших и крупнейших Flutter-команд в России и, вероятно, в мире.
Так что Flutter Dev Podcast был для меня по истине судьбоносным. И тем приятнее теперь стать его гостем в выпуске про Flutter-обучение и образование!
Залетайте послушать, а ещё обязательно проходите опросик про то, как вы получаете информацию о Flutter, как учитесь и за какими командами следите.
И уже почти 4 года души в ней не чаю. С тех пор она выросла из 6 человек в одну из крутейших и крупнейших Flutter-команд в России и, вероятно, в мире.
Так что Flutter Dev Podcast был для меня по истине судьбоносным. И тем приятнее теперь стать его гостем в выпуске про Flutter-обучение и образование!
Залетайте послушать, а ещё обязательно проходите опросик про то, как вы получаете информацию о Flutter, как учитесь и за какими командами следите.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤16 8🔥6 2💩1 1
А вот и вторая часть подкаста! В ней много внимания уделили долгосрочному Flutter-образованию: с помощью ментора, на курсах и в вузах.
Вывод такой:
⚡️ До конца приёма заявок на Flutter-интенсив в Сириусе осталось меньше недели, так что, студенты — это тот самый дедлайн, когда уже пора! Потому что подача заявки включает в себя решение задач на несколько часов, так что лучше не затягивать.
Ну и если ещё не прошли опросик про источники информации о флаттере из первого выпуска — проходите🙈
Вывод такой:
Ну и если ещё не прошли опросик про источники информации о флаттере из первого выпуска — проходите
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegram
🍬 Flutter Dev Podcast — анонсы выпусков
#44 Как стать Flutter-разработчиком? Часть 2.
Возвращаемся со второй частью выпуска об образовании! В том же составе мы обсуждаем методы обучения, вооружившись которыми, вы значительно повышаете свои шансы совершить скачок в вашей карьере Flutter-разработчика.…
Возвращаемся со второй частью выпуска об образовании! В том же составе мы обсуждаем методы обучения, вооружившись которыми, вы значительно повышаете свои шансы совершить скачок в вашей карьере Flutter-разработчика.…
❤5🔥5 4👍2💩2
Мы тут собираем ламповый пирлаб для мобильных разработчиков прямо в офисе. Будем отдыхать от докладов, а вместо них поболтаем про кейсы, которые наши гости принесут на обсуждение, по трём направлениям: Android, iOS и, разумеется, Flutter. Ну и еда с напитками, конечно же, будут.
Проходить будет 15 февраля, оффлайн в Москве — записывайтесь, если есть возможность прийти.
Количество мест ограничено, поэтому будет отбор — в том числе и по предложенным кейсам, поэтому вспоминайте самые интересные ситуации и решения из вашей практики и пишите их в формочку на лендинге.
Проходить будет 15 февраля, оффлайн в Москве — записывайтесь, если есть возможность прийти.
Количество мест ограничено, поэтому будет отбор — в том числе и по предложенным кейсам, поэтому вспоминайте самые интересные ситуации и решения из вашей практики и пишите их в формочку на лендинге.
Mobile PeerLab #1
Камерная встреча для мобильных разработчиков, где каждый может предложить кейс для обсуждения
🔥13 10❤4👍1😢1💩1😭1