Jak to dotnetowiec próbuje napisać coś pod Androidem
10.01.2012 01:57
Windows Phone 7
Niedawno napisałem dla siebie aplikację do rozkładu jazdy autobusów. Troche XML'a, trochę LINQ. Działa ładnie i fajnie, nawet tak mi się spodobała, że teraz przechodzi certyfikację w Marketplace. Wcześniej ściągnąłem MS Visual Studio 2010 Express for Windows Phone, do tego SDk i jeszcze jakąś paczkę.Wszystko fajnei zadziałało, dzięki tutorialom ze strony M$ szybko udało się poduczyć i napisać aplikację.iPhone/iOS
Z Mac'iem miałem niewiele styczności ale dosyć szybko dotarłem do informacji, że Apple za darmo udostepnia narzędzie developerskie xCode (albo jakoś tak się nazywało), dzięki któremu można programować pod Mac OS X oraz iOS'a. Niestety nie ma narzędzi pod Windows'a i aby ich używać należy posiadać zapewne własnego Mac'a, bo podejrzewam że jako maszyn wirtualna będzie to kulawo działać. Sądząc z tego jakie Apple ma podejście do tematu user-friendlieness to pewnie instalacja całego pakietu nie będzie nastręczać trudności (i z własnego doświadczenia, bo zdarzyło mi się instalować parę rzeczy na Mac OS X'ie). Suma sumarów odpuściłem sobie portowanie aplikacji na iPhone'a.
Android
Skoro Android jest tak otwarty i popularny to chyba nie powinienem mieć problemów z napsianiem aplikacji pod niego. Jak trudne to może być skoro ma wsparcie Google i Oracle ( chodzi mi o samą Javę). No to zaczynamy!
Jak w każdym innym przypadku zapewne należy pobrać i zainstalować SDK
Jako, że nie zamierzam pisać w natywnym języku decyduję się na Javę i trzeba doinstalować kolejną paczuszkę
No to instalacja SDK. O ale fajnie! Do wyboru kilka API. O kurde... Aż tyle wersji? Jak tu napisać program działający na wszystkim? Google jednak samo podpowiada, że prawie 97% urządzeń korzysta z API 2.1. Czyli instaluję najnowsze API 4.0, 2.1 dla kompatybilności, dodatkowe paczuszki, które mogą mi się przydać i jedziemy.
Kolejna ciekawa niepsodzianka - można stworzyć więcej niż jeden emulator i to z obsługą różnych API.Dla bezpeiczeństwa wybrałem API 2.1
Taaa... Ktoś wychowany na Visual Studio od czasów wersji 6 do 2010 nie będzie pisał przecież w notatniku i kompilował z lini komend. Krótki research wykazał, że najlepiej się nada do tego Eclipse. Całkiem lubię te IDE i nawet kiedyś z niego korzystałem często. Trzeba oczywiście dociągnąć do niego rozszerzenia dla Androida ale na szczęście Google znowu służy pomocą.
No to mamy chyba koniec. Czas odpalić Eclipse i działać. Powoli zmęczonego już dotnetowca zaskakuje kolejna sprawa. Do dyspozycji mamy projekty przykładowe. Skoro jeszcze nic nie napisałem pod Androida to chyba będzie najlepszy pomysł.
Kolejne okno kreatora - do wyboru jest API. No brzmi to sensownie, skoro zainstalowałem jego kilka wersji.
Lista projektów do wyboru, specjalnie wybrałem projekt, który chyba będzie na tyle prosty, że nie będzie sprawial problemów.
Wbrew oczekiwaniom i narastąjącemu zmęczeniu napotykam kolejny problem. Wysypały się błędy w projekcie.
Chwila zastanowienia. No tak, pewnie wybrałem za nowe API, skorzystam z tego najpopularniejszego 2.1
Lista się trochę skróciła, znowu brzmi to sensownie. No to odpalamy.
Błedów wysypało się nawet więcej niż poprzednim razem.
Poświęciłem sporo czasu. Pobrałem sporo rzeczy z netu. Poszperałem trochę po necie. Pomimo to nie udało się odpalić prostego projektu przykładowego. Błędy zapewne można usunąć ale przecież nie powinno się od początkującego developera wymagać odpluskwiania kodu.
Jaka jest moja myśl na koniec? Google nie jest jakąś firmą typu krzak. Mogliby poświęcić trochę czasu na przygotowanie jakieś paczki typu All‑In-One np. dla Eclipse (tak jak ma to miejsce w przypadku Eclipse PDT - PHP Development Tools), coś co się ściąga, odpala i nazwyczajniej działa. Zamiast tego zaprezentowane zostało typowo linuksowe podejście - trzeba pościągać całą masę rzeczy, skonfigurować to w sposób do znalezienia pewnie na jakimś hermetycznym forum.
Dlaczego ktoś kto ma tak duży udział w runku smartfonów nie zadbał o to by zwiększyć swoją przewagę poprzez ułatwienie ludziom programowania pod Androida.
A więc na koniec ostatnia grafika, która zapewnei wielu zaskoczy: