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 и iOS: звучит круто, работает?  Нет

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

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

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

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

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

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

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

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