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
Forwarded from Swift Tips
Swift Tutorials: Learn Swift with Easy-to-Follow Code Examples
Большая подборка статей, туториалов и примеров ресурса SwiftLee для изучения Swift, с разбивкой по соответствующим разделам.
Learning Swift using tutorials and code examples
🟢 Enum explained in-depth with code examples in Swift
🟢 JSON Parsing in Swift explained with code examples
🟢 Optionals in Swift explained: 5 things you should know
🟢 Extensions in Swift: How and when to use them
🟢 Try Catch Throw: Error Handling in Swift with Code Examples
🟢 Struct vs classes in Swift: The differences explained
🟢 How to use for loop, for each, while, and repeat in Swift (in-depth)
🟢 Guard statements in Swift explained with code examples
Learn Swift by going beyond the basics
🟢 Generics in Swift explained with code examples
🟢 Existential any in Swift explained with code examples
🟢 Some keyword in Swift: Opaque types explained with code examples
🟢 Weak self and unowned self explained in Swift
🟢 Property Wrappers in Swift explained with code examples
Swift Code Examples covering concurrency and async/await
🟢 How to Use URLSession with Async/Await for Network Requests in Swift
🟢 Async await in Swift explained with code examples
🟢 Tasks in Swift explained with code examples
🟢 Thread dispatching and Actors: understanding execution
🟢 Sendable and @Sendable closures explained with code examples
Swift tutorials for testing code
🟢 Swift Testing: Validate your code using expressive APIs
🟢 Using the #expect macro for Swift Testing
🟢 Using the #require macro for Swift Testing
Debugging issues along the way
🟢 EXC_BAD_ACCESS crash error: Understanding and solving it
🟢 Race condition vs. Data Race: the differences explained
🟢 Thread Sanitizer explained: Data Races in Swift
How about Swift Tutorials for creating a user interface using SwiftUI?
🟢 SwiftUI Button: Custom Styles, Variants, and Best Practices
🟢 Debugging SwiftUI views: what caused that change?
🟢 View Composition using ViewModifiers in SwiftUI
🟢 @Observable Macro performance increase over ObservableObject
🟢 SF Symbol: How to for Swift & SwiftUI
Читать (En)
Большая подборка статей, туториалов и примеров ресурса SwiftLee для изучения Swift, с разбивкой по соответствующим разделам.
Learning Swift using tutorials and code examples
Learn Swift by going beyond the basics
Swift Code Examples covering concurrency and async/await
Swift tutorials for testing code
Debugging issues along the way
How about Swift Tutorials for creating a user interface using SwiftUI?
Читать (En)
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6❤3👍3
Kotlin Coroutines под капотом: отмена корутин
Подробная статья про то, как устроена отмена корутин под капотом.
👉 Job и JobSupport
👉 Состояния JobSupport
👉 Получение дочерних Job
👉 Уведомление родителя и дочерних Job об отмене
👉 Как отменяется функция
👉 Как отменяются
👉
Читать (Ru)
Подробная статья про то, как устроена отмена корутин под капотом.
👉 Job и JobSupport
👉 Состояния JobSupport
👉 Получение дочерних Job
👉 Уведомление родителя и дочерних Job об отмене
👉 Как отменяется функция
delay()👉 Как отменяются
suspend функции👉
Finishing это не последнее состояние корутины?Читать (Ru)
🔥10❤4👍2
File Templates в IDE от Intellij
Серия статей про то, как ускорить процесс разработки и сократить написание boilerplate-кода, с помощью File Templates.
👉 Уменьшаем написание boilerplate с помощью File Templates
👉 Примеры использования File Templates для типовых сценариев
👉 Экспорт и импорт File Templates в IDE от Intellij
Серия статей про то, как ускорить процесс разработки и сократить написание boilerplate-кода, с помощью File Templates.
👉 Уменьшаем написание boilerplate с помощью File Templates
👉 Примеры использования File Templates для типовых сценариев
👉 Экспорт и импорт File Templates в IDE от Intellij
❤4🔥4👍1🥰1
Exploring ViewModel Internals
Небольшая, но довольно полезная статья про то, как
Читать (En)
Небольшая, но довольно полезная статья про то, как
ViewModel устроена под капотом: внутренняя реализация, как устроено состояние и как очищаются ресурсы.Читать (En)
👍5❤3🔥3
Understanding SOLID Principles with Kotlin Examples
Давно такого не было и вот опять – небольшая, но понятная статья про SOLID, с примерами на Kotlin.
Читать (En)
Давно такого не было и вот опять – небольшая, но понятная статья про SOLID, с примерами на Kotlin.
Читать (En)
🔥11👍7😁5❤2
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