Programowanie na Androida

0

Nie miałem styczności z Androidem, z Javą też niewiele.
Tyle że sama Java jest podobna do C#, w którym kodzę. Java EE mnie trochę przytłacza i nie chcę się w to pakować - ta mnogość frameworków, podczas gdy w .NET to wszystko wydaje się lepiej zorganizowane. Ale nie o tym...

Ostatnio zainteresował mnie temat urządzeń mobilnych, Coś tam napisałem na Windows Phone, ale wiadomo, że na razie to jest tylko ułamek rynku.
W tematyce urządzeń mobilnych przydałoby się ogarnąć Androida.

No i właśnie tutaj pytanie, a właściwie trzy:

  1. Ile w kodzeniu na Androida jest czystej Javy, ile jest frameworków. Jakich framworków się używa (chyba nie tych z EE)?
  2. Czy w poważnych firmach/projektach wygląda to tak, że na WP piszę się w C#, na Androida w Javie, a na iOS w Obj-C? Czy komercyjnie wykorzystuje się rozwiązania typu xamarin - pisanie w C# na Androida?
  3. Ludzie mówią, że pisanie na Androida dla początkujących jest żmudne, toporne, frustrujące, bo wiele rzeczy tam nie działa jak powinno, coś się sypie, dzieją się dziwne rzeczy :P Ile w tym prawdy? Na Windows Phone pisze mi się fajnie, ale tutaj zasługa narzędzi, dzięki którym to wszystko współgra.
0
  1. Na szczęście nie. Piszesz w "czystej Javie" (cokolwiek to znaczy), ale jest ona pozbawiona dość dużej ilości modułów (po co np. komuś swing na androidzie). Jest to też inna implementacja (Apache Harmony). Obecnie od niedawna można korzystać w projektach androidowych z wersji 1.7.
    2.W poważnych projektach tworzy się osobno dla każdej platformy i prawie zawsze są za to odpowiedzialne różne ekipy.
    3.Dużo w tym prawdy, ale w większości przypadków wynika to z nieznajomości Javy, a nie problemów związanych z platformą. Najwięcej trudności sprawia nauka tworzenia layoutów dla aplikacji.
0
  1. Android sam w sobie jest frameworkiem ;) Często i gęsto używa się dodatkowych libek, do dependency injection np.
  2. Jw. Rozwiązanie crossplatformowe mimo, że ładnie wyglądają 'na papierze' to w praktyce często się nie sprawdzają.
  3. Napisanie jako tako działającej appki w Androidzie jest stosunkowo łatwe, napisanie dobrego softu już nie. (W sumie jak wszędzie ;) ) Samo porządne zrozumienie cyklu życia aktywności/fragmentów uważam za wyzwanie ;)
0

Ad 3. IMO Android ma parę zalet i parę wad (z punktu widzenia programisty):

  • obsługa lokalizacji
  • layouty
  • java
  • otwartość systemu (łatwiej zrobić ciekawe rzeczy).
  • dokumentacja
  • cykl życia Activity - (to jest pułapka na którą nacinają się wszyscy początkujący)
  • kretyńska obsługa Intent'ów (jak się czyta jak nie należy pisać API to właśnie tak wygląda obsługa Intent'ów)
  • fragmentacja (na jednym telefonie jednej firmy coś działa tak, a na telefonie innej firmy siak, problemy z rożnymi wielkościami ekranu nie są tak skomplikowane jeśli UI jest dobrze pomyślane)
  • brak mechanizmu podobnego do (równie poręcznego co) delegatów z C# (sygnałów i slotów z Qt)

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