Мобильная разработка за неделю #533 (1 — 7 апреля)

В новом выпуске динамические фреймворки и роботы Apple, Telegram на Android-смартфоне 14-летней давности, игра в безопасность, скрытые сокровища интерфейсного дизайна, самые скачиваемые и зарабатывающие приложения в России в марте, фальшивая социальная сеть, которая сама ставит вам лайки, и многое другое! Подключайтесь!

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

g8pqd2pgw_cr2-0zvol_9r0iaxs.jpeg

f1930ac4945596eb9707bc7a01bc5bdc.pngiOS

• Сделайте ваше iOS-приложение меньше с помощью динамических фреймворков
• SwiftUI: архитектура State-Model-View
• Протокол Identifiable в SwiftUI с примерами
• Apple Vision Pro: обзор платформы и создание первого мобильного приложения
• Сборка приложения для AppStore. Используем Jenkins, Fastlane, TestFlight
• Что такое Retain Cycle: вопросы с собеседований
• Apple занялась домашней робототехникой
• AltStore выходит на iOS и добавляет оплату через Patreon
• Осваиваем ViewThatFits. Часть 2
• TipKit чтобы подсветить функции в приложении
• 377ae0333d0f4b7b97307c9eea5ee21a.gifRecreating Apple«s beautiful visionOS search bar
• 377ae0333d0f4b7b97307c9eea5ee21a.gifSwift Isolation Intuition
• 377ae0333d0f4b7b97307c9eea5ee21a.gifUsing closures for dependencies instead of protocols
• 377ae0333d0f4b7b97307c9eea5ee21a.gifHow to avoid using AnyView in SwiftUI
• 377ae0333d0f4b7b97307c9eea5ee21a.gifBuilding async button in SwiftUI
• 377ae0333d0f4b7b97307c9eea5ee21a.gifHow Tuist migrated from GitHub Actions to Codemagic for faster and more reliable CI
• 377ae0333d0f4b7b97307c9eea5ee21a.gifWhy Switching From Xcode to Neovim Can Become The Best Decision You Ever Made
• 377ae0333d0f4b7b97307c9eea5ee21a.gifOpen Letter to Tim Cook: Please fix Xcode (Daily basis pain of the Apple developers)
• 377ae0333d0f4b7b97307c9eea5ee21a.gifTrigger value pattern in SwiftUI
• 377ae0333d0f4b7b97307c9eea5ee21a.gifDecoding JSON with Dynamic Types in Swift
• 377ae0333d0f4b7b97307c9eea5ee21a.gifHow to create a custom label style that only tints the label icon
• 377ae0333d0f4b7b97307c9eea5ee21a.gifUnlocking the Magic of visionOS
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngLet«s Build Interactive Floating Action Button — SwiftUI
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngHow to easily test Push Notifications in the iOS simulator
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngRebuild Bumble in SwiftUI
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngSwiftUI Limited TextField With Indicator
• 96716bcb926741e79bb1c284a88083ca.pngisowords: игра в слова на Composable Architecture
• 96716bcb926741e79bb1c284a88083ca.pngGifu: высокопроизводительная поддержка анимированных GIF в Swift

e1a3cf2a8b65a0da69bbdd5c0ad040fe.pngAndroid

• Сам себе экосистема. Часть 4: как я реализовал клиент Telegram на Android-смартфоне 14-летней давности?
• Конструкторы-самозванцы в Kotlin
• Игра в безопасность Android-приложений
• Введение в Trio
• Как протестировать Android-приложение, которому требуются разрешения
• Глобальные события в мобильном приложении
• Жизненный цикл Activity приложения: базовые принципы и понятия
• Accessibility Scanner в Android
• Как работает Android Work Profile
• Разбор кода магазина приложений
• Опыт, Java vs Kotlin и работа со списками
• Android 15 готовит улучшенный десктопный режим
• 377ae0333d0f4b7b97307c9eea5ee21a.gifKotlin: An Illustrated Guide — Generics
• 377ae0333d0f4b7b97307c9eea5ee21a.gifStyling Internationalized Text in Jetpack Compose
• 377ae0333d0f4b7b97307c9eea5ee21a.gifHow to safely update state in your Kotlin apps
• 377ae0333d0f4b7b97307c9eea5ee21a.gifFun with the circle shape in Compose
• 377ae0333d0f4b7b97307c9eea5ee21a.gifIntroduction to using Kotlin Serialization
• 377ae0333d0f4b7b97307c9eea5ee21a.gifUnderstanding Window Insets in Jetpack Compose
• 377ae0333d0f4b7b97307c9eea5ee21a.gifJetpack Compose Navigation with MVVM+Dependency Injection Koin
• 377ae0333d0f4b7b97307c9eea5ee21a.gifHow Kotlin Annotations Work
• 377ae0333d0f4b7b97307c9eea5ee21a.gifJetpack Compose: BringIntoViewRequester
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngNow in Android: 102 — Google I/O 2024, Women«s History Month, Vulkan on Android, and more
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngDON«T Make This Clean Architecture Packaging Mistake
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngImproving Video Playback with ExoPlayer
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngEvery Kind of Class in Kotlin
• 96716bcb926741e79bb1c284a88083ca.pngGreenStash: экономия денег в Modern Android Development
• 96716bcb926741e79bb1c284a88083ca.pngCompose Rich Editor: редактор текста для Jetpack Compose и Compose Multiplatform
• 96716bcb926741e79bb1c284a88083ca.pngKeyguard: красивый клиент Bitwarden

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

