Skip to content

feat: Add .NET Client SDK examples (console + MAUI)#4

Draft
jsonbailey wants to merge 1 commit into
mainfrom
jb/sdk-2561/client-sdk
Draft

feat: Add .NET Client SDK examples (console + MAUI)#4
jsonbailey wants to merge 1 commit into
mainfrom
jb/sdk-2561/client-sdk

Conversation

@jsonbailey

Copy link
Copy Markdown
Contributor

Summary

Migrates both examples from launchdarkly/hello-dotnet-client into examples-dotnet, following the EXAM layout.

Layout

client-sdk/
├── README.md                       # index (Getting Started + Frameworks)
├── getting-started/                # console app (Flag Retrieval)
│   ├── DotNetConsoleApp.csproj
│   ├── Program.cs
│   ├── README.md
│   └── NOTICE                      # Copyright 2023
└── frameworks/
    └── maui/                       # .NET MAUI app (Android & iOS)
        ├── MauiApp.csproj
        ├── global.json             # scoped here, not repo root
        ├── Platforms/ Resources/ ...
        ├── README.md
        └── NOTICE                  # Copyright 2023
  • Partition named after the package (LaunchDarkly.ClientSdkclient-sdk/).
  • Console → getting-started/; MAUI → frameworks/maui/ (per EXAM, frameworks hold runtime-specific examples).
  • global.json (SDK 8.0) scoped to the MAUI dir so it doesn't constrain the other examples.
  • MAUI appsettings.json (holds the mobile key) is gitignored; appsettings.example.json is committed.
  • Per-example NOTICE files carry the old repo's 2023 copyright; all migrated text files BOM-stripped; binary assets (fonts/images) copied as-is.

CI (client.yml, ported from the old repo's recipe)

  • build-and-run (ubuntu): build console, fetch mobile/flag keys, configure MAUI appsettings, install maui-android, build the MAUI APK, run it on an Android emulator (verify-maui-android.sh), and run the console app via verify-hello-app (mobile key).
  • build-maui (macOS): build MAUI for Android + iOS.
  • Actions pinned per convention (third-party → SHA + version; LD actions → major tag).

Notes / caveats

  • The MAUI/emulator CI can't be verified locally (no MAUI workload/emulator here) — it'll get its first real run on this PR; may need an iteration. The console app builds clean locally.
  • This relies on the OIDC trust + use_mobile_key SSM params (/sdk/common/hello-apps/mobile-key), already used by the old repo.
  • Reconciliation with feat: Add .NET Server AI SDK examples #2: when build.yml (introduced in feat: Add .NET Server AI SDK examples #2) lands, its glob should exclude client-sdk/frameworks/maui/ (MAUI can't build in the generic loop); the console is fine to keep in the generic build.

Part of SDK-2559. Covers the migration portion of SDK-2561 (old-repo README repoint + Terraform archive tracked on that ticket).

Jira: SDK-2561

@jsonbailey jsonbailey force-pushed the jb/sdk-2561/client-sdk branch 2 times, most recently from 4ea8326 to 6f4656b Compare June 18, 2026 15:57
@jsonbailey

Copy link
Copy Markdown
Contributor Author

Updated to per-slice CI: the workflow is now client-sdk.yml, path-filtered to client-sdk/**. This supersedes the description's "reconciliation with #2 / exclude MAUI from build.yml" note — there's no generic build.yml to reconcile with anymore.

Migrates the examples from launchdarkly/hello-dotnet-client into the client-sdk/
partition following the EXAM layout:
- console app -> client-sdk/getting-started/ (Flag Retrieval)
- .NET MAUI app -> client-sdk/frameworks/maui/ (Android & iOS)
Adds the partition README index, per-example NOTICE files (2023), the root README
row, and a gitignore for the MAUI appsettings (keys). Ports the old repo's CI as
client.yml (console build+run via verify-hello-app mobile key; MAUI Android
build+emulator-run on ubuntu; MAUI Android+iOS build on macOS), applying the action
pinning convention. Sourced from hello-dotnet-client (SDK-2561).
@jsonbailey jsonbailey force-pushed the jb/sdk-2561/client-sdk branch from 6f4656b to 1ffd83d Compare June 18, 2026 17:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant