Stack vs. Heap in Kotlin: Understanding Memory
Короткая статья про то, как в Kotlin устроено распределение сущностей в памяти.
👉 What is Stack Memory?
👉 What is Heap Memory?
👉 Breaking it Down: Stack vs. Heap
👉 Why Does It Matter?
Читать (En)
Короткая статья про то, как в Kotlin устроено распределение сущностей в памяти.
👉 What is Stack Memory?
👉 What is Heap Memory?
👉 Breaking it Down: Stack vs. Heap
👉 Why Does It Matter?
Читать (En)
👍9👎2🔥2❤1
Как устроены аннотации в Kotlin. Часть 2
Перевод второй части из этого цикла, в которой рассматривается кодовая база Moshi в качестве примера того, как реальная библиотека использует процессинг аннотаций, рефлексию и lint.
Читать (Ru)
Перевод второй части из этого цикла, в которой рассматривается кодовая база Moshi в качестве примера того, как реальная библиотека использует процессинг аннотаций, рефлексию и lint.
Читать (Ru)
👍5❤3🔥2
The Complexities of Clean Architecture Use Cases
В статье рассматриваются некоторые проблемы, которые могут возникнуть при строгом соблюдении всех правил чистой архитектуры, в частности c Use Case`ами и Single Responsibility Principle.
Не сказать, что там прям что-то новое, но в целом почитать можно. Ну и не забывайте посматривать в комменты 😉
Читать (En)
В статье рассматриваются некоторые проблемы, которые могут возникнуть при строгом соблюдении всех правил чистой архитектуры, в частности c Use Case`ами и Single Responsibility Principle.
Не сказать, что там прям что-то новое, но в целом почитать можно. Ну и не забывайте посматривать в комменты 😉
Читать (En)
👍4❤2🔥2
Forwarded from Swift Tips
Виды логирования в Swift
Статья для начинающих, в которой разбираются виды принтов с примером реализации своего небольшого логгера, который можно внедрить сразу, параллельно чтению.
👉 Print
👉 DebugPrint
👉 Dump
👉 OSLog
👉 Logger
Цель статьи – сэкономить время начинающих разработчиков, уберечь их от бесконечного потока непонятных сообщений в консоли и от нервов, потраченных на поиск «той самой» строки, которая всё объясняет.
Читать (Ru)
Статья для начинающих, в которой разбираются виды принтов с примером реализации своего небольшого логгера, который можно внедрить сразу, параллельно чтению.
👉 DebugPrint
👉 Dump
👉 OSLog
👉 Logger
Цель статьи – сэкономить время начинающих разработчиков, уберечь их от бесконечного потока непонятных сообщений в консоли и от нервов, потраченных на поиск «той самой» строки, которая всё объясняет.
Читать (Ru)
❤4🔥4👍1
Как публиковать библиотеку в Maven Central Portal в 2024 году
Начиная с 12 марта 2024 года регистрация на OSSRH портале теперь недоступна. Большинство существующих туториалов в интернете описывают как раз опыт публикации через OSSRH на Maven Central из-за чего после марта 2024 года эти инструкции стали не актуальны для публикации проектов новых авторов.
Не пошаговая инструкция, а руководство к действию, как опубликовать библиотеку в Maven Central Portal в 2024 году.
Читать (Ru)
Начиная с 12 марта 2024 года регистрация на OSSRH портале теперь недоступна. Большинство существующих туториалов в интернете описывают как раз опыт публикации через OSSRH на Maven Central из-за чего после марта 2024 года эти инструкции стали не актуальны для публикации проектов новых авторов.
Не пошаговая инструкция, а руководство к действию, как опубликовать библиотеку в Maven Central Portal в 2024 году.
Читать (Ru)
❤4👍4🔥1
Разбираемся с новой уязвимостью Android-библиотеки Jetpack Navigation: как открыть любой фрагмент из вашего приложения?
Достаточно подробная и полезная статья от команды Стингрей Технолоджиз, про уязвимость в Jetpack Navigation, которую недавно обнаружили специалисты из компании Positive Technologies.
👉 О пользовательском интерфейсе Android
👉 О Jetpack Navigation
👉 Описание уязвимости
👉 Эксплуатация уязвимости
👉 Практика
👉 Навигация к целевому Фрагменту
👉 Атака на WebViewFragment
👉 Как защитить приложение?
👉 Защита в логике
👉 Исследование
👉 Выводы
Читать (Ru)
Достаточно подробная и полезная статья от команды Стингрей Технолоджиз, про уязвимость в Jetpack Navigation, которую недавно обнаружили специалисты из компании Positive Technologies.
👉 О пользовательском интерфейсе Android
👉 О Jetpack Navigation
👉 Описание уязвимости
👉 Эксплуатация уязвимости
👉 Практика
👉 Навигация к целевому Фрагменту
👉 Атака на WebViewFragment
👉 Как защитить приложение?
👉 Защита в логике
👉 Исследование
👉 Выводы
Читать (Ru)
🔥5❤3👍3🐳2
PinLockSreen на основе KeyStore. Kotlin. Jetpack Compose
Статья по бóльшей части для начинающих, про KeyStore в контексте мобильной разработки: что это, для чего нужен и с примером реализации экрана с пинкодом для входа в приложение.
P.S. На код в статье, как на эталонный не стоит ориентироваться. Можно почитать для общего понимания принципа работы.
Читать (Ru)
Статья по бóльшей части для начинающих, про KeyStore в контексте мобильной разработки: что это, для чего нужен и с примером реализации экрана с пинкодом для входа в приложение.
P.S. На код в статье, как на эталонный не стоит ориентироваться. Можно почитать для общего понимания принципа работы.
Читать (Ru)
👍12🔥3❤2
Как заглянуть под капот Composable функции
Довольно интересная и полезная статья от Абакара Магомедова (главный техлид в Альфа-Банке), в которой разбирается, как Composable-функции меняются при компиляции и как работает аннотация
Читать (Ru)
Довольно интересная и полезная статья от Абакара Магомедова (главный техлид в Альфа-Банке), в которой разбирается, как Composable-функции меняются при компиляции и как работает аннотация
@Composable.Читать (Ru)
👍13❤3🔥3
Gradle + GitLab: эффективный и бесплатный билд-кэш
Эта заметка является чем-то вроде гайда по бюджетной настройке GitLab кэшей для Gradle в Android проектах без использования Gradle Enterprise и Remote Build Cache.
Читать (Ru)
Эта заметка является чем-то вроде гайда по бюджетной настройке GitLab кэшей для Gradle в Android проектах без использования Gradle Enterprise и Remote Build Cache.
Читать (Ru)
🔥7👍4❤1
Forwarded from Swift Tips
Отрицание, гнев, торг: как дизайну и разработке найти общий язык
Дизайнер из Ozon провела анонимный опрос в командах: что радует и что раздражает разработчиков в макетах дизайнеров — и наоборот.
В статье размышляет над его результатами и заодно делится полезными практиками, которые помогут наладить взаимодействие дизайна и разработки: чек-лист для подготовки макетов, поиск корнер-кейсов, спецификация, груминг, саппорт, дизайн-ревью и прочие заклинания.
Статья будет полезна не только дизайнерам, но и разработчикам, QA-инженерам, продактам и всем, кто заинтересован в качестве конечного решения на проде.
Читать (Ru)
Дизайнер из Ozon провела анонимный опрос в командах: что радует и что раздражает разработчиков в макетах дизайнеров — и наоборот.
В статье размышляет над его результатами и заодно делится полезными практиками, которые помогут наладить взаимодействие дизайна и разработки: чек-лист для подготовки макетов, поиск корнер-кейсов, спецификация, груминг, саппорт, дизайн-ревью и прочие заклинания.
Статья будет полезна не только дизайнерам, но и разработчикам, QA-инженерам, продактам и всем, кто заинтересован в качестве конечного решения на проде.
Читать (Ru)
👍7🔥3❤1
Advanced Kotlin Coroutine Cheat sheet (for Android Engineer)
Большая статья (шпаргалка-справочник) по использованию корутин в более продвинутых сценариях.
Читать (En)
Большая статья (шпаргалка-справочник) по использованию корутин в более продвинутых сценариях.
Читать (En)
🔥10👍7❤3
Command Your User Inputs with Jetpack Compose — Text Field Features Hidden in Plain Sight
Большая статья, с обзором доступных функций Text Field в Jetpack Compose, с помощью которых можно улучшить визуальную часть Text Field и сделать их более интерактивными.
👉 The Basics
👉 Gradient Text Field
👉 Decoration Box
👉 Let’s Go Funky
👉 Masked Text Field for Credit Card Input
👉 Handling User Interactions
👉 Real Time User Tagging
👉 Keyboard Actions
👉 Providing Haptic Feedback
👉 Supporting Rich Media Content
Читать (En)
Большая статья, с обзором доступных функций Text Field в Jetpack Compose, с помощью которых можно улучшить визуальную часть Text Field и сделать их более интерактивными.
👉 The Basics
👉 Gradient Text Field
👉 Decoration Box
👉 Let’s Go Funky
👉 Masked Text Field for Credit Card Input
👉 Handling User Interactions
👉 Real Time User Tagging
👉 Keyboard Actions
👉 Providing Haptic Feedback
👉 Supporting Rich Media Content
Читать (En)
❤7👍4🔥4👌1
Don’t Lock the Screen Orientation! Handling Orientation in Compose
Статья про то, почему не стоит отключать горизонтальную ориентацию в приложении, почему пользовтелям может быть не удобна портретная ориентация и какие есть способы обработки и получения текущей ориентации в Jetpack Compose.
Читать (En)
Статья про то, почему не стоит отключать горизонтальную ориентацию в приложении, почему пользовтелям может быть не удобна портретная ориентация и какие есть способы обработки и получения текущей ориентации в Jetpack Compose.
Читать (En)
👍6🔥3❤1👌1
Алгоритмы — самый провальный этап собеседований
Довольно интересная статья про алгоритмическую секцию на собеседовании и знание/умение в алгоритмы, которая близко пересекается с моими мыслями на этот счет.
Читать (Ru)
Довольно интересная статья про алгоритмическую секцию на собеседовании и знание/умение в алгоритмы, которая близко пересекается с моими мыслями на этот счет.
Читать (Ru)
👍16🔥4❤2
Что стоит знать о Jetpack Compose: руководство для начинающих
Туториал для начинающих с разбором ключевых аспектов Compose, который сэкономит время на погружение.
👉 State и Composition
👉 Примеры стабильных и нестабильных типов
👉 Как Jetpack Compose управляет рекомпозицией
👉 Как разработчики могут оптимизировать производительность приложений
Читать (Ru)
Туториал для начинающих с разбором ключевых аспектов Compose, который сэкономит время на погружение.
👉 State и Composition
👉 Примеры стабильных и нестабильных типов
👉 Как Jetpack Compose управляет рекомпозицией
👉 Как разработчики могут оптимизировать производительность приложений
Читать (Ru)
🔥7👍5👎4❤3
Volatile, Lock-free, Immutable, Atomic в Java. Как понять и начать использовать
В статье разбираются некторые механизмы многопоточки из Java, как они работают и как использовать.
👉 Volatile
👉 Lock-free
👉 Immutable
👉 Блокировки
👉 Atomic
Уверен, многие с приходом Kotlin`а напрямую их неиспользуют, но их знания и то, как они работают точно лишними не будут.
Читать (Ru)
В статье разбираются некторые механизмы многопоточки из Java, как они работают и как использовать.
👉 Volatile
👉 Lock-free
👉 Immutable
👉 Блокировки
👉 Atomic
Уверен, многие с приходом Kotlin`а напрямую их неиспользуют, но их знания и то, как они работают точно лишними не будут.
Читать (Ru)
🔥7👍6❤2⚡1
Forwarded from Swift Tips
Async await in Swift: The Full Toolkit
Большая статья с примерами кода по доступным инструментам Swift Concurrency.
🟢 async / await
🟢 async let
🟢 Task
🟢 Task group
🟢 Actors
🟢 MainActor
🟢 Sendable
🟢 Continuations (theory)
🟢 Continuations (practice)
🟢 AsyncSequence
🟢 AsyncStream
🟢 Async Algorithms
Читать (En)
Большая статья с примерами кода по доступным инструментам Swift Concurrency.
Читать (En)
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5❤2👍1
Selenoid для запуска UI-тестов на Android
В первой статье рассказывается про опыт настройки Selenoid, с какими сложностями можно столкнуться и как их решать. Вторая про развёртывание инфраструктуры для запуска тестов на реальных Android-устройствах на Linux и Mac + примеры кастомных скриптов для генерации конфигурационных файлов для подключенных устройств.
Selenoid – мощное решение написанное на Go от компании aerokube для управления Docker-контейнерами, в которых «завёрнуты» все необходимые программы и драйверы для тестирования в браузерах или на Android-эмуляторах. Как утверждают производители Selenoid, их решение потребляет намного меньше ресурсов, чем, например тот же Selenium.
👉 Настройка Selenoid для запуска UI-тестов на Android
👉 Selenoid без симуляции: настройка, отладка и автоматизация на физическом Android-устройстве
В первой статье рассказывается про опыт настройки Selenoid, с какими сложностями можно столкнуться и как их решать. Вторая про развёртывание инфраструктуры для запуска тестов на реальных Android-устройствах на Linux и Mac + примеры кастомных скриптов для генерации конфигурационных файлов для подключенных устройств.
Selenoid – мощное решение написанное на Go от компании aerokube для управления Docker-контейнерами, в которых «завёрнуты» все необходимые программы и драйверы для тестирования в браузерах или на Android-эмуляторах. Как утверждают производители Selenoid, их решение потребляет намного меньше ресурсов, чем, например тот же Selenium.
👉 Настройка Selenoid для запуска UI-тестов на Android
👉 Selenoid без симуляции: настройка, отладка и автоматизация на физическом Android-устройстве
👍7🔥4🤔2
Вредные советы, как приходить с вопросами к техлиду
Абакар Магомедов собрал свой топ-4 вредных советов о том, как не надо приходить с вопросами к лиду.
Особенно полезно может быть джунам.
Читать (Ru)
Абакар Магомедов собрал свой топ-4 вредных советов о том, как не надо приходить с вопросами к лиду.
Особенно полезно может быть джунам.
Читать (Ru)
14👍8🔥5👎3👌1