Custom modifiers in Jetpack Compose
В статье рассматриваются различные пути создания кастомных модификаторов в Jetpack Compose.
👉 Using the Composable Modifier Function
👉 Using the composed { } function
👉 Using the new Modifier.Node API
Читать (En)
В статье рассматриваются различные пути создания кастомных модификаторов в Jetpack Compose.
👉 Using the Composable Modifier Function
👉 Using the composed { } function
👉 Using the new Modifier.Node API
Читать (En)
🔥5❤4👍2
Как ускорить проверку приложения с помощью Impact-анализа: Часть 1 — Статические анализаторы
Разработчик из Циан делится опытом, как с помощью статических анализаторов можно оптимизировать и ускорить процесс проверки приложения.
Читать (Ru)
Разработчик из Циан делится опытом, как с помощью статических анализаторов можно оптимизировать и ускорить процесс проверки приложения.
Читать (Ru)
👍13🔥5❤3
Пишем транзишинометр для Андроид. Как понять, что мои экраны открываются быстро?
Интересная статья от Макса из Dodo, в которой он рассказывает как запилить универсальный инструмент (транзишинометр), для замера скорости открытия экранов, который можно использовать как для Fragment-ов, так и для Compose.
Читать (Ru)
Интересная статья от Макса из Dodo, в которой он рассказывает как запилить универсальный инструмент (транзишинометр), для замера скорости открытия экранов, который можно использовать как для Fragment-ов, так и для Compose.
Читать (Ru)
👍8❤3🔥3
Kotlin 2.1.0: Smarter when with Guard Conditions
Разбор с примерами кода, новой фичи – guard conditions для when, которая появилась в Kotlin 2.1.0.
Читать (En)
Разбор с примерами кода, новой фичи – guard conditions для when, которая появилась в Kotlin 2.1.0.
Читать (En)
🔥6👍3❤2
Forwarded from Swift Tips
Дебаг на максимум: секретные настройки Xcode, которые должен знать каждый разработчик
Большая статья, в которой рассматриваются некоторые графические баги, которые могут влиять на производительность и различные способы их пофиксить.
🟢 Что такое CPU и GPU и с чем их едят
🟢 Blended Layers — cмешанные слои
🟢 Copied Images: избавляемся от скопированных изображений
🟢 Выравниваем изображения Misaligned Images
🟢 Внеэкранная отрисовка Offscreen Rendering
🟢 Тени
🟢 Маски
🟢 Visual Effects
Читать (Ru)
Большая статья, в которой рассматриваются некоторые графические баги, которые могут влиять на производительность и различные способы их пофиксить.
Читать (Ru)
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥3❤2😁1
This media is not supported in your browser
VIEW IN TELEGRAM
Вопперы и табы: как мы сделали меню для Burger King
Ребята из Surf рассказывают, как делали вот такое меню для Burger King.
Список синхронизированный с табами – табы переключаются во время скролла, а при выборе таба происходит скролл в нужное место списка.
Читать (Ru)
Ребята из Surf рассказывают, как делали вот такое меню для Burger King.
Список синхронизированный с табами – табы переключаются во время скролла, а при выборе таба происходит скролл в нужное место списка.
Читать (Ru)
👍9❤2🔥2
Jetpack Compose как unbundled-библиотека. Скорость UI vs. Гибкость разработки
Ещё одна крутая статья от Макса, про оптимизации в Jetpack Compose, а именно про скорость открытия экранов: почему первый переход на Compose-экран занимает больше времени, как с этим связан Zygote и Jetpack Compose как Unbundled library.
👉 Введение
👉 История
👉 Unbundled library
👉 Оптимизация рекомпозиций
👉 Обновление Compose
👉 Baseline profiles
👉 «Прогрев» Compose
Читать (Ru)
Ещё одна крутая статья от Макса, про оптимизации в Jetpack Compose, а именно про скорость открытия экранов: почему первый переход на Compose-экран занимает больше времени, как с этим связан Zygote и Jetpack Compose как Unbundled library.
👉 Введение
👉 История
👉 Unbundled library
👉 Оптимизация рекомпозиций
👉 Обновление Compose
👉 Baseline profiles
👉 «Прогрев» Compose
Читать (Ru)
👍8❤4🔥4👌2
SVG to Compose – набор инструментов для преобразования SVG и Android Vector Drawable (AVD/XML) в иконки Jetpack Compose. Проект предоставляет несколько вариантов использования: Command-line tool и Gradle plugin.
GitHub → SVG to Compose
GitHub → SVG to Compose
👍8🔥3❤2
От Kotlin до машинного кода
Небольшая статья, в которой разбираются этапы трансформации кода Android-приложения, от написания в IDE до выполнения на устройстве: Java Bytecode, ART, Dalvik, DEX, OAT и вот это вот всё.
Читать (Ru)
Небольшая статья, в которой разбираются этапы трансформации кода Android-приложения, от написания в IDE до выполнения на устройстве: Java Bytecode, ART, Dalvik, DEX, OAT и вот это вот всё.
Читать (Ru)
👍21🔥5❤2
This media is not supported in your browser
VIEW IN TELEGRAM
How easy is drag-and-drop in Compose?
Статья с примером реализации drag-and-drop в Jetpack Compose.
Читать (En)
Статья с примером реализации drag-and-drop в Jetpack Compose.
Читать (En)
👍14❤3🔥3👨💻1
Android System Design Interview- Google/Uber
В статье-блоге чувак рассказывает про ключевые аспекты system design и чего интервьюеры обычно хотят от кандидатов.
P.S. Там нет как таковой технической составляющей, больше про общий концепт, вопросы и возможные нюансы, которые стоит учесть при проектировании.
Читать (En)
В статье-блоге чувак рассказывает про ключевые аспекты system design и чего интервьюеры обычно хотят от кандидатов.
P.S. Там нет как таковой технической составляющей, больше про общий концепт, вопросы и возможные нюансы, которые стоит учесть при проектировании.
Читать (En)
🔥5👎3❤2👍1
5 steps to implement MVI architecture with Jetpack Compose
Подробная статья с примером реализации MVI архитектуры в связке с Jetpack Compose на примере приложения для заметок.
👉 How MVI Works
👉 Dependencies
👉 Model layer
👉 ViewState & Intent
👉 ViewModel & EventManager
👉 UI layer
Исходный код на GitHub → NotesApp
Статья (En)
Подробная статья с примером реализации MVI архитектуры в связке с Jetpack Compose на примере приложения для заметок.
👉 How MVI Works
👉 Dependencies
👉 Model layer
👉 ViewState & Intent
👉 ViewModel & EventManager
👉 UI layer
Исходный код на GitHub → NotesApp
Статья (En)
🔥7❤3👍3❤🔥1
Building Dynamic App Icons in Android
Подробный гайд как сделать динамическое изменение иконки приложения.
Читать (En)
Подробный гайд как сделать динамическое изменение иконки приложения.
Читать (En)
👍11❤4🔥2👎1
Всё, что нужно знать об Android 15: архивирование, защита данных и новые API
Большая статья с обзором нововведений в Android 15.
👉 Контроль использования приложений на переднем дисплее
👉 Постоянная панель задач
👉 Поддержка складных телефонов
👉 Адаптивная вибрация
👉 Архивирование приложений
👉 Управление виджетами
👉 Предиктивная анимация возврата
👉 Мультимедиа
👉 Private Space
👉 Рекомендации для разработчиков
👉 Реализация функции непрерывности
👉 Обработка переключений между дисплеями
Читать (Ru)
Большая статья с обзором нововведений в Android 15.
👉 Контроль использования приложений на переднем дисплее
👉 Постоянная панель задач
👉 Поддержка складных телефонов
👉 Адаптивная вибрация
👉 Архивирование приложений
👉 Управление виджетами
👉 Предиктивная анимация возврата
👉 Мультимедиа
👉 Private Space
👉 Рекомендации для разработчиков
👉 Реализация функции непрерывности
👉 Обработка переключений между дисплеями
Читать (Ru)
👍6🔥5❤2
Dagger 2: как сделать свой DI за 10 минут
Полезная статья с разбором классов, которые генерит Dagger 2 для своей работы и построения графа зависимостей в частности.
Эта статья будет полезна тем, кто использует Dagger 2 в своих приложениях и иногда/часто попадает в ситуации непонимания, почему Dagger 2 ведёт себя не так, как мы ожидаем.
Дополнительная, но не менее важная цель статьи — показать, что базовый код, который генерирует Dagger, не такой уж и страшный.
Читать (Ru)
Полезная статья с разбором классов, которые генерит Dagger 2 для своей работы и построения графа зависимостей в частности.
Эта статья будет полезна тем, кто использует Dagger 2 в своих приложениях и иногда/часто попадает в ситуации непонимания, почему Dagger 2 ведёт себя не так, как мы ожидаем.
Дополнительная, но не менее важная цель статьи — показать, что базовый код, который генерирует Dagger, не такой уж и страшный.
Читать (Ru)
👍6❤3🔥2
С Новым годом, друзья!!! 🎄 🥳🥂
По некоторым причинам я выпал из пространства с середины декабря – на канале не было никакой активности. Поэтому, иду это срочно исправлять.
По традиции, начну со слов благодарности. Спасибо каждому из вас за активность, реакции, репосты, за то, что читаете канал🤝 . Отдельное спасибо тем, кто предлагает материалы в личку и делится обратной связью.
В новом году хочу пожелать вам спокойствия, душевного счастья, профессиональных скиллов и пусть всё задуманное обязательно исполнится. Проведите праздники с родными и отдохните как следует. С наступившим, друзья🥂
P.S. Обычно принято писать такие посты в конце года, но у меня в этом году получилось вот так (зато не как у всех 😉)
P.S.S. Если вдруг салаты ещё не доели – уже всё, можно выбрасывать, срок годности закончился)
По некоторым причинам я выпал из пространства с середины декабря – на канале не было никакой активности. Поэтому, иду это срочно исправлять.
По традиции, начну со слов благодарности. Спасибо каждому из вас за активность, реакции, репосты, за то, что читаете канал
В новом году хочу пожелать вам спокойствия, душевного счастья, профессиональных скиллов и пусть всё задуманное обязательно исполнится. Проведите праздники с родными и отдохните как следует. С наступившим, друзья
P.S. Обычно принято писать такие посты в конце года, но у меня в этом году получилось вот так (зато не как у всех 😉)
P.S.S. Если вдруг салаты ещё не доели – уже всё, можно выбрасывать, срок годности закончился)
Please open Telegram to view this post
VIEW IN TELEGRAM
🎄20❤8🍾7👍1🤝1
Debugging Kotlin Coroutines: Making "Optimised Out" Variables Visible
Какой-то долгий у меня в этом году получился перерыв в ТГ – пора возвращаться к публикациям. Прррошу понять и пррростить 😉
И начнём пожалуй со статьи, которая лежит в избранном с декабря.
При отладке, в приостановленной корутине некоторые переменные могут быть невидимыми и отображаться с сообщением «was optimised out». Такое поведение связано с внутренними оптимизациями Coroutines / State Machine, в целях экономии памяти.
Однако, если вы всё же хотите видеть всю инфу – можно включить отдельной настройкой для компилятора.
Читать (En)
Какой-то долгий у меня в этом году получился перерыв в ТГ – пора возвращаться к публикациям. Прррошу понять и пррростить 😉
И начнём пожалуй со статьи, которая лежит в избранном с декабря.
При отладке, в приостановленной корутине некоторые переменные могут быть невидимыми и отображаться с сообщением «was optimised out». Такое поведение связано с внутренними оптимизациями Coroutines / State Machine, в целях экономии памяти.
Однако, если вы всё же хотите видеть всю инфу – можно включить отдельной настройкой для компилятора.
kotlin {
compilerOptions {
if (System.getProperty("idea.active") == "true") {
freeCompilerArgs = listOf("-Xdebug")
}
}
}
Читать (En)
👍11🔥4❤3
Оптимизация под контролем: инструменты и метрики для Аndroid-приложений
Статья про оптимизацию времени запуска Android-приложения, в которой разбираются основные метрики старта и инструменты, с помощью которых можно анализировать производительность.
Читать (Ru)
Статья про оптимизацию времени запуска Android-приложения, в которой разбираются основные метрики старта и инструменты, с помощью которых можно анализировать производительность.
Читать (Ru)
🔥7❤4👍1
Разработка плагина для Android Studio
Туториал по созданию плагина для IDE: от идеи и реализации до публикации в стор JetBrains.
👉 Инструменты для разработки плагинов
👉 Базовые компоненты
👉 Разработка плагина для проверки орфографии в тексте
👉 Публикация в маркетплейс
Читать (Ru)
Туториал по созданию плагина для IDE: от идеи и реализации до публикации в стор JetBrains.
👉 Инструменты для разработки плагинов
👉 Базовые компоненты
👉 Разработка плагина для проверки орфографии в тексте
👉 Публикация в маркетплейс
Читать (Ru)
🔥7❤3👍3❤🔥1
Погружение в мир Lint'a в Android-проекте (часть 2)
Продолжение статьи про Lint в Android-проекте.
С момента публикации первой части, вышло несколько значимых обновлений AGP(а соответственно и артефактов линтера) + вторая версия Kotlin с новым компилятором.
В этой части рассматриваются наиболее важные изменения с небольшими примерами.
👉 Kotlin Analysis API
👉 Тестирование
👉 Частичный анализ
👉 Data Flow Analyzer
👉 Заключение
Читать (Ru)
Продолжение статьи про Lint в Android-проекте.
С момента публикации первой части, вышло несколько значимых обновлений AGP(а соответственно и артефактов линтера) + вторая версия Kotlin с новым компилятором.
В этой части рассматриваются наиболее важные изменения с небольшими примерами.
👉 Kotlin Analysis API
👉 Тестирование
👉 Частичный анализ
👉 Data Flow Analyzer
👉 Заключение
Читать (Ru)
🔥7❤3👍3