Nauka tworzenia aplikacji na Androida w roku 2020.

Nauka tworzenia aplikacji na Androida w roku 2020.
CD
CD
  • Rejestracja:ponad 4 lata
  • Ostatnio:prawie 2 lata
  • Postów:10
0

Dzień dobry.

Chciałbym się nauczyć tworzyć aplikacje na systemy Android dla własnej satysfakcji.
Krótko o mnie. Znam C++, trochę Qt, dobrze SFML, lata temu tworzyłem aplikacje na WIndowsa i GNU/Linux (Mint)
Trochę bawiłem się Pythonem...
Wszystko hobbistycznie.

Piszę ponieważ w internecie jest bardzo dużo materiałów żenująco niskiej jakości które nie odpowiadają na pytania nowicjusza.
Oczywiście część z nich jest płatna gdzie nabyłem kurs w którym łamanym angielskim mieszkaniec Indii uczy tworzenia aplikacji na zasadzie powtórz po mnie, Będziesz hakierem....

Proszę też aby czytający nie unosili sie jeżeli zadam pytanie które wyjadaczom wyda się banalne.
Nie znalazłem też wątku na forum który byłby w miarę świeży i sprawiał wrażenie że wiedza jest aktualna.

  1. Jaki język programowania?
    Znam C++, słyszałem lata temu że w C++ można pisać aplikacje na Androida, czy to prawda?
    A może czeka mnie nauka Javy? Czym jest na dzień dzisiejszy Kotlin, osobnym językiem czy frameworkiem? Słyszałem że najpierw trzeba umieć Jave aby był sens nauki Kotlin... czy to prawda?

  2. Jakie IDE polecacie? Jest jedno właściwie, mianowicie Android Studio czy można korzystać z innych?
    Które IDE będzie najlepiej zainstalować wg was jeżeli jest się osobą początkującą?

3)Skąd czerpać wiedzę?
Język angielski oczywiście nie jest problemem.

Filmy, blogi książki?
Osobiście preferuje źródła pisane gdyż szybciej się czyta niż ogląda.
Chciałbym czytając nie tylko dowiadywać się co robić ale też dlaczego.
Czy możecie coś polecić?

Pozdrawiam
CiscoDisco
:)

edytowany 1x, ostatnio: CiscoDisco
RezyserKinaAkcji
  • Rejestracja:ponad 4 lata
  • Ostatnio:prawie 2 lata
  • Postów:163
4
  1. Idź w Kotlina, ponieważ cały świat wyraźnie skręca w kierunku Kotlina jeśli chodzi o programowanie aplikacji mobilnych.

  2. Tylko i wyłącznie Android Studio.

  3. Udemy.com - jakieś podstawowe kursy które pokazują podstawowe rzeczy, potem dokumentacja, youtube, stackoverflow i projekty, projekty, projekty.

LP
  • Rejestracja:około 7 lat
  • Ostatnio:około 2 miesiące
  • Postów:365
2

Witam Panie CiscoDisco,

  1. Na androidzie można pisać w C++ ale 99% przykładów będzie w javie / kotlinie.
    A może czeka mnie nauka Javy? - nie do końca
    Czym jest na dzień dzisiejszy Kotlin, osobnym językiem czy frameworkiem? - osobny język jak java / groovy / c++
    Słyszałem że najpierw trzeba umieć Jave aby był sens nauki Kotlin... czy to prawda? - już nie. Przykłady kodów na androidzie są już dostępne w dwóch wersjach: java oraz kotlin.

  2. Android Studio

https://androidweekly.net/
https://developer.android.com/docs
https://codelabs.developers.google.com/
https://github.com/android/architecture-samples

AK
  • Rejestracja:ponad 6 lat
  • Ostatnio:dzień
  • Postów:3561
2
  1. Java na adroidzie jest hamowana na wersji 8 (zadałem na forum pytanie, ale nikt mnie nie przekonał, że myślą o nowszych)
  2. wpadam do adroidowego projektu raz na 3-4 kwartały (utrzymaniówka). AS jest mocno upierdliwe, puchnące katalogi z upgradami (itd), wolę zaorać i wgrać nowe. Puchnie bardziej niż wszystkie inne IDE razem (wiem, ze spłycam nieco, to w jakimś stopniu API androida)
  3. w zasobach androidowo-developerskich u googla (nie mówię o wyszukiwarce) są chyba nadal dość dobre tutoriale. Wygenerować apkę przykładową, zmieniać ...

