Kotlin - początek przygody z androidem

0

Witam serdecznie,

Na co dzień pracuję jako full stack Web Dev (PHP- badum tss ;-) ). Chciałem zacząć działać w Androidzie i nawinął mi się kurs z Udemy za 10 Euro odnośnie Kotlina i Androida. Udemy Kotlin
Zastanawiam się czy to będzie dobrze wydane 10 euro. ;)

Jako Javowcy co powiecie - warto interesować się już Kotlinem? Na razie na użytek własny, a kiedyś może pracować jako Kotlin dev?
Ktoś z Was kodzi coś na androida w Kotlinie?

1

Na ostatnim Google I/O potwierdzili jeszcze większe związanie Androida z Kotlinem więc na pewno warto. Choć tak szybko patrząc na spis treści tego kursu to te informacje co tam przedstawiają znajdziesz bez problemu w necie za darmo no ale Twój wybór :P

1

Pytanie czy warto pisać w Kotlinie to pytanie na poziomie czy warto zakładać buty do biegania jak chcemy iść pobiegać. Niby można biegać bez butów, ale trzeba być chorym człowiekiem i nie szanować swoich stóp.

Nigdy więcej Javy.

0
MrHyperion napisał(a):

Pytanie czy warto pisać w Kotlinie to pytanie na poziomie czy warto zakładać buty do biegania jak chcemy iść pobiegać. Niby można, ale trzeba być chorym człowiekiem i nie szanować swoich stóp.

Nigdy więcej Javy.

Dlaczego uważasz że Kotlin jest lepszy od Javy pod Androida ?

4

Dlaczego uważasz że Kotlin jest lepszy od Javy pod Androida ?

Jezus, był wątek na forum w którym było tłumaczone czemu lepszy jest Kotlin od Javy, no ale w skrócie:

  • Null Safety, jeśli nie obsłużymy zmiennej która może być nullem, nie skompilujemy kodu;
  • Mniejszy boilerplate kodu;
  • Klasy modelowe, które już mają wygenerowane metody toString, equals oraz hasCode;
  • Stosowanie dobrych praktyk związanych z pisaniem Javie (np każda klasa domyślnie w Kotlnie jest finalowa);
  • Lepsze lambdy;
  • Operacje na kolekcjach. Kotlin ma podstawowe metody jak map czy filter. Prosze mi wskazać podobny feature w Javie 6/7. Java 8 (wspierana natywnie od API 24) oraz Retrolambda opadają.
  • Ładnie zaimplemetowane Singletony;

Wzywam @V-2 aby też się wypowiedział

1

Ostatnio w firmie zaczęliśmy tworzyć nową aplikację w Kotlinie. Po 5 latach pisania w Javie 6/7 to jak przesiąść się ze starego Volvo do nowego Mercedesa ;) Problem mamy tylko z juniorami, którzy piszą kotlinowy kod in Java way. Ale pracujemy nad tym :D

1
ajgoron napisał(a):

Na co dzień pracuję jako full stack Web Dev (PHP- badum tss ;-) ).

"I w nieszczęściu zachowuj spokój umysłu", jak radził Horacy.

Chciałem zacząć działać w Androidzie i nawinął mi się kurs z Udemy za 10 Euro odnośnie Kotlina i Androida. Udemy Kotlin
Zastanawiam się czy to będzie dobrze wydane 10 euro. ;)

10 euro nie pieniądz, ale przy takiej obfitości bezpłatnych materiałów, z jaką mamy do czynienia, wydałbym je na coś innego.

Jako Javowcy co powiecie - warto interesować się już Kotlinem?

Zdecydowanie warto. Już choćby dla własnego rozwoju jako programisty. Poznanie takiego języka może sprawić, że zaczniesz lepiej pisać także w swoim dotychczasowym.

Kotlin jest mądrze zaprojektowany i przystępnie wprowadza do wielu koncepcji ważnych we współczesnych językach programowania (inaczej niż PHP czy Java). To nie jest język, który sili się na oryginalność - raczej takie "best of" dzisiejszych trendów. Nieprzypadkowo np. Swift bywa łudząco podobny.

