Мобильная разработка за неделю #556 (16 — 22 сентября)

В нашем новом дайджесте виджеты iOS 18 и шаблоны проектирования SwiftUI, Flappy Bird на Си для Android и заблуждение UseCase, магия ссылок, нативный Swift на Android, крадем впрок как художники и многое другое. Подключайтесь!

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

ic7_jk-sdlwqqhpa8bd6grgxo_e.png

f1930ac4945596eb9707bc7a01bc5bdc.pngiOS

• Готовый компонент UI свайп-панели c добавлением scrollView, и других элементов ui. (iOS Swift)
• Шаблоны проектирования для SwiftUI
• Использование трейтов для аннотирования и настройки поведения тестов
• Виджеты iOS 18: добавляем поддержку tint color
• ЕС укажет Apple, как обеспечить совместимость с DMA
377ae0333d0f4b7b97307c9eea5ee21a.gifThe weirdest Core Data crash I have seen
377ae0333d0f4b7b97307c9eea5ee21a.gifEfficient Multithreading in iOS with Swift
377ae0333d0f4b7b97307c9eea5ee21a.gifNotifications Your App can use to Increase Activation and Retention
377ae0333d0f4b7b97307c9eea5ee21a.gifThread safety with Mutex in Swift 6
377ae0333d0f4b7b97307c9eea5ee21a.gifOptimizing Your iOS Project Setup with Xcodegen and SwiftGen
377ae0333d0f4b7b97307c9eea5ee21a.gifUsing Traits to annotate and customize test behavior
377ae0333d0f4b7b97307c9eea5ee21a.gif +The Power of Custom ShapeStyle for SwiftUI Theming
377ae0333d0f4b7b97307c9eea5ee21a.gifRecreating Readable Content Guide Sizing in SwiftUI
377ae0333d0f4b7b97307c9eea5ee21a.gifWhat«s New in SwiftUI for iOS 18
377ae0333d0f4b7b97307c9eea5ee21a.gifAnnouncing Swift 6
377ae0333d0f4b7b97307c9eea5ee21a.gifMastering Data Binning with Swift Charts
377ae0333d0f4b7b97307c9eea5ee21a.gifDiscovering app features with TipKit. Groups
377ae0333d0f4b7b97307c9eea5ee21a.gifAVAudioEffectNode: painless low level audio effects written in Swift
377ae0333d0f4b7b97307c9eea5ee21a.gifIntegrating 3rd-Party AI on Apple Platforms
377ae0333d0f4b7b97307c9eea5ee21a.gifBuilding Intelligent Apps with Apple AI Models
gtu1iaz0-ajkbqpeq8n6dmql4zq.pngLet«s Create Chips UI With iOS 18 APIs
gtu1iaz0-ajkbqpeq8n6dmql4zq.pngSo, Let«s create a Splash Screen | SwiftUI
gtu1iaz0-ajkbqpeq8n6dmql4zq.pngDiscover 3 new features of Xcode 16
gtu1iaz0-ajkbqpeq8n6dmql4zq.pngSwiftData Previews: PreviewModifier in SwiftUI (iOS 18)
gtu1iaz0-ajkbqpeq8n6dmql4zq.pngColor Mixing in iOS 18
gtu1iaz0-ajkbqpeq8n6dmql4zq.pngEnhance App UI Animations with these 4 Modifiers
96716bcb926741e79bb1c284a88083ca.pngAppState — эффективное управление состоянием и инъекция зависимостей для Swift 6
96716bcb926741e79bb1c284a88083ca.pngLinkNavigator — простая и мощная навигация для SwiftUI
96716bcb926741e79bb1c284a88083ca.pngAnimatedImage — анимация изображений в Swift и SwiftUI

e1a3cf2a8b65a0da69bbdd5c0ad040fe.pngAndroid

