Как одна строчка кода может сломать ваш iPhone
Еще в середине 2024 года автор в iOS нашел уязвимость, которая может навсегда (до восстановления из бэкапа) брикнуть устройство.
Дело в том, что процессы в ОС могут обмениваться уведомлениями Darwin, это низкоуровневый механизм для простого обмена данными в операционных системах Apple. При этом они:
• Не требуют особых привилегий для получения
• Не требуют специальных привилегий для отправки
• Доступны как общедоступный API
• Не имеют механизма проверки отправителя
И именно такие сообщения использовались для работы ключевых системных процессов, вроде входа и выхода устройства из «режима потери» Find My или запуска режима «идет восстановление».
Последний и послужил отличным "отказом в обслуживании", поскольку операция неизбежно завершалась неудачей после тайм-аута, ведь устройство фактически не восстанавливалось, и единственным средством решения этой проблемы было нажатие кнопки «Restart», что приводило к перезагрузке устройства.
Дальше дело было только за тем, чтобы снова отправлять уведомление при новом старте устройства, но с этим прекрасно справилась подсистема виджетов, которая стартует еще до разблокировки устройства.
Итого - 9 месяцев на исправление в iOS 18.3 (теперь уведомления принимаются только от системных процессов) и $17,500 за найденную ошибку.
В этой статье все подробнее написано.
Еще в середине 2024 года автор в iOS нашел уязвимость, которая может навсегда (до восстановления из бэкапа) брикнуть устройство.
Дело в том, что процессы в ОС могут обмениваться уведомлениями Darwin, это низкоуровневый механизм для простого обмена данными в операционных системах Apple. При этом они:
• Не требуют особых привилегий для получения
• Не требуют специальных привилегий для отправки
• Доступны как общедоступный API
• Не имеют механизма проверки отправителя
И именно такие сообщения использовались для работы ключевых системных процессов, вроде входа и выхода устройства из «режима потери» Find My или запуска режима «идет восстановление».
notify_post(«com.apple.MobileSync.BackupAgent.RestoreStarted»)
Последний и послужил отличным "отказом в обслуживании", поскольку операция неизбежно завершалась неудачей после тайм-аута, ведь устройство фактически не восстанавливалось, и единственным средством решения этой проблемы было нажатие кнопки «Restart», что приводило к перезагрузке устройства.
Дальше дело было только за тем, чтобы снова отправлять уведомление при новом старте устройства, но с этим прекрасно справилась подсистема виджетов, которая стартует еще до разблокировки устройства.
Итого - 9 месяцев на исправление в iOS 18.3 (теперь уведомления принимаются только от системных процессов) и $17,500 за найденную ошибку.
В этой статье все подробнее написано.
👍17
iOS
• Как одна строчка кода может сломать ваш iPhone
• Укрощаем асинхронный код с помощью async/await
• Mastering Coding Style Guides for Large-Scale Codebases - With a SwiftUI Case Study
• Keep downloading with a background session
• Swift: Parallel Execution for Async Throws Functions
• Understanding Memory Management in Swift
• Как одна строчка кода может сломать ваш iPhone
• Укрощаем асинхронный код с помощью async/await
• Mastering Coding Style Guides for Large-Scale Codebases - With a SwiftUI Case Study
• Keep downloading with a background session
• Swift: Parallel Execution for Async Throws Functions
• Understanding Memory Management in Swift
AppTractor
Как одна строчка кода может сломать ваш iPhone
Уведомления Darwin еще проще, поскольку они являются частью слоя CoreOS. Они представляют собой низкоуровневый механизм для простого обмена сообщениями между процессами в операционных системах Apple.
👍1
Android
• Руководство по потреблению памяти Android Studio
• Google расскажет главные новости про Android в The Android Show
• Android Gif Search — LazyVerticalGrid на MVVM
• Мастерство фокусов на Compose
• Lint Be Gone: Speed Up Your Android Release APK Builds
• Jetpack Compose and Nested Scrolling
• Reactive State Management in Compose — MVI Architecture
• Getting Started with Media3-UI-Compose: Compose UIs for Media Playback
• Android Studio Meerkat Feature Drop
• The Problem of Trun…
• Руководство по потреблению памяти Android Studio
• Google расскажет главные новости про Android в The Android Show
• Android Gif Search — LazyVerticalGrid на MVVM
• Мастерство фокусов на Compose
• Lint Be Gone: Speed Up Your Android Release APK Builds
• Jetpack Compose and Nested Scrolling
• Reactive State Management in Compose — MVI Architecture
• Getting Started with Media3-UI-Compose: Compose UIs for Media Playback
• Android Studio Meerkat Feature Drop
• The Problem of Trun…
AppTractor
Руководство по потреблению памяти Android Studio
Понимая, почему эти настройки работают, вы сможете адаптировать IDE под свои нужды и обеспечить бесперебойную разработку.
🔥1
С моей пользовательской точки зрения чем дальше, тем Duolingo становится страннее. И это при живых то людях. Можно предположить, что “конструктивные ограничения” на основе ИИ еще больше испортят UX (см. Google Play Store). Но ,конечно, гендиру виднее. И да, кто какими приложениями для изучения языков пользуется? ☺️
Разработка
• Stop Hardcoding Logic: Use the Chain of Responsibility Instead
Маркетинг и монетизация
• Duolingo становится «AI-first» компанией
Кроссплатформа
• Advanced Flutter Integration Testing with Real Devices: Examples, Use Cases & CI Automation
• Bloc Linter Pre-Release
Please open Telegram to view this post
VIEW IN TELEGRAM
AppTractor
Duolingo становится «AI-first» компанией
В рамках этого изменения компания введет «несколько конструктивных ограничений», включая изменения в работе с подрядчиками, поиск использования ИИ при приеме на работу и в оценке результатов работы, а также то, что «численность персонала будет увеличиваться…
👍5❤1
Магазин приложений Google Play теряет приложения. Согласно новому анализу, проведенному компанией Appfigures, в начале 2024 года в магазине приложений для Android было размещено около 3.4 миллиона приложений, а сейчас - лишь около 1.8 миллиона. Это снижение примерно на 47%.
Снижение не является частью какой-то более крупной глобальной тенденции, отмечает компания. Например, за тот же период магазине приложений для iOS компании Apple вырос с 1.6 до 1.64 миллиона приложений.
С годами менее строгие требования Google Play к проверке приложений привели к тому, что на рынке появилось множество низкокачественных приложений. И в июле 2024 года Google объявил о повышении минимальных требований к качеству приложений, что могло повлиять на количество доступных размещений в Play Store. Вместо того чтобы запрещать только неработающие приложения, которые сбоят или не запускаются, компания заявила, что начнет запрещать приложения, которые демонстрируют «ограниченную функциональность и контент». Новые правила так же включают в себя расширенный набор требований к проверке, обязательное тестирование приложений для новых личных аккаунтов разработчиков и расширенную проверку приложений на предмет наличия приложений, которые пытаются обмануть или ввести в заблуждение пользователей. В результате Google предотвратил публикацию в Play Store 2.36 миллиона приложений, нарушающих политику, и заблокировала более 158,000 аккаунтов разработчиков, которые пытались опубликовать вредные приложения, говорится в сообщении.
Кроме того, Appfigures отмечает, что количество приложений в Google Play Store начало сокращаться еще до официального начала чистки летом прошлого года, у компании пока нет объяснения этому изменению. Тем не менее, по данным компании, в этом году в Google Play было выпущено 10,400 приложений, что на 7.1 % больше, чем в прошлом году.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6😢2
Поведение Apple признано антиконкурентным
Если вы еще не знали, то Epic на прошлой неделе одержала оглушительную победу в суде. Еще в 2021 году суд обязал Apple разрешить разработчикам направлять клиентов на сторонние варианты покупки в Интернете с помощью ссылок в приложении. Однако, Apple все сделала в своем стиле - запугивала пользователей экранами, взимала дикие комиссии и всячески ограничивала информирование о возможности совершить покупку за пределами App Store. Сейчас все действия Apple по выполнению предыдущего решения 2021 года признаны неверными и их в приказном порядке отменили.
Это касается возможности запрета произвольно ссылаться на сторонние оплаты внутри приложений ссылками или кнопками, предупреждающие экраны и все комиссии, которые планировала взимать Apple со сторонних покупок (27%). Все это теперь не действует.
В результате сейчас в США разработчики могут совершенно свободно внедрять сторонние IAP и ничего за это не платить. Когда это будет реализовано на всех рынках никому неизвестно.
Однако компания планирует обжаловать это решение. "Мы категорически не согласны с этим решением. Мы подадим апелляцию", - говорится в заявлении Apple.
Если вы еще не знали, то Epic на прошлой неделе одержала оглушительную победу в суде. Еще в 2021 году суд обязал Apple разрешить разработчикам направлять клиентов на сторонние варианты покупки в Интернете с помощью ссылок в приложении. Однако, Apple все сделала в своем стиле - запугивала пользователей экранами, взимала дикие комиссии и всячески ограничивала информирование о возможности совершить покупку за пределами App Store. Сейчас все действия Apple по выполнению предыдущего решения 2021 года признаны неверными и их в приказном порядке отменили.
Это касается возможности запрета произвольно ссылаться на сторонние оплаты внутри приложений ссылками или кнопками, предупреждающие экраны и все комиссии, которые планировала взимать Apple со сторонних покупок (27%). Все это теперь не действует.
В результате сейчас в США разработчики могут совершенно свободно внедрять сторонние IAP и ничего за это не платить. Когда это будет реализовано на всех рынках никому неизвестно.
Однако компания планирует обжаловать это решение. "Мы категорически не согласны с этим решением. Мы подадим апелляцию", - говорится в заявлении Apple.
👍11❤5😢2
Compose Multiplatform для iOS стабилен
JetBrains отмечает важную веху в развитии Kotlin Multiplatform - выпуск Compose Multiplatform 1.8.0, который переводит Compose для iOS в статус Stable. С этим обновлением Kotlin Multiplatform становится полноценным решением для мобильной разработки, обеспечивая гибкий шаринг кода бизнес-логики и пользовательского интерфейса без ущерба для качества приложений и потери контроля над возможностями, специфичными для конкретной платформы.
• В версии 1.8.0 доработаны основные API и внесены целевые улучшения в доступность и навигацию, а также исправлен целый ряд ошибок и улучшена производительность. Все основные API-функции теперь официально стабильны, что гарантирует их совместимость и минимальные изменения, ожидаемые в будущем.
• Эта стабильная основа подкреплена быстро растущей экосистемой. Библиотеки Jetpack обретают мультиплатформенные возможности, а сообщество продолжает предлагать высококачественные библиотеки, охватывающие все сферы.
• Плавное, «нативное» поведение - это то, чего ждут пользователи iOS и что они замечают. Compose Multiplatform для iOS фокусируется на деталях, чтобы приложения чувствовались привычно и отзывчиво на этой платформе.
• В релизе 1.8.0 улучшено взаимодействие со SwiftUI и UIKit, что позволяет легко встраивать Compose в существующее приложение или включать нативные представления в экран Compose. Такой подход поддерживает постепенное внедрение и дает вам полный контроль над тем, как и где вы используете код.
• Отличный пользовательский опыт зависит не только от поведения пользовательского интерфейса, но и от производительности. Плавное и отзывчивое взаимодействие - залог удовлетворенности пользователей. Именно поэтому производительность была в центре внимания на протяжении всей работы по стабилизации.
• Чтобы сделать создание мультиплатформенных приложений Compose более быстрым, плавным и приятным, JetBarins активно совершенствуют инструментарий KMP. В ближайшее время будет выпущен новый плагин KMP для IntelliJ IDEA и Android Studio. Помимо функций для написания общей логики, в нем появится поддержка Compose Previews в общем коде, а также инструменты для управления ресурсами. Что еще более интересно: Compose Hot Reload уже доступен.
JetBrains отмечает важную веху в развитии Kotlin Multiplatform - выпуск Compose Multiplatform 1.8.0, который переводит Compose для iOS в статус Stable. С этим обновлением Kotlin Multiplatform становится полноценным решением для мобильной разработки, обеспечивая гибкий шаринг кода бизнес-логики и пользовательского интерфейса без ущерба для качества приложений и потери контроля над возможностями, специфичными для конкретной платформы.
• В версии 1.8.0 доработаны основные API и внесены целевые улучшения в доступность и навигацию, а также исправлен целый ряд ошибок и улучшена производительность. Все основные API-функции теперь официально стабильны, что гарантирует их совместимость и минимальные изменения, ожидаемые в будущем.
• Эта стабильная основа подкреплена быстро растущей экосистемой. Библиотеки Jetpack обретают мультиплатформенные возможности, а сообщество продолжает предлагать высококачественные библиотеки, охватывающие все сферы.
• Плавное, «нативное» поведение - это то, чего ждут пользователи iOS и что они замечают. Compose Multiplatform для iOS фокусируется на деталях, чтобы приложения чувствовались привычно и отзывчиво на этой платформе.
• В релизе 1.8.0 улучшено взаимодействие со SwiftUI и UIKit, что позволяет легко встраивать Compose в существующее приложение или включать нативные представления в экран Compose. Такой подход поддерживает постепенное внедрение и дает вам полный контроль над тем, как и где вы используете код.
• Отличный пользовательский опыт зависит не только от поведения пользовательского интерфейса, но и от производительности. Плавное и отзывчивое взаимодействие - залог удовлетворенности пользователей. Именно поэтому производительность была в центре внимания на протяжении всей работы по стабилизации.
• Чтобы сделать создание мультиплатформенных приложений Compose более быстрым, плавным и приятным, JetBarins активно совершенствуют инструментарий KMP. В ближайшее время будет выпущен новый плагин KMP для IntelliJ IDEA и Android Studio. Помимо функций для написания общей логики, в нем появится поддержка Compose Previews в общем коде, а также инструменты для управления ресурсами. Что еще более интересно: Compose Hot Reload уже доступен.
🍾11🤡4🍌2❤1
Будете использовать KMP/CMP в своих приложениях?
Anonymous Poll
16%
Будем
11%
Уже используем
14%
Пока исследуем
38%
Не планируем
21%
Посмотреть
Эмулятор Delta сделал Patreon главной системой монетизации в App Store
Игровой эмулятор Delta воспользовался недавним решением суда по поводу App Store, разместив в приложении ссылку на свою страницу подписки на Patreon. Обновление, одобренное в прошлую среду для выпуска в американском App Store, позволяет пользователям Delta присоединиться к Patreon команды Delta прямо из мобильного приложения, не отдавая Apple долю от подписки.
В обновленной версии пользователям предлагается «Присоединиться к нашему Patreon» прямо на экране настроек приложения. Здесь они могут нажать на кнопку, чтобы подписаться на членство Delta в Patreon за $3 в месяц, и связать его со своим аккаунтом в приложении.
Веб-страница открывается внутри приложения, позволяя пользователям связать свои аккаунты Patreon и выбрать уровень членства, например, ежемесячный или ежегодный (раньше пользователи могли только привязать аккаунт Patreon в приложении, но не могли подписаться на него напрямую).
«Теперь мы можем свободно упоминать наш Patreon, не отдавая Apple 27% пожертвований», — отметил создатель Delta Райли Тестут в посте в социальных сетях, добавив: «Прощайте пугающие экраны».
В Delta по-прежнему есть возможность оплаты через встроенные покупки Apple, как это и требуется. Однако она спрятана в меню «Альтернативные способы оплаты» на экране «Настройки» — опция, которую многие пользователи, скорее всего, никогда не будут искать.
Обновление Delta — пример того, как постановление открывает дорогу новым бизнес-моделям монетизации мобильных приложений. Учитывая, что приложение Delta уже получило одобрение от Apple App Review, можно предположить, что в скором времени появятся и другие приложения с поддержкой Patreon.
Игровой эмулятор Delta воспользовался недавним решением суда по поводу App Store, разместив в приложении ссылку на свою страницу подписки на Patreon. Обновление, одобренное в прошлую среду для выпуска в американском App Store, позволяет пользователям Delta присоединиться к Patreon команды Delta прямо из мобильного приложения, не отдавая Apple долю от подписки.
В обновленной версии пользователям предлагается «Присоединиться к нашему Patreon» прямо на экране настроек приложения. Здесь они могут нажать на кнопку, чтобы подписаться на членство Delta в Patreon за $3 в месяц, и связать его со своим аккаунтом в приложении.
Веб-страница открывается внутри приложения, позволяя пользователям связать свои аккаунты Patreon и выбрать уровень членства, например, ежемесячный или ежегодный (раньше пользователи могли только привязать аккаунт Patreon в приложении, но не могли подписаться на него напрямую).
«Теперь мы можем свободно упоминать наш Patreon, не отдавая Apple 27% пожертвований», — отметил создатель Delta Райли Тестут в посте в социальных сетях, добавив: «Прощайте пугающие экраны».
В Delta по-прежнему есть возможность оплаты через встроенные покупки Apple, как это и требуется. Однако она спрятана в меню «Альтернативные способы оплаты» на экране «Настройки» — опция, которую многие пользователи, скорее всего, никогда не будут искать.
Обновление Delta — пример того, как постановление открывает дорогу новым бизнес-моделям монетизации мобильных приложений. Учитывая, что приложение Delta уже получило одобрение от Apple App Review, можно предположить, что в скором времени появятся и другие приложения с поддержкой Patreon.
👍11😁1
iOS
• Архитектурный линтинг для Swift: часть 4
• Prefire — библиотека тестирования на основе Xcode Preview
• GPT, DeepSeek и Qwen: идеальные unit-тесты в эхо-камере
• Scheduling notifications with time, calendar, and location triggers in iOS
• Adding dependencies to binary Swift packages
• Concurrency-Safe Testing in Swift 6.1 with @TaskLocal and Test Scoping
• Knowing when the battle is lost with XCUITests
• Demystifying Picture in Picture on iOS
• SwiftUI View Model Ownership
• Using Core Motion within a SwiftUI application
• Regular Expressions in Swift
• Apple’s Widget Backdoor
• Formatting data inside SwiftUI Text views
• Архитектурный линтинг для Swift: часть 4
• Prefire — библиотека тестирования на основе Xcode Preview
• GPT, DeepSeek и Qwen: идеальные unit-тесты в эхо-камере
• Scheduling notifications with time, calendar, and location triggers in iOS
• Adding dependencies to binary Swift packages
• Concurrency-Safe Testing in Swift 6.1 with @TaskLocal and Test Scoping
• Knowing when the battle is lost with XCUITests
• Demystifying Picture in Picture on iOS
• SwiftUI View Model Ownership
• Using Core Motion within a SwiftUI application
• Regular Expressions in Swift
• Apple’s Widget Backdoor
• Formatting data inside SwiftUI Text views
AppTractor
Архитектурный линтинг для Swift: часть 4
В этом, заключительном, посте мы объясним разработчикам, как начать использовать Harmonize в своем собственном iOS-проекте.
Android
• Подготовьте свои Android-приложения для страницы памяти в 16 КБ
• Night Clock — минималистичные часы для Android
• Stale Data & Leaks were killing my Kotlin apps for 5 years. Here’s the fix.
• Does Junie Create Accessible Android Apps?
• Simpler Gradle plugin loading
• Blazing fast app uninstalls for lazy Android Devs
• Kotlin’s Builder Functions: A Better Way to Create Lists, Maps, Strings & Sets
• Building delightful Android camera and media experiences
• Fast Feedback: Winning Back 60% of Our CI Time
• Effective Strategies for Testing Asynchronous Kotlin Code
• Compose UI Performance Secrets (Part 1): 5 Core Optimizations Every Developer Should Know
• Compose UI Performance Secrets (Part 2): 5 Advanced Techniques for Ultra-Smooth Apps
• Подготовьте свои Android-приложения для страницы памяти в 16 КБ
• Night Clock — минималистичные часы для Android
• Stale Data & Leaks were killing my Kotlin apps for 5 years. Here’s the fix.
• Does Junie Create Accessible Android Apps?
• Simpler Gradle plugin loading
• Blazing fast app uninstalls for lazy Android Devs
• Kotlin’s Builder Functions: A Better Way to Create Lists, Maps, Strings & Sets
• Building delightful Android camera and media experiences
• Fast Feedback: Winning Back 60% of Our CI Time
• Effective Strategies for Testing Asynchronous Kotlin Code
• Compose UI Performance Secrets (Part 1): 5 Core Optimizations Every Developer Should Know
• Compose UI Performance Secrets (Part 2): 5 Advanced Techniques for Ultra-Smooth Apps
AppTractor
Подготовьте свои Android-приложения для страницы памяти в 16 КБ
Это изменение направлено на повышение производительности и энергоэффективности устройств.
Разработка
• Figma выпускает новые инструменты с искусственным интеллектом для создания сайтов, прототипов приложений и маркетинговых ресурсов
• Apple разрабатывает новые чипы для умных очков, компьютеров Mac и серверов
• Погружаемся в пуши. Создаём свою альтернативу сервисам рассылки Push
• Learning to Think in an AI World: 5 Lessons for Novice Programmers
Маркетинг и монетизация
• Эмулятор Delta сделал Patreon главной системой монетизации в App Store
• Самые скачиваемые и зарабатывающие приложения в России в апреле 2025
• Самые скачиваемые и зарабатывающие приложения в мире в апреле 2025
• Стоит ли разработчикам iOS-приложений переходить на веб-платежи?
Кроссплатформа
• Compose Multiplatform для iOS стабилен и ждет ваших приложений
• Когда JavaScript недостаточно: Практика разработки нативных модулей для React Native
• Implementing DataStore in Kotlin Multiplatform Projects
• I use this clean architecture setup for all my Flutter projects — finally made it public
Please open Telegram to view this post
VIEW IN TELEGRAM
AppTractor
Google обновил логотип
Пока что, судя по всему, Google обновила свой логотип только на iOS и телефонах Pixel.
🤯3❤2🎅1
Google раскрыл новый язык дизайна Android
Google на прошлой неделе случайно показал свой следующий большой редизайн Android — Material 3 Expressive. В удаленном сообщении в блоге компания описывает изменения как «наиболее проработанное» обновление, цель которого — сделать интерфейс более привлекательным и простым в использовании.
Как говорится в сообщении, Google разработал Material 3 Expressive после проведения 46 раундов проектирования и исследований с участием более 18,000 человек. Дизайн использует цвет, форму, размер и движение, чтобы сделать ОС «более удобной для использования».
Компания утверждает, что дизайн Material 3 Expressive позволяет людям находить ключевые элементы в интерфейсе в четыре раза быстрее по сравнению с существующим дизайном Material 3. Google также утверждает, что Material 3 Expressive «похоже, уравнивает шансы пользователей всех возрастов», поскольку дизайн помог людям старше 45 лет находить элементы интерфейса так же быстро, как и молодым пользователям.
Скорее всего новый дизайн покажут уже сегодня в The Android Show.
Google на прошлой неделе случайно показал свой следующий большой редизайн Android — Material 3 Expressive. В удаленном сообщении в блоге компания описывает изменения как «наиболее проработанное» обновление, цель которого — сделать интерфейс более привлекательным и простым в использовании.
Как говорится в сообщении, Google разработал Material 3 Expressive после проведения 46 раундов проектирования и исследований с участием более 18,000 человек. Дизайн использует цвет, форму, размер и движение, чтобы сделать ОС «более удобной для использования».
Компания утверждает, что дизайн Material 3 Expressive позволяет людям находить ключевые элементы в интерфейсе в четыре раза быстрее по сравнению с существующим дизайном Material 3. Google также утверждает, что Material 3 Expressive «похоже, уравнивает шансы пользователей всех возрастов», поскольку дизайн помог людям старше 45 лет находить элементы интерфейса так же быстро, как и молодым пользователям.
Скорее всего новый дизайн покажут уже сегодня в The Android Show.
👍6❤4🙈2🔥1🤡1🙊1
Google представил новшества Android на The Android Show: I/O Edition - Material 3 Expressive, Wear OS 6 и Android 16.
• Material 3 Expressive: эмоциональный дизайн нового поколения, о котором я писал сегодня. Material 3 Expressive — это расширение Material Design, ориентированное на создание более выразительного и интуитивного пользовательского интерфейса. Material 3 Expressive станет доступен в Android 16 позже в этом году.
• Wear OS 6: релиз ОС для часов, выходящий в этом году, внедряет Material 3 Expressive на платформу смарт-часов. Новый дизайн учитывает особенности круглых экранов, улучшая визуальное восприятие и взаимодействие с элементами интерфейса.
• Android 16: ожидаемый к релизу в июне 2025 года с Live Updates, профессиональными функциями камеры, многозадачностью на планшетах, улучшенной доступностью.
Посмотрите выпуск The Android Show: I/O Edition, чтобы узнать больше о нововведениях.
Android
• Google раскрыл новый язык дизайна Android
• Haze — размытие глассморфизма для Compose
• Мастерство фокусов на Compose (часть 2): как работает запрос фокуса
• ML KIT — Современное решение для сканирования в Android приложениях
• The Android Show: I/O Edition - what Android devs need to know!
• Using movableContentOf for shared transitions in Jetpack Compose
• How to Use Firebase Remote Config in Server: Dynamic Control and AI Parameter Management
• Securing Android: Behind a few seconds of payment transaction …
• Why is Modern Android Development So Hard?
• Material 3 Expressive: эмоциональный дизайн нового поколения, о котором я писал сегодня. Material 3 Expressive — это расширение Material Design, ориентированное на создание более выразительного и интуитивного пользовательского интерфейса. Material 3 Expressive станет доступен в Android 16 позже в этом году.
• Wear OS 6: релиз ОС для часов, выходящий в этом году, внедряет Material 3 Expressive на платформу смарт-часов. Новый дизайн учитывает особенности круглых экранов, улучшая визуальное восприятие и взаимодействие с элементами интерфейса.
• Android 16: ожидаемый к релизу в июне 2025 года с Live Updates, профессиональными функциями камеры, многозадачностью на планшетах, улучшенной доступностью.
Посмотрите выпуск The Android Show: I/O Edition, чтобы узнать больше о нововведениях.
Android
• Google раскрыл новый язык дизайна Android
• Haze — размытие глассморфизма для Compose
• Мастерство фокусов на Compose (часть 2): как работает запрос фокуса
• ML KIT — Современное решение для сканирования в Android приложениях
• The Android Show: I/O Edition - what Android devs need to know!
• Using movableContentOf for shared transitions in Jetpack Compose
• How to Use Firebase Remote Config in Server: Dynamic Control and AI Parameter Management
• Securing Android: Behind a few seconds of payment transaction …
• Why is Modern Android Development So Hard?
👍1
iOS
• Используем Core Motion в SwiftUI-приложении
• Vibe Xcoding your apps
• Optimized mathematical computations in Swift
• Customizing an App Intent
• SwiftUI Picker With Optional Selection
• Debug crashes in iOS using MetricKit
• Используем Core Motion в SwiftUI-приложении
• Vibe Xcoding your apps
• Optimized mathematical computations in Swift
• Customizing an App Intent
• SwiftUI Picker With Optional Selection
• Debug crashes in iOS using MetricKit
AppTractor
Используем Core Motion в SwiftUI-приложении
Этот фреймворк сообщает данные о движении и окружающей среде, полученные от встроенных аппаратных датчиков. Использовать его в приложении, созданном с помощью SwiftUI, для создания визуального взаимодействия на основе собранных данных довольно просто.
Разработка
• LegoGPT — ИИ-модель для сборки моделей Lego
• Первый проект на HarmonyOS — мой плейлист для старта с нуля
• Идеальный процесс взаимодействия аналитика и мобильного разработчика
• Dumb Leadership Mistakes I’ve Made
• Write the most clever code you possibly can
• When SOLID breaks: Choose CLARITY
• UI Design with ChatGPT 4o
• How Broken OTPs and Open Endpoints Turned a Dating App Into a Stalker’s Playground
Маркетинг и монетизация
• Duolingo заменяет сердечки энергией
Кроссплатформа
• Flutter Tips
• Flutter Isolates: Multithreading Made Easy in Dart
• LegoGPT — ИИ-модель для сборки моделей Lego
• Первый проект на HarmonyOS — мой плейлист для старта с нуля
• Идеальный процесс взаимодействия аналитика и мобильного разработчика
• Dumb Leadership Mistakes I’ve Made
• Write the most clever code you possibly can
• When SOLID breaks: Choose CLARITY
• UI Design with ChatGPT 4o
• How Broken OTPs and Open Endpoints Turned a Dating App Into a Stalker’s Playground
Маркетинг и монетизация
• Duolingo заменяет сердечки энергией
Кроссплатформа
• Flutter Tips
• Flutter Isolates: Multithreading Made Easy in Dart
AppTractor
LegoGPT — ИИ-модель для сборки моделей Lego
LegoGPT - это ИИ-модель, которая создает физически устойчивые конструкции Lego на основе текстовых подсказок.
👍2🔥1
Как сломанные OTP и открытые конечные точки могут превратить приложение для знакомств в кошмар
Прекрасное исследование безопасности одного модного приложения для знакомств. Началось все с того, что OTP-коды приходили в открытом виде вместе с ответом с сервера, а закончилось открытыми конечными точками со всеми персональными (включая паспортные) данными всех пользователей дейтинга.
Тут добавить, кроме как "не надо так делать", и нечего:
Прекрасное исследование безопасности одного модного приложения для знакомств. Началось все с того, что OTP-коды приходили в открытом виде вместе с ответом с сервера, а закончилось открытыми конечными точками со всеми персональными (включая паспортные) данными всех пользователей дейтинга.
Тут добавить, кроме как "не надо так делать", и нечего:
Невероятная утечка данных! У меня есть доступ к сексуальным предпочтениям, интимным сообщениям и всевозможным персональным данным от (по словам самих Cerca) десятков тысяч ничего не подозревающих пользователей. Cerca в своей политике конфиденциальности утверждает, что «мы используем шифрование и другие стандартные меры для защиты ваших данных», но это явно неправда. Это создает значительные риски для безопасности и конфиденциальности пользователей. Учитывая, что я всего лишь студент колледжа, случайно заглянувший в эту тему, вполне возможно, что существуют и другие критические уязвимости (хотя полный захват аккаунта уже устанавливает довольно высокую планку).
🌚3
iOS
• Apple выпустила новый визуальный энкодер FastVLM
• Новые функции доступности Apple для iPhone, iPad, Mac и Apple Vision Pro
• ProgressUI — кастомизируемые и анимированные индикаторы прогресса для SwiftUI
• Synthesizing text into speech
• Demystifying SwiftUI’s .ignoredByLayout()
• Default isolation with Swift 6.2
• The Power of KeyPath in SwiftUI
• Apple выпустила новый визуальный энкодер FastVLM
• Новые функции доступности Apple для iPhone, iPad, Mac и Apple Vision Pro
• ProgressUI — кастомизируемые и анимированные индикаторы прогресса для SwiftUI
• Synthesizing text into speech
• Demystifying SwiftUI’s .ignoredByLayout()
• Default isolation with Swift 6.2
• The Power of KeyPath in SwiftUI
AppTractor
Apple выпустила новый визуальный энкодер FastVLM
Apple опубликовала FastVLM - визуальный энкодер, которая позволяет улучшить работу с большими мультимодальными языковыми моделями.
Android
• Google анонсирует дизайн Material 3 Expressive
• Типобезопасная передача результатов между экранами в Compose с Jetpack Navigation
• How to Run Local LLM (AI) in Android Studio
• Jetpack Compose 1.8 is Here — And It’s a Game Changer!
• Avoid using Array in the data class constructor in Kotlin
• Modern Android App Architecture with Clean Code Principles (2025 Edition)
• Start building with Material 3 Expressive
• Google анонсирует дизайн Material 3 Expressive
• Типобезопасная передача результатов между экранами в Compose с Jetpack Navigation
• How to Run Local LLM (AI) in Android Studio
• Jetpack Compose 1.8 is Here — And It’s a Game Changer!
• Avoid using Array in the data class constructor in Kotlin
• Modern Android App Architecture with Clean Code Principles (2025 Edition)
• Start building with Material 3 Expressive
AppTractor
Google анонсирует дизайн Material 3 Expressive
Material 3 Expressive дает вам новые способы продемонстрировать свой стиль и индивидуальность, обеспечивает плавное взаимодействие и отображает полезную информацию с первого взгляда.
🥱1