Zainteresuj się WebAssembly (WASM). To takie appki, bardziej webowe (ale nie tylko), wspierane przez najważniejsze przeglądarki internetowe. Bardzo fajne rzeczy w tym powstają! I nie trzeba znać TS / JS!
Nie wiem jakie znasz języki, ale wydaje mi się, że najrozsądniejsze dla WASM to: Go, C++ i Rust, ewentualnie C# (głównie Blazor). Teoretycznie WebAssembly można zrobić w niemal każdym języku, ale różnie to wychodzi (jakość kodu, wydajność, finalny rozmiar pliku) no i różny jest komfort (przyjemność) programowania.
Jeśli chodzi przykładowo o Rust, to ekosystem WASM jest bardzo rozbudowany i dość dojrzały, masz tu wiele frameworków WASM/Rust, a najciekawsze to Yew, Leptos, Dioxus i Sycamore (choć jest cała masa innych).
Musisz mieć sporo wytrwałości i wiele wolnego czasu, aby ukończyć tak duży projekt! :) Życzę powodzenia!
Wykorzystując przykładowo Dioxus, będzie można niedługo robić appki także dla mobile i desktop. W innych przypadkach też, ale czasami będzie potrzebny jeszcze framework typu Tauri (który ma WebView i w nim osadzasz swój WASM). Ogólnie wszystkie najważniejsze platformy są w Twoim zasięgu :)
Poniżej porównanie czterech najciekawszych frameworków RUST dla WASM:
Yew
-
Most mature and widely-used
-
JSX-like template syntax
-
React-like (historically Elm-like struct components, now React-like function components)
-
More boilerplate for things like event callbacks, need to `.clone()` things into closures, etc.
-
Relatively good performance (think something like Preact/Vue, faster than React)
-
Safe Rust
-
Medium WASM binary sizes
-
Community-maintained (i.e., original creator has lost); it's well-maintained, reviewers do a good job looking at PRs etc., but (subjective take here) I don't see much of a vision driving it forward longer term
Dioxus
-
Relatively new, fast moving
-
Explicitly models/markets itself as being React-like
-
Unique template syntax (not JSX-like)
-
Lots of unsafe Rust
-
Very good performance based on newish block-DOM approach (less flexible than React/Yew VDOM, but more performant)
-
Large WASM binary sizes
-
Lots of emphasis on targeting desktop/native UI as well
Leptos (full disclosure: I am the creator)
-
Relatively new, fast moving
-
Based on SolidJS/fine-grained reactivity, with no virtual DOM overhead
-
JSX-like template syntax
-
Entirely safe Rust
-
Very, very good performance; outcompetes others listed here not only on rendering speed but on memory usage and on server-rendering speed
-
Small WASM binary sizes (slightly larger than Sycamore)
-
Fastest server rendering and strong emphasis on/support for integrations with the server, including multiple server-rendering modes (like both in-order and out-of-order HTML streaming)
Sycamore
-
More mature than Dioxus/Leptos, relatively slow-moving
-
Based on SolidJS/fine-grained reactivity
-
Unique template syntax (not JSX-like)
-
Lots of unsafe Rust
-
Small WASM binary sizes
-
Quite good performance, faster than Yew, slower than Dioxus/Leptos, but probably plenty for whatever you need
-
Major bonus: the Perseus metaframework
Powyższe opracowanie / porównanie zaciągnięte z forum Rust (reddit), napisane przez autora Leptosa.
Jak nie Rust, to jest sporo innych możliwości, ale osobiście poszedłbym w Rust. Sporo gier powstaje właśnie w tym języku.
Może być od biedy Csharp, jest sporo przykładów i dobra dokumentacja Blazora (ich sztandarowy WASM).
Jeszcze raz - powodzenia!