• Flappy Bird на Си для Android весом APK всего 92 Килобайта
• Заблуждение UseCase: что нужно знать Android-разработчикам
• Магия ссылок Системы быстрых платежей
• Создаем мерцающий текст в Jetpack Compose
• Gradle Convention Plugins: как облегчить себе жизнь и уменьшить boilerplate в gradle-файлах
• Взаимодействие с клавиатурой в Compose: особенности и подводные камни
• Улучшаем автокомплит в смешанных Java-Kotlin проектах
• Приложение, идентичное натуральному: 7 способов прокачать свой pet-проект
• Создание плагинов и переиспользуемых частей в .gradle.kts-файлах и Kotlin extension-функциях
• Нативные библиотеки для Android
• Заработок на Open Source. Decompose. Будущее KMP. Аркадий Иванов
• Бессмертное приложение
• Укрощаем UDF state-based архитектуры. Реальные кейсы в больших приложениях
377ae0333d0f4b7b97307c9eea5ee21a.gifExploring Lifecycle-Aware Service and FirebaseMessagingService on Android
377ae0333d0f4b7b97307c9eea5ee21a.gifAndroid 15: New Features for Android Developers
377ae0333d0f4b7b97307c9eea5ee21a.gifTop 10 MVVM Mistakes We All Have Made
377ae0333d0f4b7b97307c9eea5ee21a.gifHow to build fully custom Jetpack Compose Bottom Sheets without using Material Compose
377ae0333d0f4b7b97307c9eea5ee21a.gifAndroid: Catching NDK crashes
377ae0333d0f4b7b97307c9eea5ee21a.gifRxJava to Kotlin Coroutines: The Ultimate Migration Guide
377ae0333d0f4b7b97307c9eea5ee21a.gifView State Management & Coordination with Compose on Android
377ae0333d0f4b7b97307c9eea5ee21a.gifForecasting weather with Open-Meteo API using Jetpack Compose
377ae0333d0f4b7b97307c9eea5ee21a.gifClean Strings Handling in Android
377ae0333d0f4b7b97307c9eea5ee21a.gifDesign Server-Driven UI with Jetpack Compose and Firebase
377ae0333d0f4b7b97307c9eea5ee21a.gifAndroid App Security Checklist for Developers
377ae0333d0f4b7b97307c9eea5ee21a.gifHow We Managed to Send Events Sequentially with Rate Limiting And Controlling Each Event?
gtu1iaz0-ajkbqpeq8n6dmql4zq.pngComplement your media editing pipeline with Jetpack Media3
gtu1iaz0-ajkbqpeq8n6dmql4zq.pngAndroid 15 Launch, a special guest spotlight, and more — Google Developer News September 2024
gtu1iaz0-ajkbqpeq8n6dmql4zq.pngThe ONLY Correct Way to Load Initial Data In Your Android App?
gtu1iaz0-ajkbqpeq8n6dmql4zq.pngSave User Credentials With the Google Credential Manager — Android Studio Tutorial
gtu1iaz0-ajkbqpeq8n6dmql4zq.pngOvercoming Unsecurities in WebViews
gtu1iaz0-ajkbqpeq8n6dmql4zq.pngBeyond The Success Of Kotlin
gtu1iaz0-ajkbqpeq8n6dmql4zq.pngJetpack Compose For Beginners — Crash Course 2024
96716bcb926741e79bb1c284a88083ca.pngAccrescent — безопасный магазин приложений для Android
96716bcb926741e79bb1c284a88083ca.pngMeasure — мониторинг мобильных приложений.

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

