Forwarded from Swift Tips
Потоки под капотом: как работают многопоточность и синхронизация
Большой материал про то, как потоки устроены под капотом: работа потоков, скрытые механизмы, обеспечивающие их функционирование, какую пользу практикующим iOS‑разработчикам приносит понимание внутреннего устройства потоков.
🟢 Конкурентность VS параллелизм
🟢 Программа
🟢 Процесс
🟢 Поток
🟢 Задача
🟢 Kernel threads vs green threads
🟢 Потоки на уровне операционной системы
🟢 Кооперативная многозадачность
🟢 Принудительная многозадачность
🟢 Планировщики
🟢 Инструменты многопоточности и многозадачность
🟢 Закон Амдалла
🟢 Полезные в практике свойства потока
🟢 Выводы
Читать (Ru)
Большой материал про то, как потоки устроены под капотом: работа потоков, скрытые механизмы, обеспечивающие их функционирование, какую пользу практикующим iOS‑разработчикам приносит понимание внутреннего устройства потоков.
Читать (Ru)
Please open Telegram to view this post
VIEW IN TELEGRAM
👏4🔥3❤2👍2
Media is too big
VIEW IN TELEGRAM
Elevating Your Jetpack Compose UI with GraphicsLayer
Полезная статья с разбором модификатора
Читать (En)
Полезная статья с разбором модификатора
graphicsLayer(), его параметров и как они влияют на результат.Читать (En)
👍12🔥5❤2
Coroutine Suspension Mechanics: The Finite State Machine within
Ещё один полезный материал про внутрянку корутин: как устроен конечный автомат, стейт, как приостанавливается и возобновляется корутина с нужного места, локальные переменные, обработка ошибок и т.д.
👉 Introduction
👉 A Primer on Finite State Machines (FSM)
👉 Suspending Functions and the suspend Keyword
👉 Deconstructing the State Machine: How Kotlin Compiles Coroutines
👉 Meet the Tape: Using FSM Terminology to Understand Execution
👉 Pointer Movement: Resuming Execution After Suspension
👉 Exception Handling in Coroutines
👉 Scopes, Contexts, and Cancellation Mechanics
👉 Decompiled Code Examples
👉 Performance and Advantages
👉 Common Pitfalls and Misconceptions
👉 Conclusion
Читать (En)
Ещё один полезный материал про внутрянку корутин: как устроен конечный автомат, стейт, как приостанавливается и возобновляется корутина с нужного места, локальные переменные, обработка ошибок и т.д.
👉 Introduction
👉 A Primer on Finite State Machines (FSM)
👉 Suspending Functions and the suspend Keyword
👉 Deconstructing the State Machine: How Kotlin Compiles Coroutines
👉 Meet the Tape: Using FSM Terminology to Understand Execution
👉 Pointer Movement: Resuming Execution After Suspension
👉 Exception Handling in Coroutines
👉 Scopes, Contexts, and Cancellation Mechanics
👉 Decompiled Code Examples
👉 Performance and Advantages
👉 Common Pitfalls and Misconceptions
👉 Conclusion
Читать (En)
👍11❤5🔥3
Understanding Low Memory Management in Android: Kswapd & LMK
В статье рассказывается как Android работает с памятью на уровне системы, а именно как выделяется память и что происходит в момент нехватки памяти.
👉 Types of memory
👉 Low memory management
👉 Kswapd: kernel swap daemon
👉 LMK: Low-memory killer
Читать (En)
В статье рассказывается как Android работает с памятью на уровне системы, а именно как выделяется память и что происходит в момент нехватки памяти.
👉 Types of memory
👉 Low memory management
👉 Kswapd: kernel swap daemon
👉 LMK: Low-memory killer
Читать (En)
👍9❤5🔥4
Kotlin Coroutines in production
Сразу несколько статей по корутинам. В первой разбираются некоторые подводные камни при работе с корутинами, а вторая про диспатчеры.
🟢 The hidden costs of context switching
🟢 Thread pool saturation: the silent performance killer
🟢 Memory leaks through parent-child relationships
🟢 Debugging nightmares and how to solve them
🟢 When coroutines are the wrong choice
🟢 Real-world success pattern: parallel data processing
🟢 Understanding Coroutines Dispatchers
🟢 CPU-intensive tasks and I/O tasks
👉 Kotlin Coroutines in production: hard won lessons and pitfalls
👉 Understanding Coroutines Dispatchers
Сразу несколько статей по корутинам. В первой разбираются некоторые подводные камни при работе с корутинами, а вторая про диспатчеры.
👉 Kotlin Coroutines in production: hard won lessons and pitfalls
👉 Understanding Coroutines Dispatchers
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥4❤1😁1
Cheatsheet for centering items in Jetpack Compose
Шпаргалка по центрированию компонентов в Jetpack Compose.
Читать (En)
Шпаргалка по центрированию компонентов в Jetpack Compose.
Читать (En)
👍11❤3🔥3
Exercise Caution When Using runBlocking on Android
Полезная статья, в которой рассказывается как runBlocking устроен под капотом и почему его нужно использовать осторожно.
👉 Understanding runBlocking
👉 Examining runBlocking internals
👉 Why is using runBlocking on Android problematic?
👉 When can you use runBlocking?
Читать (En)
Полезная статья, в которой рассказывается как runBlocking устроен под капотом и почему его нужно использовать осторожно.
👉 Understanding runBlocking
👉 Examining runBlocking internals
👉 Why is using runBlocking on Android problematic?
👉 When can you use runBlocking?
Читать (En)
👍5❤4🔥4
Развитие Android глазами разработчика
Прикольная статья с обзором того, как развивался Android для разработчиков: инструменты, технологии, подходы, паттерны и т.д.
P.S. Если есть кто из олдов – го в комменты. Что помните из популярных технологий тех времён?
Читать (Ru)
Прикольная статья с обзором того, как развивался Android для разработчиков: инструменты, технологии, подходы, паттерны и т.д.
P.S. Если есть кто из олдов – го в комменты. Что помните из популярных технологий тех времён?
Читать (Ru)
🔥6👍4❤3
Детские ошибки при сборке Gradle-приложений
Автор статьи рассказывает про некоторые способы, с помощью которых можно ускорить сборку проекта.
👉 Вспомним этапы сборки
👉 Ускоряемся с инкрементальной сборкой
👉 Builde Cache и что с ним делать разработчику
👉 Нужен ли вам Configuration Cache
👉 Симбиоз Gradle-кэшей
👉 Поговорим о демонах
👉 Сборка на бинарном интерфейсе: ABI vs non-ABI
Читать (Ru)
Автор статьи рассказывает про некоторые способы, с помощью которых можно ускорить сборку проекта.
👉 Вспомним этапы сборки
👉 Ускоряемся с инкрементальной сборкой
👉 Builde Cache и что с ним делать разработчику
👉 Нужен ли вам Configuration Cache
👉 Симбиоз Gradle-кэшей
👉 Поговорим о демонах
👉 Сборка на бинарном интерфейсе: ABI vs non-ABI
Читать (Ru)
👍13🔥5❤4😁1
Seamless shimmer integration with existing Compose code
Статья с примером реализации шиммеров в Jetpack Compose, с помощью кастомного модификатора +
Читать (En)
Статья с примером реализации шиммеров в Jetpack Compose, с помощью кастомного модификатора +
CompositionLocalProvider Читать (En)
👍6❤2🔥2😁2🤔2
Composition Locals in Jetpack Compose: A Beginner-to-Advanced Guide
Подробный гайд по CompositionLocal в Jetpack Compose: что это такое, в каких случаях может быть полезно и как создавать кастомные.
Читать (En)
Подробный гайд по CompositionLocal в Jetpack Compose: что это такое, в каких случаях может быть полезно и как создавать кастомные.
Читать (En)
🎉9👍5❤2🔥1💩1
Android Use Cases: From Basic Implementation to Multi-Provider and Multi-Module Systems
Снова про use case`ы – большая статья, с различными способами и примерами реализации.
👉 Introduction
👉 What Is a Use Case
👉 Implementing a Simple Use Case
👉 Injecting Use Cases with Koin
👉 Using the Use Case in a ViewModel
👉 Combining Similar Use Cases into a Manager
👉 Multiple Implementations Example: Liskov Substitution Principle by example
👉 Transitioning from Single Module to Multi-Module Payment Systems
👉 Why not just use Multi-Providers as a module in a Multi-Module app?
Читать (En)
Снова про use case`ы – большая статья, с различными способами и примерами реализации.
👉 Introduction
👉 What Is a Use Case
👉 Implementing a Simple Use Case
👉 Injecting Use Cases with Koin
👉 Using the Use Case in a ViewModel
👉 Combining Similar Use Cases into a Manager
👉 Multiple Implementations Example: Liskov Substitution Principle by example
👉 Transitioning from Single Module to Multi-Module Payment Systems
👉 Why not just use Multi-Providers as a module in a Multi-Module app?
Читать (En)
🔥7👍4❤2
Секреты JVM: что происходит с ошибками под капотом
В статье рассказывается как JVM обрабатывает исключения на низком уровне, что такое таблица исключений и какие сценарии используются для вариантов try-catch и try-finally.
Читать (Ru)
В статье рассказывается как JVM обрабатывает исключения на низком уровне, что такое таблица исключений и какие сценарии используются для вариантов try-catch и try-finally.
Читать (Ru)
👍5🔥4❤2
KMP for Mobile Native Developers: The Book
Онлайн книга по KMP, которая охватывает основные аспекты: структура проекта, модуляризация, архитектурные рекомендации, интеграция с библиотеками Jetpack, хранилище, тестирование и т.д.
🟢 Introduction to Kotlin Multiplatform
🟢 Understanding the Basic Project Structure
🟢 Dependency Injection
🟢 Modularization
🟢 Testing
🟢 Using Native Libraries in Kotlin Multiplatform
🟢 Libraries (Networking, Storage, Database, Multiplatform Jetpack Libraries)
Читать (En)
Онлайн книга по KMP, которая охватывает основные аспекты: структура проекта, модуляризация, архитектурные рекомендации, интеграция с библиотеками Jetpack, хранилище, тестирование и т.д.
Читать (En)
Please open Telegram to view this post
VIEW IN TELEGRAM
❤14🔥8👍2😁2💩2
TrustedTime API: Introducing a reliable approach to time keeping for your apps
Google выпустил новое API для безопасной работы с временем на устройстве.
TrustedTime использует защищенную инфраструктуру Google для предоставления надежного источника времени и периодически синхронизирует свои часы с серверами Google, которые имеют доступ к высокоточному источнику времени.
Читать (En)
Google выпустил новое API для безопасной работы с временем на устройстве.
TrustedTime использует защищенную инфраструктуру Google для предоставления надежного источника времени и периодически синхронизирует свои часы с серверами Google, которые имеют доступ к высокоточному источнику времени.
Читать (En)
👍12❤5🔥4
This media is not supported in your browser
VIEW IN TELEGRAM
Why Not Compose!
Репозиторий представляет собой сборник коллекций анимаций, композиций и пользовательских интерфейсов с использованием Jetpack Compose.
GitHub → Why Not Compose
Репозиторий представляет собой сборник коллекций анимаций, композиций и пользовательских интерфейсов с использованием Jetpack Compose.
GitHub → Why Not Compose
👍9🔥4❤3👎1
Should you use Kotlin Sequences for Performance?
Многие по умолчанию считают, что Sequences дают буст в производительности для кейсов с большим количеством преобразований в цепочке. Так вот, это не совсем так, поскольку на производительность влияет множество факторов.
Подробней и с различными замерами, можно ознакомиться в статье.
👉 Collections
👉 Sequences
👉 Flow
👉 Applying transformations
👉 Benchmark
Читать (En)
Многие по умолчанию считают, что Sequences дают буст в производительности для кейсов с большим количеством преобразований в цепочке. Так вот, это не совсем так, поскольку на производительность влияет множество факторов.
Подробней и с различными замерами, можно ознакомиться в статье.
👉 Collections
👉 Sequences
👉 Flow
👉 Applying transformations
👉 Benchmark
Читать (En)
👍7❤2🔥2👎1
В дополнение к посту выше, дублирую еще несколько ссылок на крутые статьи про Sequences.
🟢 Оптимизируя sequences — или как мой код попал в kotlin
🟢 Измеряя sequences
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👍3🔥3
Forwarded from Swift Tips
Обновления в Swift Concurrency: что нас ждёт в Swift 6
Большая статья с разбором основных изменений в Swift 6: обзор пропозалов, как теперь работает concurrency-модель, заметки важного/интересного по мнению автора, playground с тестами для каждого пропозала.
ConcurrencyPlayground – в проекте по каждому пропозалу вы можете найти тесты, которые проверяют его функциональность, и сравнить поведение кода для Swift 5 и Swift 6.
Читать (Ru)
Большая статья с разбором основных изменений в Swift 6: обзор пропозалов, как теперь работает concurrency-модель, заметки важного/интересного по мнению автора, playground с тестами для каждого пропозала.
ConcurrencyPlayground – в проекте по каждому пропозалу вы можете найти тесты, которые проверяют его функциональность, и сравнить поведение кода для Swift 5 и Swift 6.
Читать (Ru)
👍3🔥3❤2
Kotlin Coroutines под капотом: CoroutineContext и CoroutineScope
В статье подробно разбираются ключевые компоненты, на основе которых строится Structured Concurrency в Kotlin Coroutines – CoroutineContext и CoroutineScope.
Читать (Ru)
В статье подробно разбираются ключевые компоненты, на основе которых строится Structured Concurrency в Kotlin Coroutines – CoroutineContext и CoroutineScope.
Читать (Ru)
👍9🔥3👏3❤2
Reverse-Engineering the Compose Compiler Plugin: Intercepting the Frontend
Большая статья с разбором, как плагин компилятора Jetpack Compose работает с Kotlin компилятором.
Читать (En)
Большая статья с разбором, как плагин компилятора Jetpack Compose работает с Kotlin компилятором.
Читать (En)
👍11🔥5👏3❤2