Jaka technologia dla aplikacji - web portal, aplikacja Android i IOS?

0

Mam doświadczenie w Javie (SE, bez EE, Springa, Hibernate itp ale jak trzeba to się nauczę, bo miałem to i tak w planach) plus platformy integracyjne SAP PI, MuleESB. Pracowałem sporo lat jako analityk systemów ERP więc SQL tez ogarniam.

Jakie technologie możecie polecić do stworzenie aplikacji która:

  • byłaby dostępna jako Web portal, ale również na Androidzie i IOS ( IOS nie musi być na początku)
  • miałaby opcję geolokalizacji - czyli sprawdzania gdzie się aktualnie znajdujemy i wyszukiwania ofert znajdujących się w zadanym promieniu
  • mogłaby obsłużyć ok milion użytkowników, z tym że równocześnie korzystałoby z niej maks 1000 userów
  • dałoby sie ją w miarę dobrze zabezpieczyć

Z jakich technologii najlepiej skorzystać tak żeby nie namęczyć się z przenośnością takiej aplikacji (web portal, Android) a jednocześnie byłoby mi łatwo to oganiać znając trochę Javę?

1

Sporo tego na raz.
Możliwości jest pierdyliard, nie wiem co jest najlepsze, powiem jak ja bym się za to zabrał.

  1. Postaw serwisy na chmurze (AWS?). Dzięki temu zmienny ruch nie będzie Ci straszny, bezpieczeństwo się uprości, a i koszty pewnie spadną.
    Autoryzację można ogarnąć serwisem AWS Cognito.
    Cały mobile w serwisie AWS Mobile Hub - wprowadzasz dane odnośnie bazy danych, jakie inne serwisy chcesz powiązać i na tej podstawie pobierasz JSONY, settingsy, Entity Javove i po prostu wrzucasz w projekt w odpowiednie miejsca.
    Dla webówki wystawisz po prostu resty, pewnie java, oparte na tej samej bazie danych. Możesz się o serverless pokusić i na lambdach wszystko zrobić, będzie łatwiej skalować.

  2. Dla Androida polecam Kotlina zamiast Javy. Koszt przyuczenia nie wielki jeśli znasz już Javę, a korzyści sporo.

  3. Co do szukania ofert w danym promieniu - jeszcze tego nie robiłem, ale również się przymierzam. Wstępnie wydaje mi się, że AWS DynamoDB ogarnia takie rzeczy (Geo Library). Niestety w tej chwili nie znam tego dobrze - do rozpoznania. To znaczy, że może warto żebyś rozważy opcję NoSQL albo SQL + dane geolokalizacyjne w NoSQL

  4. "W miarę dobrze zabezpieczyć" może znaczyć wszystko. Ogólnie przy takiej architekturze bezpieczeństwo można ogarnąć dobrze, chociaż nie chcę proponować nic ponad Cognito, ApiGateway, LoadBalancery i SSH w tym miejscu - temat szeroki, moja wiedza nie aż tak.

0

A czy dużo wolniejszy jest Kotlin pod Androidem, na desktopie Java 11 zjada Kotlin na śniadanie pod względem szybkości. Scala szybsza od Kotlina.

0

Nie mam bladego pojęcia. Kotlin po prostu ma sam w sobie wbudowane wiele udogodnień pozwalających znacznie zmniejszyć ilość potrzebnych bilbiotek już na starcie no i przy okazji skraca kod ładnie.
Zwykłe odwołanie się do elementu z xmla chociażby można zrobić po nazwie, to znaczy:

mySuperButton.setOnClickListener(...)

zamiast:

Button myButton = findViewById(R.id.mySuperButton);
myButton.setOnClickListener(...);

I takich rzeczy jest dużo, a im więcej kodu tym docienia się to bardziej.
Oczywiście do Javy są biblioteki które ułatwiają życie, ale po co skoro można użyć kotlina i żyć bez nich.
Wydajność sama w sobie to raczej nie problem, przynajmniej nie słyszałem żeby ktoś narzekał.

0

Ten pomysł z Azurem to dobra droga - faktycznie lepiej w takim wypadku będzie jak pójdę w chmurę. Natomiast co do Kotlina to bym się zastanawiał, bo i tak będę mieć sporo nowej technologii do ogarnięcia. Myślałem bardziej że może sa jakieś metody napisania kodu raz, który będzie potem do powtórnego wykorzystania czy to web czy android.

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