Aplikacje mobilne - Java czy C#? A może Javascript + HTML i CSS?

0

Cześć :)
Jestem w trakcie podejmowania bardzo ważnej decyzji życiowej - co robić dalej (zabrzmiało to strasznie :D). W tym momencie jestem testerem oprogramowania - testy manualne + testy automatyczne pisane w Pythonie.
Ale moim marzeniem jest tworzenie aplikacji mobilnych (Android, iOS?) - dlatego też od jakiegoś czasu myślę, od czego mogłabym zacząć naukę.
Znam HTML i CSS (+ Bootstrap i Wordpress - czasami bawię się w tworzenie jakiś prostych stron internetowych) i oczywiście Pythona na tyle, aby pisać testy automatyczne. I teraz zastanawiam się, jaki język wybrać do pisania aplikacji mobilnych. Nauczyć się Javascripta (HTML i CSS juz jest) i z Iconic tworzyć te aplikacje, czy może zacząć uczyć się Javy (lub C# - ale chyba microsoftowskie rzeczy mnie mało interesują :P) - co pozwoli zawsze w razie czego przerzucić się na korporacyjne aplikacje (JavaEE)? Na iOSa przydałby się pewnie Swift + Objective-C, ale to pewnie w późniejszym terminie ;)
Czy ktoś mógłby mi rozjaśnić, co bardziej mi się przyda? Widziałam trochę ofert z Javascriptem, ale wydaje mi się, że jednak Java rządzi... I chyba jednak nauka Javy pozwoli mi później szybciej przyswoić Objective-C (czy może się mylę?)
Dzięki za jakiekolwiek odpowiedzi! :)

0

Z tego co mówisz, zacząłbym bezpiecznie od Javy. C# nie dotykaj - ja go uważam za fajny oczywiście, ale Tobie mówisz nie leży (tak jak mnie nie leży Java). Możesz później jak Ci się to nie spodoba przerzucić na Jave EE, albo webówkę (spring).

Oczywiście są też inne opcje, niektóre wymieniłeś. Jest jeszcze Kotlin też. Ale na początek celowałbym w coś sprawdzonego - łatwiej o oferty pracy - a potem myślał co dalej.

Jest też inna opcja - Objective C/Swift. Tutaj się nie orientuje za bardzo, ale wiem, że potrzebujesz do tego swojego własnego iUrządzenia. I nie jestem pewny czy tylko telefonu, czy też kompa, a to już drogie inwestycje na początek mogą być.

0

Celowałbym w Androida.

0

Java otwiera Ci też w pewnym sensie drogę do innego potężnego języka jakim jest Scala i który nie ma odpowiednika na platformie .NET.

W Scali można z powodzeniem pisać aplikacje mobilne, webowe, działające w przeglądarce (Scala.js), oraz od niedawna - natywne na wszystkie platformy, na które jest LLVM.

0

Według mnie Scala/Spark to tak... ale poza tym raczej się nie przyjmie.

0

A co sądzicie o microsoftowym narzędziu o nazwie Xamarin? Ma to prawo bytu przy tworzeniu aplikacji mobilnych?

0

Raczej się nie przyjmie? Przecież to już jest stabilna technologia. http://www.indeed.com/jobtrends/q-scala-q-php.html (php wrzuciłem tylko dla odniesienia)

0
Wizzie napisał(a):

Raczej się nie przyjmie? Przecież to już jest stabilna technologia. http://www.indeed.com/jobtrends/q-scala-q-php.html (php wrzuciłem tylko dla odniesienia)

Scala jest ok. Ale nie widze jej w roli Java EE/Spring. Zresztą nie ma na razie Scalowego frameworka, który bylby do tego konkurencyjny.
Język to jedno, do czego będzie stosowany to drugie. Póki co wszystko co związane ze Sparkiem to jak najbardziej Scala.

A Scala na aplikacje mobilne to... prędzej Kotlin.

0

No, to fakt, pod .NET nie ma takich słabych języków jak pod JVM. - @somekind

hejter.

0
sofiaprunikos napisał(a):

Na iOSa przydałby się pewnie Swift + Objective-C, ale to pewnie w późniejszym terminie ;)
Czy ktoś mógłby mi rozjaśnić, co bardziej mi się przyda? Widziałam trochę ofert z Javascriptem, ale wydaje mi się, że jednak Java rządzi... I chyba jednak nauka Javy pozwoli mi później szybciej przyswoić Objective-C (czy może się mylę?)

