Мобильная разработка за неделю #511 (16 — 22 октября)
В новой подборке сторонние платежи в iOS-приложениях в России, использование Swift и SwiftUI в iOS 17, русификация китайского Android и поиск лишних Component Dependencies, камеры и Flutter, шесть платформ, 15 лет программной инженерии и многое другое!
Подписывайтесь на на наш Telegram-канал Mobile Insights, где еще больше материалов для мобильных разработчиков. А в IT Insights — много об интересном коде и технологиях.
iOS
• Apple разрешает сторонние платежи в России
• Использование компанией Apple Swift и SwiftUI в iOS 17
• Скорее жив, чем мёртв: тенденция по развитию iOS технологий
• Какие инструменты позволили существенно улучшить iOS-разработку
• Архитектура SwiftUI + VIPER: модульный подход к разработке iOS‑приложений
• Навигация в iOS приложении — паттерн Координатор
• Нарисуй свой TabBar
• Async/Await: лучшие практики, советы и особенности
• SwiftUI — уже пора?
• Гармония статики и динамики: погружаемся в mergeable libraries
• Поваренная книга SwiftUI: Формы в SwiftUI
• Apple будет обновлять ПО iPhone перед продажей
• Advanced SwiftUI Animations: CustomAnimation
• Adding an Info.plist file to a Swift executable
• How to dismiss Keyboard in SwiftUI
• Xcode Parallel Test Execution of XCUITest is a Joke
• Optimizing work in iOS runtime
• 8 Tips to Optimize your iOS App
• Concurrent Programming in SwiftData
• Thread dispatching and Actors: understanding execution
• Being a good citizen in the land of SwiftSyntax
• Content Unavailable Views
• How to customize Enum Decoding in Swift with code samples
• Mastering Concurrency with Dispatch Groups in Swift
• Swift Parameter Packs
• How MEGA engineered its iOS design tokens module
• Masking Third Party Dependencies
• Hey World! A SwiftUI list of countries with TCA
• Start your first iOS Application Pentest with me…
• Create Python Shortcuts on iOS
• Managing Constant With Enum in Swift
• Objective-C Internals
• Mastering Preview macro in Swif
• Combine charts to create stunning designs with Swift Charts
• Все видео NSSpain XI
• 8 Tips to Optimize your iOS App
• ContentUnavailableView in iOS 17
• Lock SwiftUI View With Biometric/Custom Number Lock
• SwiftUI Progress Based Hero Animation Effect — Custom Matched Geometry Effect
• SwiftyJSON: работа с данными JSON
• Grape: визуализация графов
Android
• Ломаем Android. Русификация китайских авто
• Измеряя sequences
• Как я создавал мобильное приложение для хранения прочитанных книг BookDesk
• Оптимизируем Android приложение в пару подходов
• Поиск лишних Component Dependencies с помощью Dagger SPI
• TDD вместо тысячи слов и туториалов или как работать с новичками
• Автоматическая SMS-верификация в Android с помощью SMS Retriever API
• Play Protect будет сканировать код приложений при установке
• Публикация в F-Droid с помощью Fastlane
• Xiaomi представила новую HyperOS
• Achieve Compile-Time Safety with Koin in Record Time
• Handling Loading states of Android Paging 3
• Exploring Android 14: Screenshot Detection
• Publishing to F-Droid with Fastlane and Flavors
• Testing Android apps for flaky network situations with Flaker
• Building a search screen with Jetpack Compose
• Avoid return statements in Jetpack Compose!
• AndroidX moving to minSdkVersion 19
• Minimizing APK Size: Techniques for Shrinking Android App Size
• What Are the Differences Between KAPT and KSP in Android?
• Taking pictures using Jetpack Compose
• Lamps lights in Android Studio with Kotlin A Step by Step Tutorial
• Android Pentesting 101: A Novice«s Handbook to Getting Started
• Handling «What are Kotlin Coroutines?» Interview question
• Deep Dive Into Android Memory
• inline, noinline, crossinline. What are they? — Kotlin The Series
• Sealed Classes: An Alternative Approach To The Visitor Pattern In Kotlin And Java 21
• Top 15 Common Android Interview Questions for Experienced Android Developers
• How to pass data between ViewModels?
• Understanding JvmField, JvmOverloads Annotations
• How to Implement Pinch Zoom Gestures in Jetpack Compose
• Now in Android: 93 — Android 14, Wear OS 4, Gestures in Jetpack Compose, and more!
• #TheAndroidShow: faster and easier to build excellent apps, across devices!
• Device Streaming in Android Studio, Image Generation in MediaPipe, and more developer news!
• Image Caching with Coil Compose — Everything You Need to Know
• How to Implement Pinch Zoom Gestures in Jetpack Compose
• Maestro: Android modern UI Testing
• Все видео droidcon NYC 2023
• Tivi: шоу и сериалы в современной Android-разработке
Кроссплатформа
• Как быстро интегрировать Систему быстрых платежей (СБП) в приложение на Flutter
• Камера и Flutter
• Как мы удвоили разрешение фотографий с помощью камеры Flutter на iOS
• Event Bus: пишем шину событий во Flutter-приложении
• React Native: cостояние, скорость работы, конкуренция, будущее.
• Android-Driven KMM
• KMM + Composable Architecture в Умной Камере
• Как мы Kotlin Multiplatform внедряли
• React Native: cостояние, скорость работы, конкуренция, будущее
• Android-Driven KMM
• KMP Team Workflows with KMMBridge
• Konsist: Protect Kotlin Multiplatform projects from architecture guidelines violations
• Automate Flutter app delivery to AppCenter with GitHub Actions
• Mocking Bluetooth in Flutter: Updated
• Raising the Dead: How to Learn Flutter and Dart by Reviving Old Examples
• How to Design an Effective Bloc State Management in Flutter Development
• XCode 15 React Native Troubleshooting Guides
• Instant Page Loads with LRU State Cache in Flutter BloC
• Explore Tic-Tac-Toe Game In Flutter
• Flutter Animations Beyond the Basics
• Implementing the latest from Flutter to build our Guided Journaling Library
• Cookit Recipes App: кроссплатформенные рецепты на Compose
Разработка
• Одна игра, один человек, шесть платформ: хорошие, плохие, злые
• Как упростить себе жизнь: удобные юнит-тесты с JUnit и AssertJ
• Из микро в макро: как адаптировать мобильное приложение под ТВ-платформу
• Случайные мысли о 15 годах в программной инженерии
• Part 1. Инструменты автоматизации тестирования
• Почему джунов не берут на работу
• Microsoft запускает Radius, открытую платформу облачных приложений
• C# скоро обгонит Java по популярности
• Культ Obsidian: почему люди одержимы приложением для заметок
• JetBrains запускает инструмент для работы с документацией Writerside
• Stack Overflow проводит увольнения
• Pull vs push architecture for Mobile
• How Discord Stores Billions of Messages — Big Surprises in System Design
• Transition animations: a practical guide
• LeetCode-style algorithms in interviews suck. Cut it out.
• The inverse value of UX and Art
• Write more «useless» software
• The State of WebAssembly 2023
• How we built a Streaming SQL Engine
• Flaker: симулятор нестабильной сети
Аналитика, маркетинг и монетизация
• Топ быстрорастущих приложений в России в октябре
• Как приоритизировать фичи с помощью Unit-экономики?
• Discord расширяет программу вознаграждения разработчиков
• Apple увольняет сотрудников App Store в Китае из-за потенциальных сделок с разработчиками игр
• RuStore назвал самые популярные игры и приложения в регионах
• Supercell анонсировала новую игру mo.co
• Crunchyroll вошел в клуб миллиардеров
• A checkout designed for impulse purchases
• GG: The Journey of Building and Marketing an App
• How to create a high-performing app store listing for your mobile app
AI, Устройства, IoT
• Посторонись, Copilot: подборка разнообразных AI-инструментов для разработчиков
• ChatGPT для разработчиков: API, лимиты, как втягивать в него базу знаний, что нельзя сделать, что лучше делать осторожно
• ShIoTiny5 — новые веяния и маленькое устройство
• Варианты беспроводного подключения для приложений интернета вещей — сравнение технологий
• Яндекс представил нейросеть YandexART
• Qualcomm анонсирует первый в истории массового рынка RISC-V Android SoC
• Advanced ChatGPT Prompting Techniques for Developers
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.