Jaki język do apki klient (andriod) - serwer (Windows)

0

Dzień dobry Wszystkim.
Jaki język najlepszy do apki klient (android) - serwer (Windows na początku).
Są to wstępne rozważania więc wszystkie konstuktywne uwagi mile widziane
Miałem dłuższą przerwę w programowaniu i teraz się reaktywuję na jakimś nowym języku programowania tylko pytanie którym?
Czasu jest nie wiele bo mam wolne tylko weekendy. Ale nie w tym rzecz.

Pomysł jest by zrobić:
serwer - do ustalenia na czym chociaż na początku do testów może na moim laptopie.
Chyba, że coś darmowego na początku.

A apka.. mogła by działać i na laptopie i na androidzie (smartfon).
Co by robiła?
Na początku prosty program z szablonami i ewidencji plików, rekordy danych.
Jednak po drodze pojawiają się elementy sieci neuronowych więc i to by trzeba uwzględnić.

Na razie liczę na ogólne wskazówki a w miarę nauki i wgryzania się w temat, z cięższymi sprawami będę dzwonił o konkretną "pomoc".

Pozdrawiam

4

Miałem dłuższą przerwę w programowaniu i teraz się reaktywuję na jakimś nowym języku programowania tylko pytanie którym?

A jaki język programowania znasz? Najłatwiej napisać w tym, co już się umie.

Jeżeli zadałeś pytanie w dziale Java, to może znasz Javę, to może Java? Można w niej napisać serwer i klienta, i pewnie ML też się da podpiąć jeśli zajdzie ci potrzeba. Alternatywnie Kotlin.

A apka.. mogła by działać i na laptopie i na androidzie (smartfon).

Do napisania aplikacji działającej zarówno na Androidzie, jak i na Windows czy Linuksie możesz wykorzystać np. Fluttera. Ale można by też napisać aplikację internetową i wtedy w ogóle platforma klienta cię nie interesuje, ale warto by poznać JavaScript.

0

@Ktos: Delphi 2007 ale to było naście lat temu i nie wyczynowo.
Nie jest to program na zaliczenie więc pomyślałem, że nauczę się albo javy albo phytona.

Terminy nie gonią ale nie chciałbym się za pół roku dowiedzieć, że e się czegoś nie da albo było by lepiej inaczej dla tego pytam mądrzejszych

Jeśli mówisz że client, serwer, sieci neuronowe w javie obskoczę to ok.

Edit.
Fluttera też obejrzę bo o nie miałem styczności.

No właśnie teraz pytanie bo na chwilę obecną jest tylko laptop na Windows a program nie będzie prototypowy ale na czym najbezpieczniejszy i najwydajniejszy będzie serwer?
To i na czas pisana sobie zorganizuję jakiś mini do testów.

1

Platforma Android jest szczególnie trudna. Zdecydowanie to nie jest komfort używania czystej Javy (Kotlina, obojętne) w ludzkich warunkach

Trochę syntaxu Javy/Kotlina to pikuś przy złożoności środowiska

Na początku prosty program z szablonami i ewidencji plików, rekordy danych.

To ani po polsku, ani logiczne nie jest.

0

Obie strony ogarniesz za pomocą Java, albo z użyciem jej bardziej strawnej wersji, czyli Kotlin. Po stronie serwera, trzeba wtedy wybrać na czym to ma chodzić i tu możliwości jest już sporo. Spring, Ktor (dla Kotlina). Czy apka ma działać tylko na telefonie, czy masz mieć z automatu wersję pod windows?

0

@ZrobieDobrze:
Bo wiesz, na pierwszy rzut cokolwiek przesyłane byle działało.
Więc mogły by to być pliki txt, stringi i bmp/ tabele danych.
Żeby nauczyć się i uruchomić komunikację.

Ważne by te sieci neuronowe po drodze można było.

Gdzieś w drugiej wersji będzie to prosty menadżer plików księgowości lub/ i plików audio, obrazy. Czyli np wyszukiwanie podobnych dokumentów. Do wstępnego segregowania.

Ale to już mniej istotne. Nie chcę sobie dużego celu stawiać żebym się w myślach nie poplątał :).

2

Dużo, dużo hello worldów przed tobą.
Coraz bardziej złożone aplikacje w konsoli.
W Androidzie z taki startem, to zginiesz jak ciotka w Czechach.

0

@piotrpo:
a) Albo jeśli na początku będzie działać w czasie kodowania tylko pod Windows to ok i trudno. Ale wtedy gdy będę przerabiał na wersję pod smartfona to tylko panel przerobić a moduły mam nadzieję zostaną tylko minimalnie przeedytowane.
b) jednocześnie na początku mogę nie ogarnąć ale ale jeśli jest prosty sposób by potem głową ściany nie rozbijać to lepiej wiedzieć o tym wcześniej.

1

Podstawowym językiem dla androida jest Java.
Pozostałe języki (za wyjątkiem Kotlin) tworzą odpowiednie wrapiery w javie czyli z definicji mniej możliwości.
Co do serwera to zdecydowanie język który znasz najlepiej, skoro od zera to poznasz Jave przy okazji klienta.

2

