Дорогие друзья,
как вы помните, мы планировали провести Flutter Fest в ноябре 2021, но не смогли: бахнула очередная волна ковида, фест отложили до весны 2022. И вот, мы находимся здесь, в весне 2022. Ковид вроде бы отступил, но провести фест мы по-прежнему не можем — по понятным причинам.
Мы верим, что всё ещё будет и что мы обязательно встретимся на Flutter Fest.
✔️А пока мы оформили всем участникам возврат билетов по полной стоимости.
❗️Оформление возврата занимает примерно 10 дней с момента одобрения заявки. Срок получения денег участником зависит от выбранного им способа оплаты. Для оплаты банковской картой он составляет от 2 до 30 дней.
❓Если остались вопросы — @annatvil
как вы помните, мы планировали провести Flutter Fest в ноябре 2021, но не смогли: бахнула очередная волна ковида, фест отложили до весны 2022. И вот, мы находимся здесь, в весне 2022. Ковид вроде бы отступил, но провести фест мы по-прежнему не можем — по понятным причинам.
Мы верим, что всё ещё будет и что мы обязательно встретимся на Flutter Fest.
✔️А пока мы оформили всем участникам возврат билетов по полной стоимости.
❗️Оформление возврата занимает примерно 10 дней с момента одобрения заявки. Срок получения денег участником зависит от выбранного им способа оплаты. Для оплаты банковской картой он составляет от 2 до 30 дней.
❓Если остались вопросы — @annatvil
😢12
Forwarded from Surf Tech
Привет!
Достаём календари и ставим напоминание на завтра:
🗓6 апреля, 15:00, заходим на наш канал и смотрим прямую трансляцию Евгения Сатурова и Михаила Зотьева «Flutter для тех, кто решил начать».
Будем говорить:
🔹о том, как вообще нужно подходить к изучению новой для себя технологии,
🔹об ошибках, которые часто совершают новички.
🔹о том, как правильно готовиться к собеседованиям и какие самые распространённые ошибки на них совершают.
Ждём тебя! И рассказывай друзьям😉
Достаём календари и ставим напоминание на завтра:
🗓6 апреля, 15:00, заходим на наш канал и смотрим прямую трансляцию Евгения Сатурова и Михаила Зотьева «Flutter для тех, кто решил начать».
Будем говорить:
🔹о том, как вообще нужно подходить к изучению новой для себя технологии,
🔹об ошибках, которые часто совершают новички.
🔹о том, как правильно готовиться к собеседованиям и какие самые распространённые ошибки на них совершают.
Ждём тебя! И рассказывай друзьям😉
👍16❤3🥰1
Как сделать ретроспективы эффективными
Вы тоже сталкивались с тем, что технические ретро превращаются вбалаган обыкновенный ежедневный мит обо всём на свете?
Уже в эту среду в прямом эфире Flutter-шоу «Записки юного техлида» обсудим, как правильно проводить технические ретроспективы.
Наши Flutter-звёзды Михаил Зотьев, Женя Сатуров, Марк Абраменко расскажут:
👉 Как перестать мечтать об исправлении технических проблем проекта, а наконец взять и их исправить😎
👉 Как технические ретроспективы проводят в Surf (насколько вы видите по нашим крутым проектам, методика работает😉)
👉 Какие правила нужно соблюдать, чтобы встреча прошла максимально эффективно.
👉 Что должно происходит после ретроспективы (нажать на «Завершить конференцию» в зуме — это ещё не конец🤓).
Приходите — и ваши ретро станут ещё продуктивнее.
🗓 Когда: 27 апреля (среда) в 18:00 мск
📍 Где: стрим в телеграм-канале Surf Tech. Заходите в канал, в назначенное время в правом верхнем углу появится заметная кнопка Join или Вступить.
Вы тоже сталкивались с тем, что технические ретро превращаются в
Уже в эту среду в прямом эфире Flutter-шоу «Записки юного техлида» обсудим, как правильно проводить технические ретроспективы.
Наши Flutter-звёзды Михаил Зотьев, Женя Сатуров, Марк Абраменко расскажут:
👉 Как перестать мечтать об исправлении технических проблем проекта, а наконец взять и их исправить😎
👉 Как технические ретроспективы проводят в Surf (насколько вы видите по нашим крутым проектам, методика работает😉)
👉 Какие правила нужно соблюдать, чтобы встреча прошла максимально эффективно.
👉 Что должно происходит после ретроспективы (нажать на «Завершить конференцию» в зуме — это ещё не конец🤓).
Приходите — и ваши ретро станут ещё продуктивнее.
🗓 Когда: 27 апреля (среда) в 18:00 мск
📍 Где: стрим в телеграм-канале Surf Tech. Заходите в канал, в назначенное время в правом верхнем углу появится заметная кнопка Join или Вступить.
🔥5👏2👍1
❗️Мы поменяли площадку для Flutter-шоу «Записки юного техлида»
Сегодня в 18:00 мск проведём стрим на тему «Как сделать ретроспективы эффективными».
⛔️ Изначально мы планировали провести стрим в телеграме, но потестили и поняли, что он не подходит под формат шоу.
✅ Переносим стрим в Youtube.
👉 Новая ссылка на стрим https://www.youtube.com/watch?v=sshDRT6qzes
Во время стрима сможешь задавать вопросы в чате на ютюбе.
А после стрима перейдём в тг-канал Surf Tech и продолжим общение в формате видеочата.
Сегодня в 18:00 мск проведём стрим на тему «Как сделать ретроспективы эффективными».
⛔️ Изначально мы планировали провести стрим в телеграме, но потестили и поняли, что он не подходит под формат шоу.
✅ Переносим стрим в Youtube.
👉 Новая ссылка на стрим https://www.youtube.com/watch?v=sshDRT6qzes
Во время стрима сможешь задавать вопросы в чате на ютюбе.
А после стрима перейдём в тг-канал Surf Tech и продолжим общение в формате видеочата.
YouTube
Как сделать ретроспективы эффективными
В конце эфира проведем дискуссию в тг-канале Surf Tech https://news.1rj.ru/str/surf_tech
На эфире Михаил Зотьев, Женя Сатуров, Марк Абраменко расскажут:
— Как перестать мечтать об исправлении технических проблем проекта, а наконец взять и их исправить
— Как технические…
На эфире Михаил Зотьев, Женя Сатуров, Марк Абраменко расскажут:
— Как перестать мечтать об исправлении технических проблем проекта, а наконец взять и их исправить
— Как технические…
👍7❤2
Привет! 👋 Мы с новостями: решили плотно взяться за этот канал всей нашей Flutter-командой, чтобы принести вам максимум пользы и интересностей.
Для начала давайте познакомимся поближе. Расскажите о себе: какой у вас уровень? Как вы связаны с технологией Flutter? Поучаствуйте в опросе — он состоит из двух вопросов 👇👇👇 А подробности пишите в комментариях!
Для начала давайте познакомимся поближе. Расскажите о себе: какой у вас уровень? Как вы связаны с технологией Flutter? Поучаствуйте в опросе — он состоит из двух вопросов 👇👇👇 А подробности пишите в комментариях!
👍8❤3⚡1
Как вы связаны с Flutter?
Anonymous Poll
51%
Программист, программирую на Flutter на работе.
13%
Программист, пишу на Flutter пет-проекты.
10%
Программист, пишу на Flutter ВСЁ.
11%
Программист, пока присматриваюсь к технологии.
7%
Студент (напишите подробности в комментарии: чему учитесь, чего хотите, что интересно).
3%
Свой вариант (напишите в комментариях).
5%
Я просто посмотреть ответы.
Какой у вас уровень?
Anonymous Poll
13%
Стажёр
19%
Джун
34%
Миддл
15%
Сеньор
3%
Архитектор
1%
СТО
2%
Свой вариант (напишите в комментариях)
13%
Я просто посмотреть ответы
Как мы начали пользоваться Copilot, и что из этого вышло
Меня зовут Марк Абраменко, я Flutter Team Lead. В апреле 2022-го мы решились на эксперимент: внедрили Github Copilot в проектную Flutter-команду из 5 человек.
Copilot — это AI, который умеет дописывать код за человека, пользуясь гигантской базой открытых Github-проектов.
Мы повелись на рекламную уловку и изначально пытались пользоваться Copilot так, будто он должен помогать нам решать алгоритмические задачи, но очень быстро разочаровались.
Код, который он дописывает, имеет, мягко говоря, не уровень продакшена.
С момента начала эксперимента прошло уже 5 месяцев: за это время многие коллеги отказались от Copilot.
Но! Некоторые из нас, включая меня, продолжили им пользоваться. И в следующем посте я расскажу почему.
Меня зовут Марк Абраменко, я Flutter Team Lead. В апреле 2022-го мы решились на эксперимент: внедрили Github Copilot в проектную Flutter-команду из 5 человек.
Copilot — это AI, который умеет дописывать код за человека, пользуясь гигантской базой открытых Github-проектов.
Мы повелись на рекламную уловку и изначально пытались пользоваться Copilot так, будто он должен помогать нам решать алгоритмические задачи, но очень быстро разочаровались.
Код, который он дописывает, имеет, мягко говоря, не уровень продакшена.
С момента начала эксперимента прошло уже 5 месяцев: за это время многие коллеги отказались от Copilot.
Но! Некоторые из нас, включая меня, продолжили им пользоваться. И в следующем посте я расскажу почему.
👍15🔥2
Github Copilot — второй пилот. Но не ваш, а кодогенератора
Copilot находится где-то на уровне обычного кодогенератора типа json_serializable, freezed, injectable.
Преимущества становятся очевидны только когда отключаешь его и возвращается привычная рутина.
Когда Copilot действительно помогал
1️⃣ Рефакторинг и миграция
Впервые мы почувствовали его помощь, когда мигрировали с уже легаси surf_mwwm на Elementary. Copilot очень быстро осознал, как именно соотнести старые классы и зависимости к новым.
2️⃣ Рутина
Хорошо помогает в написании вещей, которые всегда бесят: part/part of, сериализаторы, компараторы, backing fields.
3️⃣ Работа с языком, который не знаете или знаете плохо
Лично мне Copilot помог, когда пришлось писать фикс на Objective-C. Я не пишу на нём постоянно: регулярно забываю синтаксис и специфические конструкции. Copilot подыгрывает, если намекнуть ему, что именно хочешь написать.
4️⃣ Написание тестов
Подробно описав тест-кейс на английском, вы поможете Copilot сгенерировать тест. В большинстве случаев он достаточно хорошо мокает, но иногда приходится немного дописывать руками.
5️⃣ Стабы и мок-данные
Генерировать стабы или мок-данные для тестов тоже очень приятно с помощью Copilot. Для модели пользователя, например, он может сгенерировать что-то более оригинальное, чем «Имя Фамилия».
Перед написанием этого поста я отказался от Копилота на 2 недели и не почувствовал той ломки, которую вы можете испытать от отключённого статического анализатора или подсветки кода. Отказ от Copilot, скорее, похож на отказ от сниппетов.
Copilot находится где-то на уровне обычного кодогенератора типа json_serializable, freezed, injectable.
Преимущества становятся очевидны только когда отключаешь его и возвращается привычная рутина.
Когда Copilot действительно помогал
1️⃣ Рефакторинг и миграция
Впервые мы почувствовали его помощь, когда мигрировали с уже легаси surf_mwwm на Elementary. Copilot очень быстро осознал, как именно соотнести старые классы и зависимости к новым.
2️⃣ Рутина
Хорошо помогает в написании вещей, которые всегда бесят: part/part of, сериализаторы, компараторы, backing fields.
3️⃣ Работа с языком, который не знаете или знаете плохо
Лично мне Copilot помог, когда пришлось писать фикс на Objective-C. Я не пишу на нём постоянно: регулярно забываю синтаксис и специфические конструкции. Copilot подыгрывает, если намекнуть ему, что именно хочешь написать.
4️⃣ Написание тестов
Подробно описав тест-кейс на английском, вы поможете Copilot сгенерировать тест. В большинстве случаев он достаточно хорошо мокает, но иногда приходится немного дописывать руками.
5️⃣ Стабы и мок-данные
Генерировать стабы или мок-данные для тестов тоже очень приятно с помощью Copilot. Для модели пользователя, например, он может сгенерировать что-то более оригинальное, чем «Имя Фамилия».
Перед написанием этого поста я отказался от Копилота на 2 недели и не почувствовал той ломки, которую вы можете испытать от отключённого статического анализатора или подсветки кода. Отказ от Copilot, скорее, похож на отказ от сниппетов.
👍22
Copilot: выводы
С самого начала у нас были ощущения от него, как от первых версий AI для генерации картинок по описанию — это прикольная игрушка. Так и было раньше, но сейчас в DALL-E 2 можно генерировать картинки для использования в статьях, для обложек журналов или анимации.
Надеемся, что когда-нибудь и Copilot дорастёт до версии, когда он станет незаменимым инструментом для программиста.
Когда мы начинали наш эксперимент, Copilot находился на стадии закрытого тестирования и был абсолютно бесплатен. Сейчас он открыт, но доступен по подписке за деньги, которые вы обычно платите в месяц за интернет.
Кажется, что это не такая бесполезная подписка, как Telegram Premium, но решайте, стоит ли платить за кодогенератор такие деньги.
С самого начала у нас были ощущения от него, как от первых версий AI для генерации картинок по описанию — это прикольная игрушка. Так и было раньше, но сейчас в DALL-E 2 можно генерировать картинки для использования в статьях, для обложек журналов или анимации.
Надеемся, что когда-нибудь и Copilot дорастёт до версии, когда он станет незаменимым инструментом для программиста.
Когда мы начинали наш эксперимент, Copilot находился на стадии закрытого тестирования и был абсолютно бесплатен. Сейчас он открыт, но доступен по подписке за деньги, которые вы обычно платите в месяц за интернет.
Кажется, что это не такая бесполезная подписка, как Telegram Premium, но решайте, стоит ли платить за кодогенератор такие деньги.
👍14🔥3⚡1👏1
Расскажите, какой контент вы бы хотели видеть в этом канале? Что вам интересно?
Anonymous Poll
50%
Разбор обновлений Flutter
73%
Фишки, неочевидности, советы
60%
Полезные подборки материалов по Flutter
64%
Личный опыт флаттеристов Surf
25%
Анонсы событий
19%
Анонсы статей
33%
Вакансии
28%
Видеоразборы
21%
Онлайн-митапы и голосовые болталки
Обёртки над необычными модулями? Это не так сложно, как кажется. Часть 1
Привет! Меня зовут Алексей Земцов, я Flutter-разработчик.
Расскажу про недавний опыт подключения к проекту довольно специфичного модуля сканера штрихкодов.
Сканеры в проекте представлены в двух вариантах:
1️⃣ Встроенный сканер в Android-смартфоны Urovo.
2️⃣ В формате чехла для iPhone и iPod — Linea Pro.
Несмотря на кажущуюся необычность задачи, в итоге всё свелось к:
🔹 Подключению к проекту нативных библиотек от производителей устройств.
🔹 Имплементации нужных методов через через platform-channel.
🔹 Объединению их в общий сервис под единый интерфейс.
В следующих постах расскажу обо всём подробнее.
Привет! Меня зовут Алексей Земцов, я Flutter-разработчик.
Расскажу про недавний опыт подключения к проекту довольно специфичного модуля сканера штрихкодов.
Сканеры в проекте представлены в двух вариантах:
1️⃣ Встроенный сканер в Android-смартфоны Urovo.
2️⃣ В формате чехла для iPhone и iPod — Linea Pro.
Несмотря на кажущуюся необычность задачи, в итоге всё свелось к:
🔹 Подключению к проекту нативных библиотек от производителей устройств.
🔹 Имплементации нужных методов через через platform-channel.
🔹 Объединению их в общий сервис под единый интерфейс.
В следующих постах расскажу обо всём подробнее.
🔥20👍3
Обёртки над необычными модулями: часть 2. Подключение к проекту нативных библиотек от производителей устройств
Подключить нативную библиотеку к проекту можно как минимум двумя способами:
1. «В лоб»: работая с папками /ios/ и /android/ в корне проекта.
2. Создать Flutter-плагин и подключить его к проекту через pubspec.yaml. Это удобно: модуль гораздо проще шарить между проектами и даже можно выложить на pub.dev.
Если это ваш первый опыт, лучше идти от первого пункта ко второму, экспериментируя на пустом проекте.
Подключение библиотеки к пустому Flutter-проекту
Библиотеки подключаются по инструкциям от производителя. Их можно найти на официальных сайтах и в readme примеров на github.
👉 В случае со сканером штрих-кодов подключить
👉 Для iOS небольшое расхождение с инструкцией возникло: на вкладке проекта
Решение оказалось простым: открыть этот
Вынесение библиотеки в нативный плагин
После экспериментов с пустыми проектами и привязкой к нему методов библиотек через method-channel пришло время выносить изменения в отдельный плагин.
Как создать плагин, описывать не буду. На официальном сайте есть отличная статья на эту тему.
Как видно из статьи, обычно объединение двух платформ под единый интерфейс происходит на этом этапе, но бывают исключения. В нашем случае рациональней оказалось разбить обе платформы на два пакета.
Осложняло отладку кода то, что анализатор Android Studio не хотел воспринимать плагин как целый проект и при открытии Kotlin/Java-файла с расписанными method-channel отказывался подсвечивать ошибки.
Решение оказалось тривиальным: нужно открывать папку android не в плагине `/название_плагина/android/`, а в примере его использования `/название_плагина/example/android/`. В таком случае Android Studio отображает две папки Android, в одной из которых лежат файлы нашего пакета.
Подключить нативную библиотеку к проекту можно как минимум двумя способами:
1. «В лоб»: работая с папками /ios/ и /android/ в корне проекта.
2. Создать Flutter-плагин и подключить его к проекту через pubspec.yaml. Это удобно: модуль гораздо проще шарить между проектами и даже можно выложить на pub.dev.
Если это ваш первый опыт, лучше идти от первого пункта ко второму, экспериментируя на пустом проекте.
Подключение библиотеки к пустому Flutter-проекту
Библиотеки подключаются по инструкциям от производителя. Их можно найти на официальных сайтах и в readme примеров на github.
👉 В случае со сканером штрих-кодов подключить
.jar-библиотеку к Android оказалось несложно: открываешь папку android в корне проекта и действуешь по инструкции.👉 Для iOS небольшое расхождение с инструкцией возникло: на вкладке проекта
Build Settings в строчке Objective-C Bridging Header нужно было указать ссылку на заголовочный файл библиотеки DTDevices.h, но в нормальном Flutter-приложении там уже указана ссылка на Runner-Bridging-Header.h.Решение оказалось простым: открыть этот
Runner-Bridging-Header.h файл и импортировать заголовочный файл в него 🙂Вынесение библиотеки в нативный плагин
После экспериментов с пустыми проектами и привязкой к нему методов библиотек через method-channel пришло время выносить изменения в отдельный плагин.
Как создать плагин, описывать не буду. На официальном сайте есть отличная статья на эту тему.
Как видно из статьи, обычно объединение двух платформ под единый интерфейс происходит на этом этапе, но бывают исключения. В нашем случае рациональней оказалось разбить обе платформы на два пакета.
Осложняло отладку кода то, что анализатор Android Studio не хотел воспринимать плагин как целый проект и при открытии Kotlin/Java-файла с расписанными method-channel отказывался подсвечивать ошибки.
Решение оказалось тривиальным: нужно открывать папку android не в плагине `/название_плагина/android/`, а в примере его использования `/название_плагина/example/android/`. В таком случае Android Studio отображает две папки Android, в одной из которых лежат файлы нашего пакета.
🔥17👍1