• Распознавание виджетов на экране приложения Flutter
• Как Compose Multiplatform for iOS может убить Flutter?
• 377ae0333d0f4b7b97307c9eea5ee21a.gifString resources API for Compose Multiplatform
• 377ae0333d0f4b7b97307c9eea5ee21a.gifMoving build_runner to the Context Menu in VS Code
• 377ae0333d0f4b7b97307c9eea5ee21a.gifMastering Redux: Seamless UI Updates in React Native Apps
• 377ae0333d0f4b7b97307c9eea5ee21a.gifHow to Create Integration Tests in Flutter
• 377ae0333d0f4b7b97307c9eea5ee21a.gifBuild your .NET MAUI Android application with Azure DevOps

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

• KMP, догфудинг и велосипеды в стартапе американской версии «Кухни на районе»
• Как UX/UI дизайнеру улучшить UI Kit: 10 конкретных советов
• Скрытые сокровища интерфейсного дизайна: 10 не популяризованных UI элементов, способных улучшить взаимодействие
• Открытое алгоритмическое собеседование
• Как разрабатывать Яндекс Маркет, обеспечивать качество и работать с BDUI
• Собеседование продуктового аналитика в Авито
• Дата/время
• Релокация в UK
• Среды разработки JetBrains получили дополнение кода с помощью ИИ
• 377ae0333d0f4b7b97307c9eea5ee21a.gifCase Study: Challenge to Design Investment UX for 90 Million Users
• 377ae0333d0f4b7b97307c9eea5ee21a.gif3 tips for less flaky Maestro tests
• 377ae0333d0f4b7b97307c9eea5ee21a.gifThe 14 pains of building your own billing system
• 377ae0333d0f4b7b97307c9eea5ee21a.gifHow Disney+ Scaled to 11 Million Users on Launch Day
• 377ae0333d0f4b7b97307c9eea5ee21a.gifHow we built Text-to-SQL at Pinterest
• 377ae0333d0f4b7b97307c9eea5ee21a.gifDisney«s 12 principles of animation, exemplified in UX design
• 377ae0333d0f4b7b97307c9eea5ee21a.gifAsking for help is a core developer skill

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

• Самые скачиваемые и зарабатывающие приложения в России в марте 2024
• Palmsy — фальшивая социальная сеть, которая сама ставит вам лайки
• Самые зарабатывающие приложения в феврале 2024
• Propensity score matching: как оценивать маркетинговые кампании, если невозможно провести A/B тесты
• Rooms, приложение для 3D-дизайна и «уютная игра», получила крупное обновление
• Яндекс представил Yandex Mobile Ads SDK 7
• Маркетологи в мобайле: Даниил Коляда (Head of Mobile Marketing, Fonbet)
• Storiaverse запускает приложение для коротких рассказов, объединяющее анимацию и текст

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

• Управляем умным домом Home Assitant через Алису и без интернета. Часть 1
• Как сделать автоматический полив: грунт и гидропоника
• Анализ новостей с помощью сегментации и кластеризации временных рядов
• Система мониторинга температуры в теплицах (Telegram, 1С, Yandex Алиса, Excel и голосовое оповещение)
• ИИ-агенты Replit Teams помогут писать и исправлять код
• Apple представила ReALM — новую ИИ-модель, которая может сделать Siri намного быстрее и умнее

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

© Habrahabr.ru