🤖 Тест по Flutter проверь свои знания, готов ли ты к обучению на курсе.
Ответишь — пройдешь на курс "Flutter Mobile Developer" от OTUS по специальной цене + получишь доступ к записям открытых уроков курса
За 6 месяцев вы освоите Dart, Flutter и ключевые инструменты разработки, создадите несколько приложений, получите поддержку преподавателей и выполните проект для портфолио.
➡️ ПРОЙТИ ТЕСТ И ОЗНАКОМИТСЯ С ПРОГРАММОЙ: https://vk.cc/cO7pt0
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Ответишь — пройдешь на курс "Flutter Mobile Developer" от OTUS по специальной цене + получишь доступ к записям открытых уроков курса
За 6 месяцев вы освоите Dart, Flutter и ключевые инструменты разработки, создадите несколько приложений, получите поддержку преподавателей и выполните проект для портфолио.
➡️ ПРОЙТИ ТЕСТ И ОЗНАКОМИТСЯ С ПРОГРАММОЙ: https://vk.cc/cO7pt0
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
👎2
Media is too big
VIEW IN TELEGRAM
Как сделать эффект «жидкого стекла» от Apple в Figma
Пошаговое руководство по созданию эффекта «жидкого стекла» в Figma — с объяснением, почему мы меняем каждое свойство.
СОДЕРЖАНИЕ:
0:00 — Вступление
0:49 — Добавление текстурного эффекта
2:09 — Добавление размытия фона
4:09 — Встраивание в кнопку с авто-лейаутом
7:04 — Создание псевдорамы с помощью внутренних теней
9:16 — Заливка кнопки и улучшение видимости текста
10:03 — Итог и завершение
источник
#Android
👉 @developer_mobila
Пошаговое руководство по созданию эффекта «жидкого стекла» в Figma — с объяснением, почему мы меняем каждое свойство.
СОДЕРЖАНИЕ:
0:00 — Вступление
0:49 — Добавление текстурного эффекта
2:09 — Добавление размытия фона
4:09 — Встраивание в кнопку с авто-лейаутом
7:04 — Создание псевдорамы с помощью внутренних теней
9:16 — Заливка кнопки и улучшение видимости текста
10:03 — Итог и завершение
источник
#Android
👉 @developer_mobila
👍4
Media is too big
VIEW IN TELEGRAM
Молот и наковальня iOS-разработчика
Василий Усов, Кирилл Шумаков
Спикеры рассказали о macOS-приложении RaifMagic — внутреннем инструменте Райффайзен Банка, который их команда создала в рамках работы над мобильным приложением для клиентов.
RaifMagic — мощный инструмент для iOS-разработчиков, созданный для упрощения, ускорения и автоматизации ежедневных рабочих задач, а также для унификации и стандартизации окружения и контроля качества программного кода. С момента создания как обертки над командной строкой приложение прошло путь эволюции и превратилось в «центр управления полетами». Если Xcode — это молот, то мы создали наковальню.
Создание внутренних инструментов для разработчиков — привычная практика для любой крупной компании. Зачастую это заканчивается созданием папки noscripts с кучей bash-скриптов и постоянным запуском терминала с вводом консольных команд. Мы пошли дальше и постарались сделать инструмент с удобным графическим интерфейсом для запуска генерации проекта. Но даже не предполагали, куда это нас приведет.
Сегодня приложение имеет интегрированный с Swift Concurrency механизм запуска консольных команд, самописную систему автообновления и контроля требуемой для генерации проекта версии, систему контроля и развертывания окружения, систему проверки качества кода, систему интеграции с GitLab для назначения ревьюеров на merge requests, специальный интерфейс для работы с фича-тогглами, позволяющий контролировать срок их жизни, и многие другие функции.
Обо всем этом — в докладе. Спикеры уверены, что история окажется полезной для других команд, размышляющих над созданием подобных инструментов. А некоторые решения мы выложим в open source.
источник
#ios
👉 @developer_mobila
Василий Усов, Кирилл Шумаков
Спикеры рассказали о macOS-приложении RaifMagic — внутреннем инструменте Райффайзен Банка, который их команда создала в рамках работы над мобильным приложением для клиентов.
RaifMagic — мощный инструмент для iOS-разработчиков, созданный для упрощения, ускорения и автоматизации ежедневных рабочих задач, а также для унификации и стандартизации окружения и контроля качества программного кода. С момента создания как обертки над командной строкой приложение прошло путь эволюции и превратилось в «центр управления полетами». Если Xcode — это молот, то мы создали наковальню.
Создание внутренних инструментов для разработчиков — привычная практика для любой крупной компании. Зачастую это заканчивается созданием папки noscripts с кучей bash-скриптов и постоянным запуском терминала с вводом консольных команд. Мы пошли дальше и постарались сделать инструмент с удобным графическим интерфейсом для запуска генерации проекта. Но даже не предполагали, куда это нас приведет.
Сегодня приложение имеет интегрированный с Swift Concurrency механизм запуска консольных команд, самописную систему автообновления и контроля требуемой для генерации проекта версии, систему контроля и развертывания окружения, систему проверки качества кода, систему интеграции с GitLab для назначения ревьюеров на merge requests, специальный интерфейс для работы с фича-тогглами, позволяющий контролировать срок их жизни, и многие другие функции.
Обо всем этом — в докладе. Спикеры уверены, что история окажется полезной для других команд, размышляющих над созданием подобных инструментов. А некоторые решения мы выложим в open source.
источник
#ios
👉 @developer_mobila
❤1
Пошаговое руководство по написанию эксплойта ядра iOS
Эксплойты ядра iOS всегда вызывали у меня огромный интерес. За последние годы эксплуатация ядра стала значительно сложнее, и традиционные уязвимости (например, связанные с повреждением виртуальной памяти) стали встречаться реже.
Тем не менее, летом 2023 года felix-pb выпустил три эксплойта под названием kfd. Это были первые опубликованные эксплойты ядра, работавшие на iOS 15.6 и выше.
https://habr.com/ru/companies/bastion/articles/920922/
original https://alfiecg.uk/2024/09/24/Kernel-exploit.html
#ios
👉 @developer_mobila
Эксплойты ядра iOS всегда вызывали у меня огромный интерес. За последние годы эксплуатация ядра стала значительно сложнее, и традиционные уязвимости (например, связанные с повреждением виртуальной памяти) стали встречаться реже.
Тем не менее, летом 2023 года felix-pb выпустил три эксплойта под названием kfd. Это были первые опубликованные эксплойты ядра, работавшие на iOS 15.6 и выше.
https://habr.com/ru/companies/bastion/articles/920922/
original https://alfiecg.uk/2024/09/24/Kernel-exploit.html
#ios
👉 @developer_mobila
👍2
This media is not supported in your browser
VIEW IN TELEGRAM
Лаборатория в смартфоне: изучаем эффект Доплера на палочках в Android
В этой статье мы познакомимся с эффектом Доплера, но не так, как об этом рассказывается в школьном учебнике физики, а посредством своих любопытных глазок и ушек. Поможет нам в этом специально разработанное мной приложение для Андроид-смартфона.
https://habr.com/ru/articles/920738/
#Android
👉 @developer_mobila
В этой статье мы познакомимся с эффектом Доплера, но не так, как об этом рассказывается в школьном учебнике физики, а посредством своих любопытных глазок и ушек. Поможет нам в этом специально разработанное мной приложение для Андроид-смартфона.
https://habr.com/ru/articles/920738/
#Android
👉 @developer_mobila
👍3❤2
Использование
При отображении элементов в SwiftUI иногда нужно показать их позицию в последовательности — например, для списка инструкций или ранжированных результатов.
Обычный способ сделать это — вызвать
До недавнего времени
https://nilcoalescing.com/blog/UsingEnumeratedWithListAndForEach/
#ios
👉 @developer_mobila
enumerated() с SwiftUI List и ForEach для отображения номеров элементовПри отображении элементов в SwiftUI иногда нужно показать их позицию в последовательности — например, для списка инструкций или ранжированных результатов.
Обычный способ сделать это — вызвать
enumerated() для коллекции. Этот метод возвращает EnumeratedSequence, который представляет собой последовательность пар (offset, element), где offset — это счётчик, начинающийся с нуля, а element — соответствующее значение из исходной коллекции.До недавнего времени
enumerated() не был напрямую совместим с ForEach или List в SwiftUI, так как его результат не соответствовал протоколу RandomAccessCollection. В качестве обходного решения приходилось оборачивать последовательность в массив.
RecipeStepsView: View {
let steps = [
"Chop lettuce, tomatoes, and cucumber.",
"Drizzle with olive oil and lemon juice.",
"Toss gently and serve."
]
var body: some View {
VStack(alignment: .leading) {
ForEach(
Array(steps.enumerated()), id: \.element
) { offset, step in
Text("\(offset + 1). \(step)")
}
}
}
}
https://nilcoalescing.com/blog/UsingEnumeratedWithListAndForEach/
#ios
👉 @developer_mobila
👍2❤1
NoDPI4Android. Решаем проблему «деградации» YouTube теперь и на Android
Многие мои знакомые и люди в комментариях просили сделать версию под Android и Android TV. Я не очень дружу с Джавой и с Джавой под андроид в особенности, и поэтому такая перспектива меня не очень прельщала, но у меня был опыт написания android-приложений на python и kivy, который я и решил применить. После нескольких дней (и ночей) напряженного труда и танцев с бубном, мне наконец удалось создать NoDPI for Android, который практически не имеет аналогов. Именно о нем я и хочу сегодня рассказать. Надеюсь, статья будет вам полезна и интересна. Поехали!
https://habr.com/ru/articles/923566/
#Android
👉 @developer_mobila
Многие мои знакомые и люди в комментариях просили сделать версию под Android и Android TV. Я не очень дружу с Джавой и с Джавой под андроид в особенности, и поэтому такая перспектива меня не очень прельщала, но у меня был опыт написания android-приложений на python и kivy, который я и решил применить. После нескольких дней (и ночей) напряженного труда и танцев с бубном, мне наконец удалось создать NoDPI for Android, который практически не имеет аналогов. Именно о нем я и хочу сегодня рассказать. Надеюсь, статья будет вам полезна и интересна. Поехали!
https://habr.com/ru/articles/923566/
#Android
👉 @developer_mobila
👍2❤1
Media is too big
VIEW IN TELEGRAM
Dependency Injection in iOS Explained (with SwiftUI)
Chapters:
0:00 What Is Dependency Injection?
0:51 Types of Dependency Injection
1:41 Initializer Injection Example
3:08 Why Use Dependency Injection?
4:18 DI in SwiftUI: Using
6:05 Manual Injection in SwiftUI (via init)
6:44 EnvironmentObject vs Manual Injection
7:38 Manual DI vs DI Containers
8:37 When to Use DI — and When It’s Overkill
источник
#ios
👉 @developer_mobila
Chapters:
0:00 What Is Dependency Injection?
0:51 Types of Dependency Injection
1:41 Initializer Injection Example
3:08 Why Use Dependency Injection?
4:18 DI in SwiftUI: Using
@EnvironmentObject6:05 Manual Injection in SwiftUI (via init)
6:44 EnvironmentObject vs Manual Injection
7:38 Manual DI vs DI Containers
8:37 When to Use DI — and When It’s Overkill
источник
#ios
👉 @developer_mobila
👍2
📱System Design в мобильной разработке — это про архитектуру, которая выходит за рамки экранов и навигации.
Чтобы приложения масштабировались, выдерживали нагрузку и не ломались при росте — нужен системный подход.
Как выстроить его на практике? Подробно обсудим это на Podlodka Android Crew, 15-19 сентября.
В программе:
🧩 Бинарная совместимость: где с ней сталкиваются мобильные разработчики и какие ошибки чаще всего приводят к проблемам. (Абакар Магомедов, Альфа-Банк)
🏗️ Мобильный архитектор: какие решения он принимает и почему без этой роли сложно развивать сложные приложения. (Эдуард Некрутов, Blink)
⚙️ Dependency Injection в KMP: обзор фреймворков и разбор, как выбрать подходящее решение под проект. (Александр Власюк, РайффайзенБанк)
⚡️BDUI в Android: опыт от DivKit, Beduin и Duit. Как перестать хардкодить экраны и ускорить эксперименты, чтобы быстрее проверять гипотезы.
🔗 Подключайся — будет полезно
По промокоду для подписчиков скидка 500 р:android_crew_14_URPLjQ
Чтобы приложения масштабировались, выдерживали нагрузку и не ломались при росте — нужен системный подход.
Как выстроить его на практике? Подробно обсудим это на Podlodka Android Crew, 15-19 сентября.
В программе:
🧩 Бинарная совместимость: где с ней сталкиваются мобильные разработчики и какие ошибки чаще всего приводят к проблемам. (Абакар Магомедов, Альфа-Банк)
🏗️ Мобильный архитектор: какие решения он принимает и почему без этой роли сложно развивать сложные приложения. (Эдуард Некрутов, Blink)
⚙️ Dependency Injection в KMP: обзор фреймворков и разбор, как выбрать подходящее решение под проект. (Александр Власюк, РайффайзенБанк)
⚡️BDUI в Android: опыт от DivKit, Beduin и Duit. Как перестать хардкодить экраны и ускорить эксперименты, чтобы быстрее проверять гипотезы.
🔗 Подключайся — будет полезно
По промокоду для подписчиков скидка 500 р:
Эффекты в Jetpack Compose, лежащие на поверхности
Jetpack Compose, про хитрости которого пойдет речь в этой статье, уже уверенно вошел в индустрию мобильной разработки, но получение некоторых визуальных эффектов до сих пор не так очевидно, как хотелось бы.
Например – как нарисовать полупрозрачный заголовок с эффектом размытия над готовым экраном? Звучит достаточно просто, но на деле Compose не предоставляет для этого готовых инструментов. Приходится что-то изобретать. В данной статье приведен как раз один из способов «наложения» эффекта рендеринга на готовый контент (да-да, заголовок статьи именно про это – эффекты на готовой поверхности).
Дисклеймер: статья рассчитана на читателя продвинутого уровня, уже знакомого с Jetpack Compose и Android-разработкой в целом.
https://habr.com/ru/companies/finam_broker/articles/924802/
#Android
👉 @developer_mobila
Jetpack Compose, про хитрости которого пойдет речь в этой статье, уже уверенно вошел в индустрию мобильной разработки, но получение некоторых визуальных эффектов до сих пор не так очевидно, как хотелось бы.
Например – как нарисовать полупрозрачный заголовок с эффектом размытия над готовым экраном? Звучит достаточно просто, но на деле Compose не предоставляет для этого готовых инструментов. Приходится что-то изобретать. В данной статье приведен как раз один из способов «наложения» эффекта рендеринга на готовый контент (да-да, заголовок статьи именно про это – эффекты на готовой поверхности).
Дисклеймер: статья рассчитана на читателя продвинутого уровня, уже знакомого с Jetpack Compose и Android-разработкой в целом.
https://habr.com/ru/companies/finam_broker/articles/924802/
#Android
👉 @developer_mobila
👍5
Как Swift Runtime влияет на производительность iOS-приложений
В современном мире производительность приложения — ĸритичесĸи важный фаĸтор, определяющий его успех. Пользователи ожидают мгновенного отĸлиĸа и плавной работы, даже небольшие задержĸи могут негативно сĸазаться на восприятии приложения.
Для больших iOS-приложений, написанных на Swift, понимание работы Swift Runtime и его влияния на производительность — важный навыĸ разработчиĸов. Swift Runtime при исполнении ĸода отвечает за фундаментальные вещи языĸа Swift: управление памятью и систему типов в рантайме.
В статье сосредоточимся на механизмах приведения типов и создания generic-типов внутри Swift Runtime и рассмотрим один ĸонĸретный метод, ĸоторый является узĸим местом в производительности приложения. Разберем примеры ĸода, демонстрирующие, ĸогда и почему этот метод вызывается, ĸаĸово его влияние на отзывчивость приложения и ĸаĸие стратегии использовать для смягчения негативного воздействия.
https://habr.com/ru/companies/tbank/articles/947486/
#ios
👉 @developer_mobila
В современном мире производительность приложения — ĸритичесĸи важный фаĸтор, определяющий его успех. Пользователи ожидают мгновенного отĸлиĸа и плавной работы, даже небольшие задержĸи могут негативно сĸазаться на восприятии приложения.
Для больших iOS-приложений, написанных на Swift, понимание работы Swift Runtime и его влияния на производительность — важный навыĸ разработчиĸов. Swift Runtime при исполнении ĸода отвечает за фундаментальные вещи языĸа Swift: управление памятью и систему типов в рантайме.
В статье сосредоточимся на механизмах приведения типов и создания generic-типов внутри Swift Runtime и рассмотрим один ĸонĸретный метод, ĸоторый является узĸим местом в производительности приложения. Разберем примеры ĸода, демонстрирующие, ĸогда и почему этот метод вызывается, ĸаĸово его влияние на отзывчивость приложения и ĸаĸие стратегии использовать для смягчения негативного воздействия.
https://habr.com/ru/companies/tbank/articles/947486/
#ios
👉 @developer_mobila
👍2
Как обнаружить обрезку Text в SwiftUI?
SwiftUI имеет низкий порог вхождения, но использовать его правильно непросто. Именно в этом и заключается прелесть технического обучения: каждый, казалось бы, независимый аспект знаний может в какой-то момент стать ключом к решению сложных задач.
https://fatbobman.com/en/posts/how-to-detect-text-truncation-in-swiftui/
#ios
👉 @developer_mobila
SwiftUI имеет низкий порог вхождения, но использовать его правильно непросто. Именно в этом и заключается прелесть технического обучения: каждый, казалось бы, независимый аспект знаний может в какой-то момент стать ключом к решению сложных задач.
https://fatbobman.com/en/posts/how-to-detect-text-truncation-in-swiftui/
#ios
👉 @developer_mobila
👍1
Swift concurrency. Executors, Actors и их связь с потоками
В данной части из серии статей мы погрузимся чуть глубже в недра Swift Concurrency. Как определяется поток, на котором будет выполняться Task? Почему в рамках одной Task поток может меняться? Что такое Executor и на какие типы он делится? За что отвечает TaskExecutor, а за что SerialExecutor? Как определить текущий Executor по коду? Как использовать свой самописный Executor? В этой статье ответим на эти (и многие другие) вопросы.
https://habr.com/ru/articles/887240/
#ios
👉 @developer_mobila
В данной части из серии статей мы погрузимся чуть глубже в недра Swift Concurrency. Как определяется поток, на котором будет выполняться Task? Почему в рамках одной Task поток может меняться? Что такое Executor и на какие типы он делится? За что отвечает TaskExecutor, а за что SerialExecutor? Как определить текущий Executor по коду? Как использовать свой самописный Executor? В этой статье ответим на эти (и многие другие) вопросы.
https://habr.com/ru/articles/887240/
#ios
👉 @developer_mobila
👍1
Акторы в Swift — для чего они нужны?
Актор — это ссылочный тип, подобный классу, созданный для безопасного управления изменяемым состоянием в многопоточной среде. Появившиеся в Swift 5.5, акторы помогают разработчикам писать потокобезопасный и более предсказуемый код при работе с асинхронными задачами и общими изменяемыми данными.
Чем акторы отличаются от классов?
Акторы гарантируют, что к их изменяемому состоянию одновременно имеет доступ только один поток. Это предотвращает повреждение данных и обеспечивает целостность.
https://blog.egesucu.com.tr/swift-actors-what-are-they-for-fd40b4264d9a
#ios
👉 @developer_mobila
Актор — это ссылочный тип, подобный классу, созданный для безопасного управления изменяемым состоянием в многопоточной среде. Появившиеся в Swift 5.5, акторы помогают разработчикам писать потокобезопасный и более предсказуемый код при работе с асинхронными задачами и общими изменяемыми данными.
Чем акторы отличаются от классов?
Акторы гарантируют, что к их изменяемому состоянию одновременно имеет доступ только один поток. Это предотвращает повреждение данных и обеспечивает целостность.
https://blog.egesucu.com.tr/swift-actors-what-are-they-for-fd40b4264d9a
#ios
👉 @developer_mobila
👍1
Рулим светодиодом по UDP и ESP8266
Сегодня я поделюсь опытом работы с протоколом UDP вместе с микроконтроллером ESP8266, где я управлял светодиодом, а также получал температуру с датчика DHT11. Всё управление будет происходить из Android-приложения, написание логики которого также будет рассмотрено.
https://habr.com/ru/articles/925800/
#Android
👉 @developer_mobila
Сегодня я поделюсь опытом работы с протоколом UDP вместе с микроконтроллером ESP8266, где я управлял светодиодом, а также получал температуру с датчика DHT11. Всё управление будет происходить из Android-приложения, написание логики которого также будет рассмотрено.
https://habr.com/ru/articles/925800/
#Android
👉 @developer_mobila
👍3
Функциональный стиль: объясняю как другу
«Функциональное программирование», «Immutable значения», «Pure функции».
Тоже слышал эти умные слова?
И ты такой: «Что? Можно просто for написать?»
Спокойно. Сейчас все разложим по полочкам. Даже если ты пишешь var a = 1 и гордишься этим - ты свой. Погнали.
https://habr.com/ru/articles/926900/
#ios
👉 @developer_mobila
«Функциональное программирование», «Immutable значения», «Pure функции».
Тоже слышал эти умные слова?
И ты такой: «Что? Можно просто for написать?»
Спокойно. Сейчас все разложим по полочкам. Даже если ты пишешь var a = 1 и гордишься этим - ты свой. Погнали.
https://habr.com/ru/articles/926900/
#ios
👉 @developer_mobila
👍1
📱 Поделитесь обратной связью с RuStore — и выиграйте фичеринг
RuStore развивается, опираясь на мнение разработчиков. Ответив на вопросы, вы поможете сделать платформу удобнее и улучшить ее для публикации и продвижения приложений.
Опрос анонимный и займет не более 5 минут. Пройти его можно до 1 ноября.
👉 Перейти к опросу
🎁 Призы и итоги
5 разработчиков получат фичеринг в RuStore — размещения выйдут в течение трёх месяцев после объявления результатов.
Итоги будут подведены 1 декабря.
Условия участия
— Участвовать могут разработчики, чьи приложения уже опубликованы в RuStore.
— Приложения должны соответствовать требованиям площадки.
— Формат и даты фичеринга определяет редакция RuStore.
Полные правила конкурса и все обновления публикуются в Telegram-канале @rustoredev.
RuStore развивается, опираясь на мнение разработчиков. Ответив на вопросы, вы поможете сделать платформу удобнее и улучшить ее для публикации и продвижения приложений.
Опрос анонимный и займет не более 5 минут. Пройти его можно до 1 ноября.
👉 Перейти к опросу
🎁 Призы и итоги
5 разработчиков получат фичеринг в RuStore — размещения выйдут в течение трёх месяцев после объявления результатов.
Итоги будут подведены 1 декабря.
Условия участия
— Участвовать могут разработчики, чьи приложения уже опубликованы в RuStore.
— Приложения должны соответствовать требованиям площадки.
— Формат и даты фичеринга определяет редакция RuStore.
Полные правила конкурса и все обновления публикуются в Telegram-канале @rustoredev.
💩2
Антон Бушманов — Перерисовки в SwiftUI
Антон рассказал о части перформанса в SwiftUI, а конкретнее о перерисовках. Доклад нацелен на тех, кто только переходит на SwiftUI или использует его не так давно, чтобы задаваться вопросами перформанс ревью. Будет интересно разработчикам всех уровней. Главная цель доклада — преподнести перерисовку максимально простым языком и на примерах.
https://www.youtube.com/watch?v=a_FQ93Laqvs
#ios
👉 @developer_mobila
Антон рассказал о части перформанса в SwiftUI, а конкретнее о перерисовках. Доклад нацелен на тех, кто только переходит на SwiftUI или использует его не так давно, чтобы задаваться вопросами перформанс ревью. Будет интересно разработчикам всех уровней. Главная цель доклада — преподнести перерисовку максимально простым языком и на примерах.
https://www.youtube.com/watch?v=a_FQ93Laqvs
#ios
👉 @developer_mobila
YouTube
Антон Бушманов — Перерисовки в SwiftUI
Подробнее о конференции Mobius: https://jrg.su/ojGU3B
— —
Скачать презентацию с сайта Mobius — https://jrg.su/K9Wwrr
Антон рассказал о части перформанса в SwiftUI, а конкретнее о перерисовках. Доклад нацелен на тех, кто только переходит на SwiftUI или использует…
— —
Скачать презентацию с сайта Mobius — https://jrg.su/K9Wwrr
Антон рассказал о части перформанса в SwiftUI, а конкретнее о перерисовках. Доклад нацелен на тех, кто только переходит на SwiftUI или использует…
👍1
Реагирование на жесты в SwiftUI: перетаскивание
Узнайте, как реализовать жесты перетаскивания в SwiftUI для создания плавных и интуитивно понятных перетаскиваемых элементов интерфейса.
https://www.createwithswift.com/responding-to-gestures-dragging/
#ios
👉 @developer_mobila
Узнайте, как реализовать жесты перетаскивания в SwiftUI для создания плавных и интуитивно понятных перетаскиваемых элементов интерфейса.
https://www.createwithswift.com/responding-to-gestures-dragging/
#ios
👉 @developer_mobila
👍1
Создавайте продвинутые автоматизации с помощью Home API на Android.
Узнайте, как спроектировать и реализовать редактор автоматизаций в вашем Android-приложении. Мы разберём создание стартовых узлов, узлов действий, работу с черновиками автоматизаций и использование Discovery API для определения возможностей устройств. Кроме того, вы познакомитесь с продвинутыми примерами автоматизаций!
В этом видео будет рассмотрено:
* Основные концепции автоматизаций Google Home (Стартовые условия, Условия, Действия, Последовательные и Параллельные сценарии).
* Как использовать Automation API для создания, удаления и получения данных об умных домашних автоматизациях на Android.
* Как создать собственный редактор автоматизаций.
* Как использовать Discovery API для поиска поддерживаемых команд устройств для автоматизаций.
* Продвинутые примеры автоматизаций (старт по времени, Assistant Broadcast, delayFor, suppressFor, AreaPresenceState).
https://www.youtube.com/watch?v=f7q3amS7uOY
#Android
👉 @developer_mobila
Узнайте, как спроектировать и реализовать редактор автоматизаций в вашем Android-приложении. Мы разберём создание стартовых узлов, узлов действий, работу с черновиками автоматизаций и использование Discovery API для определения возможностей устройств. Кроме того, вы познакомитесь с продвинутыми примерами автоматизаций!
В этом видео будет рассмотрено:
* Основные концепции автоматизаций Google Home (Стартовые условия, Условия, Действия, Последовательные и Параллельные сценарии).
* Как использовать Automation API для создания, удаления и получения данных об умных домашних автоматизациях на Android.
* Как создать собственный редактор автоматизаций.
* Как использовать Discovery API для поиска поддерживаемых команд устройств для автоматизаций.
* Продвинутые примеры автоматизаций (старт по времени, Assistant Broadcast, delayFor, suppressFor, AreaPresenceState).
https://www.youtube.com/watch?v=f7q3amS7uOY
#Android
👉 @developer_mobila
YouTube
Create advanced automations using the Home APIs on Android
Learn how to design and implement an automation editor within your Android app. We'll cover building starter nodes, action nodes, creating automation drafts, and using the Discovery API to find device capabilities. Plus, explore advanced automation examples!…
❤1👍1