async let vs Task group
В Swift для структурированной конкуренции используются async let и группы задач (task group). Хотя обе конструкции позволяют запускать параллельные операции, они по-разному управляют жизненным циклом задач. Сегодня мы разберём эти различия на примерах.
Статья: https://habr.com/ru/companies/otus/articles/928172/
Платформа: iOS
В Swift для структурированной конкуренции используются async let и группы задач (task group). Хотя обе конструкции позволяют запускать параллельные операции, они по-разному управляют жизненным циклом задач. Сегодня мы разберём эти различия на примерах.
Статья: https://habr.com/ru/companies/otus/articles/928172/
Платформа: iOS
Как в Duolingo повысили производительность Android-приложения (и количество активных пользователей!)
Наша миссия в Duolingo — развивать лучшее образование в мире и сделать его общедоступным. Однако наши метрики показали, что миллионы учащихся, особенно использующих устройства начального уровня на развивающихся рынках, закрывали приложение из-за раздражающего времени загрузки: в начале 2024 года целых 39% пользователей устройств Android начального уровня ждали запуска приложения более 5 секунд. Это напрямую подрывало нашу миссию по обеспечению всеобщей доступности. Чтобы решить эту проблему, мы сформировали специальную команду для оптимизации производительности нашего приложения для Android.
Статья: https://apptractor.ru/info/articles/duolingo-android-app-performance.html
Платформа: Android
Наша миссия в Duolingo — развивать лучшее образование в мире и сделать его общедоступным. Однако наши метрики показали, что миллионы учащихся, особенно использующих устройства начального уровня на развивающихся рынках, закрывали приложение из-за раздражающего времени загрузки: в начале 2024 года целых 39% пользователей устройств Android начального уровня ждали запуска приложения более 5 секунд. Это напрямую подрывало нашу миссию по обеспечению всеобщей доступности. Чтобы решить эту проблему, мы сформировали специальную команду для оптимизации производительности нашего приложения для Android.
Статья: https://apptractor.ru/info/articles/duolingo-android-app-performance.html
Платформа: Android
Torrent Search - современное приложение для Android с дизайном Material 3 для поиска и загрузки торрентов с нескольких трекеров.
Фичи: дизайн Material 3, разные категории поиска, управление скачиванием (самого торрент-клиента нет, направляет к другим приложениям), включение или выключение NSFW контента.
Torrent Search на GitHub: https://github.com/prajwalch/TorrentSearch
Платформа: Android
⭐️: 105
Фичи: дизайн Material 3, разные категории поиска, управление скачиванием (самого торрент-клиента нет, направляет к другим приложениям), включение или выключение NSFW контента.
Torrent Search на GitHub: https://github.com/prajwalch/TorrentSearch
Платформа: Android
⭐️: 105
👍1
•
(iOS Ru) Sideloading и узник Apple•
(iOS En) Latest Symbol Effects + OnBoarding Animation Using SwiftUI•
(iOS En) ChatGPT in Xcode 26: there’s a hidden prompt•
(iOS En) Build Your First AI Chatbot App with SwiftUI + Foundation Models Framework•
(iOS En) Swift’s Measurement API — From Miles to Meters and Beyond•
(iOS En) Recreating iOS 26 Tab Bar for iOS 16.4+ devices using SwiftUI (Without Liquid Glass)•
(And En) Build a Runtime-Enabled SDK•
(And En) Home APIs tips & tricks•
(And En) THIS Brand New Attribute Makes Compose Texts Fully Responsive (Auto-Scaling!)•
(And En) Designing Kotlin Beyond Type Inference•
(And En) Collect Like a Pro: a deep dive on the Android lifecycle-aware coroutines APIs•
(And En) From 0 to h-AI-ro: high-speed track to AI for Kotlin developers•
(And En) Everything you need to know about the NEW Material's Evolution•
(And En) Publish JVM Library to Maven Central with Gradle (2025 Guide)•
(And En) Data-Driven Build Optimization: Empower Your Teams with Develocity Reporting and Visualization•
(Crs En) Making native SDKs Multiplatform at RevenueCat•
(Crs En) Deploying Kotlin Multiplatform at Google Workspace•
(Dev Ru) Cтартапы, работа в США, путь в IT•
(Dev Ru) Привет, я ваш новый тимлид•
(Dev Ru) Батарейки заряжены! Как отдыхать и восстанавливаться, не уходя в отпуск•
(Dev Ru) Как измерить AI — Бенчмарки, тестирование и обучение LLM•
(Dev En) Project Creation & First Hello World App - Spring Boot 4 Basics With Kotlin•
(Dev En) Behavioral Interview: Full Preparation Guide•
(Mrk En) Заработок на Budget Tracker. iOS. Подписки. Разбор нишиПрошлогодние видео:
•
(iOS Ru) Как побеждать в конкурсах от Telegram•
(And Ru) Переходишь на Compose? Не спеши!•
(And Ru) Как работает ТВ в Android TV?•
(And Ru) Нужны ли Android-разработчики на заводе?•
(And Ru) Gradle DSL изнутри•
(And Ru) Kotlin DSL как единый источник правды для решения многих задач•
(Dev Ru) Чистый код – не значит правильный: clean code, паттерны, лучшие практикиPlease open Telegram to view this post
VIEW IN TELEGRAM
👍2
Стеклянные кастомные представления SwiftUI
В фреймворке SwiftUI появился модификатор представлений
Статья: https://swiftwithmajid.com/2025/07/16/glassifying-custom-swiftui-views/
Платформа: iOS
В фреймворке SwiftUI появился модификатор представлений
glassEffect. Его можно применить к любому View, чтобы включить стеклянный эффект. Следует помнить, что эффект стекла — это не просто фон. Он взаимодействует с представлениями, расположенными за ним, и изменяет их свойства. Более того, он может изменять цветовую схему представления с светлой на темную в зависимости от содержимого, расположенного за ним.Статья: https://swiftwithmajid.com/2025/07/16/glassifying-custom-swiftui-views/
Платформа: iOS
👍2
MobileFeedback iOS SDK - библиотека для организации общения с пользователями в приложении с интерфейсом чата.
Фичи: легковесная, нативная, с простым внедрением, в реальном времени, с категоризацией отзывов с помощью ИИ, на основе Supabase.
MobileFeedback iOS SDK на GitHub: https://github.com/MobileFeedback/mobilefeedback-ios
Платформа: iOS
⭐️: 4
Фичи: легковесная, нативная, с простым внедрением, в реальном времени, с категоризацией отзывов с помощью ИИ, на основе Supabase.
MobileFeedback iOS SDK на GitHub: https://github.com/MobileFeedback/mobilefeedback-ios
Платформа: iOS
⭐️: 4
👍2
Android. Кража данных через клавиатуру: миф или реальность?
В этой статье хотел бы поделиться своим опытом (или даже находкой) и обсудить одну интересную тему, а именно защиту от возможных способов украсть конфиденциальные данные пользователя на Android с помощью другого вредоносного приложения на не-рутированном устройстве через клавиатуру.
Статья: https://habr.com/ru/articles/927726/
Платформа: Android
В этой статье хотел бы поделиться своим опытом (или даже находкой) и обсудить одну интересную тему, а именно защиту от возможных способов украсть конфиденциальные данные пользователя на Android с помощью другого вредоносного приложения на не-рутированном устройстве через клавиатуру.
Статья: https://habr.com/ru/articles/927726/
Платформа: Android
❤1
Как мы переписали мобильное приложение с React Native на Flutter
Перевод приложения с React Native на Flutter оказался большим, но оправданным шагом. Мы не просто переписали приложение - мы улучшили архитектуру, улучшили UX, избавились от накопившихся технических ограничений и получили стабильный и производительный продукт.
Такой переход ускорил Time To Market - теперь команда сфокусирована на разработке новых фичей, а не на исправление багов.
Статья: https://habr.com/ru/articles/929058/
Платформа: кроссплатформа
Перевод приложения с React Native на Flutter оказался большим, но оправданным шагом. Мы не просто переписали приложение - мы улучшили архитектуру, улучшили UX, избавились от накопившихся технических ограничений и получили стабильный и производительный продукт.
Такой переход ускорил Time To Market - теперь команда сфокусирована на разработке новых фичей, а не на исправление багов.
Статья: https://habr.com/ru/articles/929058/
Платформа: кроссплатформа
👍3
Mousedroid - кроссплатформенное приложение, которое превращает ваш Android-смартфон (клиент) в периферийное устройство ввода для компьютера (сервер). Используйте его как мышь (тачпад), клавиатуру или цифровую клавиатуру. Управляйте компьютером с помощью телефона по проводу или без него. Поддерживает Windows, Linux и Android начиная с 8 (Oreo).
Mousedroid на GitHub: https://github.com/darusc/Mousedroid
Платформа: Android
⭐️: 125
Mousedroid на GitHub: https://github.com/darusc/Mousedroid
Платформа: Android
⭐️: 125
❤1
Последний UIKit-разработчик
На дворе 2030 год. Я сижу в кофейне в Сан-Франциско, а напротив меня сидит Тим. Ему 45, у него уже седеют виски, и он только что сказал мне, что он последний UIKit-разработчик в своей компании. Не по своей воле, все остальные много лет назад перешли на вайб-кодинг с SwiftUI. Но кто-то же должен поддерживать старое приложение.
Статья: https://apptractor.ru/info/articles/posledniy-uikit-razrabotchik.html
Платформа: iOS
На дворе 2030 год. Я сижу в кофейне в Сан-Франциско, а напротив меня сидит Тим. Ему 45, у него уже седеют виски, и он только что сказал мне, что он последний UIKit-разработчик в своей компании. Не по своей воле, все остальные много лет назад перешли на вайб-кодинг с SwiftUI. Но кто-то же должен поддерживать старое приложение.
Статья: https://apptractor.ru/info/articles/posledniy-uikit-razrabotchik.html
Платформа: iOS
😁5
Как отвечать на вопрос о хешировании как эксперт Java/Kotlin
Понимание хеширования и взаимосвязи между
Статья: https://proandroiddev.com/how-to-answer-hashing-like-a-java-kotlin-expert-fc934ffabf02
Платформа: Android
Понимание хеширования и взаимосвязи между
equals() и hashCode() необходимо не только для собеседований, но и для написания высокопроизводительных приложений на Java и Kotlin. С помощью этого руководства вы научитесь уверенно объяснять хеширование и его применение.Статья: https://proandroiddev.com/how-to-answer-hashing-like-a-java-kotlin-expert-fc934ffabf02
Платформа: Android
SleepChartKit - чистый и легкий пакет SwiftUI для отображения красивых визуализаций стадий сна с комплексной интеграцией HealthKit.
Фичи:
• Визуализация временной шкалы — интерактивная временная шкала стадий сна с плавными переходами
• Настраиваемые цвета — создайте собственную цветовую схему для разных фаз сна
• Ось времени — понятные временные метки, отображающие продолжительность сеанса сна
• Легенда — сводка для каждой фазы сна
• Интеграция с HealthKit — встроенная поддержка данных HKCategoryValueSleepAnalysis
• Поддержка локализации — настраиваемые отображаемые имена для интернационализации
• Архитектура SOLID — понятный, тестируемый и расширяемый дизайн
• Кроссплатформенность — iOS 15+, macOS 12+, watchOS 8+, tvOS 15+
SleepChartKit на GitHub: https://github.com/DanielJamesTronca/SleepChartKit
Платформа: iOS
⭐️: 105
Фичи:
• Визуализация временной шкалы — интерактивная временная шкала стадий сна с плавными переходами
• Настраиваемые цвета — создайте собственную цветовую схему для разных фаз сна
• Ось времени — понятные временные метки, отображающие продолжительность сеанса сна
• Легенда — сводка для каждой фазы сна
• Интеграция с HealthKit — встроенная поддержка данных HKCategoryValueSleepAnalysis
• Поддержка локализации — настраиваемые отображаемые имена для интернационализации
• Архитектура SOLID — понятный, тестируемый и расширяемый дизайн
• Кроссплатформенность — iOS 15+, macOS 12+, watchOS 8+, tvOS 15+
SleepChartKit на GitHub: https://github.com/DanielJamesTronca/SleepChartKit
Платформа: iOS
⭐️: 105
👍4
Flutter, Flame и RPG. Лучшие практики после двух с половиной лет gamedev'а
Я рад, что спустя полтора года после своей первой статьи у меня наконец закончилась разработка и оптимизация всего, что только можно, и я могу с уверенностью поделиться о лучших практиках при разработке огромных 2д рпг с открытым миром для любой платформы на фреймворке Flame.
Статья: https://habr.com/ru/articles/929708/
Платформа: кроссплатформа
Я рад, что спустя полтора года после своей первой статьи у меня наконец закончилась разработка и оптимизация всего, что только можно, и я могу с уверенностью поделиться о лучших практиках при разработке огромных 2д рпг с открытым миром для любой платформы на фреймворке Flame.
Статья: https://habr.com/ru/articles/929708/
Платформа: кроссплатформа
🔥3
Распознаем текст на изображении с помощью фреймворка Vision
Мы рассмотрим, как использовать машинное обучение для обнаружения и определения местоположения текста на изображении с помощью фреймворка Vision. Фреймворк Vision может гораздо больше, чем просто поиск текста на изображении. Он также способен изолировать определённые области на изображениях, отслеживать объекты в последовательности изображений, определять положение рук и тела и многое другое.
Статья: https://apptractor.ru/info/articles/raspoznaem-tekst-na-izobrazhenii-s-pomoschyu-freymvorka-vision.html
Платформа: iOS
Мы рассмотрим, как использовать машинное обучение для обнаружения и определения местоположения текста на изображении с помощью фреймворка Vision. Фреймворк Vision может гораздо больше, чем просто поиск текста на изображении. Он также способен изолировать определённые области на изображениях, отслеживать объекты в последовательности изображений, определять положение рук и тела и многое другое.
Статья: https://apptractor.ru/info/articles/raspoznaem-tekst-na-izobrazhenii-s-pomoschyu-freymvorka-vision.html
Платформа: iOS
👎1
Начните повышать безопасность своего Android-приложения уже сегодня
Когда дело доходит до разработки мобильных приложений, безопасность может казаться проблемой кого-то другого… но это не так. Как разработчики, мы не всегда имеем опыт в криптографии или информационной безопасности, но мы на переднем крае защиты пользовательских данных. Создаёте ли вы финтех-приложение или простой инструмент для повышения производительности, эти рекомендации помогут снизить риски и укрепить доверие.
Статья: https://apptractor.ru/info/articles/nachnite-povyshat-bezopasnost-svoego-android-prilozheniya-uzhe-segodnya.html
Платформа: Android
Когда дело доходит до разработки мобильных приложений, безопасность может казаться проблемой кого-то другого… но это не так. Как разработчики, мы не всегда имеем опыт в криптографии или информационной безопасности, но мы на переднем крае защиты пользовательских данных. Создаёте ли вы финтех-приложение или простой инструмент для повышения производительности, эти рекомендации помогут снизить риски и укрепить доверие.
Статья: https://apptractor.ru/info/articles/nachnite-povyshat-bezopasnost-svoego-android-prilozheniya-uzhe-segodnya.html
Платформа: Android
🔥4
This media is not supported in your browser
VIEW IN TELEGRAM
FloatingTabBar - плавающая панель вкладок Jetpack Compose, имитирующая поведение панели вкладок Liquid Glass в iOS 26. Есть два состояния (свернутое и развернутое), настраиваемое поведение при прокрутке, добавление кастомных аксессуаров (например, медиаплеера), которые адаптируются к обоим состояниям, настраиваемые цвета, формы и размеры.
FloatingTabBar на GitHub: https://github.com/elyesmansour/compose-floating-tab-bar
Платформа: Android
⭐️: 70
FloatingTabBar на GitHub: https://github.com/elyesmansour/compose-floating-tab-bar
Платформа: Android
⭐️: 70
👍2
Шаблон корутин Kotlin, который делает приложения Android в 5 раз более отзывчивыми
Поставьте 👍, если хотите эту статью на русском!
Команда автора столкнулась с серьёзными проблемами производительности и отзывчивости Android‑приложения: жалобы на фризы, высокое число ANR‑ошибок и падение рейтинга до 2.1 звезды. Внедрение паттерна «структурированного параллелизма» с использованием
Главная идея — отказ от «адского» управления потоками и колбэков в пользу четкой архитектуры на базе корутин:
Статья: https://medium.com/@sohail_saifi/the-kotlin-coroutine-pattern-that-makes-android-apps-5x-more-responsive-389923fbf36c (©)
Платформа: Android
Поставьте 👍, если хотите эту статью на русском!
Команда автора столкнулась с серьёзными проблемами производительности и отзывчивости Android‑приложения: жалобы на фризы, высокое число ANR‑ошибок и падение рейтинга до 2.1 звезды. Внедрение паттерна «структурированного параллелизма» с использованием
Flow позволило за две недели повысить отзывчивость в пять раз: ANR уменьшились на 94 %, удержание пользователей выросло на 40 %, а рейтинг в Play Market поднялся до 4.6 звезды.Главная идея — отказ от «адского» управления потоками и колбэков в пользу четкой архитектуры на базе корутин:
lifecycleScope и viewModelScope обеспечивают автоматическое управление временем жизни, Flow управляет потоками данных, а структурированная конкурентность упрощает отмену и обработку ошибок. В результате код стал более читабельным, устойчивым и масштабируемым — особенно при параллельных сетевых запросах и операциях с БД.Статья: https://medium.com/@sohail_saifi/the-kotlin-coroutine-pattern-that-makes-android-apps-5x-more-responsive-389923fbf36c (©)
Платформа: Android
👍3👎1
Преобразуйте свой iOS-код с помощью принципов SOLID: практическое руководство
Поставьте 👍, если хотите эту статью на русском!
Если вы хотите писать более чистый, масштабируемый и сопровождаемый код для iOS, стоит обратить внимание на принципы SOLID. В своей статье автор наглядно показывает, как применять эти принципы на практике — от разделения ответственности до внедрения зависимостей. На простых примерах с UIViewController и менеджерами сетевых запросов он объясняет, как избежать "god objects" и сделать архитектуру проекта гибкой.
Автор выделяет каждый принцип (S, O, L, I, D) с отдельным примером, делая акцент на их роли в реальной разработке. Особенно полезно, как он показывает замену конкретных "плохих" решений более элегантными — например, внедрение протоколов вместо жёсткой зависимости от конкретных классов. Если вы хотите вывести свой Swift-код на новый уровень — статья обязательна к прочтению.
Статья: https://medium.com/@mena.yousry94/transform-your-ios-code-with-solid-principles-a-practical-guide-6adbefe74a81
Платформа: iOS
Поставьте 👍, если хотите эту статью на русском!
Если вы хотите писать более чистый, масштабируемый и сопровождаемый код для iOS, стоит обратить внимание на принципы SOLID. В своей статье автор наглядно показывает, как применять эти принципы на практике — от разделения ответственности до внедрения зависимостей. На простых примерах с UIViewController и менеджерами сетевых запросов он объясняет, как избежать "god objects" и сделать архитектуру проекта гибкой.
Автор выделяет каждый принцип (S, O, L, I, D) с отдельным примером, делая акцент на их роли в реальной разработке. Особенно полезно, как он показывает замену конкретных "плохих" решений более элегантными — например, внедрение протоколов вместо жёсткой зависимости от конкретных классов. Если вы хотите вывести свой Swift-код на новый уровень — статья обязательна к прочтению.
Статья: https://medium.com/@mena.yousry94/transform-your-ios-code-with-solid-principles-a-practical-guide-6adbefe74a81
Платформа: iOS
👍5
Анализ инцидента при миграции Core Data: скрытые ловушки, которые мы упускаем из виду
В отличие от некоторых фреймворков с открытым исходным кодом, Core Data и SwiftData, несмотря на официальную поддержку Apple, часто оставляют разработчиков беззащитными перед возникающими ошибками из-за своей природы «чёрного ящика», что затрудняет быстрое выявление проблем и поиск эффективных решений. В этой статье описывается инцидент с тайм-аутом при запуске приложения, вызванный миграцией модели Core Data, предлагается решение и проводится глубокий анализ основных причин.
Статья: https://apptractor.ru/info/articles/core-data-migration.html
Платформа: iOS
В отличие от некоторых фреймворков с открытым исходным кодом, Core Data и SwiftData, несмотря на официальную поддержку Apple, часто оставляют разработчиков беззащитными перед возникающими ошибками из-за своей природы «чёрного ящика», что затрудняет быстрое выявление проблем и поиск эффективных решений. В этой статье описывается инцидент с тайм-аутом при запуске приложения, вызванный миграцией модели Core Data, предлагается решение и проводится глубокий анализ основных причин.
Статья: https://apptractor.ru/info/articles/core-data-migration.html
Платформа: iOS
👍2
Как избежать распространенных ошибок при разработке Gradle-плагинов
Разработка Gradle-плагинов — мощный, но не самый очевидный процесс, особенно для начинающих. В статье автор делится типичными ошибками, с которыми сталкиваются при создании плагинов: от неправильного использования
Особое внимание уделено рекомендациям: использовать API Property, Provider, ObjectFactory, чтобы обеспечить ленивую и безопасную конфигурацию; избегать доступа к пользовательским параметрам напрямую; а также — писать функциональные тесты, эмулирующие реальное использование плагина. Если вы пишете собственный Gradle-плагин или планируете начать — материал обязателен к прочтению.
Статья: https://itnext.io/avoiding-common-mistakes-in-gradle-plugin-development-22d2e9e8e1ad
Платформа: Android
Разработка Gradle-плагинов — мощный, но не самый очевидный процесс, особенно для начинающих. В статье автор делится типичными ошибками, с которыми сталкиваются при создании плагинов: от неправильного использования
Project.afterEvaluate до хрупкой конфигурации через project.properties. Эти ошибки могут привести к непредсказуемому поведению и сложным багам.Особое внимание уделено рекомендациям: использовать API Property, Provider, ObjectFactory, чтобы обеспечить ленивую и безопасную конфигурацию; избегать доступа к пользовательским параметрам напрямую; а также — писать функциональные тесты, эмулирующие реальное использование плагина. Если вы пишете собственный Gradle-плагин или планируете начать — материал обязателен к прочтению.
Статья: https://itnext.io/avoiding-common-mistakes-in-gradle-plugin-development-22d2e9e8e1ad
Платформа: Android
🔥2
Курс "Шейдеры Metal для SwiftUI"
Курс рассчитан на разработчиков без опыта в графике: объясняет с нуля, начиная с GPU‑основ и математических концепций, заканчивая готовыми эффектами. В курсе используется принцип «от простого к сложному»: сначала фундаментальные темы, затем процедурные узоры, шум, плавные переходы, текстуры, и с временными GLS‑эффектами. Особое внимание — на интеграцию шейдера в SwiftUI, реальную обратную связь и создание рабочего примера.
Анонс: https://apptractor.ru/learn/kurs-sheydery-metal-dlya-swiftui.html
Платформа: iOS
Курс рассчитан на разработчиков без опыта в графике: объясняет с нуля, начиная с GPU‑основ и математических концепций, заканчивая готовыми эффектами. В курсе используется принцип «от простого к сложному»: сначала фундаментальные темы, затем процедурные узоры, шум, плавные переходы, текстуры, и с временными GLS‑эффектами. Особое внимание — на интеграцию шейдера в SwiftUI, реальную обратную связь и создание рабочего примера.
Анонс: https://apptractor.ru/learn/kurs-sheydery-metal-dlya-swiftui.html
Платформа: iOS
👍2