mobile-native-platforms

Guides native iOS Swift/SwiftUI and Android Kotlin/Jetpack Compose architecture and security decisions.

1|Updated Aug 10, 2026
One-click install
npx skills add https://github.com/TheViziusGroup/vibe-engineering-skills --skill mobile-native-platforms-theviziusgroup
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: mobile-native-platforms
Source: https://github.com/TheViziusGroup/vibe-engineering-skills/tree/main/plugins/mobile-development/skills/mobile-native-platforms
Command: npx skills add https://github.com/TheViziusGroup/vibe-engineering-skills --skill mobile-native-platforms-theviziusgroup

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Choosing and implementing the right native mobile architecture is hard: Swift 6 concurrency rules, Compose side-effect APIs, DI scoping, and deprecated security libraries change fast, and picking wrong patterns leads to costly rewrites. ## Core Features & Use Cases - iOS Guidance: Covers Swift 6 strict concurrency (Sendable, actors, @MainActor), TCA vs MVVM/MV architecture, Swift Package Manager, Keychain/Secure Enclave/App Attest security, and Xcode Cloud CI/CD. - Android Guidance: Covers Kotlin Coroutines/Flow, UDF with state hoisting, the full Compose side-effect API table (LaunchedEffect, DisposableEffect, derivedStateOf, snapshotFlow), Hilt DI scoping, Room, DataStore, and WorkManager. - Security & Platform Decisions: Explains the deprecation of Jetpack Security Crypto and migration to Android Keystore/StrongBox, BiometricPrompt with CryptoObject, and when the Intune App SDK mandates going native over React Native. - Use Case: You are starting a new Android app and need to decide between MVVM and MVI, wire Hilt ViewModels with correct scopes, and replace EncryptedSharedPreferences after its deprecation. ## Quick Start Ask the assistant to design the architecture for a new Jetpack Compose app with Hilt DI, Room persistence, and secure key storage using Android Keystore.

Frequently Asked Questions about mobile-native-platforms

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I structure state management in Jetpack Compose?

Use unidirectional data flow with state hoisting: a single immutable UI-state data class exposed as StateFlow from a ViewModel, collected via collectAsStateWithLifecycle(). MVVM is Google's baseline, while MVI adds a stricter reducer pattern with one-off effects via Channel or SharedFlow.

Should I use TCA or MVVM for a SwiftUI app?

The Composable Architecture (TCA 1.0+) provides Redux-style unidirectional flow with Reducer, State, Action, and @Dependency, integrating Swift Concurrency through .run effects. MVVM or Apple's lighter MV pattern suits simpler apps with less need for testable, composable state.

Is EncryptedSharedPreferences deprecated in Android?

Yes, Jetpack Security Crypto is deprecated at 1.1.0-alpha07, including EncryptedSharedPreferences and EncryptedFile. Migrate to direct Android Keystore usage or community forks such as Ackee Guardian or dev.spght:encryptedprefs.

When should I choose native over React Native?

Go native when you need deep OS integration such as widgets, complex background work, AR, or peak performance. The Intune App SDK also mandates native, since it officially supports Android, iOS, and .NET/MAUI but not React Native.

How does Hilt scoping work for Android ViewModels?

Use @HiltViewModel with constructor @Inject, choosing scopes by lifetime: @Singleton for app-wide, @ActivityRetainedScoped to survive configuration changes, and @ViewModelScoped per ViewModel. Dependencies shared across ViewModels should be @ActivityRetainedScoped or @Singleton.

Does DataStore support encrypted storage on Android?

No, there is no encrypted DataStore variant yet. DataStore 1.1.7 offers Preferences and Proto options as an async Flow-based SharedPreferences replacement, but sensitive values require Android Keystore-based encryption handled separately.