Nie sądzę żeby nauka Javy pozwoliła Ci szybciej przyswoić Objective-C. Prędzej nauka C, ewentualnie C++. Objective-C to jest zwykły C plus obiektowość z trochę dziwną składnią. Na dobrą sprawę możesz pisać programy w samym C i je kompilować jako programy Objective-C.
Jak chcesz tworzyć programy na iOSa, to będziesz potrzebowała XCODE, który działa tylko na MAC OS X. Oficjalnie MAC OS X działa tylko na sprzęcie firmy Apple, ale w internecie (na torrentach) można znaleźć zhackowane wersje MAC OS X, które zadziałają na PCie. Takiego MAC OS X można zainstalować na PCie jako kolejny system lub zainstalować na Virtual Box'ie pod Windowsem. Jest jeszcze taka kwestia, że są różne wersje XCODE i najnowsza wersja nie będzie działała na starym MAC OS X. Swift jest dostępny w XCODE od wersji 6, a XCODE 6.x jest dostępny od MAC OS X 10.9 Mavericks w górę.

0
AreQrm napisał(a):

Z tego co mówisz, zacząłbym bezpiecznie od Javy. C# nie dotykaj - ja go uważam za fajny oczywiście, ale Tobie mówisz nie leży (tak jak mnie nie leży Java). Możesz później jak Ci się to nie spodoba przerzucić na Jave EE, albo webówkę (spring).

Oczywiście są też inne opcje, niektóre wymieniłeś. Jest jeszcze Kotlin też. Ale na początek celowałbym w coś sprawdzonego - łatwiej o oferty pracy - a potem myślał co dalej.

Jest też inna opcja - Objective C/Swift. Tutaj się nie orientuje za bardzo, ale wiem, że potrzebujesz do tego swojego własnego iUrządzenia. I nie jestem pewny czy tylko telefonu, czy też kompa, a to już drogie inwestycje na początek mogą być.

Też właśnie sądzę, że zacznę od Javy - mimo wszystko widzę, że jest mnóstwo ofert pracy, a poza tym chyba jednak calowałabym w Android Developera :) A co do iOSa - może za kilka lat jak się dorobię swojego Maca... :D

Krolik napisał(a):

Java otwiera Ci też w pewnym sensie drogę do innego potężnego języka jakim jest Scala i który nie ma odpowiednika na platformie .NET.

W Scali można z powodzeniem pisać aplikacje mobilne, webowe, działające w przeglądarce (Scala.js), oraz od niedawna - natywne na wszystkie platformy, na które jest LLVM.

Też widziałam Scala - też mnie zainteresowało, więc wybiorę na początek Jave, a później podejrzewam że właśnie pójdę w Scala lub Kotlin :)

Igor1981 napisał(a):
sofiaprunikos napisał(a):

Na iOSa przydałby się pewnie Swift + Objective-C, ale to pewnie w późniejszym terminie ;)
Czy ktoś mógłby mi rozjaśnić, co bardziej mi się przyda? Widziałam trochę ofert z Javascriptem, ale wydaje mi się, że jednak Java rządzi... I chyba jednak nauka Javy pozwoli mi później szybciej przyswoić Objective-C (czy może się mylę?)

Nie sądzę żeby nauka Javy pozwoliła Ci szybciej przyswoić Objective-C. Prędzej nauka C, ewentualnie C++. Objective-C to jest zwykły C plus obiektowość z trochę dziwną składnią. Na dobrą sprawę możesz pisać programy w samym C i je kompilować jako programy Objective-C.
Jak chcesz tworzyć programy na iOSa, to będziesz potrzebowała XCODE, który działa tylko na MAC OS X. Oficjalnie MAC OS X działa tylko na sprzęcie firmy Apple, ale w internecie (na torrentach) można znaleźć zhackowane wersje MAC OS X, które zadziałają na PCie. Takiego MAC OS X można zainstalować na PCie jako kolejny system lub zainstalować na Virtual Box'ie pod Windowsem. Jest jeszcze taka kwestia, że są różne wersje XCODE i najnowsza wersja nie będzie działała na starym MAC OS X. Swift jest dostępny w XCODE od wersji 6, a XCODE 6.x jest dostępny od MAC OS X 10.9 Mavericks w górę.

Chodziło mi raczej o to, że nauka obiektowej Javy (a nie Javascripta) pozwoli mi szybciej przyswoić Objective-C, bo to też obiektowy język (C kiedyś trochę liznęłam, więc wiem z czym to sie je, ale z obiektowością jako tako do czynienia nie miałam :)). Co to iOS, to na razię skupię się na Androidzie, a za kilka lat jakbym się dorobiłam swoje Maca, to zainteresuje się iOSem (jeżeli nic innego, ciekawego się nie pojawi :D)

Dzięki wszystkim serdecznie za odpowiedzi :) Miałabym pytanie - czy warto najpierw nauczyć się czystej Javy (+jako IDE np. Eclipse lub wersja community IntelliJ) czy może od razu startować z nauką Javy + Android Studio? Czyli od razu klepać apki mobilne, czy raczej poznać czystą Jave (Jave SE)?

I czy ktoś może polecić jakieś ciekawe rzeczy? Zastanawiam się właśnie, czy brać się za Thinking in Java, czy za coś lżejszego... może jest jakaś lepsza pozycja? Head Fist with Java? Albo coś jeszcze innego?

