red_mad_dev
Привет! Празднуете? 🎄🍬🍾 А мы подготовили подарочек: Ещё один митап про Gradle! 🎁 Дима уже делал объемный доклад по фичам, а теперь решил дать практические советы по работе с Gradle: - IDE не поможет 🙅♂️ - naming-сonventions - Аргументы за Kotlin для скриптов…
Привет!
Сегодня у нас на хабре вышла статья по Gradle Tips and Tricks (аналог митапа)! 🤘
https://habr.com/ru/company/redmadrobot/blog/544630/
Сегодня у нас на хабре вышла статья по Gradle Tips and Tricks (аналог митапа)! 🤘
https://habr.com/ru/company/redmadrobot/blog/544630/
Хабр
Советы по работе с Gradle для Android-разработчиков
Всем привет! Я пишу приложения под Android, в мире которого система сборки Gradle является стандартом де-факто. Я решил поделиться некоторыми советами по работе с системой с теми, у кого нет чёткого...
Продолжаем сезон статей! 📚 Виталик поделился опытом того, как нам не удалось переехать с
Читается очень интересно: https://habr.com/ru/company/redmadrobot/blog/544318/
card.io на CameraX+ML Kit.Читается очень интересно: https://habr.com/ru/company/redmadrobot/blog/544318/
Хабр
CameraX+ML Kit для распознавания номера карты в действии
Привет, меня зовут Виталий Беляев, я Android-разработчик в red_mad_robot. В этой статье я расскажу про опыт интеграции CameraX с ML Kit на замену библиотеки card.io, и что в итоге из этого получилось....
Как связана технология Bluetooth с черникой и датским королём?
Ответ на этот вопрос вы найдете в докладе Олега Соловьева про Bluetooth в iOS.
Милости просим:
https://youtu.be/-Gfe2lrqrl0
Ответ на этот вопрос вы найдете в докладе Олега Соловьева про Bluetooth в iOS.
Милости просим:
https://youtu.be/-Gfe2lrqrl0
YouTube
Bluetooth в iOS
Все знают про технологию Bluetooth, но не у всех доходили руки ее поковырять. Олег Соловьев из питерского офиса, рассказал что это такое и как с этим работать.
Привет!
Мы тут попробовали новый формат "хаотичное изучение" на примере корутин в Kotlin. 🤠
Прошлись по темам и советам из best practices:
- Inject Dispatchers,
- Dispatcher,
- withContext,
- NonCancellable,
- viewModelScope и другие,
- Делай suspend функции main-safe,
- ViewModel должна создавать корутины,
- StateFlow и SharedFlow,
- Не показывай мутабельные типы,
- Как подписаться во view,
- Data и Domain слои показывают suspend и Flow,
- Cоздание корутин в Data и Domain слоях
🧰 Заглядывайте: https://youtu.be/cHERit7LNGM
Мы тут попробовали новый формат "хаотичное изучение" на примере корутин в Kotlin. 🤠
Прошлись по темам и советам из best practices:
- Inject Dispatchers,
- Dispatcher,
- withContext,
- NonCancellable,
- viewModelScope и другие,
- Делай suspend функции main-safe,
- ViewModel должна создавать корутины,
- StateFlow и SharedFlow,
- Не показывай мутабельные типы,
- Как подписаться во view,
- Data и Domain слои показывают suspend и Flow,
- Cоздание корутин в Data и Domain слоях
🧰 Заглядывайте: https://youtu.be/cHERit7LNGM
А вот и продолжение "хаотичного изучения" Kotlin корутин. 👨🌾
Рассмотрели:
- Как же создавать корутины в Data и Domain слоях
- coroutineScope и supervisorScope
- Job
- Deferred и async/await
- Использование внешнего скоупа
- Как создать внешний скоуп
- Избегай GlobalScope
- CoroutineScope
- CoroutineContext
- CoroutineScope vs CoroutineContext
- Делай свои корутины cancellable
- Помни про исключения
🧲 Притягивайтесь: https://youtu.be/6Apj_v9ZkBs
Рассмотрели:
- Как же создавать корутины в Data и Domain слоях
- coroutineScope и supervisorScope
- Job
- Deferred и async/await
- Использование внешнего скоупа
- Как создать внешний скоуп
- Избегай GlobalScope
- CoroutineScope
- CoroutineContext
- CoroutineScope vs CoroutineContext
- Делай свои корутины cancellable
- Помни про исключения
🧲 Притягивайтесь: https://youtu.be/6Apj_v9ZkBs
YouTube
Coroutines. Хаотичное изучение. Часть 2
Продолжение "хаотичного изучения" Kotlin Coroutines. 👨🌾
В этот раз обсудили такие советы и темы:
- Как же создавать корутины в Data и Domain слоях
- coroutineScope и supervisorScope
- Job
- Deferred и async/await
- Использование внешнего скоупа
- Как создать…
В этот раз обсудили такие советы и темы:
- Как же создавать корутины в Data и Domain слоях
- coroutineScope и supervisorScope
- Job
- Deferred и async/await
- Использование внешнего скоупа
- Как создать…
Нырнём чуть глубже 🏊♀️
Амир Зигангараев рассказал, показал и обсудил с коллегами как работает Memory Layout в Swift.
https://youtu.be/gh7eETKiKs0
Амир Зигангараев рассказал, показал и обсудил с коллегами как работает Memory Layout в Swift.
https://youtu.be/gh7eETKiKs0
Продолжаем погружение 🤿
Амир Зигангараев рассказал в своём докладе про Type Metadata в Swift.
Настала и ваша очередь узнать, что ещё может рассказать о себе каждый тип:
https://youtu.be/lF64jxSOcdw
Амир Зигангараев рассказал в своём докладе про Type Metadata в Swift.
Настала и ваша очередь узнать, что ещё может рассказать о себе каждый тип:
https://youtu.be/lF64jxSOcdw
Привет! Пока у нас затишье, поделимся дебютным youtube-видео наших братьев андроидов из московского офиса🤖
Это рассказ про всеми любимый Gradle в 2-х частях:
- Теория про проблемы, миграцию на Kotlin DSL, основные API 📚
- Live Coding собирающий все реальные косяки написания плагинов и задач Gradle 💻
▶️ Приятного просмотра: https://youtu.be/8tsSSIOFxZg
Это рассказ про всеми любимый Gradle в 2-х частях:
- Теория про проблемы, миграцию на Kotlin DSL, основные API 📚
- Live Coding собирающий все реальные косяки написания плагинов и задач Gradle 💻
▶️ Приятного просмотра: https://youtu.be/8tsSSIOFxZg
YouTube
Gradle "без боли" / Почему Kotlin DSL? / Пишем плагины - Осип Фаткуллин
Разбираемся для чего нужен Gradle, чем же плох Groovy и почему мы в red_mad_robot MSK переехали на Kotlin DSL. Разбираем какие есть неочевидные APIшки в Gradle про которые точно нужно знать если собираетесь писать плагины. А ещё будет много практики!
Первый…
Первый…
Привет! Давненько не делились. Наверное, во всём виновата жара в Питере 😅.
Зато мы с интересной темой о DataStore:
- Как обычно храним данные и минусы SharedPreferences 📚
- Что предлагает DataStore и в чем выигрыш ➕
- Preferences DataStore
- Пример работы, миграций, обсуждение ключей 📝
- Proto DataStore
- Пример работы с ним и выбора схемы 📝
- Обменялись мнениями о необходимости Proto DataStore 💬
🗄 Смотреть тут: https://youtu.be/3ijVgkm1QUk
Зато мы с интересной темой о DataStore:
- Как обычно храним данные и минусы SharedPreferences 📚
- Что предлагает DataStore и в чем выигрыш ➕
- Preferences DataStore
- Пример работы, миграций, обсуждение ключей 📝
- Proto DataStore
- Пример работы с ним и выбора схемы 📝
- Обменялись мнениями о необходимости Proto DataStore 💬
🗄 Смотреть тут: https://youtu.be/3ijVgkm1QUk
Привет!
А у нас появилась пара вакансий:
– Во-первых, хотим позвать 1 джуна и 1 начинающего мидла в Android команду.
С небольшим опытом, но большим желанием расти с нами 🚀
– А ещё расширяется iOS команда, ищет мидлов с 2+ лет опыта.
Чтобы делать крутые проекты и развиваться вместе 🦾
Если хотите сами или есть кто-то на примете – напишите на hrspb@redmadrobot.com ⛳️
А у нас появилась пара вакансий:
– Во-первых, хотим позвать 1 джуна и 1 начинающего мидла в Android команду.
С небольшим опытом, но большим желанием расти с нами 🚀
– А ещё расширяется iOS команда, ищет мидлов с 2+ лет опыта.
Чтобы делать крутые проекты и развиваться вместе 🦾
Если хотите сами или есть кто-то на примете – напишите на hrspb@redmadrobot.com ⛳️
Привет!
Недавно Дима поделился своими знаниями про возможности Firebase. И более подробно рассказал про Realtime Database.
Интересный обзор получился:
- Обзор Authentication 🔑
- Сравнение Realtime Database и Cloud Firestore ⚔️
- Обзор Cloud Storage
- Обзор Hosting
- Обзор и пояснение отличий Cloud Hosting сервисов ℹ️
- Обзор Cloud Functions 🤘
- Подробно о Realtime Database 🗄
- Rules (правила), впечатления из практики, rules playground
- Backups, легче простого
- Обсудили планы, цены и квоты
- Как работать с Realtime Database 👨💻
- Кратко про пагинацию с Firebase
👨💻 Посмотрите тоже: https://youtu.be/roavj5Gc0aI
Недавно Дима поделился своими знаниями про возможности Firebase. И более подробно рассказал про Realtime Database.
Интересный обзор получился:
- Обзор Authentication 🔑
- Сравнение Realtime Database и Cloud Firestore ⚔️
- Обзор Cloud Storage
- Обзор Hosting
- Обзор и пояснение отличий Cloud Hosting сервисов ℹ️
- Обзор Cloud Functions 🤘
- Подробно о Realtime Database 🗄
- Rules (правила), впечатления из практики, rules playground
- Backups, легче простого
- Обсудили планы, цены и квоты
- Как работать с Realtime Database 👨💻
- Кратко про пагинацию с Firebase
👨💻 Посмотрите тоже: https://youtu.be/roavj5Gc0aI
👍1
Привет! Уже все знают, что Jetpack Compose релизнули? 🎉
Петя переписал экран реального приложения, собрал первую порцию подводных камней и рассказал о своём опыте:
- С чего начать переход на Compose 🔌
- Как работает ComposeView
- Layout'ы и Modifier'ы
- Важность порядка вызова у Modifier ☝️
- Как разграничена видимость методов Modifier для разных скоупов 🎓
- Как создать кастомный Layout?
- Проблемы в стандартной верстке "текст + картинка" 👊
- Поиск решения проблемы 👍
- Как работать с ConstraintLayout в Compose 🙈
💻 Доклад на 40 минут, плюс обсуждение: https://youtu.be/cwmWDoBfP3I
Петя переписал экран реального приложения, собрал первую порцию подводных камней и рассказал о своём опыте:
- С чего начать переход на Compose 🔌
- Как работает ComposeView
- Layout'ы и Modifier'ы
- Важность порядка вызова у Modifier ☝️
- Как разграничена видимость методов Modifier для разных скоупов 🎓
- Как создать кастомный Layout?
- Проблемы в стандартной верстке "текст + картинка" 👊
- Поиск решения проблемы 👍
- Как работать с ConstraintLayout в Compose 🙈
💻 Доклад на 40 минут, плюс обсуждение: https://youtu.be/cwmWDoBfP3I
Ещё одно "хаотичное изучение" Kotlin корутин, а именно того, как правильно слушать Flow из UI.
Зашли немного издалека:
- Для чего был нужен SingleLiveEvent 📟
- Как его приготовить без LiveData 🔫
- Channel (кажется это спойлер 😆)
- О трате ресурсов в бекграунде 🔦
- buffer, conflate, flowOn, shareIn
- WhileSubscribed
- Как безопасно слушать Flow из UI ✅
- И не тратить ресурсы 🛠
- Lifecycle.repeatOnLifecycle
- Flow.flowWithLifecycle
🖼 Посмотреть можно тут: https://youtu.be/7JSHSqAhErw
Зашли немного издалека:
- Для чего был нужен SingleLiveEvent 📟
- Как его приготовить без LiveData 🔫
- Channel (кажется это спойлер 😆)
- О трате ресурсов в бекграунде 🔦
- buffer, conflate, flowOn, shareIn
- WhileSubscribed
- Как безопасно слушать Flow из UI ✅
- И не тратить ресурсы 🛠
- Lifecycle.repeatOnLifecycle
- Flow.flowWithLifecycle
🖼 Посмотреть можно тут: https://youtu.be/7JSHSqAhErw
YouTube
Coroutines. Хаотичное изучение. Часть 3
Третья часть "хаотичного изучения" Kotlin Coroutines о том как безопасно слушать из UI. 🧔🏻
Зашли издалека:
- Для чего был нужен SingleLiveEvent 📟
- Как его приготовить без LiveData 🔫
- Channel (кажется это спойлер 😆)
- О трате ресурсов в бекграунде 🔦
- buffer…
Зашли издалека:
- Для чего был нужен SingleLiveEvent 📟
- Как его приготовить без LiveData 🔫
- Channel (кажется это спойлер 😆)
- О трате ресурсов в бекграунде 🔦
- buffer…
👍1
Привет! Давно не виделись 🤖
Возвращаемся с анонсом открытия алгоклуба (алгоритмического клуба) Робота.
Решать алгоритмические задачи — крутая активность. Это чем-то напоминает подходы в спортзале, только вместо бицепса качаем мозг. Мы решили, что последний месяц перед новогодними праздниками — отличное время «подкачаться». В начале декабря стартует Advent of Code и мы предлагаем тебе принять участие вместе с нами.
Стартуем 1 декабря. Если готов принять участие в марафоне, присоединяйся к нашему каналу в Discord. В нём мы будем обсуждать решения и устраивать совместные встречи по самым горячим задачкам. Там же сможешь подробнее почитать про правила участия.
Организаторы: Осип Фаткуллин и Влад Бауэр, — Android-разработчики red_mad_robot. Пиши им по всем вопросам 🙌
#анонс #алгоритмы #марафон
Возвращаемся с анонсом открытия алгоклуба (алгоритмического клуба) Робота.
Решать алгоритмические задачи — крутая активность. Это чем-то напоминает подходы в спортзале, только вместо бицепса качаем мозг. Мы решили, что последний месяц перед новогодними праздниками — отличное время «подкачаться». В начале декабря стартует Advent of Code и мы предлагаем тебе принять участие вместе с нами.
Стартуем 1 декабря. Если готов принять участие в марафоне, присоединяйся к нашему каналу в Discord. В нём мы будем обсуждать решения и устраивать совместные встречи по самым горячим задачкам. Там же сможешь подробнее почитать про правила участия.
Организаторы: Осип Фаткуллин и Влад Бауэр, — Android-разработчики red_mad_robot. Пиши им по всем вопросам 🙌
#анонс #алгоритмы #марафон
👍13🔥8🎉4😈1
Привет!
Не так давно мы провели iOS-митап в московском Робохранилище. На встрече поговорили про свежие технологии, доступные в новых версиях iOS, обобщённое программирование, метаморфозы архитектуры и нативную навигацию. Поделимся записями докладов и презентациями.
Начнём с выступления Шурика Бабаева, технического директора red_mad_robot spb. В своём докладе он показал на несложных примерах, как работает обобщённое программирование в Swift. Также рассказал, что такое some, any и existential, чем это всё отличается от обобщённого программирования в других языках и как это использовать.
Выступление: https://youtu.be/hG48hFH7q6w.
Презентация: https://drive.google.com/file/d/1K6RJZYMbnvd2hzkr_wp50bD5ufXXblrg/view.
Дополнительные ссылки к презентации:
✦ Глубоко про варианты дженериков: https://thume.ca/2019/07/14/a-tour-of-metaprogramming-models-for-generics/
✦ Видео про то, как сделаны джерерики в Swift: https://www.youtube.com/watch?v=ctS8FzqcRug
✦ Текст про то, как работают дженерики в компиляторе Swift: https://download.swift.org/docs/assets/generics.pdf (https://forums.swift.org/t/compiling-swift-generics-part-i/60898)
#iOS #meetup
Не так давно мы провели iOS-митап в московском Робохранилище. На встрече поговорили про свежие технологии, доступные в новых версиях iOS, обобщённое программирование, метаморфозы архитектуры и нативную навигацию. Поделимся записями докладов и презентациями.
Начнём с выступления Шурика Бабаева, технического директора red_mad_robot spb. В своём докладе он показал на несложных примерах, как работает обобщённое программирование в Swift. Также рассказал, что такое some, any и existential, чем это всё отличается от обобщённого программирования в других языках и как это использовать.
Выступление: https://youtu.be/hG48hFH7q6w.
Презентация: https://drive.google.com/file/d/1K6RJZYMbnvd2hzkr_wp50bD5ufXXblrg/view.
Дополнительные ссылки к презентации:
✦ Глубоко про варианты дженериков: https://thume.ca/2019/07/14/a-tour-of-metaprogramming-models-for-generics/
✦ Видео про то, как сделаны джерерики в Swift: https://www.youtube.com/watch?v=ctS8FzqcRug
✦ Текст про то, как работают дженерики в компиляторе Swift: https://download.swift.org/docs/assets/generics.pdf (https://forums.swift.org/t/compiling-swift-generics-part-i/60898)
#iOS #meetup
🔥13👏5🙏1
Продолжаем делиться материалами с iOS-митапа 🧑💻
Стас Анацкий и Влад Марков, iOS-разработчики red_mad_robot, в своём докладе рассказали про расширение подхода SOA до Presentation-слоя с помощью микрофичевой архитектуры. Также они поделились, как выстроили такую архитектуру на одном из проектов и какую пользу принесло это решение.
Бонусом в конце доклада полезная информация про инструменты, которые помогают построить инфраструктуру для быстрой разработки в микрофичевом подходе.
✦ Выступление: https://youtu.be/bDFb1WvFdP8
✦ Презентация: https://drive.google.com/file/d/1K2QBk9uwsMiKRnBwgovHDRgbadTCRjCE/view
#iOS #Meetup
Стас Анацкий и Влад Марков, iOS-разработчики red_mad_robot, в своём докладе рассказали про расширение подхода SOA до Presentation-слоя с помощью микрофичевой архитектуры. Также они поделились, как выстроили такую архитектуру на одном из проектов и какую пользу принесло это решение.
Бонусом в конце доклада полезная информация про инструменты, которые помогают построить инфраструктуру для быстрой разработки в микрофичевом подходе.
✦ Выступление: https://youtu.be/bDFb1WvFdP8
✦ Презентация: https://drive.google.com/file/d/1K2QBk9uwsMiKRnBwgovHDRgbadTCRjCE/view
#iOS #Meetup
🔥7👍4
Завершился митап выступлением Юли Никитиной, iOS-разработчика из «Иннотеха». Юля рассказала о реализации нестандартных сценариев навигации без помощи UIKit, сравнении с новыми средствами навигации в iOS 16 и их использовании в существующем приложении под iPad.
✦ Выступление: https://youtu.be/vl_cmH9sk_s
✦ Презентация: https://drive.google.com/file/d/1cuOMnQ3aB0bY2DUmFfm6cf-HU766d1y4/view
#iOS #Meetup
✦ Выступление: https://youtu.be/vl_cmH9sk_s
✦ Презентация: https://drive.google.com/file/d/1cuOMnQ3aB0bY2DUmFfm6cf-HU766d1y4/view
#iOS #Meetup
🔥10👏2🤔1
На Google I/O 2021 продемонстрировали фичу, которая позволяет динамически менять цветовую схему приложения в зависимости от его контента. Но ни в документации, ни в официальных примерах не оказалось использования этого подхода или API, которое делало бы это на уровне отдельного экрана или элемента.
Ведущего Android-разработчика red_mad_robot Рому Чорыева не устроило такое положение дел, и он для этой цели решил разработать собственное простое решение.
#android #article
Ведущего Android-разработчика red_mad_robot Рому Чорыева не устроило такое положение дел, и он для этой цели решил разработать собственное простое решение.
#android #article
🔥13👍5💯2
Привет 🤖
Приходи на наш Android-митап 15 декабря! Встречу проведём в гибридном формате: онлайн в Zoom и офлайн в московском Робохранилище. Митап проводим для разработчиков любых грейдов.
Поговорим про то, как изменилась работа с цветом с приходом Material You, погрузимся в процессы дизайн-ревью и разберёмся, каким образом и зачем автоматизировать процесс движения задачек в трекере.
Для участия нужно зарегистрироваться на Timepad, а почитать подробнее про доклады можно в анонсе на Хабре.
#android #meetup
Приходи на наш Android-митап 15 декабря! Встречу проведём в гибридном формате: онлайн в Zoom и офлайн в московском Робохранилище. Митап проводим для разработчиков любых грейдов.
Поговорим про то, как изменилась работа с цветом с приходом Material You, погрузимся в процессы дизайн-ревью и разберёмся, каким образом и зачем автоматизировать процесс движения задачек в трекере.
Для участия нужно зарегистрироваться на Timepad, а почитать подробнее про доклады можно в анонсе на Хабре.
#android #meetup
🔥12
Недавно роботы вместе с некоммерческим проектом «Кружок» объединились и провели школу по дизайну мобильных приложений для детей в посёлке Умёт в Мордовии.
Команда вместе с подростками проанализировала актуальные проблемы, узнала, что интересного есть в посёлке, а потом начала генерировать различные варианты концептов. Среди идей было создание переводчика с мордовского, приложение с графиком отключения света и воды и приложение с расписанием стоянок поездов.
Про выстраивание взаимодействия внутри команд и с подростками, разделение зон ответственности, коммуникацию, проектирование приложения и поездку в целом можно посмотреть фильм на YouTube, а также прочитать в Telegraph.
#mobile #article
Команда вместе с подростками проанализировала актуальные проблемы, узнала, что интересного есть в посёлке, а потом начала генерировать различные варианты концептов. Среди идей было создание переводчика с мордовского, приложение с графиком отключения света и воды и приложение с расписанием стоянок поездов.
Про выстраивание взаимодействия внутри команд и с подростками, разделение зон ответственности, коммуникацию, проектирование приложения и поездку в целом можно посмотреть фильм на YouTube, а также прочитать в Telegraph.
#mobile #article
👏20👍8❤🔥2💔1