В новом дайджесте деплоим свои приложения из XCode на старые iPhone и изучаем Swift Testing, исследуем приложение Zomato, чтобы создать свою собственную систему уведомлений, и добавляем Flutter в приложение, выкладываем приложение в Apple Store и Google Play, разбираемся в хороших сессиях и многое другое. Подключайтесь!

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



iOS

• Эти айфоны ещё будут жить: пишем и деплоим свои приложения из XCode на старые iPhone
• Введение в Swift Testing +Введение в тестирование на Swift Testing
• Swift 5.10
• iOS-приложения под защитой Apple! Или нет?
• Поваренная книга SwiftUI: изображения и иконки — Часть 4
• AccessorySetupKit будет проще подключать сторонние устройства
• У Apple «очень серьезные» проблемы с DMA
• Apple отложила разработку второй Vision Pro ради более дешевой модели
• Apple дает разработчикам возможность номинировать свои приложения на фичеринг в App Store
•  Highlights of new technologies introduced at WWDC24
•  New GitHub Organization for the Swift Project
•  A New Direction for Testing in Swift
•  Advanced Core Image
•  Zoom navigation transition in SwiftUI
•  Enhanced replace transition for SF Symbols in iOS 18
•  Bringing native AI to your mobile apps with ExecuTorch
•  Create Node Modules in Swift
•  Free, on-device translations with the Swift Translation API
•  Creating Stunning Dynamic Text Effects with TextRender
•  A preview of our upcoming UIKitNavigation library
•  Preparing your App Icon for dark and tinted appearance
•  Swift Testing: Getting Started
•  iOS CI/CD With Azure DevOps: Automate Your Release Process
• Explore Swift performance
• Xcode 16 Navigation Shortcuts in 12 Minutes
• SwiftUI Scroll To Hide Header View — iOS 18
• Dark mode icons in iOS 18 and Xcode 16
• Mesh Gradient & Floating Tab bar (iPadOS)
• iOS 18 Control Center Widget — SwiftUI
• Image Carousel in SwiftUI
• TPPDF — создание PDF для iOS и macOS приложений
• Coobjc — корутины для Objective-C и Swift
• CodableWrapper — улучшения для Codable

Android

• Как я исследовал приложение Zomato, чтобы создать свою собственную систему уведомлений
• Что нового в безопасности пользователей на Android: доклад с Google I/O 2024
• Осваиваем ViewModel в Android: «можно» и «нельзя» — Часть 4 (3, 2, 1)
• Как избавиться от рекурсии, или Как мой код попал в Google
• Микширование аудиопотоков в Android
• Опыт внедрения Kotlin и Compose Multiplatform в продакшн-решение
• Как мы победили техдолг в проекте Android RuStore
• Android Device Streaming на базе Firebase в бета-версии
•  Modernizing Application Settings in Kotlin Multiplatform with DataStore and Koin
•  Building Jetcaster on all Form Factors
•  Pride in Your App — Trying Out GraphQL on Android
•  Kotlin DEVEX is not great, but Amper could fix it
•  Choosing Between Sealed Classes and Enum Classes in Kotlin
•  Data Mapping In Kotlin Explained
•  Dive into Object-Oriented Programming with Kotlin
•  Jetpack Glance
•  Creating flexible components in Compose
•  App Architecture: Deeplinks
•  Top 10 Coroutines Questions 2024
•  What is faster and in which tasks? Coroutines, RxJava, Executor?
• AI development assistance — Android Developers Backstage
• Simplifying Kotlin Build Configuration with Amper
• Why we can’t have nice things in Kotlin
• Kotlin Language Features in 2.0 and Beyond
• Mastering WebRTC for Large Conference Calls on Android
• Записи докладов KotlinConf’24
• Kaml — YAML для kotlinx.serialization

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

• Flutter Add-to-App: как добавить Flutter в приложение
• От ручной работы к автоматизации: наш путь к идеальной доставке сборок Flutter
• Feature-Based Flutter Architecture
•  Step-by-Step Guide to Dockerizing Dart and Flutter Web for Deployment
•  How to Mock HTTP Clients in Flutter Tests
•  Flutter Best Practices for 2024: Build Better Apps Faster
•  KMP: Essential Tools and Plugins for Kotlin Multiplatform Application Development
•  Introducing Solidart: A Simplified Approach to Flutter State Management Inspired by SolidJS
•  Mastering Shapes and Clipping in Flutter
•  How to Get the Height and Padding of the AppBar in Flutter
•  The Ultimate Guide to React Native Optimization (2024 edition)
• 10 Takeaways for React Native Devs from the App.js conference
• What Is Kotlin Multiplatform And How Does It Work?
• Building Your First Compose Multiplatform Hello World App
• 10 Takeaways for React Native Devs from the App.js conference
• Connectivity — мониторинг сети для Kotlin Multiplatform

Разработка

• WebView: быстрый релиз, никаких ревью в сторах, а минусы есть?
• Как в 2024 выложить приложение в Apple Store и Google Play
• Легким движением руки приложение становится понятным. Как мы сделали уведомления в личном кабинете более заметными
• Усталость Senior-разработчиков
• Как решать задачи на Leetcode
• ИИ в работе: как упростить жизнь мобильного разработчика
• Дали менторить джуна… Все пропало?
• Как устроен сетевой код в играх
•  Pair Programming Antipatterns
•  Mocking is an Anti-Pattern
•  How SMS Fraud Works and How to Guard Against It
•  Let’s write a video game from scratch like it’s 1987

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

• WWDC 24: что нового во встроенных покупках
• Что значит хорошая сессия в приложении — разбираемся в деталях
• Butterflies — новая социальная сеть для ИИ и людей
• Исследование приложений, которые могут стать ненужными в iOS 18
• Varioqub: за Mann-Whitney замолвите слово
• Топ быстрорастущих приложений в России в июне

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

• Я тебя с вертухи сломаю, если ещё раз заговоришь об ИИ
• Что умеет новая модель Claude 3.5 Sonnet?
• Кажется, LLM программирует лучше меня
• JetBrains интегрирует Gemini в AI Assistant
• Принтер печатает картинки из блоков Lego

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