ChipTextField - чипы для Compose Multiplatform
ChipTextField - редактируемые и настраиваемые чипы для Compose Multiplatform. Есть несколько видов дизайна, поддержка Material 3, аватаров, отмечаемых чипов.
ChipTextField на GitHub: https://github.com/dokar3/ChipTextField
Платформа: Android/кроссплатформа
⭐️: 106
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
ChipTextField - редактируемые и настраиваемые чипы для Compose Multiplatform. Есть несколько видов дизайна, поддержка Material 3, аватаров, отмечаемых чипов.
ChipTextField на GitHub: https://github.com/dokar3/ChipTextField
Платформа: Android/кроссплатформа
⭐️: 106
Please open Telegram to view this post
VIEW IN TELEGRAM
Heavy Artillery: Как гарантированно разбудить Samsung и Xiaomi на Android 14 без Firebase (FCM)
ERRATA сегодня — это не сырой прототип, а система версии v1.0 Production Ready, готовая к реальной работе "в поле".
За интерфейсом приложения на Kotlin стоит надежная, хоть и невидимая пользователю инфраструктура:
• Свой сервер (Node.js + SQLite), который занимается только валидацией лицензий и не хранит пользовательские данные.
• Telegram-бот (Telegraf), через который реализован безопасный магазин и активация ключей. Это позволяет не зависеть от биллинга сторов и сохранять прямой контакт с пользователями.
Построен суверенный "цифровой сейф", который не зависит от Google, зарубежных облаков и капризов вендоров телефонов.
Статья: https://habr.com/ru/articles/995366/
Платформа: Android
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
ERRATA сегодня — это не сырой прототип, а система версии v1.0 Production Ready, готовая к реальной работе "в поле".
За интерфейсом приложения на Kotlin стоит надежная, хоть и невидимая пользователю инфраструктура:
• Свой сервер (Node.js + SQLite), который занимается только валидацией лицензий и не хранит пользовательские данные.
• Telegram-бот (Telegraf), через который реализован безопасный магазин и активация ключей. Это позволяет не зависеть от биллинга сторов и сохранять прямой контакт с пользователями.
Построен суверенный "цифровой сейф", который не зависит от Google, зарубежных облаков и капризов вендоров телефонов.
Статья: https://habr.com/ru/articles/995366/
Платформа: Android
Please open Telegram to view this post
VIEW IN TELEGRAM
👎3❤1
JavaScriptKit - взаимодействия с JavaScript через WebAssembly
JavaScriptKit - Swift-фреймворк для взаимодействия с JavaScript через WebAssembly. Он предоставляет удобный способ взаимодействия с JavaScript из кода Swift, скомпилированного в WebAssembly. Он позволяет разработчикам Swift:
• Получать доступ к объектам и функциям JavaScript
• Создавать замыкания, которые можно вызывать из JavaScript
• Преобразовывать типы данных между Swift и JavaScript
• Использовать промисы JavaScript с
• Работать с многопоточностью
JavaScriptKit на GitHub: https://github.com/swiftwasm/JavaScriptKit
Платформа: iOS
⭐️: 850
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
JavaScriptKit - Swift-фреймворк для взаимодействия с JavaScript через WebAssembly. Он предоставляет удобный способ взаимодействия с JavaScript из кода Swift, скомпилированного в WebAssembly. Он позволяет разработчикам Swift:
• Получать доступ к объектам и функциям JavaScript
• Создавать замыкания, которые можно вызывать из JavaScript
• Преобразовывать типы данных между Swift и JavaScript
• Использовать промисы JavaScript с
async/await в Swift• Работать с многопоточностью
JavaScriptKit на GitHub: https://github.com/swiftwasm/JavaScriptKit
Платформа: iOS
⭐️: 850
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
•
(iOS En) SwiftUI foundations: Build great apps with SwiftUI | Meet with Apple•
(iOS En) Toolbar Header Scroll Animation Effects Using SwiftUI•
(iOS En) Xcode 26.3 - Agentic Coding with Free OpenAI Account•
(iOS En) Sharing App Data with Uniform Type Identifiers and ShareSheets•
(iOS En) Complex UI Animation: New Xcode's OnBoarding Animation Effect Using SwiftUI•
(And Ru) А это понадобится после собеседования?•
(And En) What Really Is Structured Concurrency In Kotlin? - Android Coding Interview Q&A•
(And En) Custom Video Player In Jetpack Compose On Android (Media3 Library)•
(And En) API Design at Google: Building Android Libraries•
(And En) Return... in Expression Bodies?!•
(And En) No more get() calls in your Koin Module!•
(Crs En) Apple authentication with Firebase - Kotlin Multiplatform (CMP) Android/iOS Tutorial•
(Dev Ru) ИИ ломает высшее образование? Где учиться на программиста•
(Mrk Ru) ASO в 2025–2026: алгоритмы, AI, UA vs ASO и Apple Search AdsПрошлогодние видео:
•
(iOS Ru) Переход с UIKit на SwiftUI — разработка трекера тренировок с нуля•
(iOS Ru) Навигация в SwiftUI•
(And Ru) Опасности в Android: уязвимости и защитные меры•
(And Ru) Как мы создавали дизайн-систему на Jetpack Compose•
(And Ru) Как мы автоматизировали генерацию Baseline Profile•
(Dev Ru) Верхнеуровневый обзор архитектуры CI/CD мобильного приложения•
(Dev Ru) Как затащить новую технологию•
(Dev Ru) Как увольнять людей?Please open Telegram to view this post
VIEW IN TELEGRAM
Flutter 3.41 — Что нового во Flutter?
Сегодня мы с радостью объявляем о выпуске Flutter 3.41, что знаменует собой важную веху на нашем совместном пути! Это захватывающее время для разработчиков; этот релиз отражает наше стремление расширить возможности нашего сообщества в формировании направления развития Flutter. Благодаря 868 коммитам от 145 уникальных участников, Flutter 3.41 обеспечивает дополнительную прозрачность и модульность, что еще больше улучшает опыт внесения вклада в Flutter.
Статья: https://habr.com/ru/articles/995604/
Платформа: кроссплатформа/Flutter
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Сегодня мы с радостью объявляем о выпуске Flutter 3.41, что знаменует собой важную веху на нашем совместном пути! Это захватывающее время для разработчиков; этот релиз отражает наше стремление расширить возможности нашего сообщества в формировании направления развития Flutter. Благодаря 868 коммитам от 145 уникальных участников, Flutter 3.41 обеспечивает дополнительную прозрачность и модульность, что еще больше улучшает опыт внесения вклада в Flutter.
Статья: https://habr.com/ru/articles/995604/
Платформа: кроссплатформа/Flutter
Please open Telegram to view this post
VIEW IN TELEGRAM
Магия вне Хогвартса: как делать «дорогой» UI, не перегружая GPU
Часто можно увидеть такую картину: разработчик влюбляется в концепт из Dribbble, тратит два дня на реализацию сложнейшей цепочки переходов, а потом удивляется, почему его iPhone 15 Pro начинает греться через пять минут использования приложения. Анимация - это всегда сделка с дьяволом (железом). Вопрос лишь в том, насколько выгодный курс обмена вы сможете выторговать.
Статья: https://habr.com/ru/articles/995538/
Платформа: iOS
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Часто можно увидеть такую картину: разработчик влюбляется в концепт из Dribbble, тратит два дня на реализацию сложнейшей цепочки переходов, а потом удивляется, почему его iPhone 15 Pro начинает греться через пять минут использования приложения. Анимация - это всегда сделка с дьяволом (железом). Вопрос лишь в том, насколько выгодный курс обмена вы сможете выторговать.
Статья: https://habr.com/ru/articles/995538/
Платформа: iOS
Please open Telegram to view this post
VIEW IN TELEGRAM
DevAnalyzer - анализатор среды разработки
DevAnalyzer — это кроссплатформенное настольное приложение, созданное с использованием Compose Multiplatform и Kotlin Multiplatform (KMP).
• Анализатор проектов — анализирует модули проекта, конфигурации Gradle, примененные плагины, зависимости и связанные файлы сборки.
• Очистка сборки — сканирует проекты Android Studio на наличие папок сборки во всех модулях и позволяет выборочно удалять их для освобождения дискового пространства.
• Анализатор хранилища — сканирует SDK, данные IDE, кэши Gradle и каталоги библиотек для визуализации общего использования хранилища.
• Настройки — настраивает пользовательские пути для Android SDK, домашнего каталога Gradle, Kotlin Native и расположения IDE.
Разработанный для современных разработчиков, DevAnalyzer помогает вам понимать, анализировать и оптимизировать всю вашу экосистему разработки — все из единого интерфейса.
Разработанный как инструмент, ориентированный в первую очередь на настольные компьютеры, он бесперебойно работает на разных платформах и может быть легко расширен для работы с Android, KMP или бэкэндом на Kotlin.
DevAnalyzer на GitHub: https://github.com/Coding-Meet/DevAnalyzer
Платформа: Android/кроссплатформа
⭐️: 84
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
DevAnalyzer — это кроссплатформенное настольное приложение, созданное с использованием Compose Multiplatform и Kotlin Multiplatform (KMP).
• Анализатор проектов — анализирует модули проекта, конфигурации Gradle, примененные плагины, зависимости и связанные файлы сборки.
• Очистка сборки — сканирует проекты Android Studio на наличие папок сборки во всех модулях и позволяет выборочно удалять их для освобождения дискового пространства.
• Анализатор хранилища — сканирует SDK, данные IDE, кэши Gradle и каталоги библиотек для визуализации общего использования хранилища.
• Настройки — настраивает пользовательские пути для Android SDK, домашнего каталога Gradle, Kotlin Native и расположения IDE.
Разработанный для современных разработчиков, DevAnalyzer помогает вам понимать, анализировать и оптимизировать всю вашу экосистему разработки — все из единого интерфейса.
Разработанный как инструмент, ориентированный в первую очередь на настольные компьютеры, он бесперебойно работает на разных платформах и может быть легко расширен для работы с Android, KMP или бэкэндом на Kotlin.
DevAnalyzer на GitHub: https://github.com/Coding-Meet/DevAnalyzer
Платформа: Android/кроссплатформа
⭐️: 84
Please open Telegram to view this post
VIEW IN TELEGRAM
Собеседование в Zerodha - эти вопросы полностью изменили мое представление о мобильной разработке
Этот опыт заставил меня иначе взглянуть на мобильную разработку.
Во-первых, мобильные приложения больше нельзя воспринимать как «тонкий UI-слой». В высокорисковых доменах вроде финансов клиент — это часть распределённой системы.
Во-вторых, управление состоянием — это не вопрос вкуса в архитектуре. Это требование корректности.
В-третьих, конкурентность — не продвинутая тема «на вырост». Это обязательная база.
В-четвёртых, производительность — это не про плавные анимации. Это про устойчивость под нагрузкой.
И наконец, точность имеет значение. В трейдинге ошибка округления — это не косметический баг. Это реальные деньги.
Статья: https://apptractor.ru/info/articles/sobesedovanie-v-zerodha-eti-voprosy-polnostyu-izmenili-moe-predstavlenie-o-mobilnoy-razrabotke.html
Платформа: iOS
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Этот опыт заставил меня иначе взглянуть на мобильную разработку.
Во-первых, мобильные приложения больше нельзя воспринимать как «тонкий UI-слой». В высокорисковых доменах вроде финансов клиент — это часть распределённой системы.
Во-вторых, управление состоянием — это не вопрос вкуса в архитектуре. Это требование корректности.
В-третьих, конкурентность — не продвинутая тема «на вырост». Это обязательная база.
В-четвёртых, производительность — это не про плавные анимации. Это про устойчивость под нагрузкой.
И наконец, точность имеет значение. В трейдинге ошибка округления — это не косметический баг. Это реальные деньги.
Статья: https://apptractor.ru/info/articles/sobesedovanie-v-zerodha-eti-voprosy-polnostyu-izmenili-moe-predstavlenie-o-mobilnoy-razrabotke.html
Платформа: iOS
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Подводные камни миграции на Swift 6, о которых стоит знать
Swift 6 вводит более строгие проверки изоляции конкурентности и поддерживает поэтапную миграцию, модуль за модулем. Хотя рекомендуемая Apple стратегия выглядит мягкой, на практике вы можете столкнуться со скрытыми сбоями во время выполнения, особенно когда в проекте одновременно сосуществуют модули на Swift 5 и Swift 6.
В этой статье разберем два реальных кейса, на которых команды регулярно спотыкаются при поэтапной миграции на Swift 6. Мы свяжем их с исходниками Swift Runtime, объясним задумку и триггеры падений, и завершим практическими мерами по снижению рисков и рекомендациями по обновлению.
Статья: https://habr.com/ru/companies/otus/articles/996304/
Платформа: iOS
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Swift 6 вводит более строгие проверки изоляции конкурентности и поддерживает поэтапную миграцию, модуль за модулем. Хотя рекомендуемая Apple стратегия выглядит мягкой, на практике вы можете столкнуться со скрытыми сбоями во время выполнения, особенно когда в проекте одновременно сосуществуют модули на Swift 5 и Swift 6.
В этой статье разберем два реальных кейса, на которых команды регулярно спотыкаются при поэтапной миграции на Swift 6. Мы свяжем их с исходниками Swift Runtime, объясним задумку и триггеры падений, и завершим практическими мерами по снижению рисков и рекомендациями по обновлению.
Статья: https://habr.com/ru/companies/otus/articles/996304/
Платформа: iOS
Please open Telegram to view this post
VIEW IN TELEGRAM
Хабр
Подводные камни миграции на Swift 6, о которых стоит знать
Материал подготовлен для будущих студентов специализации "iOS Developer". Swift 6 вводит более строгие проверки изоляции конкурентности и поддерживает поэтапную миграцию, модуль за модулем. Хотя...
37 000 unit-тестов против Gradle: как мы добились 12-минутного прогона
Привет я Федотов Михаил, технический лидер по Android-разработке в Альфа-Банке. Сегодня хочу поговорить про performance (ускорение) unit-тестов.
Я работаю на проекте Android приложения Альфа-банка для физических лиц. Для нашего большого проекта это время — больная тема, так как у нас около 800 модулей и большая часть кода полностью покрыта unit тестами (за некоторыми исключениями, например, view классы). Сейчас у нас почти 6000 spec (тест-классов) в которых 37 000 тест-кейсов.
Общее время прогона всех тестов на CI превышало 3 часа. Локально все тесты прогнать вообще было утопией, так как вероятнее всего сборка просто падала от нехватки оперативной памяти.
Сейчас все тесты проекта мы научились прогонять за честные 12 минут и я расскажу что для этого потребовалось.
Статья: https://habr.com/ru/companies/alfa/articles/993352/
Платформа: Android
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Привет я Федотов Михаил, технический лидер по Android-разработке в Альфа-Банке. Сегодня хочу поговорить про performance (ускорение) unit-тестов.
Я работаю на проекте Android приложения Альфа-банка для физических лиц. Для нашего большого проекта это время — больная тема, так как у нас около 800 модулей и большая часть кода полностью покрыта unit тестами (за некоторыми исключениями, например, view классы). Сейчас у нас почти 6000 spec (тест-классов) в которых 37 000 тест-кейсов.
Общее время прогона всех тестов на CI превышало 3 часа. Локально все тесты прогнать вообще было утопией, так как вероятнее всего сборка просто падала от нехватки оперативной памяти.
Сейчас все тесты проекта мы научились прогонять за честные 12 минут и я расскажу что для этого потребовалось.
Статья: https://habr.com/ru/companies/alfa/articles/993352/
Платформа: Android
Please open Telegram to view this post
VIEW IN TELEGRAM
🤡1
Claude XcodePreviews - превью SwiftUI для ИИ
ИИ-помощники замечательно справляются с написанием кода на SwiftUI. Они понимают иерархию представлений, знают, когда лучше использовать LazyVStack вместо VStack, и могут создавать сложные макеты на основе текстового описания. Но у них есть фундаментальное ограничение: они не видят, что создают.
Подумайте о том, как вы разрабатываете пользовательский интерфейс. Вы пишете код, смотрите на холст предварительного просмотра, корректируете значение отступа, проверяете еще раз. Это тесная обратная связь между кодом и визуализацией. У ИИ-помощников такой связи нет. Они пишут код, передают его вам и надеются на лучшее. Когда что-то выглядит не так, вы описываете проблему словами, они пытаются интерпретировать ваше описание, и цикл повторяется. Это медленно и приводит к потере информации. Что если бы ИИ мог просто… посмотреть на предварительный просмотр?
Claude XcodePreviews - набор скриптов для программной сборки и захвата предварительных просмотров SwiftUI. Разработан для работы с Claude Code для визуального анализа компонентов пользовательского интерфейса.
Особенности:
• Динамическое внедрение предварительного просмотра — создает минимальные цели PreviewHost вместо сборки полных приложений
• Поддержка пакетов SPM — работает с автономными пакетами Swift
• Поддержка проектов Xcode — работает с файлами xcodeproj (включая проекты, сгенерированные Tuist)
• Быстрая сборка — собирает только необходимые модули (~3-4 секунды для кэшированных сборок)
• Обнаружение пакетов ресурсов — автоматически включает пакеты ресурсов для тем/цветов.
Claude XcodePreviews на GitHub: https://github.com/Iron-Ham/Claude-XcodePreviews
Платформа: iOS
⭐️: 60
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
ИИ-помощники замечательно справляются с написанием кода на SwiftUI. Они понимают иерархию представлений, знают, когда лучше использовать LazyVStack вместо VStack, и могут создавать сложные макеты на основе текстового описания. Но у них есть фундаментальное ограничение: они не видят, что создают.
Подумайте о том, как вы разрабатываете пользовательский интерфейс. Вы пишете код, смотрите на холст предварительного просмотра, корректируете значение отступа, проверяете еще раз. Это тесная обратная связь между кодом и визуализацией. У ИИ-помощников такой связи нет. Они пишут код, передают его вам и надеются на лучшее. Когда что-то выглядит не так, вы описываете проблему словами, они пытаются интерпретировать ваше описание, и цикл повторяется. Это медленно и приводит к потере информации. Что если бы ИИ мог просто… посмотреть на предварительный просмотр?
Claude XcodePreviews - набор скриптов для программной сборки и захвата предварительных просмотров SwiftUI. Разработан для работы с Claude Code для визуального анализа компонентов пользовательского интерфейса.
Особенности:
• Динамическое внедрение предварительного просмотра — создает минимальные цели PreviewHost вместо сборки полных приложений
• Поддержка пакетов SPM — работает с автономными пакетами Swift
• Поддержка проектов Xcode — работает с файлами xcodeproj (включая проекты, сгенерированные Tuist)
• Быстрая сборка — собирает только необходимые модули (~3-4 секунды для кэшированных сборок)
• Обнаружение пакетов ресурсов — автоматически включает пакеты ресурсов для тем/цветов.
Claude XcodePreviews на GitHub: https://github.com/Iron-Ham/Claude-XcodePreviews
Платформа: iOS
⭐️: 60
Please open Telegram to view this post
VIEW IN TELEGRAM
Никакого программирования до 10 утра
Инженерное дело сегодня — это уже не просто написание кода. Вот стратегия одного стартапа по созданию проектов в эпоху ИИ-агентов.
Статья: https://apptractor.ru/info/articles/nikakogo-programmirovaniya-do-10-utra.html
Платформа: разработка
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Инженерное дело сегодня — это уже не просто написание кода. Вот стратегия одного стартапа по созданию проектов в эпоху ИИ-агентов.
Статья: https://apptractor.ru/info/articles/nikakogo-programmirovaniya-do-10-utra.html
Платформа: разработка
Please open Telegram to view this post
VIEW IN TELEGRAM
Как ускорить Android-приложение с помощью Baseline Profiles
За последние несколько лет мы построили инфраструктуру оптимизаций компилятора и рантайма на основе профилей для Android-приложений. Один из ключевых компонентов этой инфраструктуры — функция Baseline Profiles в Android Runtime, которую мы применяли, чтобы улучшить производительность.
В этой статье мы разберём несколько аспектов производительности, связанных с Android Runtime (ART). Я расскажу, с какими проблемами мы столкнулись и как Baseline Profiles помогли их преодолеть.
Статья: https://habr.com/ru/companies/otus/articles/1000028/
Платформа: Android
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
За последние несколько лет мы построили инфраструктуру оптимизаций компилятора и рантайма на основе профилей для Android-приложений. Один из ключевых компонентов этой инфраструктуры — функция Baseline Profiles в Android Runtime, которую мы применяли, чтобы улучшить производительность.
В этой статье мы разберём несколько аспектов производительности, связанных с Android Runtime (ART). Я расскажу, с какими проблемами мы столкнулись и как Baseline Profiles помогли их преодолеть.
Статья: https://habr.com/ru/companies/otus/articles/1000028/
Платформа: Android
Please open Telegram to view this post
VIEW IN TELEGRAM
Осваиваем шейдеры Metal
В отличие от модели анимации, управляемой представлениями в SwiftUI, Metal работает на уровне пикселей. Это позволяет создавать эффекты и анимации, управляемые временем, математическими функциями и данными, а не изменениями в иерархии представлений. Таким образом, работа с Metal требует изменения перспективы: от представлений и модификаторов к пикселям, параллельному выполнению и покадровому рендерингу, но зато такая работа обеспечивает гораздо более высокий уровень визуального контроля.
Статья: https://apptractor.ru/info/articles/osvaivaem-sheydery-metal.html
Платформа: iOS
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
В отличие от модели анимации, управляемой представлениями в SwiftUI, Metal работает на уровне пикселей. Это позволяет создавать эффекты и анимации, управляемые временем, математическими функциями и данными, а не изменениями в иерархии представлений. Таким образом, работа с Metal требует изменения перспективы: от представлений и модификаторов к пикселям, параллельному выполнению и покадровому рендерингу, но зато такая работа обеспечивает гораздо более высокий уровень визуального контроля.
Статья: https://apptractor.ru/info/articles/osvaivaem-sheydery-metal.html
Платформа: iOS
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
ADB Device Manager - двойное управление Android для Windows
ADB Device Manager объедините Android и Windows в единую систему управления. Он позволяет, используя два режима (режим ADB и режим приложения), выполнять следующие действия:
• Зеркальное отображение экрана вашего Android-устройства на Windows
• Трансляция звука с устройства на ПК
• Управление приложениями, уведомлениями, звонками и SMS
• Запуск Android в режиме рабочего стола
• Передача файлов, просмотр фотографий, управление контактами
• Подключение через USB, Wi-Fi ADB или LAN в режиме приложения
Внутри ADB (Android Debug Bridge), scrcpy, nircmd_x64, Flutter, Kotlin, Python.
ADB Device Manager на GitHub: https://github.com/Shrey113/Adb-Device-Manager-2
Платформа: Android/кроссплатформа
⭐️: 140
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
ADB Device Manager объедините Android и Windows в единую систему управления. Он позволяет, используя два режима (режим ADB и режим приложения), выполнять следующие действия:
• Зеркальное отображение экрана вашего Android-устройства на Windows
• Трансляция звука с устройства на ПК
• Управление приложениями, уведомлениями, звонками и SMS
• Запуск Android в режиме рабочего стола
• Передача файлов, просмотр фотографий, управление контактами
• Подключение через USB, Wi-Fi ADB или LAN в режиме приложения
Внутри ADB (Android Debug Bridge), scrcpy, nircmd_x64, Flutter, Kotlin, Python.
ADB Device Manager на GitHub: https://github.com/Shrey113/Adb-Device-Manager-2
Платформа: Android/кроссплатформа
⭐️: 140
Please open Telegram to view this post
VIEW IN TELEGRAM
Под капотом: MessageQueue без блокировок в Android 17
В Android 17 Google полностью переосмыслил работу базового механизма обработки сообщений в приложениях:
Такой подход требует глубоких изменений в алгоритмах — например, использования атомарных операций вместо мониторов, обработки «логического удаления» сообщений и тщательного управления памятью — но результаты впечатляют: в тестах многопоточные вставки стали в тысячи раз быстрее, а время, теряемое из-за блокировок, сократилось, что приводило к заметному улучшению производительности UI в реальных приложениях. Разработчикам важно учесть эти изменения, так как новая очередь может повлиять на код, который отражением (reflection) обращается к внутренним полям
Статья: https://android-developers.googleblog.com/2026/02/under-hood-android-17s-lock-free.html
Платформа: Android
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
В Android 17 Google полностью переосмыслил работу базового механизма обработки сообщений в приложениях:
MessageQueue. Ранее эта очередь использовала один блокирующий lock для синхронизации, что могло приводить к блокировкам UI-потока (например, при одновременной работе фоновых задач) и вызывать задержки в работе интерфейса. Новая реализация под названием DeliQueue отказалась от традиционных блокировок и вместо них применяет lock-free структуры данных: производители сообщений пушат задачи в lock-free стек, а единственный поток UI (Looper) затем переносит их в собственную упорядоченную очередь (min-heap). Это позволяет значительно снизить конкуренцию за ресурсы, улучшить отзывчивость интерфейса и уменьшить количество пропущенных кадров.Такой подход требует глубоких изменений в алгоритмах — например, использования атомарных операций вместо мониторов, обработки «логического удаления» сообщений и тщательного управления памятью — но результаты впечатляют: в тестах многопоточные вставки стали в тысячи раз быстрее, а время, теряемое из-за блокировок, сократилось, что приводило к заметному улучшению производительности UI в реальных приложениях. Разработчикам важно учесть эти изменения, так как новая очередь может повлиять на код, который отражением (reflection) обращается к внутренним полям
MessageQueue.Статья: https://android-developers.googleblog.com/2026/02/under-hood-android-17s-lock-free.html
Платформа: Android
Please open Telegram to view this post
VIEW IN TELEGRAM
✍1
Ошибка на 12 миллиардов долларов: почему Apple отказалась от сторибордов (и почему большинство команд до сих пор их используют)
Если вам это знакомо — ночные конфликты слияния, загадочные сбои Interface Builder, кошмары в онбординге — вы не одиноки. Apple тихо признала эти проблемы и уже много лет отговаривает разработчиков от использования сторибордов (Вы когда-нибудь замечали, как в недавних примерах кода WWDC используется SwiftUI или программный пользовательский интерфейс, без файла .storyboard? В стандартном шаблоне приложения SwiftUI даже нет файла сториборда). В этом подробном обзоре мы рассмотрим реальные затраты на использование сторибордов с помощью реальных цифр, сравним код до и после и изучим современные альтернативы, такие как SwiftUI, которые спасают команды от проблем с конфликтами слияния в Xcode. В конце вы получите конкретные шаги по модернизации вашей iOS-архитектуры — и, возможно, пару историй из практики, которыми сможете поделиться.
Статья: https://apptractor.ru/info/articles/storyboards.html
Платформа: iOS
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Если вам это знакомо — ночные конфликты слияния, загадочные сбои Interface Builder, кошмары в онбординге — вы не одиноки. Apple тихо признала эти проблемы и уже много лет отговаривает разработчиков от использования сторибордов (Вы когда-нибудь замечали, как в недавних примерах кода WWDC используется SwiftUI или программный пользовательский интерфейс, без файла .storyboard? В стандартном шаблоне приложения SwiftUI даже нет файла сториборда). В этом подробном обзоре мы рассмотрим реальные затраты на использование сторибордов с помощью реальных цифр, сравним код до и после и изучим современные альтернативы, такие как SwiftUI, которые спасают команды от проблем с конфликтами слияния в Xcode. В конце вы получите конкретные шаги по модернизации вашей iOS-архитектуры — и, возможно, пару историй из практики, которыми сможете поделиться.
Статья: https://apptractor.ru/info/articles/storyboards.html
Платформа: iOS
Please open Telegram to view this post
VIEW IN TELEGRAM
ListKit - быстрый diffable data source для UICollectionView
ListKit - быстрый, написанный на чистом Swift источник данных с возможностью сравнения изменений (diffable data source) для
ListKit на GitHub: https://github.com/Iron-Ham/Lists
Статья: https://sundayswift.com/posts/building-a-high-performance-list-framework/
Платформа: iOS
⭐️: 13
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
ListKit - быстрый, написанный на чистом Swift источник данных с возможностью сравнения изменений (diffable data source) для
UICollectionView. Полная замена UICollectionViewDiffableDataSource от Apple с алгоритмом сравнения изменений Хекеля со сложностью O(n) и высокоуровневым декларативным API (совместим с NSDiffableDataSourceSnapshot). В тестах эта библиотека от 2 до 1000 раз превосходит по скорости встроенное решение Apple.ListKit на GitHub: https://github.com/Iron-Ham/Lists
Статья: https://sundayswift.com/posts/building-a-high-performance-list-framework/
Платформа: iOS
⭐️: 13
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Не убий: Гайд по UI/UX в Android Automotive, за который вас не посадят
В прошлой серии мы научились вытаскивать из машины данные. Мы знаем скорость, обороты двигателя и даже какая дверь открыта. Руки чешутся вывести всё это на огромный экран в 4K, добавить анимаций, графиков и запустить YouTube на фоне, да?
Статья: https://habr.com/ru/articles/1001016/
Платформа: Android
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
В прошлой серии мы научились вытаскивать из машины данные. Мы знаем скорость, обороты двигателя и даже какая дверь открыта. Руки чешутся вывести всё это на огромный экран в 4K, добавить анимаций, графиков и запустить YouTube на фоне, да?
Статья: https://habr.com/ru/articles/1001016/
Платформа: Android
Please open Telegram to view this post
VIEW IN TELEGRAM
Расцвет "достаточно хорошей" архитектуры в Android
Идеальная архитектура — это миф. Достаточно хорошая архитектура — это дисциплина, знающая, что нужно делать, что отложить, а что вообще не стоит использовать.
Начните с простого. Когда возникнут проблемы, добавляйте уровни. И помните, что отзывы о вашем приложении в Play Store пишут пользователи, а не ваш граф внедрения зависимостей.
Статья: https://apptractor.ru/info/articles/rastsvet-dostatochno-horoshey-arhitektury-v-android.html
Платформа: Android
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Идеальная архитектура — это миф. Достаточно хорошая архитектура — это дисциплина, знающая, что нужно делать, что отложить, а что вообще не стоит использовать.
Начните с простого. Когда возникнут проблемы, добавляйте уровни. И помните, что отзывы о вашем приложении в Play Store пишут пользователи, а не ваш граф внедрения зависимостей.
Статья: https://apptractor.ru/info/articles/rastsvet-dostatochno-horoshey-arhitektury-v-android.html
Платформа: Android
Please open Telegram to view this post
VIEW IN TELEGRAM
Как я за 2,5 месяца написал строительный калькулятор на Flutter с ИИ-прорабом, 45+ калькуляторами и 8000 тестами
В этой статье расскажу про архитектуру, покажу реальный код и объясню, почему переписал систему калькуляторов с нуля на полпути разработки, как впихнул ИИ с характером ворчливого прораба через OpenRouter и зачем написал 8180 тестов на проект, который делает один человек.
Статья: https://habr.com/ru/articles/1001080/
Платформа: кроссплатформа/Flutter
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
В этой статье расскажу про архитектуру, покажу реальный код и объясню, почему переписал систему калькуляторов с нуля на полпути разработки, как впихнул ИИ с характером ворчливого прораба через OpenRouter и зачем написал 8180 тестов на проект, который делает один человек.
Статья: https://habr.com/ru/articles/1001080/
Платформа: кроссплатформа/Flutter
Please open Telegram to view this post
VIEW IN TELEGRAM