Мобильная разработка за неделю #537 (29 апреля — 12 мая)

Собрали дайджест сразу за две недели — в нем материалы про Composable Architecture и новый компилятор K2, Room для Kotlin Multiplatform и будущее магазинов приложений, самые скачиваемые и зарабатывающие приложения в России в апреле, превращение игрушечного робота-доставщика в ровер и многое другое. Подключайтесь!

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

bgxayt7nhrtirt2la8ewtduwyea.png

f1930ac4945596eb9707bc7a01bc5bdc.pngiOS

• The Composable Architecture: мои 3 года использования
• Поля содержимого в SwiftUI
• Result builders in Swift
• SwiftUI уроки (часть 11)
• 38 iOS-разработчиков из примерно 65,000 подписалось на внешние платежи
• Что такое Optional в Swift — вопросы с собеседований
• Apple готовит ИИ-серверы на собственных процессорах
• Apple уточняет условия CTF и вводит правила для iPadOS
• 377ae0333d0f4b7b97307c9eea5ee21a.gifDeveloping Embedded Applications with Swift
• 377ae0333d0f4b7b97307c9eea5ee21a.gifSafely unwrap optional values in SwiftUI bindings
• 377ae0333d0f4b7b97307c9eea5ee21a.gifHow to add a privacy manifest file to your app for required reason API usage?
• 377ae0333d0f4b7b97307c9eea5ee21a.gifAsking AI to Refactor Swift Code
• 377ae0333d0f4b7b97307c9eea5ee21a.gifHow to solve problems with bitwise operators in Swift
• 377ae0333d0f4b7b97307c9eea5ee21a.gifThe ContentUnavailableView In SwiftUI
• 377ae0333d0f4b7b97307c9eea5ee21a.gifSwift 6: Access level on import statements
• 377ae0333d0f4b7b97307c9eea5ee21a.gifHow to refactor code with regular expressions
• 377ae0333d0f4b7b97307c9eea5ee21a.gif4 years of the Composable Architecture
• 377ae0333d0f4b7b97307c9eea5ee21a.gifTesting Network Layers with Stubs, Mocks, and Spies
• 377ae0333d0f4b7b97307c9eea5ee21a.gifInspectors in SwiftUI
• 377ae0333d0f4b7b97307c9eea5ee21a.gifExtracting app logs from an .xcresult
• 377ae0333d0f4b7b97307c9eea5ee21a.gifProtocols in iOS Object-Oriented Programming
• 377ae0333d0f4b7b97307c9eea5ee21a.gifSwiftUI: Multi-Stage Animation
• 377ae0333d0f4b7b97307c9eea5ee21a.gifSwiftUI Inverting A Boolean Binding
• 377ae0333d0f4b7b97307c9eea5ee21a.gifBe Careful When You Initialize a State Object
• 377ae0333d0f4b7b97307c9eea5ee21a.gifXcode Build Insights: Keep track of project compilation times
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngDesign and build apps for watchOS 10
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngMake features discoverable with TipKit
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngShare files with SharePlay
• 96716bcb926741e79bb1c284a88083ca.pngYMFF — управление фичами и фиче-флагами
• 96716bcb926741e79bb1c284a88083ca.pngSketch — простое рисование
• 96716bcb926741e79bb1c284a88083ca.pngSwiftOBD2 — набор инструментов для работы с OBD2

e1a3cf2a8b65a0da69bbdd5c0ad040fe.pngAndroid

