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.