В новой подборке сторонние платежи в iOS-приложениях в России, использование Swift и SwiftUI в iOS 17, русификация китайского Android и поиск лишних Component Dependencies, камеры и Flutter, шесть платформ, 15 лет программной инженерии и многое другое!
Подписывайтесь на на наш Telegram-канал Mobile Insights, где еще больше материалов для мобильных разработчиков. А в IT Insights — много об интересном коде и технологиях.
![](https://habrastorage.org/r/w780q1/webt/5w/4e/vl/5w4evlz3yvmi1c66vktil_xp5h8.jpeg)
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
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.
Подписывайтесь на на наш Telegram-канал Mobile Insights, где еще больше материалов для мобильных разработчиков. А в IT Insights — много об интересном коде и технологиях.
![](https://habrastorage.org/webt/5w/4e/vl/5w4evlz3yvmi1c66vktil_xp5h8.jpeg)
![](https://habrastorage.org/getpro/habr/post_images/f19/30a/c49/f1930ac4945596eb9707bc7a01bc5bdc.png)
• Apple разрешает сторонние платежи в России
• Использование компанией Apple Swift и SwiftUI в iOS 17
• Скорее жив, чем мёртв: тенденция по развитию iOS технологий
• Какие инструменты позволили существенно улучшить iOS-разработку
• Архитектура SwiftUI + VIPER: модульный подход к разработке iOS‑приложений
• Навигация в iOS приложении — паттерн Координатор
• Нарисуй свой TabBar
• Async/Await: лучшие практики, советы и особенности
• SwiftUI — уже пора?
• Гармония статики и динамики: погружаемся в mergeable libraries
• Поваренная книга SwiftUI: Формы в SwiftUI
• Apple будет обновлять ПО iPhone перед продажей
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/webt/gt/u1/ia/gtu1iaz0-ajkbqpeq8n6dmql4zq.png)
•
![](https://habrastorage.org/webt/gt/u1/ia/gtu1iaz0-ajkbqpeq8n6dmql4zq.png)
•
![](https://habrastorage.org/webt/gt/u1/ia/gtu1iaz0-ajkbqpeq8n6dmql4zq.png)
•
![](https://habrastorage.org/webt/gt/u1/ia/gtu1iaz0-ajkbqpeq8n6dmql4zq.png)
•
![](https://habrastorage.org/webt/gt/u1/ia/gtu1iaz0-ajkbqpeq8n6dmql4zq.png)
•
![](https://habrastorage.org/files/967/16b/cb9/96716bcb926741e79bb1c284a88083ca.png)
•
![](https://habrastorage.org/files/967/16b/cb9/96716bcb926741e79bb1c284a88083ca.png)
![](https://habrastorage.org/getpro/habr/post_images/e1a/3cf/2a8/e1a3cf2a8b65a0da69bbdd5c0ad040fe.png)
• Ломаем Android. Русификация китайских авто
• Измеряя sequences
• Как я создавал мобильное приложение для хранения прочитанных книг BookDesk
• Оптимизируем Android приложение в пару подходов
• Поиск лишних Component Dependencies с помощью Dagger SPI
• TDD вместо тысячи слов и туториалов или как работать с новичками
• Автоматическая SMS-верификация в Android с помощью SMS Retriever API
• Play Protect будет сканировать код приложений при установке
• Публикация в F-Droid с помощью Fastlane
• Xiaomi представила новую HyperOS
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/webt/gt/u1/ia/gtu1iaz0-ajkbqpeq8n6dmql4zq.png)
•
![](https://habrastorage.org/webt/gt/u1/ia/gtu1iaz0-ajkbqpeq8n6dmql4zq.png)
•
![](https://habrastorage.org/webt/gt/u1/ia/gtu1iaz0-ajkbqpeq8n6dmql4zq.png)
•
![](https://habrastorage.org/webt/gt/u1/ia/gtu1iaz0-ajkbqpeq8n6dmql4zq.png)
•
![](https://habrastorage.org/webt/gt/u1/ia/gtu1iaz0-ajkbqpeq8n6dmql4zq.png)
•
![](https://habrastorage.org/webt/gt/u1/ia/gtu1iaz0-ajkbqpeq8n6dmql4zq.png)
•
![](https://habrastorage.org/webt/gt/u1/ia/gtu1iaz0-ajkbqpeq8n6dmql4zq.png)
•
![](https://habrastorage.org/webt/gt/u1/ia/gtu1iaz0-ajkbqpeq8n6dmql4zq.png)
•
![](https://habrastorage.org/files/967/16b/cb9/96716bcb926741e79bb1c284a88083ca.png)
![](https://habrastorage.org/webt/ma/lx/8h/malx8hbgozt6lee8rmxmg96_s6a.png)
• Как быстро интегрировать Систему быстрых платежей (СБП) в приложение на Flutter
• Камера и Flutter
• Как мы удвоили разрешение фотографий с помощью камеры Flutter на iOS
• Event Bus: пишем шину событий во Flutter-приложении
• React Native: cостояние, скорость работы, конкуренция, будущее.
• Android-Driven KMM
• KMM + Composable Architecture в Умной Камере
• Как мы Kotlin Multiplatform внедряли
• React Native: cостояние, скорость работы, конкуренция, будущее
• Android-Driven KMM
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/967/16b/cb9/96716bcb926741e79bb1c284a88083ca.png)
![](https://habrastorage.org/getpro/habr/post_images/708/1c6/34e/7081c634ec176ab6b953d9d19e82a09a.png)
• Одна игра, один человек, шесть платформ: хорошие, плохие, злые
• Как упростить себе жизнь: удобные юнит-тесты с JUnit и AssertJ
• Из микро в макро: как адаптировать мобильное приложение под ТВ-платформу
• Случайные мысли о 15 годах в программной инженерии
• Part 1. Инструменты автоматизации тестирования
• Почему джунов не берут на работу
• Microsoft запускает Radius, открытую платформу облачных приложений
• C# скоро обгонит Java по популярности
• Культ Obsidian: почему люди одержимы приложением для заметок
• JetBrains запускает инструмент для работы с документацией Writerside
• Stack Overflow проводит увольнения
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/967/16b/cb9/96716bcb926741e79bb1c284a88083ca.png)
![](https://habrastorage.org/getpro/habr/post_images/509/dc9/bde/509dc9bde69347ecbe0c21ff2973d7e7.jpg)
• Топ быстрорастущих приложений в России в октябре
• Как приоритизировать фичи с помощью Unit-экономики?
• Discord расширяет программу вознаграждения разработчиков
• Apple увольняет сотрудников App Store в Китае из-за потенциальных сделок с разработчиками игр
• RuStore назвал самые популярные игры и приложения в регионах
• Supercell анонсировала новую игру mo.co
• Crunchyroll вошел в клуб миллиардеров
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
![](https://habrastorage.org/getpro/habr/post_images/853/812/9f5/8538129f5e7b404a720121cb9c3814db.jpg)
• Посторонись, Copilot: подборка разнообразных AI-инструментов для разработчиков
• ChatGPT для разработчиков: API, лимиты, как втягивать в него базу знаний, что нельзя сделать, что лучше делать осторожно
• ShIoTiny5 — новые веяния и маленькое устройство
• Варианты беспроводного подключения для приложений интернета вещей — сравнение технологий
• Яндекс представил нейросеть YandexART
• Qualcomm анонсирует первый в истории массового рынка RISC-V Android SoC
•
![](https://habrastorage.org/files/377/ae0/333/377ae0333d0f4b7b97307c9eea5ee21a.gif)
← Предыдущий дайджест. Если у вас есть другие интересные материалы или вы нашли ошибку — пришлите, пожалуйста, в почту.