O co chodzi z tym androidem ?

0

Zaznaczam, że nie wypowiadam się z punktu widzenia użytkownika końcowego, są to moje skromne spostrzeżenia.

Nie jestem super zaawansowanym programistą Javy. Zawodowo programuję od 3 lat, hobbistycznie około 6, tydzień temu dostałem pierwszy task do napisania na androidzie.
Muszę powiedzieć, że na początku byłem baaardzo podekscytowany, myślę sobie super mój pierwszy projekt na androida, do tego platforma stworzona przez GOOGLE, firmę w której pracują jedni z najlepszych programistów na świecie. Firmę których większość produktów jest naprawdę wysokiej jakości, które uwielbiałem np guava, angularjs, gmail, chrome .....

Jednak już pierwszego dnia byłem mocno zdegustowany. Przeglądając kody źródłowe klas przecierałem oczy ze zdumienia. To jest Java ? Takie pytanie pojawiało się w mojej duszy .. Przypomniały mi się wykłady programistów google , które oglądałem na youtube o "Best practices in java" jak programować obiektowo, jak radzić sobie z nullami itd itp np ( , ) itd

Czy to odnosi się do androida ??. Przecież Java jest językiem obiektowym, czy kod w stylu :


if(ACTION_GET.equals(intent.getActiion())){

}else if(ACTION_PUT.equals(intent.getAction())){


}else if ()..............
 

To jest kod języka obiektowego jakim jest JAVA !!! Król jest nagi woła moja dusza programistyczna ...

Ok nie wszystko jest złe, np Generowanie zasobów, klasa R, obrazki 9 patchowe, wersje językowe, pluars to naprawdę niezła robota, jednak reszta pozostawia dużo do życzenia.
Uważam po prostu, że użycie Javy do programowania na komórki to przerost formy nad treścią. Myślę, że język taki jak C bardzo dobrze by się tutaj spisał.

Proszę mnie źle nie zrozumieć, jednak nie rozumiem tej całej euforii jeśli chodzi o Androida (Przypominam, że wypowiadam się z poziomu developera)
Zobaczcie sobie na bugi "holy crap" Dlaczego do jasnej ciasnej google wypuszcza nowe wersje platformy jeśli pozostają jakieś bugi !!!!!!
Niektóre bugi wiszą 3 lata a nawet więcej !!

Po 3 latach programowania w Javie, i po tygodniu programowania w androidzie język ten bardzo mi zbrzydł. Chyba muszę się chyba przestawić na Apple :p

Jest to dość luźny temat i proszę napiszcie swoje przemyślenia odnośnie tej platwormy

1

Uważam po prostu, że użycie Javy do programowania na komórki to przerost formy nad treścią. Myślę, że język taki jak C bardzo dobrze by się tutaj spisał.

to ściągnij NDK i nie zawracaj głowy jak taki jesteś mądry ;)

Zobaczcie sobie na bugi "holy crap" Dlaczego do jasnej ciasnej google wypuszcza nowe wersje platformy jeśli pozostają jakieś bugi !!!!!!

Ty tak poważnie? Te 3 lata to chyba pracowałeś sam albo nad softem rozmiaru notatnika ;]

Po 3 latach programowania w Javie, i po tygodniu programowania w androidzie język ten bardzo mi zbrzydł. Chyba muszę się chyba przestawić na Apple

Ty chyba nie widziałeś nigdy Objective-C na oczy. Ten język jest tak dziwny i chory że szkoda słów na jego komentowanie. Rzuć okiem i szybko zmienisz zdanie ;)

0

Twoje uwagi sa jak najbardziej uzasadnione, moje byly podobne, i nadal sa (programuje na Androida i iOS od 9 miesiecy). Szczerze nienawidze Androida. Okrutnie brzydki kod, bugi, slaba (tak, bardzo slaba) dokumentacja, wszechobecny XML i mnostwo, ale to mnostwo quirkow i haczykow w programowaniu UI mnie kompletnie odrzuca. Kijowe IDE (Eclipse to jeden wielki WTF, niestety nie moge w pracy uzywac jeszcze Studio - znaczy moge, ale projekt uzywa tyle Eclipsowej magii ze ciezko go nawet skompilowac w Studio...), straaaasznie wolny emulator...
Co do jezyka - na iOS programuje sie glownie w Objective-C i spisuje sie swietnie, mimo nieco dziwnej poczatkowo skladni.

