? Сегодня я хочу разобрать инструмент, который мы все используем десятки раз в день, но часто по-прежнему воспринимаем как «черный ящик». Без этого мы бы до сих пор собирали проекты вручную, писали бы скрипты Bash для каждой команды и каждой машины, и боролись бы со старой проблемой, когда проект собирается у одного разработчика, но не собирается у другого. Gradle предоставляет нам единый источник...
AppTractor
Аннотации в Kotlin: от @Deprecated до своего KSP-процессора
Аннотации легко воспринимать как декоративную часть языка. Поставили @Deprecated, добавили @Suppress, пометили DTO через @JsonClass - и пошли дальше. Но в большом Android-проекте аннотации быстро перестают быть просто подсказками для IDE. Они становятся контрактом между кодом и инструментами: компилятором, статическим анализатором, генератором кода, DI-фреймворком, сериализатором или внутренней платформенной инфраструктурой. В этой...
System Design: как бы вы отправили 1 миллион уведомлений
? Чёрная пятница. Маркетинговая команда подготовила рекламную кампанию. Ровно в полночь она хочет отправить уведомления одному миллиону пользователей. Задача кажется простой. Пока вы не понимаете, что мгновенная отправка миллиона уведомлений может перегрузить серверы приложения, поставщиков уведомлений, базы данных и даже внешние API. Большинство инженеров сразу скажут: Используйте Kafka. Это хорошая отправная точка. Но что произойдёт, если: • потребители Kafka не будут успевать обрабатывать сообщения;...
🕐 По данным RevenueCat, около 88% платящих пользователей, которые сделали покупки за последние 90 дней, уже используют iOS 26
На iOS 18 приходится ещё 9,4% активных подписчиков и 9,6% выручки, а 85% новых покупок совершается на iOS 26. Поэтому переход на новую минимальную версию может заметно упростить разработку: один дизайн на Liquid Glass, меньше проверок совместимости и быстрее выпуск новых функций. Но универсального правила здесь нет. Отказ от старых версий закрывает приложение не только для существующих пользователей старых устройств, но и для всех будущих покупателей с такими устройствами. Однако для небольшого приложения, активно использующего API iOS 26, ускорение разработки может оказаться важнее нескольких процентов аудитории...
🚶♂️ Android
Android Studio Quail 2 теперь стабильна и готова к использованию в продакшене, предлагая вашему IDE переход к параллельным агентным рабочим процессам, встроенному профилированию утечек памяти и контекстно-зависимому устранению сбоев. Независимо от того, проводите ли вы масштабную архитектурную переработку, отслеживаете утечку памяти или устраняете критический сбой в продакшене, Android Studio позволяет вам оставаться в рабочем пространстве, сокращая ручные операции. • Mirage: как Cloudy превращается из библиотеки размытия в библиотеку...
iOS
В новой статье ребята из inDrive.Tech показывают, как они автоматизировали анализ данных из Xcode Organizer и сильно сократили время реакции на деградации производительности после релиза. Собрали в одном месте все ключевые нативные метрики от Apple — от launch time и hang rate до memory, CPU, battery usage и app size — и превратили их в рабочую систему мониторинга с графиками, дашбордами, алертами в Slack и автосозданием задач в Jira. В статье подробно разбирают весь пайплайн: как забирать данные из App Store Connect API, как хранить и анализировать их в Elasticsearch, как отслеживать регрессии и как повторить такой setup у себя...