• Как новый компилятор K2 ускоряет компиляцию Kotlin на 94%
• Anvil Utils: Assisted injection в многомодульных Android проектах без боли
• Новые коллекции в Android
• Как защитить свой код от Gemini in Android Studio
• Как зарегистрировать аккаунт разработчика в Google Play в 2024 году: пошаговая инструкция
• Всегда ли нужна чистая архитектура?
• Вышла Android Studio Jellyfish
• Android 15 позволит приложениям управлять «Режимом отхода ко сну»
• Android мигрирует с Google Fit API на Android Health
• 377ae0333d0f4b7b97307c9eea5ee21a.gifHow to effectively A/B test power consumption for your Android app«s features
• 377ae0333d0f4b7b97307c9eea5ee21a.gifKotlin Coroutine mechanisms: runBlocking v. launch
• 377ae0333d0f4b7b97307c9eea5ee21a.gifToggle Labels With Icons — Personalizing Accessibility
• 377ae0333d0f4b7b97307c9eea5ee21a.gifThe Road Less Starred: Lessons Learned from My Markdown Twain Library
• 377ae0333d0f4b7b97307c9eea5ee21a.gifWorking On A Multiple Library Project
• 377ae0333d0f4b7b97307c9eea5ee21a.gifA Step-by-Step Guide to Performing Data Analysis With Kotlin DataFrame
• 377ae0333d0f4b7b97307c9eea5ee21a.gifTools and libraries to help your Wear OS app satisfy Google Play app quality requirements
• 377ae0333d0f4b7b97307c9eea5ee21a.gifReadability of Optimized Kotlin Code
• 377ae0333d0f4b7b97307c9eea5ee21a.gifUpdate Your Compass — New Android Orientation API
• 377ae0333d0f4b7b97307c9eea5ee21a.gifJetpack Compose to Compose Multiplatform: Transition Guide
• 377ae0333d0f4b7b97307c9eea5ee21a.gifProtect your code from Gemini in Android Studio
• 377ae0333d0f4b7b97307c9eea5ee21a.gifOnly Show the Tip of the Iceberg
• 377ae0333d0f4b7b97307c9eea5ee21a.gifDispatchers — IO and Default Under the Hood
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngWhat«s new in Android Studio Jellyfish
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngNow in Android: 104 — Android Studio Jellyfish, A/B testing power consumption, AndroidX, and more
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngLearn to Build a Multi-Module Running Tracker App + Wear OS App
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngThree Simple Rules for Subtypes
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngReversing a Bluetooth LE gadget protocol
• 96716bcb926741e79bb1c284a88083ca.pngSurvey View — опросы и анкеты на Jetpack Compose
• 96716bcb926741e79bb1c284a88083ca.pngKafka — читайте, слушайте и скачивайте книги

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

• Room для Kotlin Multiplatform. Пробуем нативное решение
• Интерфейсы для конструкторов в Dart
• Тестирование веб-приложений Flutter с помощью Selenium
• Особенности const в Dart и Flutter
• Microsoft прекращает поддержку Xamarin и Xamarin.Forms
• Google проводит сокращения в командах Flutter, Dart и Python
• 377ae0333d0f4b7b97307c9eea5ee21a.gifJetpack Compose for iOS: Interoping with native Components
• 377ae0333d0f4b7b97307c9eea5ee21a.gifCreating a React Native «Curved Bottom Bar» with Handwritten SVG
• 377ae0333d0f4b7b97307c9eea5ee21a.gifHow to publish a Kotlin Multiplatform Android app on Play Store with GitHub Actions
• 377ae0333d0f4b7b97307c9eea5ee21a.gifUsing Jetpack Room in Kotlin Multiplatform shared code
• 377ae0333d0f4b7b97307c9eea5ee21a.gifHow to Get User Feedback in Flutter
• 377ae0333d0f4b7b97307c9eea5ee21a.gifRoad Fighter Compose — Kotlin Multiplatform Port
• 377ae0333d0f4b7b97307c9eea5ee21a.gifMastering Deep Linking: A Comprehensive Guide for Flutter Developers
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngShow Info Message on both Android/iOS — MessageBar KMP Library

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

• Как мы в 4 раза ускорили мобильную версию ВКонтакте
• Самые высокооплачиваемые вакансии апреля в сфере разработки приложений
• Stack Overflow заключает соглашение с OpenAI о предоставлении данных для моделей
• Будущее магазинов приложений
• 100% способ пройти собеседование
• Как увеличить свою продуктивность. Полный гайд по Notion
• 377ae0333d0f4b7b97307c9eea5ee21a.gif5 tips for a successful (iOS) take-home project
• 377ae0333d0f4b7b97307c9eea5ee21a.gifCase Study: Designing a Financial Advisory Platform UX and UI
• 377ae0333d0f4b7b97307c9eea5ee21a.gif3 Critical Skills You Need to Grow Beyond Senior Levels in Engineering
• 377ae0333d0f4b7b97307c9eea5ee21a.gifThe Sound of Software
• 377ae0333d0f4b7b97307c9eea5ee21a.gifTech Interview Handbook
• 377ae0333d0f4b7b97307c9eea5ee21a.gifThe Personal Productivity Tech Stack

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

• Самые скачиваемые и зарабатывающие приложения в России в апреле 2024
• Большой гид по гиперказуальным играм: от механик до монетизации
• Выход сериал Fallout привел к значительному росту доходов мобильной игры
• В LinkedIn добавили игры
• Как увеличить возврат инвестиций в продвижение на 657%: кейс bush.production и «Арабикл»
• Приложения для знакомств быстро растут
• У Airbnb лучший по загрузкам квартал в истории

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

• Как превратить игрушечного робота-доставщика в ровер с беспроводным управлением через мобильное приложение
• Универсальный контроллер моторов на ARM Cortex-M85. Трассировка

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

© Habrahabr.ru