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‑приложения вы внезапно получаете краши, утечки памяти и жалобы на пропадающие данные, проблема может скрываться в …

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

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

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

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

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

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

Android TVVLESSVPNVpnServiceKotlinXrayWordPressPHPsplit tunnelAndroid
Habr
RU

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

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

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

Сравнение моделей конкурентности JVM языков: Нужен ли еще ThreadPool после coroutines, ZIO и Virtual Threads?

В последней части про модели конкурентности JVM языков мы сравним разные подходы друг с другом. И ответим на вопрос “А зачем теперь тред пулы, если ес…

JavaJVMKotlinClojureZIOcoroutinesvirtual threadsthread poolsProject Loomconcurrency
Habr
RU

Почему главные конфликты в разработке не связаны с технологиями

Почему конфликты в IT-командах возникают не из-за технологий, а из-за коммуникации, идентичности и инженерной культуры. Разбор споров вокруг Scala, Ko…

Алгоритмы и структуры данныхФункциональное программированиеОпросБотыScalaHRKotlinТимлидLegoСтатьи
Tproger
RU

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

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

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