edonosotti/tauri-sveltekit-playground-app
A skeleton multi-platform desktop application built with Tauri and SvelteKit. Use this application as a playground to learn about portable app development with Tauri.
Tauri + SvelteKit + Flowbite UI Kit playground app
A skeleton multi-platform desktop application built with:
Use this application as a playground to learn about portable
app development with Tauri. It was created to complement this
article.
Features
- Routing: src/routes/+page.svelte
describes how to configure a router to programmatically
switch between components in a Single Page Application - Events: src/routes/+page.svelte
and src/routes/Info.svelte
describe how to create event handlers and dispatch
events across multiple components - Stores: src/routes/+page.svelte,
src/routes/Welcome.svelte
and src/routes/Info.svelte
describe how to usecontextandstoresto persist
the application state across multiple components and
dinamically update the rendered view as the stored
values get updated - App window customization: the
tauri.windowssection of
src-tauri/tauri.conf.json
has been customized to set the title, the default size
and initial positioning of the application window - UI Kit:
Flowbite Svelteis used to rapidly design
an interface for the application - Icons: the
Svelte-Heros-v2icon set is used to
improve the appearance of the user interface - TypeScript: the code of the components describes
how to use TypeScript with SvelteKit
Prerequisites
Quickstart
- Start the local development server as described in the
Usage paragraph - Check the
Flowbite Sveltedocs to learn about the
components
available to build theUI - Check the Tailwind
docs to learn about theCSSutility classes that are
available to customize theUI - Make some changes to the following files:
src/routes/Welcome.sveltesrc/routes/Info.svelte
the application will automatically update while it is
running to display the changes
Usage
To start the application in development mode, run:
$ npm ci
$ npm run tauri devdepending on the computational capacity of your computer the first
compilation could take a few minutes. Once the development server
is started, you will get automated hot-reload and the next starts
of the application will be much faster, as long as no new Rust
code needs compilation.
Release
To create a release for the current system architecture, run:
$ npm ci
$ npm run tauri buildFor more information, check the official docs at:
https://tauri.app/v1/guides/building/
Build in CI/CD pipelines
The offical docs offer a tutorial to build apps for
multiple targets using GitHub Actions:
https://tauri.app/v1/guides/building/cross-platform#tauri-github-action
License
This code is distributed under the
MIT license.
Check this Wikipedia page
for further details on the license.
EU law notice
Attempting to mandate some baseline security practices to improve
the safety of the software distributed in its territory, the EU
published a very poorly designed draft of a new law.
The draft in its current form threatens the very existence of
open source software, making it impractical for independent
developers to safely distribute software and code.
I appreciate the intent, but the execution was just terrible.
I am writing this note to raise the awarness and encourage
everyone to act.
Please read the following articles and support the cause
of the independent software development:
- https://www.eff.org/deeplinks/2023/05/eus-proposed-cyber-resilience-act-raises-concerns-open-source-and-cybersecurity
- https://avvocloud.net/blog/english/cyber-resilience-act-open-source
- https://ec.europa.eu/info/law/better-regulation/have-your-say/initiatives/13410-Cyber-resilience-act-new-cybersecurity-rules-for-digital-products-and-ancillary-services/F3376627_en
- https://blog.opensource.org/what-is-the-cyber-resilience-act-and-why-its-important-for-open-source/
- https://hackaday.com/2023/04/21/the-cyber-resilience-act-threatens-open-source/