Shalom napisał(a):

Ty chyba nie widziałeś nigdy Objective-C na oczy. Ten język jest tak dziwny i chory że szkoda słów na jego komentowanie. Rzuć okiem i szybko zmienisz zdanie ;)

Jezyk dziwny tylko dla ludzi ktorzy wczesniej go nie widzieli i znaja tylko c i pochodne. Moim (i nie tylko) zdaniem jest bardzo ciekawy i ma wiele zalet - runtime jest banalnie prosty, zawsze mozna bez problemu uciec do czystego C bez NDK z kolejnym stadem bugow, bardzo mi sie podoba pomysl podawania kilku parametrow i tworzenia metod czytelnych jak zdania. Po moim 9-miesiecznym doswiadczeniu stwierdzam ze jak dla mnie jest znacznie ciekawszy niz java, szczegolnie tak biedacka okrojona namiastka javy jaka uzywa sie na androida.

1

Obie platformy (Android i iOS) mają swoje wady i zalety. W obu da się napisać słaby jak i porządny kod. Fakt, może kod w androidzie nie wygląda jak kod jakieś javowej biznesowej appki, ale nie widzę przeszkód w stosowaniu technik obiektowych.

Android Studio zjada Eclipse na śniadanie, współczuje osobom, które nie mogą z niego korzystać ;) Standardowy emulator jest wolny, ale mając kompa z prockiem Intela da się go znacznie przyspieszyć. Istnieją również emulatory firm trzecich (Genymotion np), których wydajność jest naprawdę niezła - zbliżona do urządzeń.

Podsumowując, zaczynałem od pisania biznesowego softu w Javie, od kilku miesięcy siedzę w Androidzie i nie narzekam :) Trochę trzeba było zmienić podejście, ale podobają mi się wyzwania stawiane podczas developmentu appek mobilnych. Zwykle pracuję równolegle z developerem iOS, on klnie przy implementacji jednych ficzerów, ja drugich ;)

0

Fakt, może kod w androidzie nie wygląda jak kod jakieś javowej biznesowej appki, ale nie widzę przeszkód w stosowaniu technik obiektowych.

  • tutaj akurat się zgodzę, często wygląda znacznie lepiej (androidowy oczywiście ;]). Twoje niezadowolenie jest całkiem zrozumiałe, ale weź pod uwagę to, że android na rozwija się bardzo szybko i po prostu większość dziwactw związanych z platformą wynika z tego, że w google pracują świetni programiści, a nie prorocy.

niestety nie moge w pracy uzywac jeszcze Studio - znaczy moge, ale projekt uzywa tyle Eclipsowej magii ze ciezko go nawet skompilowac w Studio...), straaaasznie wolny emulator...

  • taa... tak sobie to tłumacz, każdy projekt się da wyeksportować do android studio, wypada tylko znać strukturę projektu idea i system gradle. Emulator uruchamia się 5 sekund, programy uruchamiają się ok. również ok 5-10 sekund, a samo ich działanie jest płynniejsze niż na najnowszych urządzeniach, więc dziwne są to stwierdzenia. Nie rozumiem czemu mają służyć takie tematy: "nie umiem, nie rozumiem, nic mi nie działa, wyleję trochę frustracji na forum". Nie pojawiają się jakoś wątki o tym, że od pisania w objective-c można dostać zeza rozbieżnego (co jest oczywiście naukowo udowodnione ;]).
0
niezalogowany napisał(a):
  • taa... tak sobie to tłumacz, każdy projekt się da wyeksportować do android studio, wypada tylko znać strukturę projektu idea i system gradle. Emulator uruchamia się 5 sekund, programy uruchamiają się ok. również ok 5-10 sekund, a samo ich działanie jest płynniejsze niż na najnowszych urządzeniach, więc dziwne są to stwierdzenia. Nie rozumiem czemu mają służyć takie tematy: "nie umiem, nie rozumiem, nic mi nie działa, wyleję trochę frustracji na forum". Nie pojawiają się jakoś wątki o tym, że od pisania w objective-c można dostać zeza rozbieżnego (co jest oczywiście naukowo udowodnione ;]).

Ja w sumie nie mam z tym problemu, ale są firmy gdzie trzeba programować w danym środowisku . Osobiście znam kolegę, który po kryjomu co 30 dni instaluje sobie Intelij, ma takie szczęście, że nikt nie pracuje za jego plecami. Dlatego nie dziwię się jak ktoś mi pisze, że np . muszę pracować na eclipse, lub muszę używać anta.