Kotlin jest obiektowy, ale, w zgodzie z trendem, są w nim elementy zaczerpnięte z programowania funkcyjnego. To też poszerza horyzonty.

Jest przy tym pomyślany w taki sposób, żeby dyskretnie skłaniać programistę do stosowania różnych dobrych praktyk - jak choćby immutability, preferowanie kompozycji i delegacji względem dziedziczenia, itd. Znowuż, odwrotnie niż Java czy PHP. (Są to języki stare - warto pamiętać że oba mają już ponad 20 lat. Oczywiście obydwa się rozwijały, ale przyrostowo i z koniecznością dbania o wsteczną kompatybilność. Są wskutek tego niespójne i sporo w nich historycznych zaszłości. Kotlin jest nowoczesny i nie ma takich obciążeń).

Na razie na użytek własny, a kiedyś może pracować jako Kotlin dev? Ktoś z Was kodzi coś na androida w Kotlinie?

Komercyjnie nie miałem jeszcze okazji. Hobbystycznie, oczywiście. Niewątpliwie jest używany coraz częściej i pojawia się już w ogłoszeniach o pracę. Błogosławieństwo, jakiego udzielił mu Google, szybko przysporzy mu dodatkowej popularności. Ale nie oszukujmy się: jeśli chcemy pisać na Androida, Javy i tak trzeba się nauczyć. To nie jest (niestety) tak, że można sobie wybrać - jedno albo drugie ;) I długo tak nie będzie.

0
V-2 napisał(a):
ajgoron napisał(a):

Ale nie oszukujmy się: jeśli chcemy pisać na Androida, Javy i tak trzeba się nauczyć. To nie jest (niestety) tak, że można sobie wybrać - jedno albo drugie ;) I długo tak nie będzie.

Uważam, że jest spora szansa, że Software House'y szybko przerzucą produkcję nowych projektów na Kotlin. Utrzymaniówka to co innego oczywiście, ale myślę, że moment gdy w ogłoszeniach o pracę będziemy widzieć "Junior Android Dev. z językiem Kotlin (dodatkowa znajomość java będzie traktowana jako plus)" nastąpi szybciej niż myślimy.

0

Mam nadzieję że się nie mylisz. Niemniej sama utrzymaniówka będzie jeszcze wlec się latami - raz napisany kod miewa zaskakująco długą żywotność. Poza tym już samo debugowanie raz na pewien czas narzuci nam konieczność wczytania się w źródła w Javie; choćby Android SDK (bywa!), czy wszelkich open-source'owych bibliotek. Do tego wszelkie przykłady, tutoriale, nikt tego nie przepisze nagle na Kotlin. Javę po prostu trzeba będzie znać, choć nie zawsze w niej pisać.

0

@MrHyperion: czmeu Java 8 odpada?

0
scibi92 napisał(a):

@MrHyperion: czmeu Java 8 odpada?

Bo jest wspierana natywnie, ale tylko cześć rzeczy od API 24. Zobacz sobie ile to jest urządzeń.

0

Hmm, Jave troche znam i myslalem zeby troche sie przesiasc na androida. Najpierw zaczynac pisac apki w Javie czy od razu nauka Kotlina i pisanie w nim?

0

Aha i ten Kotlin to tylko pod Androida czy to w ogole calkiem nastepca Javy?

0
Lew napisał(a):

Aha i ten Kotlin to tylko pod Androida czy to w ogole calkiem nastepca Javy?

To alternatywa dla Javy nie tylko pod Androida. Został stworzony przez firmę Jet Brains z myślą zwiększenia sprzedaży IntelliJ IDEA, które wspiera ten język. Ze względu na fakt, że Android Studio jest również rozwijane przez Jet Brains i jest w przeciwieństwie do IntelliJ darmowe, możemy się spodziewać, że Kotlin zdobędzie przede wszystkim serca programistów Android.

1
Haskell napisał(a):
Lew napisał(a):

Aha i ten Kotlin to tylko pod Androida czy to w ogole calkiem nastepca Javy?

