В новом дайджесте разбираемся со SwiftData и кодом доставки пиццы, изучаем в будущее swift-testing и мастерстве программирования, обманываем на технических собеседованиях с помощью ChatGPT, определяем самые скачиваемые и зарабатывающие приложения в России в январе и многое другое!

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



iOS

• Кто ты, SwiftData
• Ранний взгляд на будущее тестирования с swift-testing
Уменьшаем boilerplate с помощью Swift Macros
• Стеки и Очереди в Swift
• Вопросы с собеседований: Что такое модификатор памяти weak в Swift
• Как поддерживать недельный релизный цикл и ничего не забывать
• Записываем видео App Preview в симуляторе Xcode
• Поваренная книга SwiftUI: использование AppStorage и SceneStorage для хранения состояния
•  Remaking the app store
•  Case insensitive string comparison in Swift
•  Support Swift macros with CocoaPods
•  Demystifying Parameterized Protocols in Swift
•  Scaling iOS at Bumble
•  Migrating Our iOS Build System from Buck to Bazel
•  Oversimplifying SwiftUI View Code using ViewState and SwiftUI’s ViewBuilder
•  Swift Developer Roadmap 2024: With 7 Samples App
•  Building a Dynamic TreeView in SwiftUI
•  The Swift Method Dispatch Deep Dive
•  App Preview Videos Capturing using the Xcode simulator
•  Building Modular iOS Apps: A Guide to SPM, MVVM, SwiftUI, and Combine/Async-Await
•  Apple to require Xcode 15 for App Store submissions staring April 29
•  Setting up SharePlay on an iOS app
•  Bad practice: using .lowercased() to compare strings
•  Swiggy iOS interview experience
•  SwiftUI Hero Animation with Matched Geometry Effect
•  Using SwiftNIO — Channels
•  The power of self-sufficient features
•  What is @testable Annotation in Swift?
•  First thoughs about The Composable Architecture in iOS
•  Building a Passcode Lock Screen in SwiftUI: A Step-by-Step Guide
•  SwiftUI: Stretchy Slider Like in iOS 17
•  How To Save A Struct In SwiftData
•  Introducing Vortex: High-performance particle effects for SwiftUI
•  PencilKit and SwiftUI: Build a Collaborative Drawing App
•  SwiftUI: Universal Hero Effect
•  Glur: прогрессивный блюр для SwiftUI
•  WhisperKit: распознавание речи с помощью Whisper

Android

• Копаемся в встроенном приложении камеры старого Xiaomi. Часть 1
• Разбор кода приложения по доставке пиццы
• Запускаем автотесты Android на EMCEE
• Android 15 готовится облегчить использование смартфона для пожилых
• Работаем с размером шрифта для обеспечения доступности
•  Performance In Jetpack Compose — Stability & Immutability
•  Creating Anvil-like annotation for Hilt using KSP
•  Preview Jetpack Compose Views in Seconds
•  Kotlin Flows Animated
•  Timing API: Mastering Time with Kotlin
•  Translucent Status Bar with Edge-To-Edge Jetpack Compose
•  Accessibility Amplified: A Journey to Inclusive Android Apps
•  Exploring Jetpack Compose: Aspect Ratio Modifier
•  Extended ADB: En Vogue
•  Font Size Considerations for Accessibility
•  Graceful Exits: Implementing Close Confirmation for Jetpack Compose ModalBottomSheet
•  Kotlin’s Sealed Interfaces in Android
•  Jetpack Compose ? Beginner’s Series
•  Android Interview Questions: 2024
•  Pixel Perfect: Designing for Every Screen, Every Fold
•  On-Device Machine Learning In Android: Frameworks and Ecosystem
•  Now in Android: 99 — Jetpack Compose, Google AI on Samsung Galaxy, Play recovery tools, and more
•  The Ultimate Beginners Guide to Realm DB on Android (CRUD with Multi-Relations)
•  How to Implement Swipe to Delete with Material3
•  Intersection Types in Kotlin
•  Android UI with TwoPane Composable — Drag, Split, & RTL Magic
•  One-Time Events, StateFlow VS. Channel
•  Podcaster: реализация Jetpack Media3 в реальном приложении
•  Apk.sh: реврерс-инжиниринг Android-приложений