Bo C to najlepszy język, każdy uczeń ci to powie
edytowany 1x, ostatnio: AnyKtokolwiek
cerrato
Moderator Kariera
  • Rejestracja:około 7 lat
  • Ostatnio:2 dni
  • Lokalizacja:Poznań
  • Postów:8759
5

Zainteresuj się Flutterem. To nowy wynalazek stworzony i promowany przez Google.
Ludzie się tym zachwycają.
Można tworzyć aplikacje o prędkości działania zbliżonej do aplikacji natywnych (uwaga - gier, zwłaszcza 3D w tym na razie nie zrobisz). Ponadto Flutter tworzy jednocześnie na Apple i Androida. Są jakieś prace, żeby dało się w tym robić webówkę oraz desktopy, ale na razie to są raczej eksperymenty/ciekawostki.
Plusem jest, że prawdopodobnie będzie to natywny sposób tworzenia aplikacji na Fuchsia - czyli następcę Androida (aczkolwiek to wszystko jeszcze mocno niejasne i wiele może się zmienić).

@AdamWox może coś dodać w temacie Fluttera :)

Temat Fluttera już się pojawiał na forum:
https://4programmers.net/Forum/Mobilne/319359-
https://4programmers.net/Forum/Mobilne/332161-
https://4programmers.net/Forum/Mobilne/329285-
https://4programmers.net/Forum/Mobilne/329247-
https://4programmers.net/Forum/Mobilne/306357-
https://4programmers.net/Forum/Mobilne/337311-
https://4programmers.net/Forum/Mobilne/329171-
https://4programmers.net/Forum/Mobilne/330896-
https://4programmers.net/Forum/Mobilne/340658-
https://4programmers.net/Forum/Mobilne/338626-
Jaki język programowania wybrać na start?

I kilka linków spoza 4P:
https://www.netguru.com/codestories/topic/flutter
https://programistanaswoim.pl/materialy-do-nauki-fluttera-i-darta/
https://www.e-point.pl/blog/react-native-czy-flutter
https://bulldogjob.pl/articles/920-czy-warto-uzyc-google-flutterv
https://it-solve.pl/google-flutter-co-to-jest-dlaczego-warto-go-uzywac/
https://makoblog.com/pl/flutter-przyszlosc-tworzenia-aplikacji-mobilnych/
https://medium.com/@leancode/czym-jest-flutter-i-dlaczego-warto-si%C4%99-nim-zainteresowa%C4%87-7b6a11d41e67


DC
Może tak a może Google zaora to za 2 lata ;) A tej całej Fuchsii to możemy nigdy nie zobaczyć.
cerrato
Dlatego napisałem, że to wszystko jeszcze nie jest pewne. Aczkolwiek o ile mogę uwierzyć w zmianę wizji odnośnie Fuchsi, to nie wyobrażam sobie zabicia fluttera.
LP
Mój engineering lead w agencji gdy pracował w ebay zaproponował fluttera w firmie. Tutaj opis jak został on przyjęty: https://tech.ebayinc.com/product/ebay-motors-accelerating-with-fluttertm/
cerrato
@lubie_programowac: Flutter has not only met our expectations — it has dramatically exceeded them. This has been much more than a technology choice. In many ways, Flutter has changed and enhanced the way our team operates, making its members demonstrably more productive and happier in their day-to-day work. With speed and agility quickly becoming the new normal, development teams would be well served to look into Flutter for production apps of any size.
LP
@ceratto: Zgadza się, w innym wątku pisałem że ja przechodzę na fluttera. Aktualnie spring potem flutter.
ME
  • Rejestracja:ponad 5 lat
  • Ostatnio:ponad 4 lata
  • Postów:638
0

@cerrato: gry i tak robi się w C#/Unity, Kotlin by się tu nie przydał. Co do IDE, można jeszcze Intelij, ale to jest to samo.

cerrato
Zgadza się - po prostu chciałem od razu zaznaczyć, że we Flutterze gier nie zrobi, żeby nie było niedomówień.
PK
PK
  • Rejestracja:ponad 4 lata
  • Ostatnio:ponad 3 lata
  • Postów:245
1

Odnośnie fluttera nie tak dawno o tym pisałem: Wejście w IT prościej niż front-end ?

cerrato
Pamiętałem, że kilka dni temu ktoś wrzucił takiego fajnego posta, chciałem podlinkowanać, ale nie mogłem sobie przypomnieć kto to był i gdzie pisał. Fajnie, że sam się zgłosiłeś :)
AdamWox
  • Rejestracja:ponad 7 lat
  • Ostatnio:około 4 godziny
  • Lokalizacja:Jastrzębie-Zdrój
  • Postów:2155