Ze względu na fakt, że Android Studio jest również rozwijane przez Jet Brains

Android Studio jest rozwijane przez Google (jest to fork IntelliJ Idea do którego Google dodaje swoje rzeczy)

jest w przeciwieństwie do IntelliJ darmowe, możemy się spodziewać, że Kotlin zdobędzie przede wszystkim serca programistów Android

Również dlatego, że adroidowcy muszą na co dzień borykać się ze starą odmianą Javy (poziom 6). Zyskują zatem większy przyrost komfortu przesiadając się na nowoczesny język.

0
V-2 napisał(a):

Również dlatego, że adroidowcy muszą na co dzień borykać się ze starą odmianą Javy (poziom 6). Zyskują zatem większy przyrost komfortu przesiadając się na nowoczesny język.

Wydaje mi się, że Twój DeLorean się popsuł :) Od API 19 można już używać Javy 7, a od API 24 jest wsparcie dla wielu ficzerów z Java 8. Wg Google obecnie tylko około 10% urządzeń używa Androida w wersji starszej niż 19.

0

Masz rację, w zasadzie jest to poziom 7. Dzięki za sprostowanie. Niemniej, jak to mówią, "I rest my case" - różnice między Javą 7 a 6, jeśli chodzi o język jako taki, raczej nie były przełomowe. A zanim API 24 stanie się normą (i tak zresztą nie obejmując - jak zauważyłeś - wszystkiego, co zawiera Java 8), upłynie jeszcze sporo bitów w pajplajnie, więc póki DeLorean nie jest sprawny, musimy się wykazać sporą dozą cierpliwości. Kotlin zaś teraz już oferuje kilka bajerów, których nawet owa wyczekiwana Java 8 nie posiada.

0

A tak poza androidem warto w to sie pakowac waszym zdaniem? Czy uczac sie Kotlina i Javy jednoczesnie sie nie pomiesza? Czy to prawda, ze Kotlin ma zamiar wprowadzic pisanie programow pod iOS itd.? Gdzies slyszalem, ale nwm czy to potwierdzone info.

0
Lew napisał(a):

A tak poza androidem warto w to sie pakowac waszym zdaniem? Czy uczac sie Kotlina i Javy jednoczesnie sie nie pomiesza? Czy to prawda, ze Kotlin ma zamiar wprowadzic pisanie programow pod iOS itd.? Gdzies slyszalem, ale nwm czy to potwierdzone info.

Jeśli już, to Jet Brains może chcieć coś wprowadzić w Kotlinie. A jeśli już to Apple, nie Jet Brains, bo to ta firma kontroluje (siłą rzeczy) środowisko produkcji oprogramowania na iOS. I nie, nie jest to realne, bo Apple ma swój nowoczesny język (Swift).

0

Takiej wersji to nie słyszałem nawet w formie pogłosek. EDIT: a jednak - dzięki za link @bolson

Gruchnęła kiedyś plotka, że statusem języka wspieranego na Androidzie mógłby zostać uhonorowany Swift.: https://thenextweb.com/dd/2016/04/07/google-facebook-uber-swift/#.tnw_xOXhHRE6

Też wydawało się to nieprawdopodobne, bo niby dlaczego Google miałoby chcieć uzależniać się od języka stworzonego i kontrolowanego przez ich największego konkurenta w segmencie mobilnym...

A przy okazji:
http://nilhcem.com/swift-is-like-kotlin/

1
Lew napisał(a):

A tak poza androidem warto w to sie pakowac waszym zdaniem? Czy uczac sie Kotlina i Javy jednoczesnie sie nie pomiesza? Czy to prawda, ze Kotlin ma zamiar wprowadzic pisanie programow pod iOS itd.? Gdzies slyszalem, ale nwm czy to potwierdzone info.

Zapewne chodzi o projekt Kotlin Native https://blog.jetbrains.com/kotlin/2017/04/kotlinnative-tech-preview-kotlin-without-a-vm/. Ekipa z JetBrains przyznała, że teraz głównie na tym będą się focusowac.

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