KsDialogs.Maui 0.1.0-beta.2

This is a prerelease version of KsDialogs.Maui.
dotnet add package KsDialogs.Maui --version 0.1.0-beta.2
                    
NuGet\Install-Package KsDialogs.Maui -Version 0.1.0-beta.2
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="KsDialogs.Maui" Version="0.1.0-beta.2" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="KsDialogs.Maui" Version="0.1.0-beta.2" />
                    
Directory.Packages.props
<PackageReference Include="KsDialogs.Maui" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add KsDialogs.Maui --version 0.1.0-beta.2
                    
#r "nuget: KsDialogs.Maui, 0.1.0-beta.2"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package KsDialogs.Maui@0.1.0-beta.2
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=KsDialogs.Maui&version=0.1.0-beta.2&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=KsDialogs.Maui&version=0.1.0-beta.2&prerelease
                    
Install as a Cake Tool

KsDialogs

Overview and highlights

KsDialogs is a dialog UI library that can present UI from anywhere in an application without wiring it into the current view hierarchy. Native iOS and Android implementations provide the foundation, with thin wrappers for .NET MAUI and Kotlin Multiplatform.

  • Present typed dialogs and receive their results.
  • Block interaction during work with Loading, including progress updates.
  • Show non-interactive Toast notifications that let touches pass through.
  • Use native Views or declarative UI such as SwiftUI and Jetpack Compose.

The public API may introduce breaking changes while the version remains 0.x.

Screenshots

iOS Android
Dialog<br>A basic dialog in the iOS Sample Dialog<br>A basic dialog in the Android Sample
Loading<br>Loading at 50 percent in the iOS Sample Loading<br>Loading at 50 percent in the Android Sample
Toast<br>Three toast notifications in the iOS Sample Toast<br>Three toast notifications in the Android Sample

.NET MAUI and Kotlin Multiplatform wrap the native implementations and produce the same screens.

Supported platforms

Form Minimum OS Toolchain used to build the library
iOS Native iOS 17 Swift 6.3
Android Native Android 7.0 (API 24) Kotlin 2.4.10, AGP 9.3.0, Gradle 9.7.0
.NET MAUI iOS 17 / Android 7.0 (API 24) .NET 10 (net10.0), Microsoft.Maui.Controls 10.0.20
Kotlin Multiplatform iOS 17 / Android 7.0 (API 24) Kotlin 2.4.10, AGP 9.3.0, Gradle 9.7.0, Swift 6.3

The Android targets use minSdk 24 and compileSdk 36. Android Native and Kotlin Multiplatform support a Kotlin Gradle Plugin from the same minor series, Kotlin 2.4.x; 2.4.10 is the version the consumer builds are verified against. The versions in the table are used to build the library; they are not consumer minimums. SwiftPM linkage on the Kotlin side of the KMP integration is Alpha.

Installation

The declarations below cover the package coordinates and the version syntax. Each example writes the version as the placeholder {version}: replace it with the version you want to use, or dependency resolution fails. To find the current version, open the latest release page, which always resolves to the most recent release. A prerelease is written as X.Y.Z-alpha.N, X.Y.Z-beta.N, or X.Y.Z-rc.N. See Agent Skills for platform setup and IDE-specific details.

iOS Native

Add the Swift package and use its KsDialogs product.

dependencies: [
    .package(
        url: "https://github.com/kamusoft/KsDialogs-SPM",
        exact: "{version}"
    )
]

SwiftPM resolves a prerelease only when the tag is pinned with exact, so the declaration keeps that form for release and prerelease versions alike.

Android Native

For a View-only application, add the core Maven artifact.

dependencies {
    implementation("jp.kamusoft:ksdialogs-core:{version}")
}

For a Compose application, add only ksdialogs; it brings in the core artifact transitively.

dependencies {
    implementation("jp.kamusoft:ksdialogs:{version}")
}

A prerelease is written as the same version string in the coordinate.

.NET MAUI

Add the NuGet package.

<PackageReference Include="KsDialogs.Maui" Version="{version}" />

A prerelease is written as the same version string in the Version attribute.

The native binding packages arrive transitively for the iOS and Android target frameworks; an application does not reference them directly.

Microsoft.Maui.Controls 10.0.20 or later is required. That is the version bundled with the .NET workload set this repository pins, so an application on the same workload set does not have to state a MAUI version of its own; pinning a version below 10.0.20 makes the build fail with the NuGet downgrade error NU1605.

The package targets net10.0, net10.0-ios, and net10.0-android, so the .NET 10 SDK with the iOS and Android MAUI workloads is required. The minimum OS versions are iOS 17 and Android 7.0 (API 24); an application whose SupportedOSPlatformVersion is lower than that — or left unset — stops at build time with the guard diagnostic KSDLG0001.

Kotlin Multiplatform

Add the Maven artifact to commonMain.

kotlin {
    sourceSets {
        commonMain.dependencies {
            api("jp.kamusoft:ksdialogs-kmp:{version}")
        }
    }
}

api keeps the KsDialogs types visible to the Android application, which needs them because a shared view model derives from DialogViewModel.

The Android application receives the Android Native artifact jp.kamusoft:ksdialogs-core transitively. The Compose artifact jp.kamusoft:ksdialogs is not included, so an Android application that writes dialog content in Compose adds it as well.

The iOS application also adds https://github.com/kamusoft/KsDialogs-SPM and links its KsDialogs product, pinned with exact to the same version as the Maven artifact.

Minimal examples

iOS Native

import SwiftUI
import KsDialogs

struct ContentView: View {
    var body: some View {
        Button("Show toast") {
            Toast.shared.show(message: "Saved")
        }
    }
}

Android Native

import jp.kamusoft.ksdialogs.Toast

fun notifySaved() {
    Toast.instance.show("Saved")
}

.NET MAUI

using KsDialogs;

namespace MyApp;

public static class Notifications
{
    public static void ShowSaved() => Toast.Instance.Show("Saved");
}

Kotlin Multiplatform

import jp.kamusoft.ksdialogs.kmp.Dialog
import jp.kamusoft.ksdialogs.kmp.DialogException
import jp.kamusoft.ksdialogs.kmp.DialogResult
import jp.kamusoft.ksdialogs.kmp.DialogViewModel
import kotlin.coroutines.cancellation.CancellationException

class ConfirmViewModel(val message: String) : DialogViewModel<Boolean>

@Throws(DialogException::class, CancellationException::class)
suspend fun showConfirmation(message: String): DialogResult<Boolean> =
    Dialog.instance.show(ConfirmViewModel(message))

Agent Skills

The Agent Skills index provides platform-specific setup and complete recipes for Dialog, Loading, Toast, layout, transitions, view models, and migration from AiForms.Maui.Dialogs.

Repository layout

Directory Entry point
ios/ Native iOS library
android/ Native Android libraries
maui/ .NET MAUI wrapper
kmp/ Kotlin Multiplatform wrapper
samples/ Sample applications for the four forms
skills/ Agent Skills in English and Japanese
assets/ Public documentation images
kasane/ Project knowledge and change records

AGENTS.md · Concept documentation

Contributing

This project does not accept external pull requests. Please use an Issue to report a bug, propose a feature, or ask a question, and choose the matching Issue template so the necessary context is included. See CONTRIBUTING.md for the contribution policy and reporting guidance.

License

KsDialogs is available under the MIT License.

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-android36.0 is compatible.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-ios26.0 is compatible.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.1.0-beta.2 46 9/13/2026
0.1.0-beta.1 57 9/10/2026