Найти в Дзене
10 ошибок в Kotlin, которые незаметно ухудшают производительность
Kotlin не замедляет работу вашего Android-приложения. Замедляете его вы сами. Не из-за больших ошибок. Не из-за неудачных архитектурных решений. Из-за крошечных, элегантных, «лучших практик», которые незаметно расходуют ресурсы процессора, памяти и кадров...
2 часа назад
Магия AirDrop: Как Apple заставляет Bluetooth и Wi-Fi работать в одной упряжке
Разбираться во внутренностях AirDrop - это как препарировать фокус иллюзиониста: на сцене всё бесшовно, а за кулисами - вспотевшие инженеры пытаются заставить два разных радиомодуля не конфликтовать за общую антенну. Прочитав этот текст, вы поймете, как Apple фактически создала свой стек протоколов на базе стандартного железа, почему Bluetooth Low Energy - это «швейцар», а Wi-Fi - «грузчик», и как индустрия наконец-то пришла к единому стандарту передачи данных, который не заставляет владельцев Android чувствовать себя лишними на этом празднике жизни. Когда вы в сотый раз кидаете мем другу через...
3 часа назад
Phonograph Plus - музыкальный плеер для Android
Phonograph Plus - легкий, разработанный в соответствии с принципами Material Design, локальный музыкальный плеер для Android. В настоящее время является независимым форком Phonograph, поскольку его поддержка прекращена (он перестал быть активным после 2020 года и был заархивирован в 2023 году), и находится в разработке и поддержке с 2021 года...
4 часа назад
Еше одна занимательная статья про последствия использования ИИ в разработке
Недавно была про деградацию навыков, а сейчас про общее выгорание - если вам кажется, что вы с ИИ стали уставать больше, то вам не кажется: Вот что, на мой взгляд, является настоящим мастерством эпохи ИИ. Это не промпт инжиниринг. Это не знание, какую модель использовать. Это не наличие идеального рабочего процесса. Это знание, когда нужно остановиться. Усталость от ИИ — это реальность, и никто об этом не говорит Знать, когда результат работы ИИ достаточно хорош. Знать, когда стоит написать код самостоятельно. Знать, когда нужно закрыть ноутбук. Знать, когда незначительное улучшение не стоит когнитивных затрат...
17 часов назад
Android
Проверенные временем стандартные подходы, которые применяются нами ежедневно и повсеместно, даже такие привычные как запуск тестов через Gradle, могут оказаться крайне не оптимальными в вашем конкретном сценарии. Стоит критически относиться к производительности сборок и тестов, так как они занимают значительную часть времени для поставки приложения в продакшн. Федотов Михаил, технический лидер по Android-разработке в Альфа-Банке, говорит про performance (ускорение) unit-тестов. • kotlinx.fuzz: почему фаззинг имеет значение • Kotlin Android...
17 часов назад
iOS
Начиная с 28 апреля 2026 года Apple потребует Xcode 26 для отправки приложений в App Store. Например, Приложения для iOS и iPadOS должны быть собраны с использованием iOS 26 и iPadOS 26 SDK или более поздней версии. • Открыт новый Swift Student Challenge • HealthQL — SQL для HealthKit • Apple будет требовать Xcode 26 для выпуска приложений с мая • Profile page как в TikTok/Instagram на UIKit (iOS 15+) • Add an Open Recent Menu to a SwiftUI app...
17 часов назад
MVVM+Coordinator+Factory: Святая Троица внедрения зависимостей
Эта статья - финальный аккорд в нашей трилогии об архитектуре. Мы уже научились наводить порядок внутри экрана с помощью MVVM и управлять потоками переходов через Coordinator. Но остался один неудобный вопрос: кто создаст все эти зависимости? Если ваш Координатор превратился в свалку из десятка сервисов, которые он просто пробрасывает дальше, значит, пришло время внедрить Factory...
1 день назад
Kotlin Symbol Processing: создаём свой процессор
Dagger/Hilt генерирует DI‑классы, Room генерирует DAO и сущности, Moshi генерирует JSON и т.д. Это экономит тонны времени. Но долгие годы для Kotlin‑проектов приходилось использовать KAPT — Kotlin Annotation Processing, прослойку для совместимости с Java‑аннотациями. KAPT работал, но имел свои минусы. Он генерирует Java‑стабы из Kotlin‑кода и прогоняет стандартный Java Annotation Processor. Эта махинация замедляет компиляцию: сначала компилятор Kotlin должен переварить ваши исходники в промежуточные Java‑классы, потом снова всё это компилировать...
1 день назад
Ахиллесова пята SharedPreferences и стоит ли внедрять Datastore как альтернативу
В этой статье я расскажу то, о чём не спрашивают на собесeдованиях и не рассказывают на курсах по Android-разработке — о неявной особенности Android, которая влияет на деградацию производительности и приводит к невоспроизводимым ANR в вашем приложении. Поделюсь исследованием производительности SharedPreferences, расскажу...
1 день назад
HealthQL - SQL для HealthKit
HealthQL - язык запросов, похожий на SQL, для Apple HealthKit. Запрашивайте данные о своем здоровье, используя привычный синтаксис SQL или типобезопасный DSL Swift. SELECT avg(value), min(value), max(value) FROM heart_rate WHERE date > today() - 7d GROUP BY day Фичи: • Синтаксис, похожий на SQL — Запрашивайте HealthKit с помощью привычных операторов SELECT, FROM, WHERE, GROUP BY, ORDER BY, LIMIT • Типобезопасный Swift DSL — Гибкий API для программного построения запросов • Поддержка React Native/Expo...
1 день назад
Обратное уменьшение зависаний
По традиции - новый еженедельный дайджест. В этом выпуске модульная архитектура и уменьшение зависаний, переходы между общими элементами и продажа рефакторинга, слежка за акулами, жестокая реальность App Store, придуманные ГОСТы ChatGPT и многое другое...
1 день назад