Новый дашборд AppMetrica 🔥
Отличные новости для всей мобильной команды — в AppMetrica появился дашборд, на котором можно быстро оценить все ключевые показатели приложения и проводить быстрый «хелсчек».
Сейчас на дашборд можно добавить более 20 виджетов, которые позволяют оперативно отслеживать важные метрики, в том числе:
→ ARPU
→ Установки по источникам
→ Ретеншн и вовлеченность
→ Доход от in-app и e-com приложений
→ Средний чек
→ Крэши
Читать (Ru)
Отличные новости для всей мобильной команды — в AppMetrica появился дашборд, на котором можно быстро оценить все ключевые показатели приложения и проводить быстрый «хелсчек».
Сейчас на дашборд можно добавить более 20 виджетов, которые позволяют оперативно отслеживать важные метрики, в том числе:
→ ARPU
→ Установки по источникам
→ Ретеншн и вовлеченность
→ Доход от in-app и e-com приложений
→ Средний чек
→ Крэши
Читать (Ru)
appmetrica.yandex.ru
Собирайте все ключевые метрики приложения в новом дашборде AppMetrica
Теперь аналитика приложения начинается с быстрого обзора всех основных показателей.
👍8🔥4🤔1🎉1💩1
7 Hottest Android Studio Plugins To Faster Your App Development
Несколько полезных плагинов для Android Studio. Наверняка многие из вас уже некоторые используют.
👉 ADB Idea
👉 CodeGlance
👉 Key Promoter X
👉 Scala
👉 IdeaVim
👉 Android Input
👉 Android Drawable Preview
Хотел бы отдельно отметить Android Drawable Preview, действительно удобный плагин, который показывает превьюшки ваших иконок и shape drawable – рекомендую 👍
Читать (En)
Несколько полезных плагинов для Android Studio. Наверняка многие из вас уже некоторые используют.
👉 ADB Idea
👉 CodeGlance
👉 Key Promoter X
👉 Scala
👉 IdeaVim
👉 Android Input
👉 Android Drawable Preview
Хотел бы отдельно отметить Android Drawable Preview, действительно удобный плагин, который показывает превьюшки ваших иконок и shape drawable – рекомендую 👍
Читать (En)
👍8🔥2👏1
Relay designer and developer tooling
Как вы уже знаете тут Гугл выпустили альфу Relay – инструмент, который превращает дизайн из Figma в код Compose.
Выглядит всё достаточно круто и просто – ставим нужные плагины, тулзы, затем импортируем и вуаля, у нас готовый код и всё красиво. Сам еще не тестил, но что-то мне подсказывает, что так не бывает 😁. Будем следить за обновлениями.
Собрал несколько полезных ссылок в один пост, чтоб потом не искать 😉
👉 From Figma to Composables in Android Studio with Ease 📖
👉 Reimagining designer-developer handoff: Introducing Relay📹
👉 Convert UI Components from Figma to Composable Functions - Introducing with Relay📹
👉 Relay for Figma🖼
👉 Relay designer and developer tooling📟
👉 Relay for Android Studio 🛠
👉 Relay Material
Как вы уже знаете тут Гугл выпустили альфу Relay – инструмент, который превращает дизайн из Figma в код Compose.
Выглядит всё достаточно круто и просто – ставим нужные плагины, тулзы, затем импортируем и вуаля, у нас готовый код и всё красиво. Сам еще не тестил, но что-то мне подсказывает, что так не бывает 😁. Будем следить за обновлениями.
Собрал несколько полезных ссылок в один пост, чтоб потом не искать 😉
👉 From Figma to Composables in Android Studio with Ease 📖
👉 Reimagining designer-developer handoff: Introducing Relay
👉 Convert UI Components from Figma to Composable Functions - Introducing with Relay
👉 Relay for Figma
👉 Relay designer and developer tooling
👉 Relay for Android Studio 🛠
👉 Relay Material
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🤔10🔥1
Известность команд Android разработки 2022
Уже кажется все запостили, теперь моя очередь.
Во-первых. Посмотрите результаты опроса, там есть достаточно интересные и полезные темы: какие книги рекомендуют к прочетнию, в каких сферах предпочитают работать Android-разработчики, популярные каналы и сообщества по Android и т.д.
Во-вторых. Хочу выразить благодарность всем вам, подписчикам канала @mobile_native, за то, что мой канал попал в этот список, за то, что читаете и репостите. Каналу чуть больше 1 года, а мы уже показываем достойные результаты я считаю 💪
Дальше больше, будем развиваться и думаю в следующей году покажем результаты как минимум x2 🔥. Если у вас есть вопросы, предложения по формату, постам и т.д., пишите в личку – @artemiygreg.
Дублирую ссылки на исследования
👉 Известность команд Android разработки 2022
👉 Известность команд iOS разработки 2022
Так же обратитие внимание и подписывайтесь на другие каналы.
Уже кажется все запостили, теперь моя очередь.
Во-первых. Посмотрите результаты опроса, там есть достаточно интересные и полезные темы: какие книги рекомендуют к прочетнию, в каких сферах предпочитают работать Android-разработчики, популярные каналы и сообщества по Android и т.д.
Во-вторых. Хочу выразить благодарность всем вам, подписчикам канала @mobile_native, за то, что мой канал попал в этот список, за то, что читаете и репостите. Каналу чуть больше 1 года, а мы уже показываем достойные результаты я считаю 💪
Дальше больше, будем развиваться и думаю в следующей году покажем результаты как минимум x2 🔥. Если у вас есть вопросы, предложения по формату, постам и т.д., пишите в личку – @artemiygreg.
Дублирую ссылки на исследования
👉 Известность команд Android разработки 2022
👉 Известность команд iOS разработки 2022
Так же обратитие внимание и подписывайтесь на другие каналы.
🔥15👍5🎉3🤮2
Всем выйти из сумрака: как добавить тень на Android
Еще одна полезная статья, в которой рассматриваются различные варианты нарисовать тенюшки в Android.
👉 Elevation
👉 MaterialShapeDrawable
👉 Paint.setShadowLayer
👉 BlurMaskFilter
👉 ScriptIntrinsicBlur (Deprecated)
👉 NinePatchDrawable
Читать (Ru)
Еще одна полезная статья, в которой рассматриваются различные варианты нарисовать тенюшки в Android.
👉 Elevation
👉 MaterialShapeDrawable
👉 Paint.setShadowLayer
👉 BlurMaskFilter
👉 ScriptIntrinsicBlur (Deprecated)
👉 NinePatchDrawable
Читать (Ru)
👍15🔥3
OnBackPressed for Fragments with Delegation
Пример реализации on back pressed для фрагментов через делегат.
Не очень понравился lateinit у onBackPressed, можно было бы как-то по другому сделать. Ну или хотя бы добавить проверку
Читать (En)
Пример реализации on back pressed для фрагментов через делегат.
Не очень понравился lateinit у onBackPressed, можно было бы как-то по другому сделать. Ну или хотя бы добавить проверку
isInitialized перед вызовом на всякий случай 😉Читать (En)
👍9🤔5👎1🔥1🌚1
Swift Concurrency - Things They Don't Tell You
Статья с разбором некоторых особенностей при работе с Swift Concurrency (async-await, actor, tasks)
Читать (En)
Статья с разбором некоторых особенностей при работе с Swift Concurrency (async-await, actor, tasks)
Читать (En)
👍8👏1
Jetpack Compose Side Effects – With Examples
Разбор функций Side-effects Api в Compose с примерами.
👉 LaunchedEffect
👉 rememberCoroutineScope
👉 DisposableEffect
👉 SideEffect
👉 produceState
Читать (En)
Разбор функций Side-effects Api в Compose с примерами.
👉 LaunchedEffect
👉 rememberCoroutineScope
👉 DisposableEffect
👉 SideEffect
👉 produceState
Читать (En)
👍8🔥2👏1
Подборка статей про Kotlin Flow`s, Channel Flow, сравнение StateFlow, SharedFlow и CallbackFlow + простой разбор Flow из Compose на примере счетчика с учетом жизненного цикла.
👉 Keep Your Kotlin Flow Alive and Listening With CallbackFlow
👉 Kotlin’s Channel Flow With Rendezvous Is Not The Same As Kotlin Flow
👉 Comparing StateFlow, SharedFlow, and CallbackFlow
👉 Kotlin’s Flow, ChannelFlow, and CallbackFlow Made Easy
👉 Learn Simple Android Compose Flow Lifecycle Handling With Counter
👉 Consuming flows safely in Jetpack Compose
👉 Keep Your Kotlin Flow Alive and Listening With CallbackFlow
👉 Kotlin’s Channel Flow With Rendezvous Is Not The Same As Kotlin Flow
👉 Comparing StateFlow, SharedFlow, and CallbackFlow
👉 Kotlin’s Flow, ChannelFlow, and CallbackFlow Made Easy
👉 Learn Simple Android Compose Flow Lifecycle Handling With Counter
👉 Consuming flows safely in Jetpack Compose
🔥11👍3👏2
Auto Inflated-Cleared View Binding in Fragments Using Delegation
А вот еще один пример использования Kotlin Delegation. На этот раз реализация
Читать (En)
А вот еще один пример использования Kotlin Delegation. На этот раз реализация
view binding для фрагментов, с учетом lifecycle.Читать (En)
👍13🔥2💩2
Используем делегаты в android-приложениях
И еще в догонку про использование делегатов вместо наследования.
Читать (Ru)
И еще в догонку про использование делегатов вместо наследования.
Читать (Ru)
👍11🔥4👏2💩1
Getting started with Unit Tests in Swift
Неплохая статейка про Unit тесты в Swift-е. В статье рассматриваются основные принципы (что такое unit тесты, нейминг тестов и т.д.), даются какие-то общие рекомендации и примеры простых тестов.
Читать (En)
Неплохая статейка про Unit тесты в Swift-е. В статье рассматриваются основные принципы (что такое unit тесты, нейминг тестов и т.д.), даются какие-то общие рекомендации и примеры простых тестов.
Читать (En)
👍6🔥1
Вы уверены? Как писать тексты для экранов подтверждения
Сегодня статейка не совсем по нашей теме, но не менее важная – Тексты. Тексты одна из важных штук и их нужно уметь правильно писать, чтоб пользователю было всё понятно с первого раза и не возникало лишних вопросов касаемо логики.
В статье как раз приводятся примеры того, как писать понятные тексты для экранов подтверждения и как лучше не писать.
Читать (Ru)
Сегодня статейка не совсем по нашей теме, но не менее важная – Тексты. Тексты одна из важных штук и их нужно уметь правильно писать, чтоб пользователю было всё понятно с первого раза и не возникало лишних вопросов касаемо логики.
В статье как раз приводятся примеры того, как писать понятные тексты для экранов подтверждения и как лучше не писать.
Читать (Ru)
👍12🔥4
Android App Architecture
У Гугла в гайдах есть целая секция про архитектуру, модуляризацию, компоненты и. т.д. Так вот эта секция в последнее время частенько обновляется, поэтому рекомендую сохранить ссылки себе куда-нибудь в закладки и иногда туда поглядывать 😉
• Guide to app architecture →
• Recommendations for Android architecture →
• UI layer →
• UI events →
• State holders and UI State →
• UI State production →
• Domain layer →
• Data layer →
• Offline-first →
• Modularization →
• Common modularization patterns →
• Learning Pathway →
У Гугла в гайдах есть целая секция про архитектуру, модуляризацию, компоненты и. т.д. Так вот эта секция в последнее время частенько обновляется, поэтому рекомендую сохранить ссылки себе куда-нибудь в закладки и иногда туда поглядывать 😉
• Guide to app architecture →
• Recommendations for Android architecture →
• UI layer →
• UI events →
• State holders and UI State →
• UI State production →
• Domain layer →
• Data layer →
• Offline-first →
• Modularization →
• Common modularization patterns →
• Learning Pathway →
👍15🍌5🔥3🌭1🍾1
7 Android Lifecycle Interview Questions That Some Got Wrong
Полезная статейка для начинающих с вопросами/ответами по lifecycle, которые могут спросить на собесах.
Читать (En)
Полезная статейка для начинающих с вопросами/ответами по lifecycle, которые могут спросить на собесах.
Читать (En)
👍15👀2🔥1
Gradle Best Practices
Несколько материалов для работы с Gradle. Несколько плагинов, с помощью которых можно проверить применение лучших практик и оценить эффективность оптимизации и собственно сами best practices.
👉 Best Practices when using Gradle
👉 Gradle Best Practices Plugin
👉 Gradle Analytics Plugin
Несколько материалов для работы с Gradle. Несколько плагинов, с помощью которых можно проверить применение лучших практик и оценить эффективность оптимизации и собственно сами best practices.
👉 Best Practices when using Gradle
👉 Gradle Best Practices Plugin
👉 Gradle Analytics Plugin
🔥10👍3⚡1
Build an iOS Networking App With Automated JWT Authorization
Некотороые время назад было несколько постов (раз и два) про refresh токена в Android, а вот собственно и пример реализации обновления токена (JWT) в iOS.
Код на GitHub → Mobile-Jwt-Authorizer
Читать (En)
Некотороые время назад было несколько постов (раз и два) про refresh токена в Android, а вот собственно и пример реализации обновления токена (JWT) в iOS.
Код на GitHub → Mobile-Jwt-Authorizer
Читать (En)
👍6🤔2🔥1
Compose Animation Playground
Репозиторий с реализациями различных анимаций на Jetpack Compose (transition, scale, slide, expand, crossfade, etc).
GitHub → Compose-Animation-Playground
Репозиторий с реализациями различных анимаций на Jetpack Compose (transition, scale, slide, expand, crossfade, etc).
GitHub → Compose-Animation-Playground
🔥10👍3🤩2
Marquee with Jetpack Compose
Реализация marquee эффекта у текста на Jetpack Compose. За основу автор взял этот проект и немного допилил.
Код можно посмотреть на GitHub тут и тут.
Читать (En)
Реализация marquee эффекта у текста на Jetpack Compose. За основу автор взял этот проект и немного допилил.
Код можно посмотреть на GitHub тут и тут.
Читать (En)
👍3🔥3
Safe button click in Android
Сегодня небольшое, частичное дополнение к этому посту. Казалось бы на простую тему, но очень важную – safe button click.
И так, в Android по дефолту реализация кликов никак не ограничена. Что имеется ввиду? Если например взять обычную кнопку (Button), повесить на нее listener и кликнуть быстро несколько раз – onClick() будет вызван несколько раз и это не есть хорошо, объясню почему.
Кейс 1. Предположим у вас приложение под какой-нибудь интернет-магазин/маркетплейс или что-то подобное. У вас есть фича "Заказы", соответственно экранчик с оформлением заказа и кнопка "Оформить заказ", при нажатии на которую, запрос на бэк. Так вот, будет не очень прикольно, если создастся несколько заказов. А что если вместо заказов, будет например функциональность оплаты? Понятно, что есть 3DS и все такое, но риск все равно есть.
Кейс 2. Предположим у вас по клику стартует новая
Кейсов можно придумать множество, от простых до достаточно критичных. Для примера я взял наиболее понятные.
Теперь про то, как такое решать?
Наиболее популярное решение, которое я видел –
Реализовать такое можно по-разному, кто-то решает через Rx, кто-то через корутины, кто-то через кастомные обработчики. Я больше предпочитаю кастомный обработчик с delay + kotlin extension для View.
Вот несколько примеров с реализациями
👉 Kotlin Expert [Safe Click Listener in Android]
👉 Android Safe Click Listener
👉 Ensure single click on Android
👉 How to prevent multiple clicks in Android Jetpack Compose
Сегодня небольшое, частичное дополнение к этому посту. Казалось бы на простую тему, но очень важную – safe button click.
И так, в Android по дефолту реализация кликов никак не ограничена. Что имеется ввиду? Если например взять обычную кнопку (Button), повесить на нее listener и кликнуть быстро несколько раз – onClick() будет вызван несколько раз и это не есть хорошо, объясню почему.
Кейс 1. Предположим у вас приложение под какой-нибудь интернет-магазин/маркетплейс или что-то подобное. У вас есть фича "Заказы", соответственно экранчик с оформлением заказа и кнопка "Оформить заказ", при нажатии на которую, запрос на бэк. Так вот, будет не очень прикольно, если создастся несколько заказов. А что если вместо заказов, будет например функциональность оплаты? Понятно, что есть 3DS и все такое, но риск все равно есть.
Кейс 2. Предположим у вас по клику стартует новая
Activity. Как думаете, что будет, если тыкнуть кнопку несколько раз? Совершенно верно, Activity без проблем запустится несколько раз. Последствия зависят от логики, риски могут быть достаточно серьезными. В многих, в том числе и крупных/известных приложениях встречал такое поведение.Кейсов можно придумать множество, от простых до достаточно критичных. Для примера я взял наиболее понятные.
Теперь про то, как такое решать?
Наиболее популярное решение, которое я видел –
delay на клик. То есть, давать возможность нажать на кнопку 1 раз в 1 или несколько секунд. Надеюсь суть понятна.Реализовать такое можно по-разному, кто-то решает через Rx, кто-то через корутины, кто-то через кастомные обработчики. Я больше предпочитаю кастомный обработчик с delay + kotlin extension для View.
Вот несколько примеров с реализациями
👉 Kotlin Expert [Safe Click Listener in Android]
👉 Android Safe Click Listener
👉 Ensure single click on Android
👉 How to prevent multiple clicks in Android Jetpack Compose
👍22🔥3🤔1
Kotlin vs Java: The Clean Code Edition
Интересная статейка с сравнением одного и того же кода написанного на Kotlin и на Java.
P.S. Уже и забыл, когда писал последний раз на Java. Kotlin 💪
Читать (En)
Интересная статейка с сравнением одного и того же кода написанного на Kotlin и на Java.
P.S. Уже и забыл, когда писал последний раз на Java. Kotlin 💪
Читать (En)
👍11🔥1🤡1