AVD-SLIM - оптимизатор оперативной памяти и процессора для эмулятора Android
AVD-SLIM — это легковесная CLI-утилита, не имеющая внешних зависимостей, она снижает потребление оперативной памяти хост-системы виртуальным устройством Android (AVD) с ~8 ГБ до ~1,5 ГБ и практически сводит к нулю нагрузку на процессор в режиме простоя на системах с Apple Silicon и Linux.
При разработке Android-приложений на macOS или Linux разработчики нередко замечают, что процесс
Почему эмулятор потребляет 8 ГБ?
• Ловушка Lavapipe: Android Studio часто по умолчанию использует
• Образы с размером страницы 16 КБ: на современных ARM64-образах (
• Лишние системные службы Android: более 35 необязательных фоновых процессов — Google Assistant, System Intelligence, Maps, Photos, YouTube, телеметрия и другие — будят ядра CPU и засоряют память.
• Устаревшие снимки состояния: Android Studio повторно загружает закэшированные снимки (
Решение
Так же как simslim отключает лишнюю активность iOS Simulator через
• Передаёт QEMU параметр
• Принудительно включает аппаратное ускорение GPU на разных платформах: использует
• Отключает более 24 лишних фоновых служб: выключает необязательные сервисы Google через
• Убирает задержки анимаций: устанавливает масштаб анимации окон, переходов и аниматоров в 0x.
• Снижает фоновую активность: ограничивает
• Очищает кэши: сбрасывает страничные кэши Linux и выполняет уплотнение памяти.
AVD-SLIM на GitHub: https://github.com/kdbhalala/avdslim
Платформа: Android
⭐️: 31
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
AVD-SLIM — это легковесная CLI-утилита, не имеющая внешних зависимостей, она снижает потребление оперативной памяти хост-системы виртуальным устройством Android (AVD) с ~8 ГБ до ~1,5 ГБ и практически сводит к нулю нагрузку на процессор в режиме простоя на системах с Apple Silicon и Linux.
При разработке Android-приложений на macOS или Linux разработчики нередко замечают, что процесс
qemu-system-aarch64 потребляет от 5 до 8+ ГБ оперативной памяти в Activity Monitor.Почему эмулятор потребляет 8 ГБ?
• Ловушка Lavapipe: Android Studio часто по умолчанию использует
hw.gpu.mode = auto, из-за чего происходит откат на программную растеризацию Mesa на CPU (lavapipe). В результате около 4 ГБ буферов программного рендеринга выделяются непосредственно в оперативной памяти хоста поверх памяти гостевой ОС.• Образы с размером страницы 16 КБ: на современных ARM64-образах (
google_apis_ps16k) QEMU жёстко задаёт минимальный объём памяти (minRam = 4096MB), молча игнорируя более низкие настройки ОЗУ.• Лишние системные службы Android: более 35 необязательных фоновых процессов — Google Assistant, System Intelligence, Maps, Photos, YouTube, телеметрия и другие — будят ядра CPU и засоряют память.
• Устаревшие снимки состояния: Android Studio повторно загружает закэшированные снимки (
hardware-qemu.ini), в которых сохраняются тяжёлые состояния на 4 ГБ даже после перезапуска.Решение
Так же как simslim отключает лишнюю активность iOS Simulator через
launchctl, avdslim, AVD-SLIM:• Передаёт QEMU параметр
-lowram: снимает внутренний нижний предел в 4 ГБ и запускает ядро Android в режиме малого объёма памяти (hw.ramSize = 1024M или 1536M).• Принудительно включает аппаратное ускорение GPU на разных платформах: использует
-gpu host, чтобы рендеринг выполнялся нативно через драйверы графики хоста, полностью обходя программные растеризаторы на CPU.• Отключает более 24 лишних фоновых служб: выключает необязательные сервисы Google через
pm disable-user --user 0.• Убирает задержки анимаций: устанавливает масштаб анимации окон, переходов и аниматоров в 0x.
• Снижает фоновую активность: ограничивает
background_process_limit = 4, сохраняя работу OAuth и биометрии, а также отключает автосинхронизацию.• Очищает кэши: сбрасывает страничные кэши Linux и выполняет уплотнение памяти.
qemu-system-aarch64 ██████████████████████████ 8,518 MB
qemu-system-aarch64 █████ 1,560 MB
Reclaimed: ~6.0 GB host RAM (82% reduction)
AVD-SLIM на GitHub: https://github.com/kdbhalala/avdslim
Платформа: Android
⭐️: 31
Please open Telegram to view this post
VIEW IN TELEGRAM
Как разрабатывать фронтенд без готового бэкенда: инструменты перехвата трафика, мокирования и принцип их работы
Зимой 2026 мы получили задачу: новый финансовый инструмент, дедлайн через три месяца, готовность бэкенда — через полтора. Команда начала работу на моках и успела. В статье я расскажу, какие инструменты перехвата и мокирования трафика помогли нам выпустить фичу в срок без готового бэкенда, как настроить их за один вечер и почему понимание принципов работы TLS и MITM-атаки экономит часы отладки.
Статья: https://habr.com/ru/companies/tbank/articles/1082854/
Платформа: разработка
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Зимой 2026 мы получили задачу: новый финансовый инструмент, дедлайн через три месяца, готовность бэкенда — через полтора. Команда начала работу на моках и успела. В статье я расскажу, какие инструменты перехвата и мокирования трафика помогли нам выпустить фичу в срок без готового бэкенда, как настроить их за один вечер и почему понимание принципов работы TLS и MITM-атаки экономит часы отладки.
Статья: https://habr.com/ru/companies/tbank/articles/1082854/
Платформа: разработка
Please open Telegram to view this post
VIEW IN TELEGRAM
Я создал Android-приложение на Swift: главное о новом SDK в Swift 6.3
Около 10 лет я пишу на Swift исключительно для закрытой экосистемы Apple. Поэтому, когда я прочитал, что в Swift 6.3 наконец появился официальный SDK для Android… я буквально рассмеялся. А потом всё-таки решил нормально попробовать его за выходные.
Кратко: нет, я не запустил SwiftUI-приложение на своём Pixel. Зато получил кое-что намного интереснее — и гораздо более применимое к моей реальной работе.
Статья: https://apptractor.ru/info/articles/ya-sozdal-android-prilozhenie-na-swift-glavnoe-o-novom-sdk-v-swift-6-3.html
Платформа: кроссплатформа
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Около 10 лет я пишу на Swift исключительно для закрытой экосистемы Apple. Поэтому, когда я прочитал, что в Swift 6.3 наконец появился официальный SDK для Android… я буквально рассмеялся. А потом всё-таки решил нормально попробовать его за выходные.
Кратко: нет, я не запустил SwiftUI-приложение на своём Pixel. Зато получил кое-что намного интереснее — и гораздо более применимое к моей реальной работе.
Статья: https://apptractor.ru/info/articles/ya-sozdal-android-prilozhenie-na-swift-glavnoe-o-novom-sdk-v-swift-6-3.html
Платформа: кроссплатформа
Please open Telegram to view this post
VIEW IN TELEGRAM
Storeshots-MCP - генератор скриншотов для App Store и Google Play
Создание скриншотов для магазина приложений — это, по сути, две разные задачи, скрывающиеся под одной вывеской. Первая — творческая (что именно показать, какой экран лучше всего «продает» конкретную функцию, как сформулировать текст на многих языках), а вторая — техническая (оформление рамок, типографика, точные размеры в пикселях, отсутствие альфа-канала). При использовании обычных дизайн-инструментов обе части работы приходится выполнять вручную, тогда как специализированные SaaS-сервисы делают техническую составляющую доступной только по платной подписке.
Storeshots-MCP превращает необработанные скриншоты приложения в готовые визуальные материалы для страниц в магазинах приложений: добавляет рамки устройств, заголовки с акцентом на преимущества и брендированные фоны, а также обеспечивает точное соответствие размерам, требуемым в App Store и Google Play. Инструмент работает как MCP-сервер, поэтому используемый вами ИИ-агент пишет и переводит тексты, а storeshots генерирует итоговые изображения. Никаких графических редакторов, подписок или API-ключей.
Storeshots-MCP на GitHub: https://github.com/mtbun/storeshots-mcp
Платформа: разработка
⭐️: 20
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Создание скриншотов для магазина приложений — это, по сути, две разные задачи, скрывающиеся под одной вывеской. Первая — творческая (что именно показать, какой экран лучше всего «продает» конкретную функцию, как сформулировать текст на многих языках), а вторая — техническая (оформление рамок, типографика, точные размеры в пикселях, отсутствие альфа-канала). При использовании обычных дизайн-инструментов обе части работы приходится выполнять вручную, тогда как специализированные SaaS-сервисы делают техническую составляющую доступной только по платной подписке.
Storeshots-MCP превращает необработанные скриншоты приложения в готовые визуальные материалы для страниц в магазинах приложений: добавляет рамки устройств, заголовки с акцентом на преимущества и брендированные фоны, а также обеспечивает точное соответствие размерам, требуемым в App Store и Google Play. Инструмент работает как MCP-сервер, поэтому используемый вами ИИ-агент пишет и переводит тексты, а storeshots генерирует итоговые изображения. Никаких графических редакторов, подписок или API-ключей.
Storeshots-MCP на GitHub: https://github.com/mtbun/storeshots-mcp
Платформа: разработка
⭐️: 20
Please open Telegram to view this post
VIEW IN TELEGRAM
•
(iOS En) iPhone Duo Group Lab + iPhone Duo Group Lab•
(iOS En) Meet new APIs for iPhone Duo•
(iOS En) Chat Bubble TextField Transition Using SwiftUI•
(iOS En) AsyncImage Caching in iOS 27: Everything You Need to Know•
(iOS En) Apple Music Player Bottom Bar Transition•
(iOS En) iOS 27 Launch Screens Done Right: Simple to Fully Custom•
(iOS En) Apple Bed Time Circular Slider Using SwiftUI•
(And Ru) Когда Shared Transition — это требование дизайнеров: необычные кейсы на Compose•
(And Ru) Как поменялась Android-разработка с приходом AI•
(And Ru) Спрятаться у всех на виду: как современные вирусы под Android избегают декомпиляции, анализа и изучения кода•
(And Ru) Своя Android-ферма без фермы: автоматизация реальных устройств в CI/CD•
(And En) My Full App Development Tech Stack In 2026•
(And En) Certificate Pinning - The MOST Important Security Measure for Network Traffic In Your App•
(And En) What's New in Kotlin 2.4.20•
(And En) Powering Up Your Assertions•
(Dev Ru) Автоматическое code review на базе OpenCode: LLM-агент в CI/CD•
(Dev Ru) AI как экзокостюм разработчика•
(Dev Ru) Путь к Chaos As A Service: как (и зачем) мы построили платформу для Chaos Engineering•
(Dev Ru) Как попасть в IT в 2027 году. Что учить для начала карьеры.Прошлогодние видео:
•
(iOS Ru) Пишем видеоплеер под iOS с нуля•
(And Ru) Разбор кода: пиксельная погода на Kotlin•
(And Ru) Бессмертное приложение•
(And Ru) Укрощаем UDF state-based архитектуры. Реальные кейсы в больших приложенияхPlease open Telegram to view this post
VIEW IN TELEGRAM
❤1
Переносим дизайн-систему в код: риски, решения, лучшие практики
В этой статье я расскажу, как нам удалось возродить проект дизайн‑системы из мертвых и успешно внедрить её в наше приложение. Поделюсь опытом создания дизайн‑системы на Jetpack Compose для Android‑проекта. При этом большинство подходов применимы и на других платформах, а также помогают лучше понять общие принципы разработки подобных решений. Материал будет полезен как тем, кто только планирует внедрять дизайн-систему в свой продукт, так и тем, кто уже находится в процессе.
Статья: https://habr.com/ru/companies/domclick/articles/993686/
Платформа: Android
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
В этой статье я расскажу, как нам удалось возродить проект дизайн‑системы из мертвых и успешно внедрить её в наше приложение. Поделюсь опытом создания дизайн‑системы на Jetpack Compose для Android‑проекта. При этом большинство подходов применимы и на других платформах, а также помогают лучше понять общие принципы разработки подобных решений. Материал будет полезен как тем, кто только планирует внедрять дизайн-систему в свой продукт, так и тем, кто уже находится в процессе.
Статья: https://habr.com/ru/companies/domclick/articles/993686/
Платформа: Android
Please open Telegram to view this post
VIEW IN TELEGRAM
LiquidGlass for Android - жидкое стекло для View
Высокопроизводительный компонент в стиле Liquid Glass / «глассморфизма» для системы Android View, поддерживающий размытие фона в реальном времени, преломление на основе SDF, хроматическую дисперсию и интерактивные эффекты, напоминающие поведение жидкости.
Просто добавьте его в существующую иерархию View. Миграция на Compose не требуется. Работает с API 24+.
LiquidGlass for Android на GitHub: https://github.com/QWEA0/Liquid-Glass-Android
Платформа: Android
⭐️: 148
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Высокопроизводительный компонент в стиле Liquid Glass / «глассморфизма» для системы Android View, поддерживающий размытие фона в реальном времени, преломление на основе SDF, хроматическую дисперсию и интерактивные эффекты, напоминающие поведение жидкости.
Просто добавьте его в существующую иерархию View. Миграция на Compose не требуется. Работает с API 24+.
LiquidGlass for Android на GitHub: https://github.com/QWEA0/Liquid-Glass-Android
Платформа: Android
⭐️: 148
Please open Telegram to view this post
VIEW IN TELEGRAM
👏3
Нативные OTA-обновления в Android: что можно исправить без выпуска нового APK
Практическое руководство по архитектуре обновлений в Android: Play In-App Updates, Remote Config, server-driven UI, ограничения на динамический код и причины, по которым механизм Code Push во Flutter не имеет прямого аналога в нативной разработке на Kotlin.
Статья: https://apptractor.ru/info/articles/nativnye-ota-obnovleniya-v-android-chto-mozhno-ispravit-bez-vypuska-novogo-apk.html
Платформа: Android
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Практическое руководство по архитектуре обновлений в Android: Play In-App Updates, Remote Config, server-driven UI, ограничения на динамический код и причины, по которым механизм Code Push во Flutter не имеет прямого аналога в нативной разработке на Kotlin.
Статья: https://apptractor.ru/info/articles/nativnye-ota-obnovleniya-v-android-chto-mozhno-ispravit-bez-vypuska-novogo-apk.html
Платформа: Android
Please open Telegram to view this post
VIEW IN TELEGRAM
Giga Pisar - русская диктовка для macOS на GigaAM
Giga Pisar - диктовка голосом для macOS на модели GigaAM v3 от Сбера, открытой SOTA-модели распознавания русской речи. Точнее Whisper на русском, сама расставляет пунктуацию и заглавные, работает полностью локально — звук не покидает компьютер.
Распознавание работает внутри самого приложения. Ни питона, ни ffmpeg, ни Homebrew, ни какого-либо сервера рядом.
•
•
•
•
•
•
Ядро — перенос на Swift питоновского
Giga Pisar на GitHub: https://github.com/moznoazachem/giga-pisar
Платформа: macOS
⭐️: 47
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Giga Pisar - диктовка голосом для macOS на модели GigaAM v3 от Сбера, открытой SOTA-модели распознавания русской речи. Точнее Whisper на русском, сама расставляет пунктуацию и заглавные, работает полностью локально — звук не покидает компьютер.
Распознавание работает внутри самого приложения. Ни питона, ни ffmpeg, ни Homebrew, ни какого-либо сервера рядом.
•
main.swift — приложение в строке меню: перехват клавиши-рации, запись с микрофона, вставка текста•
swift/ — ядро распознавания на Swift: Features.swift (звук → признаки), Ort.swift (запуск модели), Recognizer.swift (декодирование RNN-T), Tokenizer.swift (сборка текста), Audio.swift (чтение wav, нарезка по паузам)•
swift/Brain.swift — мозг по желанию: локальная нейронка (вложенный llama.cpp) причёсывает надиктованное по командам вроде «Писарь, исправь»•
swift/Chips.swift — менюшка у курсора: собрать мысль / сократить / перевести, подмена текста на месте и «вернуть как было»•
vendor/ — onnxruntime и движок llama.cpp, качаются сборкой сами (в репозиторий не входят)•
install.sh — кладёт файлы модели в ~/.giga/modelЯдро — перенос на Swift питоновского
giga_core.py из Гига Писаря для Linux. Оба гоняются на одних записях скриптом scripts/сверка-swift.py и должны выдавать один и тот же текст.Giga Pisar на GitHub: https://github.com/moznoazachem/giga-pisar
Платформа: macOS
⭐️: 47
Please open Telegram to view this post
VIEW IN TELEGRAM
Как сделать 2D-игру на LibGDX живее: 5 простых приёмов
В этой статье я покажу пять вещей, которые я сам использую в 2D-играх на LibGDX и которые дают довольно заметный результат при относительно небольших затратах.
Статья: https://habr.com/ru/articles/1084390/
Платформа: кроссплатформа
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
В этой статье я покажу пять вещей, которые я сам использую в 2D-играх на LibGDX и которые дают довольно заметный результат при относительно небольших затратах.
Статья: https://habr.com/ru/articles/1084390/
Платформа: кроссплатформа
Please open Telegram to view this post
VIEW IN TELEGRAM
Библиотеки AndroidX Security State: единое представление о безопасности устройства
Независимо от того, разрабатываете ли вы критически важные для безопасности пользовательские приложения — например, банковские, финтех- или медицинские — либо решения для управления мобильными устройствами (MDM), эти библиотеки позволяют программно проверять состояние безопасности устройства по отдельным компонентам. Вместо того чтобы полагаться на грубый единый показатель уровня исправлений безопасности (Security Patch Level, SPL), теперь можно оценивать реальную защищённость каждого компонента и наличие ожидающих установки исправлений через библиотеку
Статья: https://apptractor.ru/info/news/biblioteki-androidx-security-state-edinoe-predstavlenie-o-bezopasnosti-ustroystva.html
Платформа: Android
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Независимо от того, разрабатываете ли вы критически важные для безопасности пользовательские приложения — например, банковские, финтех- или медицинские — либо решения для управления мобильными устройствами (MDM), эти библиотеки позволяют программно проверять состояние безопасности устройства по отдельным компонентам. Вместо того чтобы полагаться на грубый единый показатель уровня исправлений безопасности (Security Patch Level, SPL), теперь можно оценивать реальную защищённость каждого компонента и наличие ожидающих установки исправлений через библиотеку
androidx.security.state. Для производителей устройств и разработчиков клиентов обновлений «по воздуху» (OTA) сопутствующая библиотека androidx.security.state.provider позволяет публиковать информацию о доступности обновлений через стандартизированные механизмы.Статья: https://apptractor.ru/info/news/biblioteki-androidx-security-state-edinoe-predstavlenie-o-bezopasnosti-ustroystva.html
Платформа: Android
Please open Telegram to view this post
VIEW IN TELEGRAM
Swift 6.4: наконец-то кажется, что Apple прислушалась
Большую часть прошлого года я боролся с атрибутами
Статья: https://apptractor.ru/info/articles/swift-6-4-nakonets-to-kazhetsya-chto-apple-prislushalas.html
Платформа: iOS
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Большую часть прошлого года я боролся с атрибутами
@available, которые растягивались сразу на пять платформ, и с асинхронными функциями, где код очистки приходилось дублировать в трёх местах «на случай, если что-то выбросит ошибку». Теперь понятно, о чём я говорил, когда тогда вляпался в эту проблему — Swift 6.4 тихо исправил обе эти головные боли и ещё несколько вещей, которые тормозили меня, хотя я даже не замечал этого, пока они не исчезли.Статья: https://apptractor.ru/info/articles/swift-6-4-nakonets-to-kazhetsya-chto-apple-prislushalas.html
Платформа: iOS
Please open Telegram to view this post
VIEW IN TELEGRAM
Mugshot - скриншот-тесты на основе превью Compose
Вы, вероятно, уже создали
Почему стоит Mugshot:
• Не нужно писать отдельные классы тестов или поддерживать актуальность списка экранов. Процессор KSP находит все превью с аннотацией и генерирует тесты автоматически: добавление превью приводит к созданию скриншота, а удаление — к его исчезновению.
• Библиотека работает в модулях Kotlin Multiplatform. Превью в
• Это быстро. В приложении из 30 модулей с 7176 скриншотами Mugshot выполнил проверку за 58 секунд. Paparazzi потребовалось 89 секунд, а решение Google (Compose Preview Screenshot Testing) завершилось с ошибкой нехватки памяти при стандартных настройках. Подробности и репозиторий для самостоятельного запуска теста доступны в бенчмарке.
• Библиотека не создает проблем при настройке Gradle. Тесты со скриншотами выполняются в отдельной задаче и отдельном процессе JVM, поэтому они не конфликтуют с Robolectric, а плагин Gradle поддерживает кэширование конфигурации.
Mugshot на GitHub: https://github.com/TRazDev/Mugshot
Платформа: Android
⭐️: 305
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Вы, вероятно, уже создали
@Preview для большинства своих экранов. Mugshot — это библиотека для тестирования на основе скриншотов, которая превращает каждый такой превью-экран в тест: достаточно добавить аннотацию @Mugshot и один раз записать эталонное изображение (golden image), после чего сборка будет падать при любом изменении экрана. Рендеринг экранов происходит в JVM с использованием layoutlib — того же движка, который обеспечивает работу превью в Android Studio, — поэтому тесты выполняются как обычные unit-тесты на любой машине, способной собрать ваше приложение.Почему стоит Mugshot:
• Не нужно писать отдельные классы тестов или поддерживать актуальность списка экранов. Процессор KSP находит все превью с аннотацией и генерирует тесты автоматически: добавление превью приводит к созданию скриншота, а удаление — к его исчезновению.
• Библиотека работает в модулях Kotlin Multiplatform. Превью в
commonMain подхватываются так же, как и любые другие, а ресурсы Compose Multiplatform (включая stringResource) корректно отображаются на эталонных изображениях.• Это быстро. В приложении из 30 модулей с 7176 скриншотами Mugshot выполнил проверку за 58 секунд. Paparazzi потребовалось 89 секунд, а решение Google (Compose Preview Screenshot Testing) завершилось с ошибкой нехватки памяти при стандартных настройках. Подробности и репозиторий для самостоятельного запуска теста доступны в бенчмарке.
• Библиотека не создает проблем при настройке Gradle. Тесты со скриншотами выполняются в отдельной задаче и отдельном процессе JVM, поэтому они не конфликтуют с Robolectric, а плагин Gradle поддерживает кэширование конфигурации.
Mugshot на GitHub: https://github.com/TRazDev/Mugshot
Платформа: Android
⭐️: 305
Please open Telegram to view this post
VIEW IN TELEGRAM
Google выпустил Agent Development Kit для Kotlin
Kotlin ADK позволяет определять поведение агента, оркестрацию и использование инструментов непосредственно в коде. По словам разработчиков, он обеспечивает точный контроль и гибкость, а также поддерживает отладку, версионирование и развёртывание как локально, так и в облаке.
Агенты на ADK Kotlin могут работать на Android либо полностью локально на устройстве — без API-ключа и без подключения к сети во время выполнения модели, — либо через облако. Локальный вариант предназначен для сценариев, где важны офлайн-работа, низкая задержка или конфиденциальность.
Новость: https://apptractor.ru/info/news/google-vypustil-agent-development-kit-dlya-kotlin.html
Платформа: Android/Kotlin
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Kotlin ADK позволяет определять поведение агента, оркестрацию и использование инструментов непосредственно в коде. По словам разработчиков, он обеспечивает точный контроль и гибкость, а также поддерживает отладку, версионирование и развёртывание как локально, так и в облаке.
Агенты на ADK Kotlin могут работать на Android либо полностью локально на устройстве — без API-ключа и без подключения к сети во время выполнения модели, — либо через облако. Локальный вариант предназначен для сценариев, где важны офлайн-работа, низкая задержка или конфиденциальность.
Новость: https://apptractor.ru/info/news/google-vypustil-agent-development-kit-dlya-kotlin.html
Платформа: Android/Kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
Почему спидтест говорит «всё хорошо», а игра лагает: как я построил Latency Dashboard и научил пинг не врать
Это третья статья про NetDiag+ — iOS-утилиту сетевой диагностики, которую я пишу один. В первой было про ICMP-сокеты без entitlements и traceroute, во второй — про MTR, Path MTU и детект блокировок по SNI. Сегодня — про инструмент, который отвечает на вопрос «почему лагает», и про баг в самом пинге, который я нашёл только потому, что положил рядом с телефоном ноутбук.
Спойлер: правильно измерить RTT на телефоне сложнее, чем отправить. Отправить — это
Статья: https://habr.com/ru/articles/1085252/
Платформа: iOS
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Это третья статья про NetDiag+ — iOS-утилиту сетевой диагностики, которую я пишу один. В первой было про ICMP-сокеты без entitlements и traceroute, во второй — про MTR, Path MTU и детект блокировок по SNI. Сегодня — про инструмент, который отвечает на вопрос «почему лагает», и про баг в самом пинге, который я нашёл только потому, что положил рядом с телефоном ноутбук.
Спойлер: правильно измерить RTT на телефоне сложнее, чем отправить. Отправить — это
sendto(). Измерить — семь раундов на устройстве, пять дефектов и один латентный баг, живший в приложении с версии 1.0.Статья: https://habr.com/ru/articles/1085252/
Платформа: iOS
Please open Telegram to view this post
VIEW IN TELEGRAM
iPhone Duo для iOS-разработчика: что реально меняется в вашем Swift-коде
9 сентября 2026 года Apple показала iPhone Duo — свой первый складной iPhone. Внешний экран 5.4″, внутренний 7.6″ в раскрытом виде, поставка с iOS 27.1, старт продаж 23 октября. Для пользователя история про железо и «самый тонкий iPhone». Для нас с вами история в другом: часть допущений, зашитых в iPhone-приложения с 2007 года, перестала быть правдой.
Экранов теперь больше одного. Экран может менять форму прямо во время работы приложения. Safe area больше не симметрична. А «только портрет» означает совсем не то, что вы привыкли под этим понимать.
Хорошая новость: если вы уже делали адаптивную вёрстку по-человечески ради iPad, здесь работы на один вечер. Если приложение хардкодит размеры экрана и ветвится по ориентации — придётся засучить рукава.
Статья: https://habr.com/ru/articles/1084944/
Платформа: iOS
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
9 сентября 2026 года Apple показала iPhone Duo — свой первый складной iPhone. Внешний экран 5.4″, внутренний 7.6″ в раскрытом виде, поставка с iOS 27.1, старт продаж 23 октября. Для пользователя история про железо и «самый тонкий iPhone». Для нас с вами история в другом: часть допущений, зашитых в iPhone-приложения с 2007 года, перестала быть правдой.
Экранов теперь больше одного. Экран может менять форму прямо во время работы приложения. Safe area больше не симметрична. А «только портрет» означает совсем не то, что вы привыкли под этим понимать.
Хорошая новость: если вы уже делали адаптивную вёрстку по-человечески ради iPad, здесь работы на один вечер. Если приложение хардкодит размеры экрана и ветвится по ориентации — придётся засучить рукава.
Статья: https://habr.com/ru/articles/1084944/
Платформа: iOS
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
SwiftTUI - семантика SwiftUI для терминала
SwiftTUI — это фреймворк для создания пользовательских интерфейсов в терминале на macOS, Linux и Windows. Вы описываете представления (
SwiftTUI на GitHub: https://github.com/SwiftTUI/swift-tui
Платформа: iOS
⭐️: 178
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
SwiftTUI — это фреймворк для создания пользовательских интерфейсов в терминале на macOS, Linux и Windows. Вы описываете представления (
View) с использованием @State, стеков, контролов, фокуса, жестов и анимации — применяя декларативную модель, доказавшую свою эффективность в SwiftUI, — а фреймворк берет на себя задачи по компоновке, обработке ввода, отрисовке и взаимодействию с самим терминалом.SwiftTUI на GitHub: https://github.com/SwiftTUI/swift-tui
Платформа: iOS
⭐️: 178
Please open Telegram to view this post
VIEW IN TELEGRAM
Кросс-компиляция под андроид и не только
Сегодня широко используют cmake add_subdirectory и сборку через Gradle для кросс-компиляции сишных библиотек под андроид. Мы же рассмотрим более продвинутый и универсальный способ, который работает со множеством систем сборки и позволяет любым проектам найти свои зависимости без написания отдельных костылей под каждый проект.
Статья: https://habr.com/ru/articles/1085858/
Платформа: Android
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Сегодня широко используют cmake add_subdirectory и сборку через Gradle для кросс-компиляции сишных библиотек под андроид. Мы же рассмотрим более продвинутый и универсальный способ, который работает со множеством систем сборки и позволяет любым проектам найти свои зависимости без написания отдельных костылей под каждый проект.
Статья: https://habr.com/ru/articles/1085858/
Платформа: Android
Please open Telegram to view this post
VIEW IN TELEGRAM
Как мы вдвоем писали кроссплатформенный мессенджер: Compose Multiplatform, SFU на Go и сжатие трафика
Идея написать собственный мессенджер появилась не от хорошей жизни. У нас была конкретная прикладная потребность: получить полностью независимый инструмент связи, который не завязан на сторонние облачные сервисы, нормально поднимается на скромных серверах и адекватно ведет себя при перебоях со связью.
Мы разрабатывали другой проект, и поначалу для него был написан минимальный чат на CodeIgniter 4 с Vanilla JS и CSS плюс WebSocket‑сервер на Go. Затем стало очевидно, что такой чат слабоват, а для проекта, ориентированного на бизнес‑среду (B2B), еще и недостаточно безопасен. Тогда мы начали внедрять шифрование. Постепенно улучшали код, дорабатывали архитектуру и в какой‑то момент решили выделить мессенджер в самостоятельный проект — заодно хотелось получить реальный опыт в мобильной разработке. А потом просто увлеклись.
Статья: https://habr.com/ru/articles/1085446/
Платформа: кроссплатформа
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Идея написать собственный мессенджер появилась не от хорошей жизни. У нас была конкретная прикладная потребность: получить полностью независимый инструмент связи, который не завязан на сторонние облачные сервисы, нормально поднимается на скромных серверах и адекватно ведет себя при перебоях со связью.
Мы разрабатывали другой проект, и поначалу для него был написан минимальный чат на CodeIgniter 4 с Vanilla JS и CSS плюс WebSocket‑сервер на Go. Затем стало очевидно, что такой чат слабоват, а для проекта, ориентированного на бизнес‑среду (B2B), еще и недостаточно безопасен. Тогда мы начали внедрять шифрование. Постепенно улучшали код, дорабатывали архитектуру и в какой‑то момент решили выделить мессенджер в самостоятельный проект — заодно хотелось получить реальный опыт в мобильной разработке. А потом просто увлеклись.
Статья: https://habr.com/ru/articles/1085446/
Платформа: кроссплатформа
Please open Telegram to view this post
VIEW IN TELEGRAM
Перенесите свои приложения на Googlebook с помощью адаптивной разработки
Адаптивная разработка — это естественный способ, с помощью которого современные Android-приложения масштабируются под большие дисплеи, новые положения устройств и появляющиеся форм-факторы. Если ваше приложение уже использует адаптивные макеты, оно практически готово к Googlebook. Опираясь на существующую базу адаптивного UI, классы размеров окон и поддержку нескольких способов ввода, можно предоставить полностью оптимизированный опыт.
Статья: https://apptractor.ru/info/articles/perenesite-svoi-prilozheniya-na-googlebook-s-pomoschyu-adaptivnoy-razrabotki.html
Платформа: Android
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Адаптивная разработка — это естественный способ, с помощью которого современные Android-приложения масштабируются под большие дисплеи, новые положения устройств и появляющиеся форм-факторы. Если ваше приложение уже использует адаптивные макеты, оно практически готово к Googlebook. Опираясь на существующую базу адаптивного UI, классы размеров окон и поддержку нескольких способов ввода, можно предоставить полностью оптимизированный опыт.
Статья: https://apptractor.ru/info/articles/perenesite-svoi-prilozheniya-na-googlebook-s-pomoschyu-adaptivnoy-razrabotki.html
Платформа: Android
Please open Telegram to view this post
VIEW IN TELEGRAM
AppFiles - Mobile Development
Перенесите свои приложения на Googlebook с помощью адаптивной разработки Адаптивная разработка — это естественный способ, с помощью которого современные Android-приложения масштабируются под большие дисплеи, новые положения устройств и появляющиеся форм-факторы.…
LastWave - клиент YouTube Music нового поколения
LastWave — это современное нативное Android-приложение для прослушивания музыки, использующее обширный каталог YouTube Music и созданное для тех, кто ценит умные рекомендации, динамичную визуализацию и удобное отслеживание истории прослушиваний. Приложение, разработанное с использованием дизайна Material 3 Expressive, предлагает комфортное воспроизведение музыки без рекламы, генератор умных плейлистов на базе ИИ, синхронизированные тексты песен (караоке) в реальном времени и встроенный скробблер Last.fm, отслеживающий прослушивание треков в ваших любимых музыкальных сервисах.
Технологический стек и архитектура:
• Язык и UI: 100% Kotlin + Jetpack Compose (Material 3 Expressive)
• Аудиодвижок: AndroidX Media3 ExoPlayer с элементами управления воспроизведением на экране блокировки и интеграцией с Android Auto
• Каталог потокового вещания: движок YouTube Music с использованием высокоэффективного аудиокодека Opus
• Скробблинг и отслеживание: API Last.fm и нативное отслеживание медиасессий ОС
• Система отображения текстов: синхронизация текста с точностью до миллисекунд (LRCLIB)
• Архитектура: MVVM + Clean Architecture, Room DB, Jetpack DataStore, Dagger Hilt, Coroutines и Flow
LastWave на GitHub: https://github.com/Clash-Projects/LastWave-Native
Платформа: Android
⭐️: 735
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
LastWave — это современное нативное Android-приложение для прослушивания музыки, использующее обширный каталог YouTube Music и созданное для тех, кто ценит умные рекомендации, динамичную визуализацию и удобное отслеживание истории прослушиваний. Приложение, разработанное с использованием дизайна Material 3 Expressive, предлагает комфортное воспроизведение музыки без рекламы, генератор умных плейлистов на базе ИИ, синхронизированные тексты песен (караоке) в реальном времени и встроенный скробблер Last.fm, отслеживающий прослушивание треков в ваших любимых музыкальных сервисах.
Технологический стек и архитектура:
• Язык и UI: 100% Kotlin + Jetpack Compose (Material 3 Expressive)
• Аудиодвижок: AndroidX Media3 ExoPlayer с элементами управления воспроизведением на экране блокировки и интеграцией с Android Auto
• Каталог потокового вещания: движок YouTube Music с использованием высокоэффективного аудиокодека Opus
• Скробблинг и отслеживание: API Last.fm и нативное отслеживание медиасессий ОС
• Система отображения текстов: синхронизация текста с точностью до миллисекунд (LRCLIB)
• Архитектура: MVVM + Clean Architecture, Room DB, Jetpack DataStore, Dagger Hilt, Coroutines и Flow
LastWave на GitHub: https://github.com/Clash-Projects/LastWave-Native
Платформа: Android
⭐️: 735
Please open Telegram to view this post
VIEW IN TELEGRAM