Мобильная разработка за неделю #544 (24 — 30 июня)

В нашей новой еженедельной подборке поиск применения App Clip и небезопасности Синглтона, Инструменты Android-разработчика и победа над техдолгом в RuStore, архитектура кроссплатформенного многомодульного приложения, миллионы за считыватели QR-кодов, как мог бы выглядеть Windows Phone в 2024 и многое другое. Подключайтесь!

Подписывайтесь на наш Telegram-канал Mobile Insights, где еще больше материалов для мобильных разработчиков. А в IT Insights — много об интересном коде и технологиях.

ivkmf79oodkyaxvxpmqnr55icem.png

f1930ac4945596eb9707bc7a01bc5bdc.pngiOS

• Как мы искали применение 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
377ae0333d0f4b7b97307c9eea5ee21a.gifExploring Translation Framework: Language Availability
377ae0333d0f4b7b97307c9eea5ee21a.gifWhat«s new in SwiftUI for iOS 18
377ae0333d0f4b7b97307c9eea5ee21a.gifExtend your Xcode Cloud workflows
377ae0333d0f4b7b97307c9eea5ee21a.gifIs it just me or I still find SwiftUI lacking in major areas as my app scales up?
377ae0333d0f4b7b97307c9eea5ee21a.gifRunning a package from Xcode Build phase
377ae0333d0f4b7b97307c9eea5ee21a.gifUsing multi-step animations in SwiftUI
377ae0333d0f4b7b97307c9eea5ee21a.gifNavigating Accessibility: A SwiftUI vs. UIKit Comparison
gtu1iaz0-ajkbqpeq8n6dmql4zq.pngHow to quickly run your iOS app in a different language
gtu1iaz0-ajkbqpeq8n6dmql4zq.pngiOS 18 TextField Selection API — SwiftUI
gtu1iaz0-ajkbqpeq8n6dmql4zq.pngSwiftUI Custom Time Picker Like Apple Timer App
gtu1iaz0-ajkbqpeq8n6dmql4zq.pngiOS 18 TextField Selection API — SwiftUI
gtu1iaz0-ajkbqpeq8n6dmql4zq.pngXcode 16 Navigation Shortcuts in 12 Minutes
96716bcb926741e79bb1c284a88083ca.pngInjectionIII — Hot Reloading для Swift

e1a3cf2a8b65a0da69bbdd5c0ad040fe.pngAndroid

• Инструменты Android-разработчика
• Как мы победили техдолг в RuStore
• Почему умение дебажить один из самых важных навыков для разработчика
• Подробное руководство по Logcat в Android Studio с примерами
• Топ-10 вопросов о корутинах 2024
• Современные способы запуска фоновой работы в Android
• Как мы создали свой инструмент для доставки сборок Android-приложений
• Low performer в Android 2024
• Динамические свайпы с помощью ItemTouchHelper
• Как устроены аннотации в Kotlin. Часть 1
• Android: form builder на старых добрых View
• Эволюция Android тестов с Marathon Test Runner
377ae0333d0f4b7b97307c9eea5ee21a.gifWhat Are Dynamic App Shortcuts?
377ae0333d0f4b7b97307c9eea5ee21a.gifSeamless Screenshot Testing for Compose with Screenshotbot
377ae0333d0f4b7b97307c9eea5ee21a.gifUsing Lists in Compose Previews
377ae0333d0f4b7b97307c9eea5ee21a.gifThe Starter kit for Android Platform Engineering
377ae0333d0f4b7b97307c9eea5ee21a.gifAutomatic (almost) resource generation from Figma for Compose
377ae0333d0f4b7b97307c9eea5ee21a.gifHow Baseline Profile Improve Skeelo Android App Performance
377ae0333d0f4b7b97307c9eea5ee21a.gifA robust MVI implementation with Jetpack Compose
377ae0333d0f4b7b97307c9eea5ee21a.gifHow to Use ViewModel with Jetpack Compose
377ae0333d0f4b7b97307c9eea5ee21a.gifUnleashing the Debugging Magic: Cracking Android Native Shared Libraries
377ae0333d0f4b7b97307c9eea5ee21a.gif4 Strategies to Secure API keys in Android Applications
gtu1iaz0-ajkbqpeq8n6dmql4zq.pngNow in Android: 108 — Android 15 Beta 3, Google AI Studio, Gemini in Android Studio, and more
gtu1iaz0-ajkbqpeq8n6dmql4zq.pngCompose UI for… a Light Switch
gtu1iaz0-ajkbqpeq8n6dmql4zq.pngWrite your own Kotlin lint checks
gtu1iaz0-ajkbqpeq8n6dmql4zq.pngTap it! Shake it! Fling it! Sheep it! — The Compose Gesture Animations Dance
gtu1iaz0-ajkbqpeq8n6dmql4zq.pngAnimations with Jetpack Compose
gtu1iaz0-ajkbqpeq8n6dmql4zq.png7 Features in Kotlin«s Standard Library that You Might Have Overlooked
gtu1iaz0-ajkbqpeq8n6dmql4zq.png7 Kotlin Stdlib Features You Might Have Overlooked
96716bcb926741e79bb1c284a88083ca.pngScroll Block — трекер использования социальных сетей для Android
96716bcb926741e79bb1c284a88083ca.pngiCore — модульные компоненты для быстрого создания Android-приложений