Кроссплатформа

• Реализация чата на Flutter при помощи вебсокетов
• Как создать shader в Flutter для эффектной анимации в приложении?
• Как с помощью ChatGPT реализовать раскраску во Flutter
• Раскраска SVG картинки во Flutter, и почему я решил отключить Impeller
• Практическая реализация паттерна Server-Driven UI на Flutter c использованием фреймворка Duit
Более правильный подход к подключению Yandex AppMetrica в React Native приложении
•  Experimenting with Composable Presenters in Kotlin Multiplatform
•  Creating a Figma clone app with Flutter and Supabase
•  How to use Resources in Compose Multiplatform
•  Flutter Testing: A Comprehensive Guide to Unit, Widget, and Integration Testing
•  Efficient API Calls in Flutter
•  How to build a real-time multiplayer game with Flutter Flame
•  20 ?most used Kotlin Multiplatform libraries
•  Best Flutter Packages Of 2023
•  Flutter: Screen Navigation
•  Tracking Lifecycle changes in Compose Multiplatform: IOS and Android
•  Build Swift Windows News App with WinSDK
•  DVDB: кроссплатформенная векторная база данных

Разработка

• Где-то в пути мы забыли о мастерстве программирования
• Эксперимент: насколько сложно обмануть на технических собеседованиях с помощью ChatGPT?
• Самые высокооплачиваемые вакансии января в сфере разработки приложений
• Направо пойдешь — в бэкенд придешь, налево — в мобилки…
• 5 идей, как улучшить Discovery-процессы в команде, если ты продуктовый дизайнер
• CodeSignal запускает платформу обучения с ИИ-помощником
• Когда следует отказаться от проекта, который не работает?
• Написание кода никогда не было самой сложной частью
• Apple выпустила язык программирования Pkl для описывания конфигураций
•  Detecting Speech and Music in Audio Content
•  Scaling smoothly: RevenueCat’s data-caching techniques for 1.2 billion daily API requests
•  GitHub Actions: Introducing the new M1 macOS runner available to open source!
•  Why We Can’t Have Nice Software
•  Key takeaways from Airbnb’s winter redesign
•  Keeping code simple: moving fast by avoiding over-engineering
•  Design Perfect Date Picker
•  Google Cloud region is Johannesburg, MobileDiffusion, and more dev news!

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

• Самые скачиваемые и зарабатывающие приложения в России в январе 2024
• План самообразования по профессии продуктового аналитика
• Вся наша жизнь – игра: или как прижилась геймификация внутри мобильного приложения в ритейле
• Мобильные игры в продуктовых приложениях
• SocialPeta выпустила Глобальный Аналитический Доклад о мобильных приложениях за 2023 год
• Любовь живет в приложении: мобильные тренды ко Дню Святого Валентина 
• Приложение Blush выводит онлайн-знакомства в реальный мир
• Stellar Sleep — первый цифровой инструмент для борьбы с хронической бессонницей
• Spotify стал поставщиком аудиокниг №2 после Audible
• Мобильная версия Elden Ring разрабатывается Tencent
• Пережил ли Evernote свой расцвет?
•  Peter Yang’s 10 rules for making products that customers love
•  Three core psychological factors in marketing (and how to integrate them)

AI, Устройства, IoT

• Как подружить Ростелеком Ключ и Home Assistant
• Краткий обзор TinyML
• Новая ИИ модель Apple может редактировать изображения с помощью естественного языка
• Apple продолжает работу над складными устройствами
• В Roblox заработал переводчик чатов в реальном времени на основе ИИ

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