Żeby nie zaśmiecać tematu Desktop + swing - propozycja pracy tworzę kolejny
Moim zdaniem robienie wszystkiego jako WEB to chwilowa moda. Pociągająca jest pewna ogólność tego typu rozwiązań ale praktyka pokazuje, że nie zawsze jest to potrzebne a coraz częściej okazuje się zbyt kosztowne.
W jaki sposób jest to zbyt kosztowne? Znaczna częśc systemów ma backend w którym jest zawarta pewna logika + persystencja stanu. Przykładowo, robiąć przelew musi być odpowiednia walidacja środków na koncie itp która musi być zrobiona na serwerach banku ze względu na bezpieczeństwo oraz to że w aplikacji desktopowej nie obsłużysz chociażby sensownie Kafki.
Dodatkowo dochodzi fakt że backend umożliwia bezpieczne trzymanie danych, wygodną replikację itp. Tak więc backend tak czy owak jest potrzebny w znacznej części, a aplikacje desktopowe to byłby po prostu zupełnie inny rodzaj frontu, i tyle. Dodatkowo bardziej upierdliwy, ze względu na trudniejsze przeprowadzenie aktualizacji.
Warto spojrzeć na aplikacje mobilne... w większości bliżej im do architektury desktopowej z komunikacją z serwerem niż do typowych aplikacji WEB.
Aplikacje mobilne często mają inne zastosowanie.
Po pierwsze, na początku urządzenia mobilne miały o wiele gorszą wydajność i możliwości sprzętowe (ram, procesor). Natywne aplikacje mobilne umożliwiały lepsze wykorzystanie tego.
Po drugie, dochodzi całe to działanie w tle i pushe notyfikacyjne, a ludzie mają telefony na ogół przy sobie.
Po trzecie, chodzi o cachowanie danych i tryb offline. Jeśli masz aplikację mobilną taką jak Anki, to możesz wykorzystać tryb offline nawet na szczycie Tatr, bo tam bierzesz komórkę, dziala ona w trybie offline, a laptopa tam nie weźmiesz.
Ale to tez ma swoje koszty, bo taka aplikacja mobina pozwalająca na lokalny zapis danych i późniejszą synchronizację z backendem który trzyma stan jest w praktyce multi-leader database. Trzeba rozwiązywać konflikty, przykładowo, użytkownik przejszy flashcardy z danego dnia na komputerze, następnego dnia wykorzysta do tego aplikacje mobilną której wczesniej nie synchronizował bo nie włączył neta. Przejrzy również te flashcardy z dnia poprzedniego, włączy internet i spróbuje dokonać aktualizacji. I cyk, konflikt zapisu.