В разработке, особенно крупных проектов, без написания своих тестов никуда. Хочу порекомендовать крутой доклад от Эмилии Куцаревой из VK по UI-тестам Android:
https://www.youtube.com/watch?v=6PltPyQzr0w
https://www.youtube.com/watch?v=6PltPyQzr0w
YouTube
Эмилия Куцарева — Инфраструктура Android UI-тестов
Ближайшая конференция — Heisenbug 2025 Autumn, 19—20 октября, Санкт-Петербург + online. Подробности и билеты: https://jrg.su/D6uGC9
— Ближайшая конференция: Heisenbug 2023 Autumn — 10–11 октября (online), 15–16 октября (offline)
Подробности и билеты: htt…
— Ближайшая конференция: Heisenbug 2023 Autumn — 10–11 октября (online), 15–16 октября (offline)
Подробности и билеты: htt…
👍8
Forwarded from Kotlin Adept Notes (Alex Panov)
Что выбрать для навигации в Compose🤨
Это довольно распространенный вопрос и на сегодняшний день выбор либ просто огромен на любой вкус и цвет. Так что же выбрать? Конечно жеDecompose решать вам на основе требований к навигации в вашем приложении.
🤖 Jetpack Compose Navigation — официальная библиотека
👍 Поддержка от Google, интеграция с ViewModel
👎 Только для Android и еще миллион минусов
🤖 Jetpack Compose Destinations — обертка над официальной либой
👍 Решает некоторые проблемы первой либы
👎 Добавляет новых проблем из-за кодогенерации и зависимости на accompanist либы
🤖 Modo — либа от создателя Cicerone, Константина Цховребова
👍 Строится на принципах UDF, очень простая
👎 Только для Android, еще не в релизе, маленькое коммьюнити
👩💻 Appyx — решение для навигации от Bumble
👍 Декларативный подход, классные анимации из коробки, поддержка KMP
👎 Только для Compose, довольно сложная, небольшое коммьюнити
👩💻 Voyager — популярная и простая либа для навигации
👍 Много интеграций с привычными инструментами, легкая в использовании, поддержка KMP
👎 Только для Compose, есть проблемы со стабильностью
🌳 Decompose — либа от Аркадия Иванова, автора MVICore
👍 Единственное решение не завязанное на UI фреймворк, декларативный подход, огромная гибкость, высокая стабильность
👎 Высокий порог входа, приходится писать много кода
Есть еще решение Odyssey от Алексея Гладкова, но автор объявил о прекращении поддержки данной либы.
Таким образом настоятельно не рекомендую использовать официальное решение для навигации в любых более менее сложных приложениях. Можете посмотреть мой доклад, где я сравниваю эту либу и Decompose. Другие либы можно смело у себя использовать, но если вы проникнетесь подходом к навигации в Decompose, то можете посмотреть другой доклад, где уже разбираю как интегрироваться не только с Compose, но и SwiftUI.
Как вы поняли, я очень топлю за Decompose, хотя его сложность может многих отпугнуть, но стоит только проникнуться компонентым подходом и уже по-другому приложения писать не захочется!
#Compose #Navigation
Это довольно распространенный вопрос и на сегодняшний день выбор либ просто огромен на любой вкус и цвет. Так что же выбрать? Конечно же
Есть еще решение Odyssey от Алексея Гладкова, но автор объявил о прекращении поддержки данной либы.
Таким образом настоятельно не рекомендую использовать официальное решение для навигации в любых более менее сложных приложениях. Можете посмотреть мой доклад, где я сравниваю эту либу и Decompose. Другие либы можно смело у себя использовать, но если вы проникнетесь подходом к навигации в Decompose, то можете посмотреть другой доклад, где уже разбираю как интегрироваться не только с Compose, но и SwiftUI.
Как вы поняли, я очень топлю за Decompose, хотя его сложность может многих отпугнуть, но стоит только проникнуться компонентым подходом и уже по-другому приложения писать не захочется!
#Compose #Navigation
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18
SDUI/BDUI становится настоящим трендом. А текущее состояние декларативных фреймворков SwiftUI и Jetpack Compose упрощает внедрение данного подхода, а также позволяет оптимизировать свои уже существующие решения.
Читаем, как создатели Epoxy AirBnb переходят на SwiftUI.
Читаем, как создатели Epoxy AirBnb переходят на SwiftUI.
Forwarded from iOS Broadcast (Андрей Зонов)
Как Airbnb пришли к SwiftUI (10 мин, 🇺🇸 )
Путь Airbnb от самописного декларативного фреймворка🐱 Epoxi к стандарту индустрии - 😀 SwiftUI. Epoxi - фреймворк для декларативного конструирования экранов был оберткой над UIKit, потенциально даже с возможностью Backend-Driven UI. Такие задачи привлекают классных инженеров к созданию фреймворка, но 🚫 не привлекают инженеров к разработке продуктовых фич.
Главный вывод для меня - после миграции на SwiftUI стали счастливы iOS инженеры, 77% заявили что стали более эффективны.
Бизнесу достаточно легко продать BDUI, кроссплатформу, даже если это ReactNative, но это не так просто продать разработчикам, особенно в продуктовых командах.
Искренне рад за Airbnb и их инженерную команду, счастливые разработчики = качественный продукт
Путь Airbnb от самописного декларативного фреймворка
Главный вывод для меня - после миграции на SwiftUI стали счастливы iOS инженеры, 77% заявили что стали более эффективны.
Бизнесу достаточно легко продать BDUI, кроссплатформу, даже если это ReactNative, но это не так просто продать разработчикам, особенно в продуктовых командах.
Искренне рад за Airbnb и их инженерную команду, счастливые разработчики = качественный продукт
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
Началось голосование Highload Awards, где вы можете проголосвать за лучший проект/человека года.
Поддержите @android_broadcast и @mobiledevnews
Поддержите @android_broadcast и @mobiledevnews
❤6👍2
Залетайте на наши треки на омском Девфесте. Обещаем, будет интересно)
#softskill На канале Crossconf начали выкладывать видео выступлений. Хотя я выступала на секции Mobile crossplatform, сама ходила слушать другие секции. Хочу поделиться видео наиболее понравившихся:
Проблемы с эмпатией у подчиненных — что делать? // Серафима Чекулаева
https://www.youtube.com/watch?v=dpFA4pqNafE
Особенности проектирования под ОС Аврора // Марина Салова, МойОфис
https://youtu.be/yATa3FnS53w?si=evRO_evxyD5RC1bY
Тимлидский рентген: как разглядеть потенциал своей команды и выпустить его наружу // Илья Прахт
https://www.youtube.com/watch?v=mCkBfXz7GXo
Как Midjourney может помочь в работе дизайнеру // Алина Сидоренко, Friflex
https://youtu.be/Rl-rrc54mEI?si=tGyAevumeFgxo6bG
На канале пока выложены не все видео
Проблемы с эмпатией у подчиненных — что делать? // Серафима Чекулаева
https://www.youtube.com/watch?v=dpFA4pqNafE
Особенности проектирования под ОС Аврора // Марина Салова, МойОфис
https://youtu.be/yATa3FnS53w?si=evRO_evxyD5RC1bY
Тимлидский рентген: как разглядеть потенциал своей команды и выпустить его наружу // Илья Прахт
https://www.youtube.com/watch?v=mCkBfXz7GXo
Как Midjourney может помочь в работе дизайнеру // Алина Сидоренко, Friflex
https://youtu.be/Rl-rrc54mEI?si=tGyAevumeFgxo6bG
На канале пока выложены не все видео
YouTube
Проблемы с эмпатией у подчиненных — что делать? // Серафима Чекулаева
О докладе:
Есть много мемов про то, насколько буквально программисты понимают окружающих и не учитывают в общении социальный подтекст. Несмешно становится тогда, когда такой подчиненный вырастает в менеджера или руководителя. Потому что теперь его задача…
Есть много мемов про то, насколько буквально программисты понимают окружающих и не учитывают в общении социальный подтекст. Несмешно становится тогда, когда такой подчиненный вырастает в менеджера или руководителя. Потому что теперь его задача…
🔥3
#compose Один из острых моментов при миграции на Compose - это правильно устроенная навигация. В статье как раз приходится набор полезных практик:
Forwarded from Mobile Compose
#Article #Medium #Navigation
Best Practices for Compose Navigation in Multi-Module Project
Неплохая статья со списком лучших практик по организации навигации в многомодульном проекте с Compose.
Зеркало статьи 👉 тут
Best Practices for Compose Navigation in Multi-Module Project
Неплохая статья со списком лучших практик по организации навигации в многомодульном проекте с Compose.
Зеркало статьи 👉 тут
Medium
Best Practices for Compose Navigation in Multi-Module Project
The story will elaborate and implement best practices for Compose Navigation.
🔥2❤1
Forwarded from iOS Broadcast (Андрей Зонов)
⚡️ Очень крутые новости по доработке 🐛 LLDB дебаггера Swift 5.9
Что это дает для разработчиков:
👉 Вывод переменных в консоли с помощью p и po быстрее и понятнее
👉 Поддержка Generic параметров выражений
👉 Более точное понимание скоупа выражения и переменных
Те самые изменения, которые мы, обычно не замечаем, но они значительно улучшают опыт взаимодействия с языком
* LLDB дебаггер - следующее поколение высокоэффективного дебаггера, являющегося частью LLVM проекта
Что это дает для разработчиков:
👉 Вывод переменных в консоли с помощью p и po быстрее и понятнее
👉 Поддержка Generic параметров выражений
👉 Более точное понимание скоупа выражения и переменных
Те самые изменения, которые мы, обычно не замечаем, но они значительно улучшают опыт взаимодействия с языком
* LLDB дебаггер - следующее поколение высокоэффективного дебаггера, являющегося частью LLVM проекта
🔥4
Многие попробовали Compose iOS, но не все заглядывали под капот, особенно как Алексей Гладков
❤2
Forwarded from Mobile Development by AppTractor
Media is too big
VIEW IN TELEGRAM
“Каждое утро я выпиваю чашечку кофе и слушаю шоу от разработчиков из Тинькофф “Как это работает”” © Билл Гейтс
Шоу ведут Android-разработчик Кирилл Розов и iOS-разработчица Розалия Амирова, которые приглашают экспертов, чтобы поговорить про аспекты ИТ-индустрии.
Дискуссии, лайфхаки для собеседований и выпуск, где заглядываем под капот Compose Multiplatform вместе с Алексеем Гладковым ищите здесь: Compose IOS. Как это работает #0 Пилот
Шоу ведут Android-разработчик Кирилл Розов и iOS-разработчица Розалия Амирова, которые приглашают экспертов, чтобы поговорить про аспекты ИТ-индустрии.
Дискуссии, лайфхаки для собеседований и выпуск, где заглядываем под капот Compose Multiplatform вместе с Алексеем Гладковым ищите здесь: Compose IOS. Как это работает #0 Пилот
🔥5
Теперь с помощью синтаксического сахара и модификатора backport можно сделать код SwiftUI чище:
Forwarded from iOS Broadcast (Андрей Зонов)
В SwiftUI каждый год появляются новые ViewModifier, которые хочется использовать уже сейчас, но для сохранения обратной совместимости не понятно куда вставить if #available. Хочу поделиться с вами своим подходом к опциональным модификаторам, которые помогают подготовиться к миграции на новые API а так же добавить функциональность в те версии где это возможно
1️⃣ Создаем дженерик Wrapper Backport
2️⃣ Добавляем его к View
3️⃣ Добавляем нужную нам реализацию в Backport
4️⃣ Используем тот же ViewModifier только из backport
А как вы решаете эту задачу?
А как вы решаете эту задачу?
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2