multiplatform-settings

Implement a typed Kotlin Multiplatform settings wrapper with expect/actual architecture.

1|Updated Apr 24, 2026
One-click install
npx skills add https://github.com/dimitriRemoiville/cc-mobile --skill multiplatform-settings
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: multiplatform-settings
Source: https://github.com/dimitriRemoiville/cc-mobile/tree/main/plugins/cc-mobile-kmm/skills/multiplatform-settings
Command: npx skills add https://github.com/dimitriRemoiville/cc-mobile --skill multiplatform-settings

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Thin Kotlin Multiplatform (KMP) settings layer that provides a typed, cross-platform interface over native storage for UI preferences. It helps avoid raw keys, duplicates, and untyped access while keeping platform-specific backends isolated.

Core Features & Use Cases

  • Typed, cross-platform access to app preferences via an expect/actual architecture.
  • Platform-specific backends: SharedPreferences (Android), NSUserDefaults (iOS), java.util.prefs.Preferences (JVM), Storage (JS).
  • Observability support and safe migrations to evolve settings across app versions.

Quick Start

Initialize a shared SettingsFactory and access typed preferences via a single API.

Frequently Asked Questions about multiplatform-settings

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

FAQPage Schema
How do I share typed user preferences across Android, iOS, JVM, and JS in Kotlin Multiplatform?

Kotlin Multiplatform settings use an expect/actual architecture to centralize typed access over native storage backends. This provides a single typed UserPreferences interface across Android, iOS, JVM, and JS without raw keys.

What is the best way to avoid raw keys and untyped access for cross-platform UI preferences?

Implementing a typed UserPreferences interface avoids raw keys and untyped access. This thin settings layer isolates platform-specific backends while providing safe, typed cross-platform access to simple UI preferences.

Does this Kotlin Multiplatform settings wrapper support SharedPreferences and NSUserDefaults?

Yes, the wrapper supports platform-specific backends including SharedPreferences for Android, NSUserDefaults for iOS, java.util.prefs.Preferences for JVM, and Storage for JS.

Can I observe data flow changes for cross-platform settings in Kotlin Multiplatform?

Yes, the wrapper includes optional observable data flows that allow your app to react dynamically to user preference changes across platforms.

How do I handle settings migration across app versions in a Kotlin Multiplatform project?

You handle settings migration across app versions using built-in safe migration support. This ensures consistent type-safe storage and smooth evolution of user preferences as your app updates.

When do I need an expect/actual architecture for multiplatform settings?

You need an expect/actual architecture when centralizing typed access over isolated native storage backends. This approach prevents duplicates and untyped access while keeping platform-specific logic separated.