malx8hbgozt6lee8rmxmg96_s6a.pngКроссплатформа

• Архитектура кроссплатформенного многомодульного приложения
• Создаем Flutter-приложение для оплаты через СБП без натива
377ae0333d0f4b7b97307c9eea5ee21a.gifWhat can I do with «Extension Types» in Dart?
377ae0333d0f4b7b97307c9eea5ee21a.gifMeasure and optimize your Flutter app size
377ae0333d0f4b7b97307c9eea5ee21a.gifFlutter: Detecting Cyclic Dependencies in a Monorepo
377ae0333d0f4b7b97307c9eea5ee21a.gifKotlin MultiPlatform vs Flutter
377ae0333d0f4b7b97307c9eea5ee21a.gifImprove Your Dart Code with Dependency Injection: Understanding Loose and Tight Coupling
377ae0333d0f4b7b97307c9eea5ee21a.gifAdvanced Theming Techniques in Flutter: Effortless Color Schemes
gtu1iaz0-ajkbqpeq8n6dmql4zq.pngHow to Share Resources in Compose Multiplatform
gtu1iaz0-ajkbqpeq8n6dmql4zq.pngExpect/Actual in Kotlin Multiplatform
gtu1iaz0-ajkbqpeq8n6dmql4zq.pngKotlin Multiplatform Alchemy: Making Gold out of Your Swift Interop
96716bcb926741e79bb1c284a88083ca.pngPeopleInSpace — люди в космосе Kotlin Multiplatform

7081c634ec176ab6b953d9d19e82a09a.pngРазработка

• Как пирамида тестирования уплывает на сторону разработки
• Подключаем GigaCode к мобильной разработке
• Как мог бы выглядеть Windows Phone в 2024
• Все софт скиллы — про преодоление страха и силу воли
• Что дальше после разработчика в Google
• Роль дизайнера в проекте
377ae0333d0f4b7b97307c9eea5ee21a.gifFrom the 80«s to 2024 — how CI tests were invented and optimized
377ae0333d0f4b7b97307c9eea5ee21a.gifProgrammers Should Never Trust Anyone, Not Even Themselves
377ae0333d0f4b7b97307c9eea5ee21a.gifOur Experience with CodeRabbit: A Game-Changer in Automated Code Review
377ae0333d0f4b7b97307c9eea5ee21a.gifSoftware Architecture is Hard
377ae0333d0f4b7b97307c9eea5ee21a.gifGetting 100% code coverage doesn«t eliminate bugs
96716bcb926741e79bb1c284a88083ca.pngAptabase — открытая аналитика для приложений

509dc9bde69347ecbe0c21ff2973d7e7.jpgАналитика, маркетинг и монетизация

• Directo упрощает прямое бронирование жилья с помощью расширения Chrome
• Маркетологи в мобайле: Ольга Бигбашева (Rendez-Vous)
• RuStore станет обязательным
• 6 шагов успешного продвижения e-commerce приложения — кейс Технопарк и Rocket10
• Google приостанавливает распространение игр на реальные деньги в Play Store
• Владельцы iPhone платят миллионы за считыватели QR-кодов
• Как я развиваю свое приложение для хранения прочитанных книг?

8538129f5e7b404a720121cb9c3814db.jpgAI, Устройства, IoT

• Как быстро растут нейросети: прогресс Stable Diffusion за все время
• KC868-M16v2: мечта ардуинщика (16 токовых каналов, 3 канала напряжения, SD, LAN, POE, дисплей, RTC и SH3x)
• Сборка и отладка прошивки IoT-модуля: Python, make, апельсины и чёрная магия
• LLM Compiler оптимизирует код и компиляторы
• Уязвимость в Rabbit R1 позволяет третьим лицам просматривать ответы ИИ
• 8 микрокомпьютеров для работы с искусственным интеллектом
• Google анонсирует новые Pixel 13 августа

← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.

Habrahabr.ru прочитано 2253 раза