Kick: Kotlin Inspection & Control Kit — единый модульный инструмент отладки прямо в приложении
При разработке и тестировании приложений порой требуется заглянуть под капот - проанализировать HTTP-трафик или проверить кэш данных в базе данных. Ранее для этих целей мы использовали Inspektify и Delight SQL Viewer. Но в какой-то момент нам понадобился еще и удобный доступ к логам приложения и тащить ещё одно отдельное решение не хотелось. Был нужен один инструмент, который объединит всё самое необходимое в одном месте. Так появился Kick — расширяемый модульный набор инструментов, позволяющий разработчикам и тестировщикам легко инспектировать приложение.
Статья: https://habr.com/ru/articles/932992/
Платформа: разработка
При разработке и тестировании приложений порой требуется заглянуть под капот - проанализировать HTTP-трафик или проверить кэш данных в базе данных. Ранее для этих целей мы использовали Inspektify и Delight SQL Viewer. Но в какой-то момент нам понадобился еще и удобный доступ к логам приложения и тащить ещё одно отдельное решение не хотелось. Был нужен один инструмент, который объединит всё самое необходимое в одном месте. Так появился Kick — расширяемый модульный набор инструментов, позволяющий разработчикам и тестировщикам легко инспектировать приложение.
Статья: https://habr.com/ru/articles/932992/
Платформа: разработка
👍1
Я сделал $100K на iOS-приложении. Apple забрала 30%. Остальное ушло на исправление ошибок и выгорание.
100 тысяч долларов дохода от приложения — это звучит заманчиво в твите.
Но в реальной жизни это означает бессонные ночи, постоянную поддержку и непредвиденные расходы. Это означает баланс между ростом и психологическим здоровьем и умением говорить «нет» — даже собственным идеям новых функций.
Я рад, что сделал это. Но я бы не назвал это лёгкими деньгами.
Если вы планируете запустить что-то самостоятельно, убедитесь, что вы готовы не только разрабатывать, но и поддерживать, чинить, общаться с пользователями и улучшать.
Вот это и есть настоящая работа. И вот где настоящие затраты.
Статья: https://apptractor.ru/info/articles/ya-sdelal-100k-na-ios-prilozhenii-apple-zabrala-30-ostalnoe-ushlo-na-ispravlenie-oshibok-i-vygoranie.html
Платформа: инди-разработка
100 тысяч долларов дохода от приложения — это звучит заманчиво в твите.
Но в реальной жизни это означает бессонные ночи, постоянную поддержку и непредвиденные расходы. Это означает баланс между ростом и психологическим здоровьем и умением говорить «нет» — даже собственным идеям новых функций.
Я рад, что сделал это. Но я бы не назвал это лёгкими деньгами.
Если вы планируете запустить что-то самостоятельно, убедитесь, что вы готовы не только разрабатывать, но и поддерживать, чинить, общаться с пользователями и улучшать.
Вот это и есть настоящая работа. И вот где настоящие затраты.
Статья: https://apptractor.ru/info/articles/ya-sdelal-100k-na-ios-prilozhenii-apple-zabrala-30-ostalnoe-ushlo-na-ispravlenie-oshibok-i-vygoranie.html
Платформа: инди-разработка
👍1
PotentCodables - мощный набор реализаций и расширений для Codable
PotentCodables предоставляет стандартные энкодеры и декодеры для фреймворка Swift
Фреймворк призван решить четыре основные проблемы, связанные с системой Swift
• Разрешить декодирование и/или кодирование значений неизвестной структуры (например, любого закодированного значения)
• Поддержка кодирования/декодирования полиморфных типов с сохранением возможности реализации
• Снижение сложности и объёма кода, необходимого для реализации и тестирования новых форматов сериализации
• Предоставить библиотеку полнофункциональных реализаций популярных форматов сериализации
PotentCodables на GitHub: https://github.com/outfoxx/PotentCodables
Платформа: iOS
⭐️: 77
PotentCodables предоставляет стандартные энкодеры и декодеры для фреймворка Swift
Codable. Кроме того, все кодировщики и декодировщики предоставляют расширенные возможности для упрощения и повышения эффективности работы с форматами данных.Фреймворк призван решить четыре основные проблемы, связанные с системой Swift
Codable:• Разрешить декодирование и/или кодирование значений неизвестной структуры (например, любого закодированного значения)
• Поддержка кодирования/декодирования полиморфных типов с сохранением возможности реализации
Codable в Swift• Снижение сложности и объёма кода, необходимого для реализации и тестирования новых форматов сериализации
• Предоставить библиотеку полнофункциональных реализаций популярных форматов сериализации
PotentCodables на GitHub: https://github.com/outfoxx/PotentCodables
Платформа: iOS
⭐️: 77
👍2
Избегайте ошибок SwiftUI с ViewModel
Когда я впервые перешёл с UIKit на SwiftUI, одной из самых неприятных ошибок, с которыми я столкнулся, была следующая:
Моя ViewModel постоянно неожиданно ресетилась.
Казалось, это происходит случайно, пока я не понял разницу между
Статья: https://apptractor.ru/info/articles/izbegayte-oshibok-swiftui-s-viewmodel.html
Платформа: iOS
Когда я впервые перешёл с UIKit на SwiftUI, одной из самых неприятных ошибок, с которыми я столкнулся, была следующая:
Моя ViewModel постоянно неожиданно ресетилась.
Казалось, это происходит случайно, пока я не понял разницу между
@StateObject и @ObservedObject.Статья: https://apptractor.ru/info/articles/izbegayte-oshibok-swiftui-s-viewmodel.html
Платформа: iOS
👍2
React Native + RxDB: как сделать Local-First приложение, которое не сдохнет без связи
Представьте: вы создали приложение, которое работает ровно тогда, когда у пользователя есть интернет. Нет интернета? Поздравляю, у вас мёртвое приложение и куча недовольных пользователей. Ну или курьер, который стоит как дурак и не может выполнять свою работу, потому что приложение зависло. Бизнес стоит, а вы сидите и ждёте, что всё само решится (нет).
Если хотите перестать выглядеть полными профанами и дать юзерам что-то, что не падает при первом же обрыве связи — welcome to local-first apps. Здесь всё про то, чтобы сделать локальную базу, а синхронизация — это такая себе приятная бонусная функция, а не священный грааль.
Статья: https://habr.com/ru/articles/935798/
Платформа: кроссплатформа
Представьте: вы создали приложение, которое работает ровно тогда, когда у пользователя есть интернет. Нет интернета? Поздравляю, у вас мёртвое приложение и куча недовольных пользователей. Ну или курьер, который стоит как дурак и не может выполнять свою работу, потому что приложение зависло. Бизнес стоит, а вы сидите и ждёте, что всё само решится (нет).
Если хотите перестать выглядеть полными профанами и дать юзерам что-то, что не падает при первом же обрыве связи — welcome to local-first apps. Здесь всё про то, чтобы сделать локальную базу, а синхронизация — это такая себе приятная бонусная функция, а не священный грааль.
Статья: https://habr.com/ru/articles/935798/
Платформа: кроссплатформа
Хабр
React Native + RxDB: как сделать Local-First приложение, которое не сдохнет без связи
Представьте: вы создали приложение, которое работает ровно тогда, когда у пользователя есть интернет. Нет интернета? Поздравляю, у вас мёртвое приложение и куча недовольных пользователей. Ну или...
Proxy-паттерн в Android
Как Android-разработчики, мы постоянно сталкиваемся со сложными в обработке объектами. Представьте себе загрузку огромного изображения высокого разрешения — это медленно и потребляет много памяти. Или как насчёт функции, которая должна быть доступна только премиум-пользователям? Вам нужен способ проверки прав доступа перед запуском кода.
В таких ситуациях вам нужно добавить уровень косвенности. Вам нужен заменитель, суррогат, который будет управлять реальным объектом за вас. Именно это и обеспечивает шаблон проектирования Proxy.
Статья: https://trricho.medium.com/the-proxy-pattern-in-kotlin-androids-smart-placeholder-b94b7d22b27f (как читать ©)
Платформа: Android
Как Android-разработчики, мы постоянно сталкиваемся со сложными в обработке объектами. Представьте себе загрузку огромного изображения высокого разрешения — это медленно и потребляет много памяти. Или как насчёт функции, которая должна быть доступна только премиум-пользователям? Вам нужен способ проверки прав доступа перед запуском кода.
В таких ситуациях вам нужно добавить уровень косвенности. Вам нужен заменитель, суррогат, который будет управлять реальным объектом за вас. Именно это и обеспечивает шаблон проектирования Proxy.
Статья: https://trricho.medium.com/the-proxy-pattern-in-kotlin-androids-smart-placeholder-b94b7d22b27f (как читать ©)
Платформа: Android
Лучший способ создания компонентов SwiftUI: @ViewConfigurable
SwiftUI делает настройку представлений лёгкой — пока вы не создадите собственные повторно используемые компоненты. Мы создали макрос для решения этой проблемы.
Статья: https://apptractor.ru/info/articles/viewconfigurable.html
Платформа: iOS
SwiftUI делает настройку представлений лёгкой — пока вы не создадите собственные повторно используемые компоненты. Мы создали макрос для решения этой проблемы.
Статья: https://apptractor.ru/info/articles/viewconfigurable.html
Платформа: iOS
Scrcpy-GUI - графический интерфейс для Scrcpy
Scrcpy-GUI — это понятный графический пользовательский интерфейс, созданный на основе .NET MAUI, для взаимодействия со scrcpy. Scrcpy — это утилита командной строки, позволяющая транслировать и управлять Android-устройством на ПК.
С Scrcpy-GUI вы можете:
• Легко генерировать сложные аргументы командной строки scrcpy, не тратя время на изучение официальной документации.
• Получить полный контроль над виртуальными дисплеями, включая возможность запускать приложения.
• Сохранять и управлять сочетаниями клавиш для ваших любимых команд с возможностью локальной загрузки их на ПК.
• Подключаться устройства по беспроводной сети одним щелчком мыши — без лишних хлопот.
• Транслировать видео с нескольких устройств Android одновременно без лишних усилий.
Scrcpy-GUI на GitHub: https://github.com/GeorgeEnglezos/Scrcpy-GUI
Платформа: Android
⭐️: 156
Scrcpy-GUI — это понятный графический пользовательский интерфейс, созданный на основе .NET MAUI, для взаимодействия со scrcpy. Scrcpy — это утилита командной строки, позволяющая транслировать и управлять Android-устройством на ПК.
С Scrcpy-GUI вы можете:
• Легко генерировать сложные аргументы командной строки scrcpy, не тратя время на изучение официальной документации.
• Получить полный контроль над виртуальными дисплеями, включая возможность запускать приложения.
• Сохранять и управлять сочетаниями клавиш для ваших любимых команд с возможностью локальной загрузки их на ПК.
• Подключаться устройства по беспроводной сети одним щелчком мыши — без лишних хлопот.
• Транслировать видео с нескольких устройств Android одновременно без лишних усилий.
Scrcpy-GUI на GitHub: https://github.com/GeorgeEnglezos/Scrcpy-GUI
Платформа: Android
⭐️: 156
BroadcastReceiver уходит. Что ждёт нас в 2025 году?
BroadcastReceiver долгое время был неотъемлемой частью Android для обработки событий и фоновых задач, но сегодня становится всё менее актуальным. Современные ограничения Android — режим Doze, новые требования к безопасности и оптимизация батареи — делают BroadcastReceiver ненадёжным инструментом для обычных фоновых задач: события перестают приходить, синхронизация срабатывает не у всех пользователей, а поддержку приходится постоянно дорабатывать после каждого обновления ОС.
Вместо «уставшего» BroadcastReceiver стоит использовать WorkManager для надежных, периодических фоновых операций — он устойчив к Doze, оптимизирует заряд, не теряет задачи после перезагрузки и работает на всех актуальных версиях Android. Для долговременных, заметных пользователю процессов лучше подойдет ForegroundService, для внутренних событий — SharedFlow или EventBus, а для push-уведомлений — FCM. Новая эпоха Android требует выбирать инструмент под задачу, а не надеяться на универсальность старых решений.
Статья: https://medium.com/@vaibhav.shakya786/broadcastreceiver-is-tired-heres-what-s-next-in-2025-0f047589aeb5
Платформа: Android
BroadcastReceiver долгое время был неотъемлемой частью Android для обработки событий и фоновых задач, но сегодня становится всё менее актуальным. Современные ограничения Android — режим Doze, новые требования к безопасности и оптимизация батареи — делают BroadcastReceiver ненадёжным инструментом для обычных фоновых задач: события перестают приходить, синхронизация срабатывает не у всех пользователей, а поддержку приходится постоянно дорабатывать после каждого обновления ОС.
Вместо «уставшего» BroadcastReceiver стоит использовать WorkManager для надежных, периодических фоновых операций — он устойчив к Doze, оптимизирует заряд, не теряет задачи после перезагрузки и работает на всех актуальных версиях Android. Для долговременных, заметных пользователю процессов лучше подойдет ForegroundService, для внутренних событий — SharedFlow или EventBus, а для push-уведомлений — FCM. Новая эпоха Android требует выбирать инструмент под задачу, а не надеяться на универсальность старых решений.
Статья: https://medium.com/@vaibhav.shakya786/broadcastreceiver-is-tired-heres-what-s-next-in-2025-0f047589aeb5
Платформа: Android
🤡1
Снепшот-тестирование в iOS: полное руководство для UIKit и SwiftUI
В мире iOS-разработки визуальные ошибки могут легко проскользнуть мимо обычных unit-тестов, особенно если проект поддерживает как UIKit, так и SwiftUI. Snapshot-тестирование — это мощный инструмент, который автоматически фиксирует и сравнивает внешний вид ваших компонентов во всех состояниях и на всех устройствах. Такой подход помогает мгновенно выявлять регрессии — например, «исчезнувшую» кнопку на iPad или некорректное отображение текста в тёмной теме — ещё на стадии CI/CD, прежде чем баги попадут к пользователям.
Грамотно организованные snapshot-тесты позволяют проверять UI-компоненты с разными параметрами и средами, а интеграция с инструментами, вроде ViewInspector в SwiftUI, делает проверку более гибкой и надёжной. Благодаря автоматическим тестам и удобному хранению эталонных изображений команда может оперативно реагировать на изменения, согласовывать внешний вид с дизайнерами и поддерживать качество приложения на высоте. В 2025 году snapshot-тестирование становится стандартом для визуального контроля и причиной, по которой пользователи видят только корректно работающий, красивый интерфейс.
Статья: https://swift-pal.com/ios-snapshot-testing-complete-guide-for-uikit-and-swiftui-apps-817af4136896 (как читать ©)
Платформа: iOS
В мире iOS-разработки визуальные ошибки могут легко проскользнуть мимо обычных unit-тестов, особенно если проект поддерживает как UIKit, так и SwiftUI. Snapshot-тестирование — это мощный инструмент, который автоматически фиксирует и сравнивает внешний вид ваших компонентов во всех состояниях и на всех устройствах. Такой подход помогает мгновенно выявлять регрессии — например, «исчезнувшую» кнопку на iPad или некорректное отображение текста в тёмной теме — ещё на стадии CI/CD, прежде чем баги попадут к пользователям.
Грамотно организованные snapshot-тесты позволяют проверять UI-компоненты с разными параметрами и средами, а интеграция с инструментами, вроде ViewInspector в SwiftUI, делает проверку более гибкой и надёжной. Благодаря автоматическим тестам и удобному хранению эталонных изображений команда может оперативно реагировать на изменения, согласовывать внешний вид с дизайнерами и поддерживать качество приложения на высоте. В 2025 году snapshot-тестирование становится стандартом для визуального контроля и причиной, по которой пользователи видят только корректно работающий, красивый интерфейс.
Статья: https://swift-pal.com/ios-snapshot-testing-complete-guide-for-uikit-and-swiftui-apps-817af4136896 (как читать ©)
Платформа: iOS
Создание тепловой карты пульса на маршруте с помощью SwiftUI + HealthKit
Большинство беговых приложений показывают среднюю частоту пульса. «Молодец, пульс был 148 ударов в минуту». Отлично. Но где во время пробежки у вас начались проблемы? Где ваше тело было перегружено?
Вот о чём этот пост: как превратить плоскую статистику в полноцветное повествование. Мы создаём тепловую карту на базе MapKit, используя данные пульса HealthKit, и синхронизируем их с вашим GPS-маршрутом, чтобы точно показать, где вы отдыхали (синий), а где были на грани потери сознания (красным).
Статья: https://apptractor.ru/info/articles/sozdanie-teplovoy-karty-pulsa-na-marshrute-s-pomoschyu-swiftui-healthkit.html
Платформа: iOS
Большинство беговых приложений показывают среднюю частоту пульса. «Молодец, пульс был 148 ударов в минуту». Отлично. Но где во время пробежки у вас начались проблемы? Где ваше тело было перегружено?
Вот о чём этот пост: как превратить плоскую статистику в полноцветное повествование. Мы создаём тепловую карту на базе MapKit, используя данные пульса HealthKit, и синхронизируем их с вашим GPS-маршрутом, чтобы точно показать, где вы отдыхали (синий), а где были на грани потери сознания (красным).
Статья: https://apptractor.ru/info/articles/sozdanie-teplovoy-karty-pulsa-na-marshrute-s-pomoschyu-swiftui-healthkit.html
Платформа: iOS
❤1
TAO Bubbles: элегантные и настраиваемые подсказки для ваших Jetpack Compose приложений
Каждый Android-разработчик сталкивается с задачей обучения пользователей новым функциям или помощи в навигации по интерфейсу. Традиционные всплывающие окна или сообщения могут быть навязчивыми. Конечно же есть способ элегантно подсвечивать элементы UI и предоставлять контекстную помощь. Встречайте TAO Bubbles – легковесную библиотеку для Jetpack Compose, созданную для отображения настраиваемых "пузырей", "подсказок" или "тултипов", которые могут указывать на конкретные UI-компоненты.TAO Bubbles прекрасно подходит для создания пошаговых руководств, демонстрации новых возможностей или предоставления контекстно-зависимой справки прямо в вашем приложении.
Статья: https://habr.com/ru/articles/936122/
Платформа: Android
Каждый Android-разработчик сталкивается с задачей обучения пользователей новым функциям или помощи в навигации по интерфейсу. Традиционные всплывающие окна или сообщения могут быть навязчивыми. Конечно же есть способ элегантно подсвечивать элементы UI и предоставлять контекстную помощь. Встречайте TAO Bubbles – легковесную библиотеку для Jetpack Compose, созданную для отображения настраиваемых "пузырей", "подсказок" или "тултипов", которые могут указывать на конкретные UI-компоненты.TAO Bubbles прекрасно подходит для создания пошаговых руководств, демонстрации новых возможностей или предоставления контекстно-зависимой справки прямо в вашем приложении.
Статья: https://habr.com/ru/articles/936122/
Платформа: Android
SwiftyRemoteConfig - простая работа с Firebase Remote Config
SwiftyRemoteConfig делает Firebase Remote Config приятным в использовании, сочетая выразительный API Swift с преимуществами статической типизации.
SwiftyRemoteConfig на GitHub: https://github.com/fumito-ito/SwiftyRemoteConfig
Платформа: iOS
⭐️: 17
SwiftyRemoteConfig делает Firebase Remote Config приятным в использовании, сочетая выразительный API Swift с преимуществами статической типизации.
SwiftyRemoteConfig на GitHub: https://github.com/fumito-ito/SwiftyRemoteConfig
Платформа: iOS
⭐️: 17
Взлом приложения Tea: разбираем нелепый исходный код
Этого «взлома» не должно было быть. Приложение Tea — не результат работы плохого ИИ, а вопиющая халатность разработчика, вероятно, одного, с очень небольшим опытом, которому нельзя было позволять публиковать такое приложение без надзора. Приложение не было «взломано», оно добровольно опубликовало конфиденциальную персональную информацию.
Статья: https://apptractor.ru/info/articles/vzlom-tea.html
Платформа: Android/безопасность
Этого «взлома» не должно было быть. Приложение Tea — не результат работы плохого ИИ, а вопиющая халатность разработчика, вероятно, одного, с очень небольшим опытом, которому нельзя было позволять публиковать такое приложение без надзора. Приложение не было «взломано», оно добровольно опубликовало конфиденциальную персональную информацию.
Статья: https://apptractor.ru/info/articles/vzlom-tea.html
Платформа: Android/безопасность
👍1👎1
Что нового в UIKit
В этой гигантской статье представлен почти полный обзор новых возможностей, которые получили разработчики — от визуальных эффектов Liquid Glass до новых API для работы с цветами, углами и меню.
Самое интересное:
• Liquid Glass — теперь UIKit даёт больше инструментов для создания “стеклянных” и прозрачных интерфейсов с помощью
• Работа с цветом: HDR-цвета, новые инициализаторы, свойство
• Новые возможности для
• Углы и формы:
• Кнопки в панелях: теперь есть группировка, бэйджи, опция делить фон между кнопками или скрывать Liquid Glass на отдельных кнопках, новый стиль
• Контекстные и главные меню: UIKit теперь умеет собирать меню из элементов по фокусу, а новый
• Обработка скролла:
• Работа с навигацией: Большое обновление
Меньшие, но приятные нововведения:
• Deprecation методов
• Новый API для
• Новые возможности для
• Изменения в
• Табличные и групповые элементы меню с поведением Repeat (повторяемые действия для горячих клавиш).
• Новые возможности создания сцен для Assistive Access.
Этот UIKit — шаг в сторону большего визуального богатства, глубокой кастомизации и гибкости не только для iOS, но и для iPad, tvOS, visionOS. Если вы ещё не пробовали стеклянные эффекты, настраиваемые углы, или не обновили свои панели навигации — самое время открыть Xcode и поэкспериментировать!
Статья: https://sebvidal.com/blog/whats-new-in-uikit-26/
Платформа: iOS
В этой гигантской статье представлен почти полный обзор новых возможностей, которые получили разработчики — от визуальных эффектов Liquid Glass до новых API для работы с цветами, углами и меню.
Самое интересное:
• Liquid Glass — теперь UIKit даёт больше инструментов для создания “стеклянных” и прозрачных интерфейсов с помощью
UIGlassEffect, настройкой интерактивности, собственного цвета и новых кнопочных конфигураций.• Работа с цветом: HDR-цвета, новые инициализаторы, свойство
linearExposure и даже добавленные слайдеры HDR Boost в цветовых пикерах.• Новые возможности для
UIButton: добавлены стеклянные конфигурации, появилась удобная настройка переходов для символов (UISymbolContentTransition).• Углы и формы:
UICornerConfiguration и UICornerRadius позволяют настраивать радиусы каждого угла, делать капсулы и даже адаптировать углы к форме экрана.• Кнопки в панелях: теперь есть группировка, бэйджи, опция делить фон между кнопками или скрывать Liquid Glass на отдельных кнопках, новый стиль
prominent, и поддержка Writing Tools в системных кнопках.• Контекстные и главные меню: UIKit теперь умеет собирать меню из элементов по фокусу, а новый
UIMainMenuSystem позволяет гибко управлять главным меню на iPad — удалять группы, подменять элементы или настраивать стиль Find и Replace прямо через конфиги.• Обработка скролла:
UIScrollEdgeEffect и UIScrollEdgeElementContainerInteraction дают доступ к новым визуальным эффектам на краях скроллов, которые раньше были доступны только системным навбарам и тулбарам.• Работа с навигацией: Большое обновление
UINavigationBarAppearance (появились subtitleTextAttributes и largeSubtitleTextAttributes), интерактивное возвращение с любого края экрана и новые свойства для мелких деталей.Меньшие, но приятные нововведения:
• Deprecation методов
UIApplicationDelegate в пользу UISceneDelegate и UIWindowSceneDelegate.• Новый API для
UIDocumentBrowserAction, добавлена настройка показа изображения только для контекстного меню vs. навбара.• Новые возможности для
UIScrollView: Look to Scroll (прокрутка взглядом в visionOS), новые параметры edgeEffect.• Изменения в
UIModalPresentationStyle (formSheet теперь и на tvOS).• Табличные и групповые элементы меню с поведением Repeat (повторяемые действия для горячих клавиш).
• Новые возможности создания сцен для Assistive Access.
Этот UIKit — шаг в сторону большего визуального богатства, глубокой кастомизации и гибкости не только для iOS, но и для iPad, tvOS, visionOS. Если вы ещё не пробовали стеклянные эффекты, настраиваемые углы, или не обновили свои панели навигации — самое время открыть Xcode и поэкспериментировать!
Статья: https://sebvidal.com/blog/whats-new-in-uikit-26/
Платформа: iOS
Jetpack Compose 1.9: главное из свежего релиза
В августе 2025 у Jetpack Compose вышло обновление 1.9 — и это достойный апдейт для всех, кто разрабатывает UI на Android! Кратко делюсь основными новшествами и фишками, которые теперь доступны разработчикам.
Основные обновления:
• Модификаторы dropShadow и innerShadow
Теперь можно просто добавлять красивые тени к любым компонентам.
• 2D scroll и Scrollable2D
Наконец-то поддерживается двухмерная прокрутка — идеально для реализации таблиц, масштабируемых изображений или любых интерактивных областей, которые нужно перемещать по осям X и Y одновременно. Nested scroll тоже поддерживается!
• Новые методы для контроля видимости
Появились
• Расширенные текстовые трансформации
В
• Lazy Layout и scroll performance
Все блоки
Важные улучшения для разработчиков:
• Более информативные stack traces
Новая экспериментальная API делает локацию крэша понятной — увидите не только свой код, но и имена composable-компонентов прямо в трассировке (включать стоит только для debug).
• Новая библиотека аннотаций
Jetpack Compose продолжает быстро эволюционировать: новые визуальные эффекты, гибкая кастомизация, ускорение списка, расширенные возможности для адаптивных UI — всё это уже в стабильной версии. Оцените dropShadow, поиграйте с двухмерным скроллом или попробуйте новые возможности форматирования текста — впечатления точно будут!
Статья: https://android-developers.googleblog.com/2025/08/whats-new-in-jetpack-compose-august-25-release.html
Платформа: Android
В августе 2025 у Jetpack Compose вышло обновление 1.9 — и это достойный апдейт для всех, кто разрабатывает UI на Android! Кратко делюсь основными новшествами и фишками, которые теперь доступны разработчикам.
Основные обновления:
• Модификаторы dropShadow и innerShadow
Теперь можно просто добавлять красивые тени к любым компонентам.
dropShadow() рисует тень позади элемента, а innerShadow() — “впадину” внутри формы. Настраивается радиус, цвет, прозрачность и spread, что даёт простор для экспериментов со сложным визуальным слоем.• 2D scroll и Scrollable2D
Наконец-то поддерживается двухмерная прокрутка — идеально для реализации таблиц, масштабируемых изображений или любых интерактивных областей, которые нужно перемещать по осям X и Y одновременно. Nested scroll тоже поддерживается!
• Новые методы для контроля видимости
Появились
onVisibilityChanged и onFirstVisible: теперь можно запускать действия, когда элементы появляются на экране (например, автоматически включать видео или логировать показы). Можно задавать минимальную долю видимости или время до срабатывания.• Расширенные текстовые трансформации
В
BasicTextField теперь можно применять стили к тексту прямо в трансформации вывода — например, выделять цветом отдельные символы (полезно для форматирования телефонов, банковских карт и пр.).• Lazy Layout и scroll performance
Все блоки
LazyLayout стали стабильными, а прокрутка и префетчинг (LazyLayoutCacheWindow) заметно ускорены — теперь сами списки и grid работают быстрее, с возможностью кастомизации предзагрузки элементов.Важные улучшения для разработчиков:
• Более информативные stack traces
Новая экспериментальная API делает локацию крэша понятной — увидите не только свой код, но и имена composable-компонентов прямо в трассировке (включать стоит только для debug).
• Новая библиотека аннотаций
@Stable, @Immutable и @StableMarker теперь доступны как runtime-аннотации — удобно, когда хочется использовать эти метки без зависимости от Compose runtime.Jetpack Compose продолжает быстро эволюционировать: новые визуальные эффекты, гибкая кастомизация, ускорение списка, расширенные возможности для адаптивных UI — всё это уже в стабильной версии. Оцените dropShadow, поиграйте с двухмерным скроллом или попробуйте новые возможности форматирования текста — впечатления точно будут!
Статья: https://android-developers.googleblog.com/2025/08/whats-new-in-jetpack-compose-august-25-release.html
Платформа: Android
XCalendar - клон Google Calendar на Compose Multiplatform
XCalendar - современное кроссплатформенное приложение-календарь, созданное с использованием Kotlin Multiplatform и Compose Multiplatform, с поддержкой нескольких представлений календаря (день, неделя, месяц и т.п.), управлением событиями и интеграцией праздников.
Архитектура: Compose Multiplatform (Jetpack Compose), Kotlin Multiplatform, Room Database с SQLite, Koin, Ktor, Kotlin Flow + StateFlow, Compose Navigation, Gradle с Kotlin DSL.
XCalendar на GitHub: https://github.com/Debanshu777/XCalendar
Платформа: Android
⭐️: 35
XCalendar - современное кроссплатформенное приложение-календарь, созданное с использованием Kotlin Multiplatform и Compose Multiplatform, с поддержкой нескольких представлений календаря (день, неделя, месяц и т.п.), управлением событиями и интеграцией праздников.
Архитектура: Compose Multiplatform (Jetpack Compose), Kotlin Multiplatform, Room Database с SQLite, Koin, Ktor, Kotlin Flow + StateFlow, Compose Navigation, Gradle с Kotlin DSL.
XCalendar на GitHub: https://github.com/Debanshu777/XCalendar
Платформа: Android
⭐️: 35
•
(iOS Ru) Расширяем iOS-разработку с помощью AI•
(iOS En) New Toolbar APIs in iOS 26•
(iOS En) SwiftUI Circular Wheel Picker (This is ScrollView!) - Custom Picker•
(iOS En) User OnBoarding Tutorial Animations Using SwiftUI•
(And Ru) Жертва IT-школы, или как вас не научат ничему за большие деньги•
(And En) Advanced shared elements with shape morphing•
(And En) Autofill in Compose•
(And En) Models & Mappers With Presentation/Domain/Data - In-Depth Guide•
(And En) 47 Refactorings in 45 minutes•
(And En) Building immersive VR apps for Meta Quest with Jetpack Compose •
(And En) Context-sensitive resolution•
(And En) The story of Gradle•
(Crs Ru) Будущее Flutter, тушение пожаров и Flutter Dev Podcast•
(Crs En) One Codebase, Three Platforms: X's Experience with Kotlin Multiplatform•
(Crs En) Flutter framework code review: BuildContext & Element•
(Dev Ru) Разработка на iOS и KMP, и жизнь на полной скорости•
(Dev Ru) Как цифровая доступность улучшит ваш продукт и, возможно, вас•
(Dev Ru) Что хочет CPO: как выжить разработчику в продуктовой команде•
(Dev Ru) Можно ли доверять AI?•
(Dev En) Kickstarting AI Agent Development in Kotlin With Koog•
(Dev En) DevSecOps Course for Beginners – API Security•
(Mrk Ru) ASO прила летит в космос. Х22 за месяц. От 0 до 3000$ MRRПрошлогодние видео:
•
(And Ru) ByteWeaver. Инструментирование байт-кода во имя великого блага•
(Crs Ru) Почему вам не нужен Kotlin Multiplatform•
(Crs Ru) Создание indoor-карты здания во Flutter•
(Dev Ru) 30 вопросов команде и себе — техника и практика формулировка хороших вопросов•
(Dev Ru) Как пользоваться DivKitPlease open Telegram to view this post
VIEW IN TELEGRAM
Заменит ли WSA эмулятор Android Studio?
Встроенный в Android Studio эмулятор позволяет создавать resizable эмулятор. Но пользоваться им мне показалось не очень удобным. Кроме того, если вы страдаете от нехватки ОЗУ, пользоваться встроенным эмулятором становиться трудно. В моём случае имеем машину с 8 Гб оперативной памяти на борту, и работа эмулятора сопровождается постоянными фризами и зависаниями.
Однако недавно я нашёл решение — Windows Subsystem For Android (WSA). И несмотря на то, что поддержка проекта совсем скоро прекращается, всё работает довольно стабильно.
Статья: https://habr.com/ru/articles/937310/
Платформа: Android
Встроенный в Android Studio эмулятор позволяет создавать resizable эмулятор. Но пользоваться им мне показалось не очень удобным. Кроме того, если вы страдаете от нехватки ОЗУ, пользоваться встроенным эмулятором становиться трудно. В моём случае имеем машину с 8 Гб оперативной памяти на борту, и работа эмулятора сопровождается постоянными фризами и зависаниями.
Однако недавно я нашёл решение — Windows Subsystem For Android (WSA). И несмотря на то, что поддержка проекта совсем скоро прекращается, всё работает довольно стабильно.
Статья: https://habr.com/ru/articles/937310/
Платформа: Android
Quick RSS - приложение для чтения RSS
Quick RSS — это простая в использовании, конфиденциальная и интуитивно понятное приложение для чтения RSS-лент.
Quick RSS на GitHub: https://github.com/jaywcjlove/quick-rss
Платформа: iOS
⭐️: 242
Quick RSS — это простая в использовании, конфиденциальная и интуитивно понятное приложение для чтения RSS-лент.
Quick RSS на GitHub: https://github.com/jaywcjlove/quick-rss
Платформа: iOS
⭐️: 242
Все, что я знаю о хорошем системном дизайне
Хороший системный дизайн — это простота и надежность, а не модные сложные схемы. Главное: такие системы незаметны — всё работает, и не требует постоянного вмешательства.
• Минимизируйте количество компонентов, особенно хранение состояния.
• Один сервис пишет в базу, остальные работают через API или события.
• Читайте с реплик, пишите — на мастер; индексация и грамотные запросы — ключ к скорости.
• Долгие операции — в фоновую очередь, быстрые — прямо пользователю.
• Кэшируйте только то, что невозможно оптимизировать другими способами.
• Не злоупотребляйте событиями — проще API-запрос.
• Фокус на “горячих путях” — самые критичные точки.
• Логи и метрики нужны всегда, особенно для ошибок и редких случаев.
• Учитывайте сбои: идемпотентность, ретраи, правильное поведение при падении.
Главное — стабильность и предсказуемость, а не “эффектные” архитектурные решения.
Статья: https://www.seangoedecke.com/good-system-design/
Платформа: разработка
Хороший системный дизайн — это простота и надежность, а не модные сложные схемы. Главное: такие системы незаметны — всё работает, и не требует постоянного вмешательства.
• Минимизируйте количество компонентов, особенно хранение состояния.
• Один сервис пишет в базу, остальные работают через API или события.
• Читайте с реплик, пишите — на мастер; индексация и грамотные запросы — ключ к скорости.
• Долгие операции — в фоновую очередь, быстрые — прямо пользователю.
• Кэшируйте только то, что невозможно оптимизировать другими способами.
• Не злоупотребляйте событиями — проще API-запрос.
• Фокус на “горячих путях” — самые критичные точки.
• Логи и метрики нужны всегда, особенно для ошибок и редких случаев.
• Учитывайте сбои: идемпотентность, ретраи, правильное поведение при падении.
Главное — стабильность и предсказуемость, а не “эффектные” архитектурные решения.
Статья: https://www.seangoedecke.com/good-system-design/
Платформа: разработка
Seangoedecke
Everything I know about good system design
I see a lot of bad system design advice. One classic is the LinkedIn-optimized “bet you never heard of queues” style of post, presumably aimed at people who are…