RU

После сборки на Tauri затрещал голос и почернел стрим: разбираем три ошибки одного теста

После сборки на Tauri голос начал трещать, автокалибровка почти минуту вмешивалась в разговор, а демонстрация экрана через минуту становилась чёрной…

TauriWebView2Web Audio APILiveKitWebRTCOpusAndroidджиттер-буфераудиодемонстрация экрана
Habr
RU

Rokid Glasses RV101: зачем программисту очки, в которые можно залезть с кодом

Ещё недавно разговор об очках дополненной реальности почти неизбежно заканчивался демонстрацией огромного шлема, роликом с выставки и фразой «через…

Rokid GlassesRV101умные очкидополненная реальностьARYodaOSAIUICXR SDKRokid NexusAndroid
Habr
RU

«У меня ничего не грузится». Как я пришёл к приложению для диагностики сети

Эта история началась не с конкретного приложения, а с задачи, которая меня давно мучает: можно ли сделать простую диагности…

белые спискидиагностика сетимобильный интернетограничения интернетаAndroidдоступность сайтовVPNRuStore
Habr
RU

Я сделал CRM без бэкенда. Вот чего мне это стоило

Приложение слушает разговоры продавца с клиентами и превращает их в текст. Человек на той стороне трубки не подписывался на то, чтобы его голос уеха…

whisper.cppon-deviceраспознавание речиlocal-firstприватностьAndroidGoogle Play
Habr
RU

Голос пропадал каждые три секунды: как пять друзей из Tarkov Arena сделали БОЛТУН

Нас пятеро: друзья и команда по Tarkov Arena. После блокировки Discord и прекращения работы обходного способа мы не нашли подходящую российскую заме…

голосовая связьOpusWASAPIWebSocketUDPjitter bufferAndroidWebCodecs
Habr
RU

Паничный PIN, который отдавал ключ от всего: разбор ошибок

Мы делаем мессенджер RCQ ( rcq.app , исходники клиентов на  github.com/rcq-messenger ). В нём есть штука, которую в разных приложениях называют…

паничный PINsqlcipherpbkdf2argon2idшифрование на устройствеизъятие телефонаAndroidiOSdecoyrcq
Habr
RU

Как я добавил в Braille eMotion установку APK: доступный диспетчер приложений и автономный EXE

Я незрячий и пользуюсь двумя Braille eMotion 40. На одном устройстве мне стало тесно в рамках штатного набора программ, поэтому я сделал доступный д…

Braille eMotionшрифт БрайляaccessibilityAndroidAPKADBPyQt5GPT Codex
Habr
RU

1823 коммита за четыре месяца в четыре руки с LLM: что получилось, а что чуть не убило проект

Четыре месяца, 1823 коммита и около 200 000 строк кода: мобильное приложение для изучения английского, почти целиком написанное через LLM-агента. Я…

LLMAI-агентClaudeAngularIonicCapacitorASP.NETpgvectorWebViewAndroid
Habr
RU

Автоматизация метаданных App Store и Google Play с fastlane и Azure Pipelines

Приложение поддерживает 20+ языков. Каждое обновление — это не только новая сборка, но и правки в обоих магазинах: наз…

fastlaneAzure PipelinesApp Store ConnectGoogle Playлокализациямобильная разработкаiOSAndroidCIнейрослоп
Habr
RU

Один фреймворк для Android и iOS: звучит круто, работает?  Нет

Почему единый кроссплатформенный фреймворк для автотестов Android и iOS не работает на практике и когда стоит разделить его на два отдельных проекта…

JavaТестированиеAndroidGitРаспознаваниеiOSРаботаSwiftHRGitLabKotlinФинтехQAПриложениеdevСерверБиблиотекиТестирование приложений и сайтов плюсИнфраструктураСтатьи
Tproger
RU

Верните мой 2012. Четырнадцать лет корпоративной мобильности от первого лица

Привет, Хабр! Я Олег Ассур, технический директор SafeMobile. Управление мобильными устройствами или MDM – тема, мимо которой проходят не только лишь…

MDMSamsung KnoxSafeMobileApple MDMКорпоративная мобильностьAppConfigAPNSDDMAndroidiOS
Habr
RU

Словари MDict в закрытом приложении, или зачем я писал RIPEMD-128 вручную

Добавлял в свою читалку офлайн-словари и упёрся в MDX, формат словарей MDict. Проприетарный, официальной спеки от создателей нет. Готовые Java-парсе…

MDXMDictсловарипарсинг форматовKotlinreverse engineeringRIPEMD-128Androidшифрование
Habr
RU

Навигация в Jetpack Compose без магии: что на самом деле делают библиотеки навигации