Ciężko ci coś doradzić konkretnie, nie wiedząc jakie są faktyczne wymagania. Czy to musi być aplikacja, czy wystarczy stronka mobilna, czy sieci mają być używane na serwerze, czy również na urządzeniu mobilnym. Czy jest to taka sobie wprawka do CV, czy coś co ma stać się skalowanym i utrzymywalnym systemem.
Dla Androida Kotlin jest w tej chwili najpopularniejszym językiem, przy okazji będzie tam do ogarnięcia najwięcej rzeczy, bo sam Android framework to już kobyła, a pojawią się pewnie inne wyzwania.
Na Windows możesz do napisania serwera użyć właściwie czegokolwiek. Osobiście polecałbym ograniczyć liczbę języków i skorzystać z Kotlin + Ktor. Sieci neuronowe, czy ogólnie AI to już kompletnie inna para kaloszy, znowu zależy co chcesz tym analizować, gdzie wykonywać predykcje, jak zbierać dane itd. Jest trochę frameworków, które pozwolą ci np. wyuczyć model na maszynie z windowsem i używać go na urządzeniu mobilnym, ale sporo zależy od konkretnego zastosowania. Jakieś popierdółki na 5 zmiennych nie ma problemu, z rozpoznawaniem obrazu będzie już trochę gorzej.

0

@_13th_Dragon: ..
Może podstawy javy utrwalę i zobaczę co z tym Kotlin-em. Skoro to taki kombajn do wszystkiego.
Ważne że wiem że nie python czy potem konwersje na jave bo i takie opcje czytałem.

@piotrpo:
Aplikację chciałbym to powoli rozwijać w miarę opanowania języka.
Nie jestem zespołem geniuszy którzy programują w javie wcześniej niż zaczęli chodzić ;) to wiem. Więc na spokojnie.

Strona mobilna może nie wystarczyć bo po stronie klienta też by się sporo działo, wstępna obróbka, nie chcę sobie ograniczać możliwości, elementy sieci, może współpraca z innymi apkami moimi i nie na androidzie (kiedyś).

Jak już wiem co się da i w czym wypunktowuję etapy. Ogarnę narzędzia bo bez projektowania nawet najprostszego będzie krucho. Spróbuję poszukać sam żeby nie nadużyć gościnności. Ale to inny temat i popularny..

Sieci kiedyś w Delphi liznąłem ( bo inaczej tego nie można nazwać, przy okazji rozpoznawania znaków ).
Od jakiegoś czasu też czytam, podobno super się sprawdza metoda nagrody i kary odwzorowuje naukę ludzkiego mózgu - wiem że jest. Jak działa to dowiem się kodując. I kilka innych.

Zastosowanie SN, sposoby zbierania danych to myślę w miarę nauki. Ale jakieś drobne porównanie obrazu, rozpoznawanie znaków chociaż podobno łatwiej będzie teoretycznie zrobić auto korektę w tekście..
coś w ten deseń zajść z tą motyką dalej niż na drugą stronę ulicy ;).
Potem się zobaczy. Więc gdzie, jakie dane.. , trzeba przyjąć, że bardziej zależy na elastyczności w programowaniu celem nauki i poznaniam.

Przy pierwszym podejściu do rozpoznawania znaków zapewnie będzie to znak drukowany .. np pole 10x10, żeby się J G m M pisane zmieściło a potem rozwój.
Z użytecznością nie będzie miało wiele wspólnego ale od czegoś trzeba zacząć.
Jest też metoda wtrysku atramentu w znak i rozpoznawania elementów kółko, laska. Ale to kilka wersji dalej :)

1

Rozpoznawanie znaków to zupełnie inny temat niż rozpoznawanie obiektów lub rozpoznawanie twarzy lub rozpoznawanie linii papilarnych.
OCR radzi sobie z tym bardzo dobrze z rozpoznawaniem tekstu, jest dostępny pod androidem.

1

Rozpisz sobie co ma robić najprostszy wariant tego co chcesz osiągnąć. Zdecyduj się co ma być po stronie serwera, a co po stronie klienta. Poczytaj sobie o REST API, zaprojektuj to co ma oferować serwer (w najprostszym wariancie) i go napisz. Żadne tam Springi (chybam, ze chcesz podpompować CV, albo coś...), tylko proste rozwiązania typu podany wcześniej Ktor. Zrąbiesz to pewnie masakrycznie, ale opanujesz podstawy języka. Testowanie jakimś klientem http, może być wbudowany w Intelli (tworzysz plik cośtam.http i wpisujesz np. GET http://localhost:8080/myendpoint).
Jak uda ci się doprowadzić serwer do działania, to bierzesz się za klienta. Będziesz potrzebować jakiejś biblioteki klienta http + trochę "formatek". Wykorzystasz w tym Kotlina, którego liźniesz podczas robienia serwera.

Sieci neuronowe: Wyuczenie sieci neuronowej do rozpoznawania znaków, to trochę banał. Masz gotowe zbiory do trenowania ML, więc najtrudniejsza część (przygotowanie danych uczących) jest za tobą. Pozostaje przygotowanie i wyuczenie sieci. Na początek potrzebujesz wiedzy "co to jest sieć", ale nie żadne pierdoły i nagrodach i karach, tylko podstawy działania NN. Ten kurs: https://www.coursera.org/specializations/machine-learning-introduction da ci tę wiedzę (wiem, bo go robiłem). Następnie bierzesz tę wiedzę i robisz drugi kurs, z Tensorflow, nie mogę znaleźć go w tej chwili, też był niezły i za darmo (dobre bo tanie), ale bez wiedzy o tym co to jest learning set, test set, validation set możesz mieć problem, dlatego polecam najpierw ten pierwszy prowadzony przez Andrew Ng.

Jak już będziesz miał model, to pozostanie ci go podłączyć do serwera, albo do klienta, gdzie ci wygodniej.

0

@piotrpo: dziękuję Wam. No w pierwszych wersjach będzie sieczka ale od czegoś trzeba zacząć i krok po kroku.

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