Mam bardzo wymagającego klienta - siebie - i ten oto jegomość pod wpływem impulsu i zewnętrznych potrzebuje napisać 3 aplikacje:

  • serwer
  • aplikacja desktopowa
  • aplikacja na smartfony

Aplikacje będą się logowały na serwer i pobierały/zapisywały tam dane - standard.

Problem jednak jest z wyborem technologii.
Z serwerem nie ma problemu, bo tutaj będę korzystał z dobrze mi znanego rusta.

Jednak nie wiem co wybrać do napisania aplikacji na komórkę i desktopa, gdyż jestem głównie backendowcem + znam trochę qt, gtk, slint, ale z grubsza chcę stworzyć jedną aplikację na obie platformy, więc te typy odpadają bo albo nie mają wsparcia dla androida, albo jest ono na bardzo wczesnym poziomie.

Zastanawiam się nad Tauri + Svelte, bo wydaje się ciekawą opcją, a na pewno nie chce mi się tego pisać w jakimkolwiek stopniu w javie, a też czystego javascriptu unikam jak ognia.

#programowanie
MostlyRenegade

@qarmin jeśli znasz C#, to może MAUI+Blazor?

psalek

Qt nie ma wystarczającego wsparcia ma Androida?

qarmin

@psalek Z tego co teraz patrzę, to jednak niby ma, ale po doświadczeniach z Qt na desktopie nie odważyłbym się użyć go do mobilnych zastosowań(choć nieco qml kusi - ale tylko nieco)

psalek

@qarmin  z ciekawości: co Cię tak zniechęciło?

qarmin

@psalek C++ głównie.


Chociaż aplikacja qt którą w pracy ciągle rozwijam, to miszmasz kilku rozwiązań


  • C++ - bazowe komponenty, łączenie z curl, bazą danych etc., tworzenie niektórych modeli do qml

  • QML - graficzne elementy

  • Javascript/Typescript - resty, różne nieco bardziej skomplikowane operacje, logika w plikach QML

  • Python - generacja walidacji dla danych - tylko wymagane przy budowaniu


Pisząc aplikację czysto C++, reszta nie byłaby mi potrzebna, ale nie jestem fanem zarówno C++, jak i tworzenia kodu z poziomu kompilowanego języka.

Jeśli jednak bym korzystał z QML, to najłatwiej byłoby użyć javascript by obejść jego ograniczenia, potem przejście na typescript celem minimalizacji błędów a na końcu walidacja danych wejściowych/wyjściowych funkcji - czyli pewnie skończyłbym tak jak w pracy z 4 językami do projektu.

koszotorobur

@qarmin - pisz w czym Ci wygodnie ale unikaj egzotyki.

Svelte od ponad roku nie jest egzotyczny i można pisać w nim apki mobilne i Desktopowe na kilka sposobów (prócz wspomnianego przez Ciebie Tauri):



Ja osobiście bardzo lubię Rusta i SvelteKit i sam bym starał się w nich pisać bo byłoby to najbardziej efektywne.

Flaaj

React native? Flutter? Obie technologie pozwalają pisać na praktycznie wszystkie popularne platformy

koszotorobur

@Flaaj - Flutter od wersji 3.0 wspiera tworzenie aplikacji na platformy mobilne i desktop - niemniej wraz z językiem Dart jest to nowa rzecz do nauczenia.

Ja osobiście już wolałbym użyć silnika do gier, który wspiera eksport na różne platformy jak Godot czy GDevelop - bo je znam i byłbym w stanie napisać w nich aplikację od ręki (użyłbym gotowych komponentów interfejsu, by nie wymyślać wszystkiego od nowa).

Oczywiście jak ktoś ma ochotę uczyć się nowych rzeczy to nic mu nie stanie na przeszkodzie - ale czasem człowiek chce mieć po prostu coś działającego

monke

@qarmin ale apki na androida w tfu javie piszą tylko polskie januszexy. Od tego jest kotlin

Meverth

@qarmin pisz backend w kotlin, a części wspólne (model itp.) wrzucaj przez kotlin multiplatform na moblilkę i desktop. Zobacz sobie, do czego się to to kompiluje i na tej podstawie wybierz technologię mobile/desktop. Zawsze trochę mniej roboty jak już masz jakiś kawałek i go re-używasz, nie?

koszotorobur

@qarmin - no i na czym w końcu stanęło kolego?

Ja jeszcze coś takiego znalazłem: https://www.skeleton.dev/docs/tauri - wiele funkcjonalnych komponentów do UI pod Svelte i ma integrację z Tauri.

qarmin

@koszotorobur Raczej stanęło na tauri.


Dużo decyzji(wstępnej póki co) pomogło bardzo proste tworzenie plików apk, nie muszę szukać, grzebać ani konfigurować żadnych plików gradle ani jakichkolwiek innych javowych/androidowych rzeczy, po prostu kompiluję a plik apk się wypluwa i wrzuca od razu go na emulator(chociaż miałem trochę problemów by to poprawnie skonfigurować)


W pracy szef korzysta ze svelte i nawet mówi że to niezłe, chociaż ma czasami trudności i też nie próbował nigdy żadnego innego frameworku, więc porównania też nie ma, czy coś nie działa o niebo lepiej

koszotorobur

@qarmin - ja zakochałem się w Svelte (a właściwie w SvelteKit) i robię w nim narzędzia wewnętrzne.

Problemy się czasem pojawiają ale ja osobiście nie utknąłem na więcej niż jeden dzień (gdy na przykład przy Angularze rwałem włosy z głowy a przy Reakcie mi często przez kilka dni nie chciało działać).

Zawsze troszkę miałem nie po drodze w WebDevem (chociaż przez ostatnie 10 lat próbowałem chyba wszystkiego do WebDevu co wyszło) i SvelteKit jakoś mi tak naturalnie wszedł i bez oporu (pomimo tego, że kiedy zaczynałem 2 lata temu z nim to był niestabilny i przechodził wiele zmian).

Do tego Tauri 2.0 wyjdzie niedługo z bety i działa ze SvelteKit więc do pisania apek multiplatformowych jak znalazł

Zaloguj się aby komentować