Вы когда-нибудь задумывались, зачем нужны библиотеки для навигации в Jetpack Compose? Почему мы не можем просто взять  mutableStateOf  со…

Jetpack ComposeAndroidнавигацияModoKotlinrememberSaveableSaveableStateHolderViewModelLifecycleмобильная разработка
Habr
RU

Пять ошибок начинающих Android‑разработчиков при работе с жизненным циклом

Если после релиза Android‑приложения вы внезапно получаете краши, утечки памяти и жалобы на пропадающие данные, проблема может скрываться в&nbs…

AndroidKotlinжизненный цикл ActivityFragmentViewModellifecycleScopeутечки памятиSavedStateHandleкорутиныAndroid-разработка
Habr
RU

Как Android-инженер спроектировал gateway для миллионов пользователей: опыт перехода в инфраструктуру

История перехода из андроид разработки в инфраструктуру. Как мобильный инженер спроектировал gateway для платформы с миллионами пользователей, освои…

APIОптимизацияПарсингAndroidИнструментыОпросПрактикаРаботаTorБотыНавыкиHRБэкендApp StoreИграПриложениеСерверKubernetesИнфраструктураСтатьи
Tproger
RU

Покой как фича: анти-шагомер на Expo, который ругает за активность

Я сделал анти-шагомер на Expo и React Native: приложение, которое считает шаги моральным ущербом, награждает за неподвижность и отправляет токсичные…

React NativeExpoAndroidTypeScriptшагомерPedometerTYPE_STEP_COUNTERbackground tasksлокальные уведомленияZustand
Habr
RU

Backend-Driven UI для умного дома: как обучить сервер верстать интерфейсы

Привет, Хабр!  Я Дмитрий, iOS-разработчик из команды Салют — мы делаем устройства и программное обеспечение для Умного дома Сбер. У нас много с…

iOSSwiftSwiftUIAndroidJetpack ComposeBDUIBackend-Driven UIумный домmobileумныйдомСбер
Habr
RU

Девять лет, 514 коммитов и один посёлок: как я делал приложение с расписанием автобусов

Уже девять лет я делаю приложение с расписанием автобусов для посёлка Иртышский в Омской области. И почти всё это время сам там не&nb…

расписание автобусовAndroidKotlinpet-проектинди-разработкахобби-проектGoogle Playмонетизация приложения9 лет разработки
Habr
RU

Полная доказательная база аудита мессенджера MAX

Реверс-инжиниринг MAX: Архитектура телеметрии и фоновой эксфильтрации в «защищённом» мессенджере что скрывает «гос-мессенджер» MAX? Мы провели глубо…

Reverse EngineeringИнформационная безопасностьAndroidМессенджерыПриватностьРазработка под AndroidАнализ кода
Habr
RU

EVERTY DESK — EVRT ПРОТОКОЛ, или почему я написал лучший протокол низкой задержки в мире

Привет, Хабр. Я писал это не месяц и не год. EVRT (EVERTY real time protocol)— это результат примерно десяти лет экспериментов, ошибок, переписывани…

EVRTremote desktopreal-timeUDPRustlow latencyпротоколstreamingAndroidadaptive bitrate
Habr
RU

Как я сделал личный центр управления VLESS для Android TV, потому что устал руками менять конфиги

Привет, Хабр. Меня зовут Валиев Артур. Пока мы активно работаем над EvertyDesk , я продолжаю писать небольшой цикл статей о том, что рождается вокру…

Android TVVLESSVPNVpnServiceKotlinXrayWordPressPHPsplit tunnelAndroid
Habr
RU

Архитектура Android-приложений. Как повысить качество архитектуры, не говоря об архитектуре

Салют, Хабр! Я Марк, Android-разработчик, работаю над мобильным приложением для управления умным домом Салют. Для мира Android-разработки вопросы ар…

доменная система типовKotlinтипыdesign by contractAndroidархитектура приложений
Habr
RU

Создание Android-смартфона с упором на приватность

Практический опыт ограничения приложений на Android В статье рассматривается практический опыт настройки Android‑смартфона с root‑доступом…

AndroidMagiskRootПриватностьИнформационная безопасностьIptablesFirewallLinuxMobile Securityandroid security
Habr
RU

Локализация через Enum, неожиданный Дзен, быстрее только телепатия

Надоело плодить JSON/ARB файлы при локализации Flutter-приложения? Автор делился личным опытом и показал, как элегантно настроить локализацию через…

APIАлгоритмы и структуры данныхJavaМассивы и строкиКрасивый хакAndroidМобильная разработкаJSONРаботаFlutterDartСтатьи
Tproger