Мобильная разработка за неделю #534 (8 — 14 апреля)

В нашем новом дайджесте не страшный Accelerate и MVVM без M, жизнь после отвала eMMC и инъекции зависимостей в Compose, история успеха Flutter, проблемы маленьких приложений, 900 самых популярных инструментов ИИ на базе open source и многое другое. Подключайтесь!

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

zmdkt1ivmi_f_3yhqr9lzihwg7y.png

f1930ac4945596eb9707bc7a01bc5bdc.pngiOS

• Убираем M из MVVM в SwiftUI
• Почему Accelerate — это не страшно
• Продление подписки Apple Developer from Russia в апреле 2024 без иностранной карты и сэкономить пару тройку тысяч рублей
• Зачем мне Kotlin в iOS-разработке? Я только Swift выучил!
• Как дизайнить доступность для скринридера
• Анимация чисел в SwiftUI с помощью contentTransition
• Поваренная книга SwiftUI: создание текстовых полей в SwiftUI
• Apple Vision Pro не пользуется популярностью у разработчиков
• Правила App Store разрешили эмуляторы и внешние ссылки для стриминга
• 377ae0333d0f4b7b97307c9eea5ee21a.gifGet Started with Embedded Swift on ARM and RISC-V Microcontrollers
• 377ae0333d0f4b7b97307c9eea5ee21a.gifQuick and Painless Persistency on iOS
• 377ae0333d0f4b7b97307c9eea5ee21a.gifIn Search of a Smooth Scroll
• 377ae0333d0f4b7b97307c9eea5ee21a.gifApp Store Subscriptions and Family Sharing
• 377ae0333d0f4b7b97307c9eea5ee21a.gifTrigger value pattern in SwiftUI
• 377ae0333d0f4b7b97307c9eea5ee21a.gifApply pinch to zoom to any view in SwiftUI
• 377ae0333d0f4b7b97307c9eea5ee21a.gifPassing One SwiftUI View as a Parameter to Another SwiftUI View
• 377ae0333d0f4b7b97307c9eea5ee21a.gifDisplay empty states with ContentUnavailableView in SwiftUI
• 377ae0333d0f4b7b97307c9eea5ee21a.gifLevel Up Your Career by Adding UI Tests to Your SwiftUI App
• 377ae0333d0f4b7b97307c9eea5ee21a.gifWhy StateObject«s need to be marked as private in SwiftUI?
• 377ae0333d0f4b7b97307c9eea5ee21a.gifI made an old-style keyboard in Swift
• 377ae0333d0f4b7b97307c9eea5ee21a.gifThe Best Example of Leveraging iOS Widget Potential: Duolingo
• 377ae0333d0f4b7b97307c9eea5ee21a.gifDeep linking for local notifications in SwiftUI
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngCocoaHeadsNL Meetup
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngCreating The DVD Screensaver In SwiftUI
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngFlip Book Effect — SwiftUI
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngAnimating Swift Charts
• 96716bcb926741e79bb1c284a88083ca.pngOpenSwiftUI — открытая реализация SwiftUI
• 96716bcb926741e79bb1c284a88083ca.pngSwiftUI Environment Overrides — QA-ассистент для SwiftUI

e1a3cf2a8b65a0da69bbdd5c0ad040fe.pngAndroid

• Как я написал клиент электронного дневника своей области
• Осваиваем ViewModel в Android: «можно» и «нельзя» — Часть 2
• Жизнь после отвала eMMC. Часть 2: даём новую жизнь устройствам с полностью мёртвой памятью. Загружаем Android с MicroSD
• Инъекция зависимостей в Compose
• Введение в Trio: часть 2
• Разворачиваем ML модель с использованием ONNX на Android в километре над землей
• Как я курсовую писал на gRPC+REST в связке с клиентом на Android+Jetpack Compose
• Создание собственного ключа Android приложения
• HomeAssistant на Android
• Разработка новостного приложения. Часть 5. Подготовка к публикации в Google Play
• Экзоскелет для ExoPlayer
• Вышла первая бета-версия Android 15
• Studio Bot превращается Gemini in Android Studio
• Google запускает новую сеть Find My Device в США и Канаде
• 377ae0333d0f4b7b97307c9eea5ee21a.gifTechnical Debt Undermines Android Application Development
• 377ae0333d0f4b7b97307c9eea5ee21a.gifNavigating the Waters of Kotlin Multiplatform: Exploring Navigation Solutions
• 377ae0333d0f4b7b97307c9eea5ee21a.gifImproving dependency sync speeds for your Gradle project
• 377ae0333d0f4b7b97307c9eea5ee21a.gifOCR with Gemini LLM on Android
• 377ae0333d0f4b7b97307c9eea5ee21a.gifHow to Implement Biometric Authentication with Jetpack Compose and AES Encryption
• 377ae0333d0f4b7b97307c9eea5ee21a.gifAndroid Architecture & Design Interview Questions & Answers
• 377ae0333d0f4b7b97307c9eea5ee21a.gifEnable users to share your app«s deep links using navigation-recents-url-sharing
• 377ae0333d0f4b7b97307c9eea5ee21a.gifPublishing Android, Java or Kotlin Libraries with AWS CodeArtifact
• 377ae0333d0f4b7b97307c9eea5ee21a.gifSpotify-Inspired Audio Buffering Slider Animation with Jetpack Compose
• 377ae0333d0f4b7b97307c9eea5ee21a.gifHow Kotlin Annotations Work — Part 2: Moshi Case Study
• 377ae0333d0f4b7b97307c9eea5ee21a.gifWhat«s new in Kotlin 2.0.0-RC1
• 377ae0333d0f4b7b97307c9eea5ee21a.gifKotlin — Sealed classes vs Sealed interface
• 377ae0333d0f4b7b97307c9eea5ee21a.gifModern Android App Template with Jetpack Compose
• 377ae0333d0f4b7b97307c9eea5ee21a.gifFoundational Tools in Android
• 377ae0333d0f4b7b97307c9eea5ee21a.gifImplementing Critical Alerts on Android
• 377ae0333d0f4b7b97307c9eea5ee21a.gifMastering SOLID Principles in Android App Development for Maintainable Code
• 377ae0333d0f4b7b97307c9eea5ee21a.gifImplement Pinch-to-Zoom for your Image Grids by Jetpack Compose
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngDoes Native Android Development Have a Future?
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngSealed Classes for UI State are an ANTI-PATTERN
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngBuilding a Speedometer widget using Jetpack Compose Canvas API
• gtu1iaz0-ajkbqpeq8n6dmql4zq.pngBuilding Quality Android Apps for the Future with Continuous Integration
• 96716bcb926741e79bb1c284a88083ca.pngEinkBro — маленький быстрый браузер для Eink
• 96716bcb926741e79bb1c284a88083ca.pngTap Target Compose — показ новых фич в Compose

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