Нативный Swift на Android: установка, компиляция, запуск и тестирование
• Анализ InheritedWidget’а в Flutter
• Flutter Hot Reload: Что под капотом?
• Compute — волшебная пилюля?
• Ещё одна статья про макросы. Часть 2 + Часть 1
• React Native Splash Screen — поддержка разных тем
• Упрощение управления формами во Flutter с помощью пакета FForm
• Flutter Dev Podcast #47: CrossConf Awards
377ae0333d0f4b7b97307c9eea5ee21a.gifHow to Add a Splash Screen to a Compose Multiplatform App
377ae0333d0f4b7b97307c9eea5ee21a.gifGarbage Collector in KMP
377ae0333d0f4b7b97307c9eea5ee21a.gifFlutter vs Native: Why Flutter Wins for TV App Development
377ae0333d0f4b7b97307c9eea5ee21a.gifGarbage Collector in KMP
377ae0333d0f4b7b97307c9eea5ee21a.gifA Startup Guide to Ship Mobile App Faster Using Flutter
377ae0333d0f4b7b97307c9eea5ee21a.gifExploring Kotlin Multiplatform: A Visual Guide
377ae0333d0f4b7b97307c9eea5ee21a.gifKMP (Kotlin Multiplatform) AndroidX Room setup and more
377ae0333d0f4b7b97307c9eea5ee21a.gifBuilding A Custom Design System in Compose Multiplatform
377ae0333d0f4b7b97307c9eea5ee21a.gif10 Common Flutter Mistakes and How to Avoid Them
377ae0333d0f4b7b97307c9eea5ee21a.gifExtracting Original Values from CValue in Kotlin Multiplatform: The Power of memScope

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

• Основы BDUI для продуктовых дизайнеров. Шпаргалка
• Вашей компании нужны junior разработчики
• Как следить за состоянием мобильного приложения?
• Реализация push-уведомлений из web в мобильное приложение для новичков
• Что можно улучшить в приложении? Часть 3. Крадем как художники у Впрок
• Почему надо «проектировать дважды»
• Грейд в IT
• Как устроен Yandex Mobile Ads SDK
• Паттерны SDUI
• Почему мы продолжаем срывать сроки проектов
• Какая JVM лучшее всех? Java, JVM Architecture, GraalVM, HotSpot JVM
377ae0333d0f4b7b97307c9eea5ee21a.gifUsing feature flags in GraphQL
377ae0333d0f4b7b97307c9eea5ee21a.gifDecoding Mobile Crashes: A Comparative Guide for Android and iOS
377ae0333d0f4b7b97307c9eea5ee21a.gifGood software development habits
377ae0333d0f4b7b97307c9eea5ee21a.gifYou«ve only added two lines — why did that take two days!
377ae0333d0f4b7b97307c9eea5ee21a.gifShould we decompose our monolith?
377ae0333d0f4b7b97307c9eea5ee21a.gifHow to Measure Progress in a Software Project
377ae0333d0f4b7b97307c9eea5ee21a.gifStop Designing Your Web Application for Millions of Users When You Don«t Even Have 100
gtu1iaz0-ajkbqpeq8n6dmql4zq.pngHow Optimizations made Mario 64 SLOWER
gtu1iaz0-ajkbqpeq8n6dmql4zq.pngSecuring API Servers Course

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

• Photon Library за $5 возвращает старые «Фото» для iOS
• Nurture обучает детей важным жизненным навыкам с помощью интерактивных игр и развлечений
• SocialAI — ИИ-социальная сеть для одного человека
• Продвижение побочных проектов с помощью контент-ориентированной разработки
• Soundiiz — простой инструмент для передачи плейлистов между музыкальными сервисами
• Самые скачиваемые и зарабатывающие приложения в мире в августе 2024
• Как не заблудиться в четырех соснах: выбираем способ найти причинно-следственную связь без экспериментов
377ae0333d0f4b7b97307c9eea5ee21a.gifHow to Improve Retention: The Ultimate Guide for Product Managers and Leaders

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

• Как эволюционировало машинное зрение автономного транспорта. Доклад Яндекса
• Bluetooth-маяки, есть ли от них польза?
• Mistral запускает бесплатный уровень для разработчиков
• Новые очки Spectacles стали немного ближе к хорошему AR
• Slack превращается в хаб для ИИ-агентов

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

© Habrahabr.ru