Allan's Feed
- Give Your MAUI Agent Hands — Contacts, Reminders & Location as AI Tools
Allan Ritchie shows how to move beyond a chat assistant that can only talk by wiring device services into your .NET MAUI app as AI tools. He walks through three new Shiny packages that let a model work with contacts, reminders, and location — opt-in, read-only by default, and AOT-compatible.
Read more - A NEW CameraView to Rule Them All
Allan Ritchie introduces CameraView, a single .NET MAUI control that delivers camera preview, capture, filters, and a pluggable frame-analysis pipeline across iOS, Android, Windows, macOS, and Blazor. From barcode scanning and face detection to structured document parsing, this one control replaces an entire stack of platform-specific camera code.
Read more - Shiny Health 2.0 — The Ultimate Cross-Platform Health Library
Allan Ritchie ships Shiny Health 2.0 with 30+ data types spanning activity, heart, body, vitals, and lifestyle metrics — all through one unified IHealthService interface. The headline feature is an AI integration package that turns your health data into tools an LLM agent can call.
Read more - Shiny.Data.Sync — Offline-First Record Sync, Built on Jobs & HTTP Transfers
Allan Ritchie introduces Shiny.Data.Sync, filling the gap between Shiny Jobs and HTTP Transfers with a durable offline-first record sync library. Queue CRUD operations offline, drain on reconnect, and pull server deltas — all riding the same platform-tiered background execution model.
Read more - Shiny.DocumentDb v6 — Vectors, Filters & a Real Connection Pool
Allan Ritchie releases Shiny.DocumentDb v6 with vector/ANN search across six database engines, EF Core-style global query filters, composite JSON indexes, and real connection pooling for server SQL. This release takes DocumentDb from mobile-first to server-ready.
Read more - Introducing Shiny.AiConversation — Text, Voice & Wake Word in One Service
Allan Ritchie introduces Shiny.AiConversation, a single service that wraps text chat, voice chat, hands-free wake word activation, audio feedback, and persistent chat history into one DI registration. Bring your own AI backend — OpenAI, GitHub Copilot, Azure OpenAI, or Ollama — and get a full conversational AI experience across MAUI and Blazor.
Read more - The Feedback Service — One Hook to Rule Them All
Allan Ritchie introduces IFeedbackService in Shiny Controls v1.0 — a single injectable service that every interactive control calls for haptic, TTS, sound effects, analytics, or any combination. Implement it once, and every control uses it automatically.
Read more - AI-Powered Navigation in Shiny MAUI Shell — Chat to Navigate, Intent to Form
Allan Ritchie introduces AI-driven navigation for Shiny MAUI Shell, where users type natural language and the app opens the right form with fields pre-filled. The source generator extends existing ShellMap and ShellProperty metadata with intent descriptions, producing just two AI tools that scale to any number of routes.
Read more - DocumentDb AI Tools — Give Your LLM a Database
Allan Ritchie introduces Shiny.DocumentDb.Extensions.AI, which generates Microsoft.Extensions.AI tool functions from your registered document types. Each type can expose up to seven operations — get, query, count, aggregate, insert, update, and delete — with full control over capabilities and field visibility.
Read more - One Contract, Three Transports — Mediator AI Tooling
Allan Ritchie shows how Shiny Mediator 6.3 turns any mediator contract with a [Description] attribute into a fully typed AI tool — with zero adapter code. The same contract can simultaneously serve as an AI tool, a typed HTTP client, and a REST endpoint.
Read more - Turn Any Interface Into an AI Tool — Shiny DI 3.0
Allan Ritchie adds AI tool generation to the Shiny DI source generator. Mark a service interface with [Tool], add [Description] to methods and parameters, and the generator produces fully typed AIFunction subclasses — AOT-safe, with automatic argument extraction and DI registration.
Read more - UI Automated Testing for .NET MAUI with MauiDevFlow — And How AI Wrote the Tests
Allan Ritchie demonstrates how MauiDevFlow enables lightweight UI testing for .NET MAUI without Appium or WebDriver. He walks through building a full suite of 48 UI tests for a real app — with AutomationIds, a custom driver, and AI-generated test code.
Read more