1

@cerrato: Połączył nas Flutter <3

Ja teraz zaczynam wrzucać link do przykładowych aplikacji napisanych we Flutterze dla zademonstrowania jak dużo można zrobić. Czas stworzenia "wodotrysków", UI, UX (jak dla mnie) jest zdecydowanie krótszy i daje, na pewno, większe możliwość niż Xamarin, a śmiem twierdzić, że te same co Java/Kotlin + XML. Składnia może odstraszać, ale z czasem to wszystko nabierze sensu. Polecam :-)

ME
  • Rejestracja:ponad 5 lat
  • Ostatnio:ponad 4 lata
  • Postów:638
2

Zgadzam się, wodotryski można robić znacznie łatwiej, niż natywnie. Podejście jest jednak inne i trzeba się przestawić. Xamarin Forms to przy tym jakaś żałosna namiastka i funkcjonalnie i wydajnościowo, jak i pod względem wydajności finalnej aplikacji. Aplikacja we Flutterze naprawdę nie ustępuje wydajnością natywnej.

DE
  • Rejestracja:prawie 8 lat
  • Ostatnio:około 21 godzin
  • Postów:563
0

W temacie aplikacji mobilnych warto zainteresować się też tematem React Native i Ionic. Plusem (albo minusem) jest to, że używa się JavaScriptu/TypeScriptu tak jak w przypadku budowania interfejsów stron www ("Learn once, write anywhere")

https://nordicapis.com/react-native-vs-flutter-what-to-choose-in-2020/

cerrato
Moderator Kariera
  • Rejestracja:około 7 lat
  • Ostatnio:2 dni
  • Lokalizacja:Poznań
  • Postów:8759
0

@piotrevic: teraz nie chce mi się szukać, ale pewien czas temu dużo czytałem w necie - było to zanim wybrałem Fluttera. Głównie to były hasła w stylu Flutter vs Xamarin vs React. I w 80% wszystkie takie porównania wychodzą na korzyść Fluttera. O Ionicu się nie wypowiem. ale RN nie działa na poziomie natywnym, tylko przez bridge, co ma wpływ na wydajność oraz (jak pisałem - czytałem to jakiś czas temu, więc nie pamętam szczegółów) ogólnie sposób działania RN jest o wiele mniej korzystny niż Fluttera.

Tak na szybko:
https://itcraftapps.com/pl/blog/flutter-vs-react-native-porownanie-frameworkow-cross-platform/
https://geek.justjoin.it/wady-zalety-react-native-porownaniu-technologiami-natywnymi


DE
Możliwe. Nie chcę namawiać do RN, bo sam z tego korzystałem tylko przez ok. 2 tygodnie, a reszty nie znam. Tak tylko wspominam. Łatwo się wdrożyć kiedy wcześniej się coś robiło w samym React.
cerrato
Tak - to racja, że przesiadka z "normalnego" Reacta jest prosta. Ale z drugiej strony - zaczynając Fluttera od zera, po jakichś 2 tygodniach będziesz temat miał na tyle ogarnięty, że na RN nie będziesz chciał patrzeć ;)
ME
Przesiadka z Reacta na Fluttera jest też prosta. Prostsza niż na natywne. A Dart ma kilka podobieństw do JS, np Future vs Promise z JS
Ja Wnie
  • Rejestracja:ponad 4 lata
  • Ostatnio:ponad 4 lata
  • Postów:6
0

Daj linka do kursu który robiłeś i powiedz czemu go wybrałeś?

Bo rozumiem że dałeś się naciągnąć, tzn. zajawka była dobra a potem kupa kamieni. Chciałem zobaczyć czy zajawka była naprawdę dobra czy po prostu zrobiłeś kiepski reaserch.

MD
  • Rejestracja:około 5 lat
  • Ostatnio:około 3 lata
  • Postów:25
1

Jeżeli chciałbyś tworzyć apki przy pomocy Kotlina to słyszałem, że kursy Udacity są całkiem niezłe (ale sam osobiście z nich nie korzystałem):

Nawet jeśli zdecydujesz się na Fluttera to moim zdaniem i tak warto znać podstawy tworzenia apek w sposób natywny. Nie będziesz ograniczony tylko do jednej technologii, jeśli coś nie będzie dostępne we Flutterze to zawsze będziesz mógł to sam dodać natywnie :)


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)