How-to guides

Find a procedure for a specific app development task.

  • Troubleshooting

    Diagnose setup, build, device, signing, and launch problems in a Day project.

  • Navigation

    Sidebar and tab selection, push/pop stacks, routes, and deep links, with native containers underneath.

  • Localization

    Organize Fluent catalogs by app, crate, or source module; use generated Rust accessors; add languages and check translations.

  • Accessibility

    Accessible labels and roles, platform limitations, and checks for the native accessibility tree.

  • Testing with dayscript

    The YAML automation language that drives a running Day app: steps, assertions, screenshots, and how it works.

  • Resources, images, fonts & icons

    How resource/assets, images, vectors, fonts, and icons travel from your project into each platform's native resource system, and how to read them back.

  • Logging

    Day emits through the `log` facade: levels, per-platform sinks, DAY_LOG, and how to install env_logger, tracing, or your own logger.

  • Tweaks

    Configuring the native widget behind a built-in piece, per toolkit and case by case, without writing a custom piece.

  • Embed SwiftUI views

    Ship a SwiftPM package inside your app and call its SwiftUI views from Rust as generated, typed constructors — on macOS and iOS.

  • Local notifications

    Immediate and scheduled notifications, permissions, and tap handling.

  • Local storage

    Persistent settings and app-private files on native and web targets.

  • HTTP requests

    Asynchronous HTTP requests, response handling, and cancellation.

  • Permissions

    Build-time permission declarations and runtime access requests.

  • Build flavors

    Ship one source tree as several apps — a paid build, a white-label build, a demo — with Day-<name>.toml and day build --flavor.

  • Menus, toolbars, and windows

    Install a native menu bar with standard roles and shortcuts, put commands in the window's toolbar, and open secondary windows, including the standard Settings window, from your app.

  • Packaging & distribution

    Build desktop installers and mobile app packages, configure signing, and inspect distribution status.

  • GitHub Actions

    Build and test a Day app in CI, publish release packages, and deploy its website with the shared dayapp workflow.

  • App websites

    Set up a localized app website, customize daysite or own its Astro pages, and publish with Day's GitHub Actions workflow and an optional custom domain.

  • App icons and interface icons

    App-icon generation, interface SVGs, and platform rendering limits.

  • App Store Submissions

    Prepare store listings, configure signing credentials, and submit iOS, Mac App Store and Android releases through GitHub Actions.

  • Reusable commands

    Share an operation, its title, and availability across buttons, menus, and toolbars.

  • Crash reporting

    Local crash reports and user-approved delivery by HTTP, GitHub, or email.

  • Opening documents

    Register file types, import files, and handle Finder, file-manager and installed web app activations.

  • App icons

    Build platform icon families from one master SVG, create seeded source icons, and check for drift.

  • HarmonyOS backend

    The ArkUI backend in depth: the C node API, the ArkTS shim, hvigor packaging, and emulator workflows.

  • macOS App Sandbox

    Configure signed sandboxed AppKit builds, file access, and persistent security-scoped bookmarks.

  • Store listings

    store/storefront.toml: the App Store and Google Play listing, submission info, text per locale and screenshots in one file, validated by day lint and packaged by the release pipeline.

  • VS Code extension

    The Day extension: the target cockpit, MCP tools for agent mode, and Day.toml schema wiring.

  • Web backend

    The web-dom backend: Rust compiled to WebAssembly driving real DOM elements, the shim, and the launch server.

  • WinUI 3 (windows-winui)

    The windows-winui target: the XAML backend built against WinUI 3 and the Windows App SDK.