Rzeczywistość jest brutalna ile jest takich firm gdzie musisz używać systemu operacyjnego łindows ? Ręce do góry ...

0

Mój post miał być w takim specyficznym tonie napisany. Wiem jak wygląda sytuacja w firmach, co nie zmienia faktu, że większość problemów w programowaniu na androida wynika z nieznajomości platformy (z tego również biorą się nerwy). W ogóle zauważam dziwny trend. Ludzie myślą, że jak jest to platforma mobilna to jest do opanowania szybko i bez problemu. Ja bym powiedział, że nawet trudniej zacząć pracę przy aplikacjach mobilnych niż biznesowych (chociaż stwierdzenie być może przesadzone).

0
niezalogowany napisał(a):

niestety nie moge w pracy uzywac jeszcze Studio - znaczy moge, ale projekt uzywa tyle Eclipsowej magii ze ciezko go nawet skompilowac w Studio...), straaaasznie wolny emulator...

  • taa... tak sobie to tłumacz, każdy projekt się da wyeksportować do android studio, wypada tylko znać strukturę projektu idea i system gradle. Emulator uruchamia się 5 sekund, programy uruchamiają się ok. również ok 5-10 sekund, a samo ich działanie jest płynniejsze niż na najnowszych urządzeniach, więc dziwne są to stwierdzenia. Nie rozumiem czemu mają służyć takie tematy: "nie umiem, nie rozumiem, nic mi nie działa, wyleję trochę frustracji na forum". Nie pojawiają się jakoś wątki o tym, że od pisania w objective-c można dostać zeza rozbieżnego (co jest oczywiście naukowo udowodnione ;]).

Tak, lacznie z pluginem do eclipse napisanym przez firme ktory robic costam costam (ja wiem co robi ale nie mam zamiaru tego reimplementowac ani w gradle - ktorego znam bardzo, bardzo dobrze, nawet jest tam moj kod - ani jako plugin do idea).
Emulator szybki - no nie wiem, ja akurat pracuje na najnowszym aktualnie macbooku air ktory slabym urzadzeniem bynajmniej nie jest, i emulator androida wstaje tam prawie minute. Jak juz wstanie, to dziala szybko - ale tylko dzieki HAXM. Takze troche wiem o czym mowie, ty raczej nie znasz moich realiow.

0

Podsumowując

  • Programowanie na platformie androida to programowanie strukturalne w Javie.
  • Jest to najgorzej dopracowany produkt google, z jakim się spotkałem.
  • samsungi na których wszystko działa inaczej
    -wypuszczanie nowych niedopracowanych wersji
  • bugi wiszące kilka lat
  • Andoid studio oparty na Intelij, darmowy super szybkie środowisko
  • Użycie gradle
  • definiowanie zasobów
0

Można się kłócić i dyskutować ale "wszyscy" mają telefon i "wszyscy" mają tam Androida :P

0

Może jest ktoś kto pisał pod IOS i Androidem i ma porównanie ...?

0

Jak juz wstanie, to dziala szybko - ale tylko dzieki HAXM.

  • no i właśnie tego nie rozumiem. Ja dzięki HAXM uruchamiam emulator w 10 sekund, więc dziwi mnie, że czekasz minutę i to jeszcze na takim mocnym sprzęcie. Co do @lukasw44, jesteś w stanie podać przykłady strukturalnego programowania na androidzie? Zastanawiam się już dobre 10 minut i na nic wpaść nie mogę (a naprodukowałem się w ostatnim czasie kilkadziesiąt tysięcy linii kodu na ten system).
0
if(ACTION_GET.equals(intent.getActiion())){
 
}else if(ACTION_PUT.equals(intent.getAction())){
 
 
}else if ()..............

To jest kod języka obiektowego jakim jest JAVA !!! Król jest nagi woła moja dusza programistyczna ...

A co niby w tym jest źle? Można by się co najwyżej zastanowić, czy ewentualnie enumami i switchem nie zastąpić, ale dużej różnicy raczej nie będzie.
Poza tym Java nie jest czysto obiektowa. Wspiera więcej różnych paradygmatów programowania niż C++.

0
Krolik napisał(a):

A co niby w tym jest źle?

Brak pojedynczej odpowiedzialności? Ale to nie jest ani problem Androida, ani Javy, tylko źle napisanego kodu.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.