0

Jeśli nie masz doświadczenia w Java to przerób chociaż tutorial dla beginerów.

  1. Java http://docs.oracle.com/javase/tutorial/ albo https://www.udemy.com/java-tutorial/learn/v4/content
  2. Android https://www.udacity.com/course/developing-android-apps--ud853

Jeśli chodzi o książkę, NIE POLECAM Thinking in Java bo jest za stara... Java 1.5. ...

Jeśli już to celowałbym w Java. Kompendium programisty. Wydanie IX - Herbert Schildt albo Core Java Horstmanna .
A także Effective Java.

0

Zacznij od podstaw czyli od Javy SE a dopiero potem Android, inaczej się trochę zagubisz. Co do książek - nie znam osobiście, ale Head First Java wydaje się być fajną propozycję, przynajmniej sądząc po innych ich książkach. Ale wydaje mi się, ze tu: http://4programmers.net/Forum/Java/151279-Ksi%C4%85%C5%BCki znajdziesz też coś ciekawego. Tylko zweryfikuj aktualność.

0

Head first też będzie stara.
Ja sugeruję Herbert Schildta , nawet jest coś wspomniane o Javie 8.

Tylko, że Kotlin nie ma nic, co ma Scala, a przy tym jest bardziej skomplikowany. Na to, co Scala załatwia kilkoma mocnymi konstrukcjami jak implicity i bibliotekami, Kotlin potrzebuje multum przypadków specjalnych w definicji języka. - @Krolik

No i co z tego? Kolega pyta o aplikacje mobilne. Scala raczej nie zaistnieje na Androidzie a Kotlin owszem.
Kotlin bardziej skomplikowany od Scali ?

1
sofiaprunikos napisał(a):

Też właśnie sądzę, że zacznę od Javy - mimo wszystko widzę, że jest mnóstwo ofert pracy

Patrząc po wątku z zarobkami - Java ma, w moim odczuciu, jeszcze jeden plus - poziom wynagrodzeń na start jest wyższy od HTML + CSS + JS, które to z kolei nie powalają. Jeżeli lubisz "twardsze" rzeczy to też Java będzie odpowiednia, bo w przypadku typowo frontendowych technik musisz się nastawić na kilka rzeczy:

  • prawdopodobnie na początku spora część Twojej pracy to będzie cięcie PSD->HTML (mało programowania, dużo żmudnej pracy*);
  • w związku z powyższym kręcący się nad głową graficy ze swoimi problemami w stylu "o boshe o boshe to powinno być #F4F4F4 a nie #F5F5F5, przecież to całkowicie zmienia odbiór!!!!!!";
  • standardy są po to żeby mieć je w dupie (pozdro MS), więc bywa tak, że trzeba co chwilę upewniać się czy jakaś przeglądarka wspiera daną funkcjonalność, a jest co sprawdzać;
  • "dziki zachód" JS'a, gdzie cykl życia narzędzia potrafi być bardzo krótki i w ciągu kilkunastu miesięcy będziesz widzieć jak powstaje nowy król, panuje i pada;
  • wszystko szybko się zmienia bo środowisko rzuca się na nowe blink blink szajning frejmłorki JS jak sroczki;
  • jak to powiedział kolega, który w ramach pracy od czasu do czasu macza łapki w gówniefrontendzie - największą wadą HTMLa CSSa i JSa jest HTML CSS i JS :D Coś w tym jest ;)
    Chociaż nic nie stoi na przeszkodzie spróbowania w tym swoich sił, może akurat Ci to podejdzie ;)
    • tak to mniej więcej wygląda :D
      user image
2

@Pietruch
Jest w tym ziarno prawdy co mówisz ale...
Siejesz propagandę. Znam ludzi od JSa co zarabiają lepszą kasę od Javowców a trend JSa idzie mocno w górę ostatnio.
O pracę raczej też stosunkowo łatwo.

Ale na pewno wybierając JSa nie ucieknie od frontendu. Poza tym JS nie jest dobrym wyborem na początek.

0
Złoty Młot napisał(a):

Jeśli nie masz doświadczenia w Java to przerób chociaż tutorial dla beginerów.

  1. Java http://docs.oracle.com/javase/tutorial/ albo https://www.udemy.com/java-tutorial/learn/v4/content
  2. Android https://www.udacity.com/course/developing-android-apps--ud853

Jeśli chodzi o książkę, NIE POLECAM Thinking in Java bo jest za stara... Java 1.5. ...

Jeśli już to celowałbym w Java. Kompendium programisty. Wydanie IX - Herbert Schildt albo Core Java Horstmanna .
A także Effective Java.

Czy mając te kursy w jednym palcu , dużo brakuje to Junior Android Developera?

0

@LukeJL ale w JSie oni już klepia backend i desktopowe appki ;)

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