В нашей новой еженедельной подборке поиск применения App Clip и небезопасности Синглтона, Инструменты Android-разработчика и победа над техдолгом в RuStore, архитектура кроссплатформенного многомодульного приложения, миллионы за считыватели QR-кодов, как мог бы выглядеть Windows Phone в 2024 и многое другое. Подключайтесь!
Подписывайтесь на наш Telegram-канал Mobile Insights, где еще больше материалов для мобильных разработчиков. А в IT Insights — много об интересном коде и технологиях.
![](https://habrastorage.org/webt/iv/km/f7/ivkmf79oodkyaxvxpmqnr55icem.png)
iOS
• Как мы искали применение App Clip… и нашли?
• Почему паттерн Синглтон небезопасен в iOS-разработке
• Hero анимация в SwiftUI с помощью NavigationTransition
• Как я участвовал в iOS Widget Challenge и что из этого вышло
• Защита iOS-приложений от реверс-инженеринга
• Использование TextRenderer для создания выделенного текста
• Apple нарушает закон ЕС о цифровых рынках
• Apple открывает Translate API
• Xcode 16 потребует 16 Гб для работы Predictive Code Completion
• А так ли нужны акторы в Swift Concurrency?
• Swift 5.9: разбираем интероп и «женим» с С++
• Реактивный Swift Concurrency
•
Exploring Translation Framework: Language Availability
•
What’s new in SwiftUI for iOS 18
•
Extend your Xcode Cloud workflows
•
Is it just me or I still find SwiftUI lacking in major areas as my app scales up?
•
Running a package from Xcode Build phase
•
Using multi-step animations in SwiftUI
•
Navigating Accessibility: A SwiftUI vs. UIKit Comparison
•
How to quickly run your iOS app in a different language
•
iOS 18 TextField Selection API — SwiftUI
•
SwiftUI Custom Time Picker Like Apple Timer App
•
iOS 18 TextField Selection API — SwiftUI
•
Xcode 16 Navigation Shortcuts in 12 Minutes
•
InjectionIII — Hot Reloading для Swift
Android
• Инструменты Android-разработчика
• Как мы победили техдолг в RuStore
• Почему умение дебажить один из самых важных навыков для разработчика
• Подробное руководство по Logcat в Android Studio с примерами
• Топ-10 вопросов о корутинах 2024
• Современные способы запуска фоновой работы в Android
• Как мы создали свой инструмент для доставки сборок Android-приложений
• Low performer в Android 2024
• Динамические свайпы с помощью ItemTouchHelper
• Как устроены аннотации в Kotlin. Часть 1
• Android: form builder на старых добрых View
• Эволюция Android тестов с Marathon Test Runner
•
What Are Dynamic App Shortcuts?
•
Seamless Screenshot Testing for Compose with Screenshotbot
•
Using Lists in Compose Previews
•
The Starter kit for Android Platform Engineering
•
Automatic (almost) resource generation from Figma for Compose
•
How Baseline Profile Improve Skeelo Android App Performance
•
A robust MVI implementation with Jetpack Compose
•
How to Use ViewModel with Jetpack Compose
•
Unleashing the Debugging Magic: Cracking Android Native Shared Libraries
•
4 Strategies to Secure API keys in Android Applications
•
Now in Android: 108 — Android 15 Beta 3, Google AI Studio, Gemini in Android Studio, and more
•
Compose UI for… a Light Switch
•
Write your own Kotlin lint checks
•
Tap it! Shake it! Fling it! Sheep it! — The Compose Gesture Animations Dance
•
Animations with Jetpack Compose
•
7 Features in Kotlin’s Standard Library that You Might Have Overlooked
•
7 Kotlin Stdlib Features You Might Have Overlooked
•
Scroll Block — трекер использования социальных сетей для Android
•
iCore — модульные компоненты для быстрого создания Android-приложений
Кроссплатформа
• Архитектура кроссплатформенного многомодульного приложения
• Создаем Flutter-приложение для оплаты через СБП без натива
•
What can I do with “Extension Types” in Dart?
•
Measure and optimize your Flutter app size
•
Flutter: Detecting Cyclic Dependencies in a Monorepo
•
Kotlin MultiPlatform vs Flutter
•
Improve Your Dart Code with Dependency Injection: Understanding Loose and Tight Coupling
•
Advanced Theming Techniques in Flutter: Effortless Color Schemes
•
How to Share Resources in Compose Multiplatform
•
Expect/Actual in Kotlin Multiplatform
•
Kotlin Multiplatform Alchemy: Making Gold out of Your Swift Interop
•
PeopleInSpace — люди в космосе Kotlin Multiplatform
Разработка
• Как пирамида тестирования уплывает на сторону разработки
• Подключаем GigaCode к мобильной разработке
• Как мог бы выглядеть Windows Phone в 2024
• Все софт скиллы — про преодоление страха и силу воли
• Что дальше после разработчика в Google
• Роль дизайнера в проекте
•
From the 80’s to 2024 — how CI tests were invented and optimized
•
Programmers Should Never Trust Anyone, Not Even Themselves
•
Our Experience with CodeRabbit: A Game-Changer in Automated Code Review
•
Software Architecture is Hard
•
Getting 100% code coverage doesn’t eliminate bugs
•
Aptabase — открытая аналитика для приложений
Аналитика, маркетинг и монетизация
• Directo упрощает прямое бронирование жилья с помощью расширения Chrome
• Маркетологи в мобайле: Ольга Бигбашева (Rendez-Vous)
• RuStore станет обязательным
• 6 шагов успешного продвижения e-commerce приложения — кейс Технопарк и Rocket10
• Google приостанавливает распространение игр на реальные деньги в Play Store
• Владельцы iPhone платят миллионы за считыватели QR-кодов
• Как я развиваю свое приложение для хранения прочитанных книг?
AI, Устройства, IoT
• Как быстро растут нейросети: прогресс Stable Diffusion за все время
• KC868-M16v2: мечта ардуинщика (16 токовых каналов, 3 канала напряжения, SD, LAN, POE, дисплей, RTC и SH3x)
• Сборка и отладка прошивки IoT-модуля: Python, make, апельсины и чёрная магия
• LLM Compiler оптимизирует код и компиляторы
• Уязвимость в Rabbit R1 позволяет третьим лицам просматривать ответы ИИ
• 8 микрокомпьютеров для работы с искусственным интеллектом
• Google анонсирует новые Pixel 13 августа
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.
Подписывайтесь на наш Telegram-канал Mobile Insights, где еще больше материалов для мобильных разработчиков. А в IT Insights — много об интересном коде и технологиях.
![](https://habrastorage.org/webt/iv/km/f7/ivkmf79oodkyaxvxpmqnr55icem.png)
![](https://habrastorage.org/getpro/habr/post_images/f19/30a/c49/f1930ac4945596eb9707bc7a01bc5bdc.png)
• Как мы искали применение App Clip… и нашли?
• Почему паттерн Синглтон небезопасен в iOS-разработке
• Hero анимация в SwiftUI с помощью NavigationTransition
• Как я участвовал в iOS Widget Challenge и что из этого вышло
• Защита iOS-приложений от реверс-инженеринга
• Использование TextRenderer для создания выделенного текста
• Apple нарушает закон ЕС о цифровых рынках
• Apple открывает Translate API
• Xcode 16 потребует 16 Гб для работы Predictive Code Completion
• А так ли нужны акторы в Swift Concurrency?
• Swift 5.9: разбираем интероп и «женим» с С++
• Реактивный Swift Concurrency
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/webt/gt/u1/ia/gtu1iaz0-ajkbqpeq8n6dmql4zq.png)
•
![](https://habrastorage.org/webt/gt/u1/ia/gtu1iaz0-ajkbqpeq8n6dmql4zq.png)
•
![](https://habrastorage.org/webt/gt/u1/ia/gtu1iaz0-ajkbqpeq8n6dmql4zq.png)
•
![](https://habrastorage.org/webt/gt/u1/ia/gtu1iaz0-ajkbqpeq8n6dmql4zq.png)
•
![](https://habrastorage.org/webt/gt/u1/ia/gtu1iaz0-ajkbqpeq8n6dmql4zq.png)
•
![](https://habrastorage.org/files/967/16b/cb9/96716bcb926741e79bb1c284a88083ca.png)
![](https://habrastorage.org/getpro/habr/post_images/e1a/3cf/2a8/e1a3cf2a8b65a0da69bbdd5c0ad040fe.png)
• Инструменты Android-разработчика
• Как мы победили техдолг в RuStore
• Почему умение дебажить один из самых важных навыков для разработчика
• Подробное руководство по Logcat в Android Studio с примерами
• Топ-10 вопросов о корутинах 2024
• Современные способы запуска фоновой работы в Android
• Как мы создали свой инструмент для доставки сборок Android-приложений
• Low performer в Android 2024
• Динамические свайпы с помощью ItemTouchHelper
• Как устроены аннотации в Kotlin. Часть 1
• Android: form builder на старых добрых View
• Эволюция Android тестов с Marathon Test Runner
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/webt/gt/u1/ia/gtu1iaz0-ajkbqpeq8n6dmql4zq.png)
•
![](https://habrastorage.org/webt/gt/u1/ia/gtu1iaz0-ajkbqpeq8n6dmql4zq.png)
•
![](https://habrastorage.org/webt/gt/u1/ia/gtu1iaz0-ajkbqpeq8n6dmql4zq.png)
•
![](https://habrastorage.org/webt/gt/u1/ia/gtu1iaz0-ajkbqpeq8n6dmql4zq.png)
•
![](https://habrastorage.org/webt/gt/u1/ia/gtu1iaz0-ajkbqpeq8n6dmql4zq.png)
•
![](https://habrastorage.org/webt/gt/u1/ia/gtu1iaz0-ajkbqpeq8n6dmql4zq.png)
•
![](https://habrastorage.org/webt/gt/u1/ia/gtu1iaz0-ajkbqpeq8n6dmql4zq.png)
•
![](https://habrastorage.org/files/967/16b/cb9/96716bcb926741e79bb1c284a88083ca.png)
•
![](https://habrastorage.org/files/967/16b/cb9/96716bcb926741e79bb1c284a88083ca.png)
![](https://habrastorage.org/webt/ma/lx/8h/malx8hbgozt6lee8rmxmg96_s6a.png)
• Архитектура кроссплатформенного многомодульного приложения
• Создаем Flutter-приложение для оплаты через СБП без натива
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/webt/gt/u1/ia/gtu1iaz0-ajkbqpeq8n6dmql4zq.png)
•
![](https://habrastorage.org/webt/gt/u1/ia/gtu1iaz0-ajkbqpeq8n6dmql4zq.png)
•
![](https://habrastorage.org/webt/gt/u1/ia/gtu1iaz0-ajkbqpeq8n6dmql4zq.png)
•
![](https://habrastorage.org/files/967/16b/cb9/96716bcb926741e79bb1c284a88083ca.png)
![](https://habrastorage.org/getpro/habr/post_images/708/1c6/34e/7081c634ec176ab6b953d9d19e82a09a.png)
• Как пирамида тестирования уплывает на сторону разработки
• Подключаем GigaCode к мобильной разработке
• Как мог бы выглядеть Windows Phone в 2024
• Все софт скиллы — про преодоление страха и силу воли
• Что дальше после разработчика в Google
• Роль дизайнера в проекте
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/967/16b/cb9/96716bcb926741e79bb1c284a88083ca.png)
![](https://habrastorage.org/getpro/habr/post_images/509/dc9/bde/509dc9bde69347ecbe0c21ff2973d7e7.jpg)
• Directo упрощает прямое бронирование жилья с помощью расширения Chrome
• Маркетологи в мобайле: Ольга Бигбашева (Rendez-Vous)
• RuStore станет обязательным
• 6 шагов успешного продвижения e-commerce приложения — кейс Технопарк и Rocket10
• Google приостанавливает распространение игр на реальные деньги в Play Store
• Владельцы iPhone платят миллионы за считыватели QR-кодов
• Как я развиваю свое приложение для хранения прочитанных книг?
![](https://habrastorage.org/getpro/habr/post_images/853/812/9f5/8538129f5e7b404a720121cb9c3814db.jpg)
• Как быстро растут нейросети: прогресс Stable Diffusion за все время
• KC868-M16v2: мечта ардуинщика (16 токовых каналов, 3 канала напряжения, SD, LAN, POE, дисплей, RTC и SH3x)
• Сборка и отладка прошивки IoT-модуля: Python, make, апельсины и чёрная магия
• LLM Compiler оптимизирует код и компиляторы
• Уязвимость в Rabbit R1 позволяет третьим лицам просматривать ответы ИИ
• 8 микрокомпьютеров для работы с искусственным интеллектом
• Google анонсирует новые Pixel 13 августа
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.