RU

Конвертация docx на сервере: LibreOffice headless против Apache POI, и где каждый ломается

Задача звучит безобидно: «нам нужно на бэкенде превращать .docx в .html (а иногда .html в .pdf )». В тикете это одна строчка. На практике конвертаци…

конвертация документовApache POILibreOfficedocx в htmlUNO APIheadless LibreOfficeJavaKotlinJODConverterhtml в pdf
Habr
RU

Корутины на бэкенде: семь ошибок, из‑за которых падает не тот запрос и висят не те задачи

На демо корутины выглядят почти безошибочно, но под нагрузкой один неверный выбор области, диспетчера или способа обработки искл…

KotlinкорутиныKotlin Coroutinesструктурная конкурентностьобработка исключенийотмена корутинасинхронное программированиеDispatchersFlowсерверная разработка
Habr
RU

Уведомления на Android без Google: почему UnifiedPush через публичный ntfy у вас не работает

Как вы помните мы делаем мессенджер. Google-сервисы в нашем основном регионе недоступны, значит FCM отпадает, что мы с этим сделали? Стандартный отв…

UnifiedPushntfypush-уведомленияAndroid без GoogleFCMWebPushforeground serviceKotlinself-hostedобход блокировок
Habr
RU

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

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

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

[Перевод] Mission Impossible: как добиться 0 рекомпозиций в сложном кастомном UI

Сотня рекомпозиций в секунду при скролле — это приговор. Приговор батарее устройства, плавности анимаций и вашей репутации как инженера. Мы привыкли…

Jetpack ComposeAndroidRecompositionPerformanceLazyLayoutCustom UIKotlinОптимизацияРендеринг