Stop using MVVM with SwiftUI
Давненько не было на канале материалов по iOS, нужно это исправлять 😎
Статья про то, почему использование MVVM в связке с SwiftUI плохая затея.
Читать (En)
Давненько не было на канале материалов по iOS, нужно это исправлять 😎
Статья про то, почему использование MVVM в связке с SwiftUI плохая затея.
Читать (En)
👍8👎3🔥1😁1
A cleaner way to interact between Composable and ViewModel in Jetpack Compose
Пример более чистого взаимодействия между Composable и ViewModel в Jetpack Compose, через единый класс для UI стейтов и Sealed Class для ивентов.
Кажется, что данный подход никак не привязан к UI стилю (Jetpack Compose / Xml), а больше про взаимодействие View слоя с ViewModel. Поэтому, Jetpack Compose в принципе отсюда можно 😉
Читать (En)
Пример более чистого взаимодействия между Composable и ViewModel в Jetpack Compose, через единый класс для UI стейтов и Sealed Class для ивентов.
Кажется, что данный подход никак не привязан к UI стилю (Jetpack Compose / Xml), а больше про взаимодействие View слоя с ViewModel. Поэтому, Jetpack Compose в принципе отсюда можно 😉
Читать (En)
👍11
Deep Dive Into Deep Link. Часть 1. Введение и исходная задача
Первая, вводная часть из серии статей про Deep Link.
👉 Что такое Deep Link
👉 Android App Link
👉 Как работают Deep Link на разных устройствах.
Читать (Ru)
Первая, вводная часть из серии статей про Deep Link.
👉 Что такое Deep Link
👉 Android App Link
👉 Как работают Deep Link на разных устройствах.
Читать (Ru)
👍10
Concurrency in iOS: GCD
Пока по андроиду не попадаются интересные материалы, предлагаю почитать статейку не тему Concurrency в iOS.
👉 Introduction to Concurrency
👉 Concurrency in iOS
👉 Grand Central Dispatch
👉 DispatchQueue
👉 DispatchWorkItem
👉 Concurrency Problem
Читать (En)
Пока по андроиду не попадаются интересные материалы, предлагаю почитать статейку не тему Concurrency в iOS.
👉 Introduction to Concurrency
👉 Concurrency in iOS
👉 Grand Central Dispatch
👉 DispatchQueue
👉 DispatchWorkItem
👉 Concurrency Problem
Читать (En)
🔥5👍3
Что мы используем для анализа Android-приложений
Крутая статья, с набором инструментов для анализа Android-приложений. Для удобства, вынес ссылки на некоторые инструменты в пост.
👉 BurpSuite
👉 MitmProxy
👉 OWASP ZAP
👉 JADX
👉 Apktool
👉 ByteCode Viewer
👉 Androguard
👉 Mariana Trench
👉 Hbctool
👉 Frida
👉 Objection
👉 MagiskTrustUserCerts
👉 WebViewDebugHook
Однозначно в избранное ✅
Читать (Ru)
Крутая статья, с набором инструментов для анализа Android-приложений. Для удобства, вынес ссылки на некоторые инструменты в пост.
👉 BurpSuite
👉 MitmProxy
👉 OWASP ZAP
👉 JADX
👉 Apktool
👉 ByteCode Viewer
👉 Androguard
👉 Mariana Trench
👉 Hbctool
👉 Frida
👉 Objection
👉 MagiskTrustUserCerts
👉 WebViewDebugHook
Однозначно в избранное ✅
Читать (Ru)
🔥18👍4
Новый канал в семействе Native – QA Native 😎
Давно в планах было создать еще несколько тематических каналов, таким образом еще в январе я забронировал линк в ТГ – @qa_native и начал потихоньку накидывать туда материалы.
Сегодня разгрузил какую-то часть интересного и полезного избранного материала и предлагаю подписаться тем, кому интересна тема QA, тестирования, автоматизации и т.д.
Для тех, кто не знает, когда-то давно я сам начинал в IT с обычного тестировщика, поэтому в этой теме я тоже разбираюсь на достаточном уровне.
Присоединяйтесь → @qa_native
P.S. Следите за новостями, еще есть несколько линков забронированных 😉
Давно в планах было создать еще несколько тематических каналов, таким образом еще в январе я забронировал линк в ТГ – @qa_native и начал потихоньку накидывать туда материалы.
Сегодня разгрузил какую-то часть интересного и полезного избранного материала и предлагаю подписаться тем, кому интересна тема QA, тестирования, автоматизации и т.д.
Для тех, кто не знает, когда-то давно я сам начинал в IT с обычного тестировщика, поэтому в этой теме я тоже разбираюсь на достаточном уровне.
Присоединяйтесь → @qa_native
P.S. Следите за новостями, еще есть несколько линков забронированных 😉
🔥7👍2
Explore Compose MotionLayout
Пример реализации достаточно прикольной анимации с помощью MotionLayout в Jetpack Compose.
Читать (En)
Пример реализации достаточно прикольной анимации с помощью MotionLayout в Jetpack Compose.
Читать (En)
👍6🔥4🤨2
Неочевидное про Fragment API. Часть 1. Транзакции
Статья от команды Тинькофф, про некоторые интересные моменты из Fragment API, о которых вы могли не знать (add, replace, show/hide,
Читать (Ru)
Статья от команды Тинькофф, про некоторые интересные моменты из Fragment API, о которых вы могли не знать (add, replace, show/hide,
reorderingAllowed, ограниченный lifecycle).Читать (Ru)
👍13
OkHttp: How to Refresh Access Token Efficiently
Некоторое время назад был пост про рефреш токена через OkHttp Interceptors. И был коммент о том, что мол это никому не нужно, т.к. токен нужно обновлять в Authenticator.
Я тут подумал, что было бы логично закинуть пример обновление токена и через Authenticator.
Вот собственно и сам пример 😉. В статье как раз сравнивются 2 подхода через Interceptors и через Authenticator, ну и описаны принципы их работы.
Читать (En)
Некоторое время назад был пост про рефреш токена через OkHttp Interceptors. И был коммент о том, что мол это никому не нужно, т.к. токен нужно обновлять в Authenticator.
Я тут подумал, что было бы логично закинуть пример обновление токена и через Authenticator.
Вот собственно и сам пример 😉. В статье как раз сравнивются 2 подхода через Interceptors и через Authenticator, ну и описаны принципы их работы.
Читать (En)
👍21❤5
Готовим Window Inset под соусом Jetpack Compose и щепоткой View
Крайне полезная статья с подробным разбором про
👉 Этапы настройки edge-to-edge
👉 WindowInsets vs fitSystemWindow
👉 Примеры обработки insets (System Window Insets, Ime Insets, Stable Insets, etc)
Наиболее распространенные кейсы, это когда
Читать (Ru)
Крайне полезная статья с подробным разбором про
Window Inset.👉 Этапы настройки edge-to-edge
👉 WindowInsets vs fitSystemWindow
👉 Примеры обработки insets (System Window Insets, Ime Insets, Stable Insets, etc)
Наиболее распространенные кейсы, это когда
Status Bar или Navigation Bar перекрывает вашу разметку. Уверен, многие сталкивались с таким поведением. В статье как раз и рассказывается как с этим работать.Читать (Ru)
👍14🔥1🤩1
Measuring and drawing in Jetpack Compose
Статья про то, как происходит отрисовка в Jetpack Compose, как работает Measuring и Drawing.
Читать (En)
Статья про то, как происходит отрисовка в Jetpack Compose, как работает Measuring и Drawing.
Читать (En)
👍9🔥1
Яндекс запустил единое решение для монетизации мобильных приложений, которое поможет увеличить доходы до двух раз.
Простая монетизация рассчитана на владельцев приложений, которые не готовы разбираться в тонкостях работы рекламных систем, но хотят получать стабильный доход от показов объявлений в приложении.
Яндекс берет на себя всю работу по настройке, следит за показателями и своевременно вносит изменения, чтобы максимизировать ваш доход от рекламы.
Читать (Ru)
Простая монетизация рассчитана на владельцев приложений, которые не готовы разбираться в тонкостях работы рекламных систем, но хотят получать стабильный доход от показов объявлений в приложении.
Яндекс берет на себя всю работу по настройке, следит за показателями и своевременно вносит изменения, чтобы максимизировать ваш доход от рекламы.
Читать (Ru)
Yandex
A single solution for app monetization by Yandex
Get up to 2x more ad revenue, with expert management for every market
👍15💩5🤡4🔥2🤮2
Актуально ли размещение тематических IT-материалов, после порции утренних новостей?
Anonymous Poll
74%
Да
26%
Нет
🕊13😁8
Почему исключения в Kotlin Coroutines это сложно и как с этим жить?
Статья про обработку исключений в корутинах: особенности обработки исключений, try-catch, CoroutineExceptionHandler, launch, async, coroutineScope, supervisorScope.
Читать (Ru)
Статья про обработку исключений в корутинах: особенности обработки исключений, try-catch, CoroutineExceptionHandler, launch, async, coroutineScope, supervisorScope.
Читать (Ru)
👍18🔥4
Design of Kotlin Coroutines
Еще одна, большая статейка с детальным разбором корутин. Как создаются корутины, как работают под капотом, suspend функции, сoroutine state machine.
👉 launch()
👉 start()
👉 invoke()
👉 startCoroutineCancellable()
👉 resumeWithCancellable()
👉 resumeWith()
👉 invokeSuspend()
👉 Summary of coroutine construction
Читать (En)
Еще одна, большая статейка с детальным разбором корутин. Как создаются корутины, как работают под капотом, suspend функции, сoroutine state machine.
👉 launch()
👉 start()
👉 invoke()
👉 startCoroutineCancellable()
👉 resumeWithCancellable()
👉 resumeWith()
👉 invokeSuspend()
👉 Summary of coroutine construction
Читать (En)
👍17🔥4🙏1
The Android Platform: The 2022 Android Developer Roadmap
Большая серия статей на основе Android Developer Roadmap, в которых разбираются как базовые штуки типа платформы Android, так и основные компоненты, архитектура, популярные библиотеки, подхоходы к разработке и вот это вот всё.
👉 Part 1: The Android Platform
👉 Part 2: App Components
👉 Part 3: App Navigation and Jetpack
👉 Part 4: Design Patterns and Architecture
Саму карту в виде схемы можно посмотреть в репозитории → Android Developer Roadmap 2022
В избранное ✅
Большая серия статей на основе Android Developer Roadmap, в которых разбираются как базовые штуки типа платформы Android, так и основные компоненты, архитектура, популярные библиотеки, подхоходы к разработке и вот это вот всё.
👉 Part 1: The Android Platform
👉 Part 2: App Components
👉 Part 3: App Navigation and Jetpack
👉 Part 4: Design Patterns and Architecture
Саму карту в виде схемы можно посмотреть в репозитории → Android Developer Roadmap 2022
В избранное ✅
🔥13👍6😐3👏1
Caching with OkHttp Interceptor and Retrofit
Простой гайд как подрубить кеширование запросов в OkHttp.
Но такой подход нужно использовать аккуратно, т.к. можно напороться на неактуальные данные.
Насколько я помню OkHttp из коробки может обрабатывать кешированные запросы по коду 304 NOT MODIFIED, но для этого нужно, чтоб ваш бэк работал должным образом и при инициализации OkHttp нужно подрубить сам кеш вот так:
Читать (En)
Простой гайд как подрубить кеширование запросов в OkHttp.
Но такой подход нужно использовать аккуратно, т.к. можно напороться на неактуальные данные.
Насколько я помню OkHttp из коробки может обрабатывать кешированные запросы по коду 304 NOT MODIFIED, но для этого нужно, чтоб ваш бэк работал должным образом и при инициализации OkHttp нужно подрубить сам кеш вот так:
OkHttpClient.Builder()
.cache(Cache(context.cacheDir, CACHE_SIZE))
.build()Читать (En)
👍16🔥3🤔3
Неочевидное про Fragment API. Часть 2. (Не) создаем инстанс
У Тинькофф вышла вторая часть из цикла статей "Неочевидное про Fragment API" про то, как под капотом FragmentContainerView создаются фрагменты, как использовать свою кастомную фабрику для создания фрагментов, транзакции и т.д.
Читать (Ru)
У Тинькофф вышла вторая часть из цикла статей "Неочевидное про Fragment API" про то, как под капотом FragmentContainerView создаются фрагменты, как использовать свою кастомную фабрику для создания фрагментов, транзакции и т.д.
Читать (Ru)
👍13🔥1
How To Replace The Standard Crash Dialog With A Custom Error Screen?
Полезная статья о том, как сделать свой кастомный экран при возникновении креша. Для тех, кто не сталкивался, делается такое через кастомный глобальный ExceptionHandler →
Реализация своего хендлера может быть достаточно полезна, например собрать какие-нибудь логи или доп. инфу о девайсе, настройках и пульнуть на свой бэк. Либо же можно заложить какую-нибудь доп. логику.
Читать (En)
Полезная статья о том, как сделать свой кастомный экран при возникновении креша. Для тех, кто не сталкивался, делается такое через кастомный глобальный ExceptionHandler →
Thread.setDefaultUncaughtExceptionHandler(…).Реализация своего хендлера может быть достаточно полезна, например собрать какие-нибудь логи или доп. инфу о девайсе, настройках и пульнуть на свой бэк. Либо же можно заложить какую-нибудь доп. логику.
Читать (En)
👍21🔥5😁1
Deadlocks in Swift explained: detecting and solving
Неплохая статья, про взаимные блокировки(deadlocks) в Swift. Что такое deadlock, причины возникновения, способы обнаружения и возможные варианты решения.
Читать (En)
Неплохая статья, про взаимные блокировки(deadlocks) в Swift. Что такое deadlock, причины возникновения, способы обнаружения и возможные варианты решения.
Читать (En)
🔥3👍2🙏1
New Logcat in Android Studio Dolphin.
Несколько статей про новые фичи Logcat в новой версии Android Studio Dolphin.
👉 NEW Logcat in Android Studio Dolphin is Amazing!
👉 New Android Logcat: Top 5 features
Несколько статей про новые фичи Logcat в новой версии Android Studio Dolphin.
👉 NEW Logcat in Android Studio Dolphin is Amazing!
👉 New Android Logcat: Top 5 features
👍9🔥3