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

Jaki język do apki klient (andriod) - serwer (Windows)
IN
  • Rejestracja:około 16 lat
  • Ostatnio:ponad rok
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

edytowany 3x, ostatnio: Integers
Ktos
Moderator
  • Rejestracja:prawie 23 lata
  • Ostatnio:około 5 godzin
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.

IN
  • Rejestracja:około 16 lat
  • Ostatnio:ponad rok
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.

edytowany 1x, ostatnio: Integers
ZD
  • Rejestracja:około 3 lata
  • Ostatnio:ponad rok
  • Postów:2310
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.


If you put a million monkeys at a million keyboards, one of them will eventually write a Java program - the rest of them will write Perl
edytowany 1x, ostatnio: ZrobieDobrze
piotrpo
  • Rejestracja:ponad 7 lat
  • Ostatnio:4 dni
  • Postów:3277
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?

IN
  • Rejestracja:około 16 lat
  • Ostatnio:ponad rok
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ł :).

edytowany 1x, ostatnio: Integers
ZD
  • Rejestracja:około 3 lata
  • Ostatnio:ponad rok
  • Postów:2310
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.


If you put a million monkeys at a million keyboards, one of them will eventually write a Java program - the rest of them will write Perl
_13th_Dragon
Motykowiec słoneczny?
IN
Dlatego od razu się przyznaję że od zera praktycznie. Ale żeby przynajmniej język był właściwy.
ZD
@_13th_Dragon: mogę używać słówka ?
IN
  • Rejestracja:około 16 lat
  • Ostatnio:ponad rok
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.

_13th_Dragon
  • Rejestracja:ponad 19 lat
  • Ostatnio:2 miesiące
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.


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.
piotrpo
  • Rejestracja:ponad 7 lat
  • Ostatnio:4 dni
  • Postów:3277
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.

IN
  • Rejestracja:około 16 lat
  • Ostatnio:ponad rok
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 :)

edytowany 5x, ostatnio: Integers
_13th_Dragon
  • Rejestracja:ponad 19 lat
  • Ostatnio:2 miesiące
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.


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.
piotrpo
Rozpoznawanie pojedynczych znaków jest banalne, rozpoznawanie tekstu już jest pewnym wyzwaniem. Chyba, ze korzysta się z gotowych rozwiązań obrazek -> tekst oczywiście.
_13th_Dragon
A komu jest potrzebne rozpoznawanie pojedynczych znaków? Wyodrębnienie pojedynczych znaków z tekstu jest wręcz nie możliwe (np: ćśi) czyli znaki składające się z kilku części, zaś uwzględniając ogólnie pojęty szum ... W każdym razie rozpoznawanie pojedynczych znaków nie jest krokiem do rozpoznawania tekstu.
IN
Chodziło o to że nie wszystko od razu, i do czego te sieci. A jak w kodzie będzie to wyglądało to już w praniu. Finalnie będzie rozpoznanie tekstu z dokumentu zapewne najpierw tylko druku a potem i ręcznie. I rozwój..
piotrpo
  • Rejestracja:ponad 7 lat
  • Ostatnio:4 dni
  • Postów:3277
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.

IN
  • Rejestracja:około 16 lat
  • Ostatnio:ponad rok
0

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

Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)