Dynamic Bottom Tabs for Jetpack Compose
Пример динамической работы с Bottom Tabs (скрыть, показать) в Jetpack Compose.
Хз для каких кейсов это может быть актуально, потому что в большинстве случаев, нижний бар для навигации статичный, но все же, вдруг кому-то пригодится.
Читать (En)
Пример динамической работы с Bottom Tabs (скрыть, показать) в Jetpack Compose.
Хз для каких кейсов это может быть актуально, потому что в большинстве случаев, нижний бар для навигации статичный, но все же, вдруг кому-то пригодится.
Читать (En)
👍8
Forwarded from Digital Media
А вот вам видос с демонстрацией корпоративной культуры общения в LATOKEN.
На видео вроде как СЕО компании в жесткой форме разносит своих подчинённых.
Уверен, что многие из вас видели открытые вакансии данной компании. Обязательно посмотрите и перешлите своим знакомым)
На видео вроде как СЕО компании в жесткой форме разносит своих подчинённых.
Уверен, что многие из вас видели открытые вакансии данной компании. Обязательно посмотрите и перешлите своим знакомым)
🤡15😱7👍4😁2🔥1💩1
How do View Models know how to survive configuration changes?
Статья для тех, кто не знает, как ViewModel переживает изменение конфигурации.
И вот тут еще одна статья на эту тему.
Кстати, в каком-то публичном собесе был интересный вопрос про то, как бы вы организовали переживание смены конфигурации. Допускаю, что на реальном собесе такое тоже могут спросить.
Читать (En)
Статья для тех, кто не знает, как ViewModel переживает изменение конфигурации.
И вот тут еще одна статья на эту тему.
Кстати, в каком-то публичном собесе был интересный вопрос про то, как бы вы организовали переживание смены конфигурации. Допускаю, что на реальном собесе такое тоже могут спросить.
Читать (En)
👍12
Kotlin Flow: Best Practices
Несколько советов при работе с Kotlin Flow.
👉 Use catch operator
👉 Play with launchIn
👉 Inject Dispatcher in flowOn
👉 Expose immutable StateFlow
Читать (En)
Несколько советов при работе с Kotlin Flow.
👉 Use catch operator
👉 Play with launchIn
👉 Inject Dispatcher in flowOn
👉 Expose immutable StateFlow
Читать (En)
👍14
Android - Testing Fundamentals
Цикл статей на тему тестов в Android.
👉 Part 1 – Writing Local tests in Android
👉 Part 2 – Writing ViewModel tests in Android
👉 Part 3 – Testing Room database with Coroutines and Flows
👉 Part 4 – Testing Api layer in Android
👉 Part 5 – Testing Composable in Jetpack Compose
Цикл статей на тему тестов в Android.
👉 Part 1 – Writing Local tests in Android
👉 Part 2 – Writing ViewModel tests in Android
👉 Part 3 – Testing Room database with Coroutines and Flows
👉 Part 4 – Testing Api layer in Android
👉 Part 5 – Testing Composable in Jetpack Compose
👍7
Quick Note on Jetpack Compose Recomposition
Еще одна полезная статья с заметками про рекомпозицию в Jetpack Compose.
И еще несколько схожих статей
👉 Jetpack Compose под капотом: Рекомпозиция и Стабильные типы
👉 Scoped recomposition in Jetpack Compose — what happens when state changes?
👉 Understanding re-composition in Jetpack Compose with a case study
Читать (En)
Еще одна полезная статья с заметками про рекомпозицию в Jetpack Compose.
И еще несколько схожих статей
👉 Jetpack Compose под капотом: Рекомпозиция и Стабильные типы
👉 Scoped recomposition in Jetpack Compose — what happens when state changes?
👉 Understanding re-composition in Jetpack Compose with a case study
Читать (En)
🔥9
Guide to Android app modularization
Официальный гайд от Гугла, который рассказывает про организацию многомодульности.
👉 What is modularization
👉 Benefits of modularization
👉 Common pitfalls
👉 Common modularization patterns
👉 Module to module communication
👉 General best practices
В качестве примера кода, ссылаются на уже всем известный проект → Now in Android App
Читать (En)
Официальный гайд от Гугла, который рассказывает про организацию многомодульности.
👉 What is modularization
👉 Benefits of modularization
👉 Common pitfalls
👉 Common modularization patterns
👉 Module to module communication
👉 General best practices
В качестве примера кода, ссылаются на уже всем известный проект → Now in Android App
Читать (En)
🔥15👍6👎2
Testing Room database with Coroutines and Flows
Третья часть из цикла статей "Android Testing Fundamentals", в которой рассказывается про тестирование Room в связке с Coroutines + Flows.
Читать (En)
Третья часть из цикла статей "Android Testing Fundamentals", в которой рассказывается про тестирование Room в связке с Coroutines + Flows.
Читать (En)
👍8🔥2
Как работает WorkManager в Android
Полезная статья про тонкости работы с WorkManager, базовые методы и как сделать так, чтоб система не грохнула фоновый процесс.
Читать (Ru)
Полезная статья про тонкости работы с WorkManager, базовые методы и как сделать так, чтоб система не грохнула фоновый процесс.
Читать (Ru)
👍15🔥1
Optimizing Android Performance
Несколько советов на тему оптимизации перфоманса.
👉 Rendering
👉 Memory
👉 Battery and network
Читать (En)
Несколько советов на тему оптимизации перфоманса.
👉 Rendering
👉 Memory
👉 Battery and network
Читать (En)
👍11🔥2
Clean Android multi-module offline-first scalable app in 2022
Крутая статейка с примером проекта, который включает в себя наверное самые актуальные технологии на данный момент. В избранное ✅
👉 Multi-module
👉 Jetpack Compose
👉 MVI
👉 Kotlin Сoroutines
👉 Kotlin Flow
👉 Kotlin serialization
👉 Hilt
👉 Room
Код на GitHub → Android Kotlin starter project - 2022
Читать (En)
Крутая статейка с примером проекта, который включает в себя наверное самые актуальные технологии на данный момент. В избранное ✅
👉 Multi-module
👉 Jetpack Compose
👉 MVI
👉 Kotlin Сoroutines
👉 Kotlin Flow
👉 Kotlin serialization
👉 Hilt
👉 Room
Код на GitHub → Android Kotlin starter project - 2022
Читать (En)
🔥19👍4🤮1
Ошибка в stacktrace из продакшена
Полезная статья о том, как stacktrace может указывать на неверное место возникновения ошибки и как анализировать обфусцированный код.
Всему виной оптимизация R8 + ProGuard, ну и определенные версии kotlin stdlib и AGP.
А вообще с R8 и ProGuard постоянно всплывают какие-то траблы, это прям отдельная тема.
Читать (Ru)
Полезная статья о том, как stacktrace может указывать на неверное место возникновения ошибки и как анализировать обфусцированный код.
Всему виной оптимизация R8 + ProGuard, ну и определенные версии kotlin stdlib и AGP.
А вообще с R8 и ProGuard постоянно всплывают какие-то траблы, это прям отдельная тема.
Читать (Ru)
👍9🔥1😁1
Comparing Jetpack Compose performance with XML
Если вы уже используете Jetpack Compose или собираетесь использовать, то наверняка вам будет интересно посмотреть сравнение производительности Jetpack Compose vs XML.
В результате, практически во всех проведенных тестахвыигрывает XML .
Читать (En)
Если вы уже используете Jetpack Compose или собираетесь использовать, то наверняка вам будет интересно посмотреть сравнение производительности Jetpack Compose vs XML.
В результате, практически во всех проведенных тестах
Читать (En)
😁15👍5👏1🤔1
Migrating My App To Android 13
Как вы все уже знаете, пару дней назад зарелизили Android 13, в котором появилось несколько важных изменений по типу runtime permissions для нотификейшнов, permissions для media и т.д.
Сообственно если еще не разбирались, вот статья с подробным описанием по миграции на Android 13.
Читать (En)
Как вы все уже знаете, пару дней назад зарелизили Android 13, в котором появилось несколько важных изменений по типу runtime permissions для нотификейшнов, permissions для media и т.д.
Сообственно если еще не разбирались, вот статья с подробным описанием по миграции на Android 13.
Читать (En)
👍11🔥1
Иерархия модулей: как выстроить связи между модулями в Android
Еще одна полезная статья от ребят с HH, про зависимости между модулями, да и в целом про то, как выстроить иерархию модулей в Android.
Читать (Ru)
Еще одна полезная статья от ребят с HH, про зависимости между модулями, да и в целом про то, как выстроить иерархию модулей в Android.
Читать (Ru)
🔥11👍2👎1
Delegation Pattern: An effective way of replacing Android’s Base Activity with native Kotlin support
Статья в которой рассматриваются общие вопросы паттерна Delegation и в качестве примера показано как с помощью Kotlin Delegate можно избавиться от Base Activity.
Базовые классы vs Делегаты – вечно холиварная тема. На всякий случай про базовые классы, т.к. в Java/Kotlin нет множественного наследования классов, приходиться всё пихать в базовый класс, что собственно нарушает Single Responsibility Principle из SOLID.
Читать (En)
Статья в которой рассматриваются общие вопросы паттерна Delegation и в качестве примера показано как с помощью Kotlin Delegate можно избавиться от Base Activity.
Базовые классы vs Делегаты – вечно холиварная тема. На всякий случай про базовые классы, т.к. в Java/Kotlin нет множественного наследования классов, приходиться всё пихать в базовый класс, что собственно нарушает Single Responsibility Principle из SOLID.
Читать (En)
👍6💩5❤1👎1🔥1
Few steps to new level security — Play Integrity API for Android apps.
Полезная статья о том, как можно повысить уровень безопасности вашего приложения с помощью Play Integrity API.
Читать (En)
Полезная статья о том, как можно повысить уровень безопасности вашего приложения с помощью Play Integrity API.
Читать (En)
👍8🔥1👏1🤩1
How to move View with Keyboard in Android using Kotlin
Несколько дней назад решил чутка заморочиться и сделать анимацию кнопки при появлении клавиатуры на API 30+, а сегодня на глаза попалась статья, в которой как раз подробно разибрается как это реализовать.
У меня правда кейс был чуть посложнее, чем пример из статьи – было 3 кнопки вертикально и двигать нужно было самую верхнюю.
Вот еще несколько статей, которыми я воспользовался. Они 2020 года и там некоторые методы уже Deprecated, но суть понятна.
👉 Animating your keyboard (part 1)
👉 Animating your keyboard (part 2): reacting to WindowInset animations
Читать (En)
Несколько дней назад решил чутка заморочиться и сделать анимацию кнопки при появлении клавиатуры на API 30+, а сегодня на глаза попалась статья, в которой как раз подробно разибрается как это реализовать.
У меня правда кейс был чуть посложнее, чем пример из статьи – было 3 кнопки вертикально и двигать нужно было самую верхнюю.
Вот еще несколько статей, которыми я воспользовался. Они 2020 года и там некоторые методы уже Deprecated, но суть понятна.
👉 Animating your keyboard (part 1)
👉 Animating your keyboard (part 2): reacting to WindowInset animations
Читать (En)
👍9🔥6
Как создавать анимации в Jetpack Compose
Неплохая статья с разбором и примерами анимаций в Jetpack Compose. Какие есть виды анимаций, создание высокоуровневых и низкоуровневых анимаций, способы кастомизации.
Читать (Ru)
Неплохая статья с разбором и примерами анимаций в Jetpack Compose. Какие есть виды анимаций, создание высокоуровневых и низкоуровневых анимаций, способы кастомизации.
Читать (Ru)
👍12
MVI with state-machine
Серия статей о том, как готовить MVI + state-machine в Android.
👉 Part 1 – Basics
👉 Part 2 – Tools
👉 Part 3 – Modules
Серия статей о том, как готовить MVI + state-machine в Android.
👉 Part 1 – Basics
👉 Part 2 – Tools
👉 Part 3 – Modules
👍9
Testing Api layer in Android - Testing Fundamentals
Четвертая часть из цикла статей "Android Testing Fundamentals", в которой рассказывается про то, как писать unit тесты для сетевого слоя.
Читать (En)
Четвертая часть из цикла статей "Android Testing Fundamentals", в которой рассказывается про то, как писать unit тесты для сетевого слоя.
Читать (En)
🔥5👍2