Aplikacja lokalizująca/prosty serwis społecznościowy Android + Web, co użyć

0

Chcę zrobić aplikacje internetowa która będzie miała klienta webowego i mobilnego (android), chodziłoby w skrócie o to, że można by było założyć sobie konto, dodawać znajomych, klient mobilny wysłałby swoją aktualną pozycje, można by sprawdzać pozycje swoich znajomych ich odległość od siebie, użytkownicy mogliby dodawać jakieś statusy no tego typu rzeczy

mam narzuconą z góry Jave

proszę o pomoc ale nie chodzi mi tutaj np. jak określić pozycje za pomocą urządzenia mobilnego etc. tylko czego użyć do komunikacji między telefonem a aplikacją na serwerze, czego użyć na serwerze (oczywiście słyszałem o javieEE i springu, ale mam dużo wątpliwości np. takie rozwiązanie jak JSF wydaje mi się skomplikowane, kiedyś napisałem coś w asp.net mvc i tam po prostu css/html/js), wymarzoną opcją byłoby używać tego samego zestawu klas do wysyłania danych/odbierania danych z androida i z widoku z przeglądarki, czy na to pozwala REST?

z góry dzieki

1

Nie ma jednej dobrej odpowiedzi na twoje pytanie.

poanalizowałbym Firebase https://firebase.google.com/ (nie mam z tym doświadczenia - ale wygląda zbyt pieknie żeby pominąć)
tam masz dużo przykładów różnych,

(generalnie Raczej nie rób klientów w Javie - server możesz)

1

Co do tych samych klas: tak, rest na to pozwala. Wysyłasz tylko DTO (np w formie JSON, najpopularniejsza i najrozsądniejsza opcja dla Ciebie) zarówno do klienta androida jak i przeglądarkowego (też musisz napisać, czy to będzie Java i jakiś framework, Angular czy cokolwiek innego).

Co nie zmienia faktu, że w komercyjnym zastosowaniu, to raczej zły pomysł, jeśli klient ma być skomplikowany, bo dla mobilnego klienta, pewnie flow będzie inny i wypadałoby też zoptymalizować przesył danych (łopatologicznie: inaczej aplikacja może chodzić wolno), ale na początek wystarczą te same DTO.

Co do określania pozycji urządzenia mobilnego - sprawdź sobie jakiś kurs androida, tam będzie to wyjaśnione. Generalnie używasz SDK androida, które ma to "wbudowane", i tylko używasz gotowych metod.

2

Na backendzie stawiasz RESTa np. Spring. Masz teraz Spring Boot i mnóstwo tutoriali do tego. Dodatkowo masz Spring Security, czyli logowanie itd.

Na webie stawiasz sobie coś z SPA (single page application) np. angulara. Nie musisz używać żadnych JSF i innych. Ewentualnie możesz np. użyć Freemarkera + css i js.

Do komunikacji Androida z Backendem używasz API RESTowego. Do tego dodajesz OAuth2 żeby można było połączyć telefon z danym kontem.

Jeśli chcesz mieć trochę realtime to używasz websocketów lub coś prostszego jak np. Vert.x (https://github.com/abdlquadri/vertx-eventbus-java) albo np. rabbitmq.

0

ok dzięki, zacząłem to ogarniać i niedługo zaczynam pisać

jeszcze jedno pytanie, załóżmy, że chce to testować używając telefonu i aplikacji działającej na localhoscie, jeśli będę chciał wysłać do niej dane przy pomocy resta czyli protokołu http to jak to zrobić? bo jeśli określę URL pod który kieruje żądania jako ipkartysieciowej:nrportu/cośtam/cośtam to to chyba nie zadziała?

0

Może komuś się przyda, wystarczy połączyć się kablem z komputerem albo zrobić hotspot i się z nim połączyć, w konsoli wywołać ipconfig, wziąć IPv4 Address i na komórce w przeglądarce/aplikacj odwoływać się IPv4 Address:nrportu/aa/bb

1 użytkowników online, w tym zalogowanych: 0, gości: 1