• И полгода не прошло: релиз Qt 6.7 и Qt Creator 13. Что нового и что изменилось?
• Flutter: история успеха
• Реализация pin code во Flutter приложении
• Как мы сделали ставку на KMP
• 377ae0333d0f4b7b97307c9eea5ee21a.gifHow to implement your design system in a Flutter app
• 377ae0333d0f4b7b97307c9eea5ee21a.gifThe Dart Speed
• 377ae0333d0f4b7b97307c9eea5ee21a.gifShorebird 1.0 — Update your Flutter apps instantly
• 377ae0333d0f4b7b97307c9eea5ee21a.gifThe journey of writing a new package
• 377ae0333d0f4b7b97307c9eea5ee21a.gifReact Native App performance is a myth?
• 377ae0333d0f4b7b97307c9eea5ee21a.gifClean Architecture and state management in Flutter: a simple and effective approach

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

• Может ли мобильный-разработчик стать CTO?
• Разработка на основе заголовков
• Huawei продвигает собственную ОС и планирует дистанцироваться от Android, Windows и других операционных систем
• Как дизайнеру и любителю технологий жить после Apple Vision Pro
• Мобильный UX/UI дизайн: 10 лайфхаков для создания безупречных мобильных приложений
• Проблемы маленьких приложений при увеличении нагрузки по данным
• Как выжать все соки из Jenkins
• Убиваем Lottie? Тащим Rive?
• Вся правда про удаленку
• Зачем нужен Zig, и чем он отличается от других языков
• 377ae0333d0f4b7b97307c9eea5ee21a.gifHello World: A deep dive into the world of abstraction behind a modern Hello World program
• 377ae0333d0f4b7b97307c9eea5ee21a.gifFear makes you a worse programmer
• 377ae0333d0f4b7b97307c9eea5ee21a.gifImproving Code Reviews with Storytelling
• 377ae0333d0f4b7b97307c9eea5ee21a.gifAre You Doing Product Management or Bullshit Management?
• 377ae0333d0f4b7b97307c9eea5ee21a.gifChronon, Airbnb«s ML Feature Platform, Is Now Open Source
• 377ae0333d0f4b7b97307c9eea5ee21a.gifBottom Tab Bar Navigation Design Best Practices
• 96716bcb926741e79bb1c284a88083ca.pngPumpkinOS — открытая реализация PalmOS

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

• Приложение для наблюдения за затмением вышло в чарты App Store и Google Play
• Психология в UX/UI дизайне: 10 принципов, повышающих вовлеченность и удержание
• Vids — новый инструмент для продуктивной работы от Google
• Вышел 2024 App Marketing Trends Report
• Много лиц и одна проблема: каким бывает мошенничество в рекламе и чем отличаются боты от реальных людей в 2024 году 
• 377ae0333d0f4b7b97307c9eea5ee21a.gifNavigating SKAdNetwork: Build Your Game«s Conversion Schema in 4 Easy Steps

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

• Я изучила 900 самых популярных инструментов ИИ на базе open source — и вот что обнаружила
• Открываем YandexART API и рассказываем, как мы учили нейросеть создавать картинки, которые понравятся людям
• Умная квартира начальника: хотел всё на Z-Wave и Алисе, но решил сэкономить
• Распознавание лиц на микрокомпьютерах
• Исследователи Apple разработали LLM, которая понимает интерфейс приложений
• Google представил собственный процессор Axion для ИИ

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

© Habrahabr.ru