O komórkach z punktu widzenia młodego programisty

Matthew @ 2010-08-20 — Kategorie: Programowanie, Techblog

Budzimy się pewnego ranka i stwierdzamy, że dobrze by było poszerzyć swoje horyzonty (a tak dorzucić kolejny wpis do CV) i oprócz pisania programów na komputery stacjonarne weźmiemy się także za komórki. Znamy przynajmniej 2 technologie takie jak Java/C++/Qt/C# z .NETem (niepotrzebne skreślić) lub mamy zapał by poznać kolejną. Pozostaje pytanie, w którą stronę się skierować? Smartfony tanie nie są ale udało nam się zebrać (lub wygrać) odpowiednią ilość pieniędzy, więc jedyne co pozostaje to zakup odpowiedniego sprzętu, gdyż nawet najlepszy emulator nie jest w stanie oddać wszystkich właściwości telefonu.

Jabłecznik

Niewątpliwie, najbardziej popularną platformą jest iPhone. Marka, rzesza wielbicieli gotowych wydać pieniądze na kolejne wersje naszych aplikacji. Świetnie zorganizowany AppStore, który mimo pojawienia się konkurencji, nadal jest synonimem internetowego sklepu z aplikacjami dla komórek. Niestety, aby dobrać się do tego szwedzkiego stołu trzeba spełnić kilka wymagań. Aby móc pisać programy na iPhone’a trzeba kupić komputer firmy Apple. Również za samą możliwość programowania i umieszczenia naszych aplikacji w AppStore trzeba zapłacić. Jednak nawet to nie daje nam gwarancji że mając zły dzień, cenzorzy Apple nie odrzucą naszej twórczości. A nawet jeżeli już przez to przejdziesz to nie masz pewności, że Apple nie zmieni zasad i nie zabroni Ci pisać aplikacji w Twoim ulubionym języku (na chwilę obecną można pisać tylko w C, C++ i Objective-C).

A może kuchnia koreańska?

Ostatnio na rynku pojawił się nowy gracz. Samsung stworzył własny system nazwany Bada OS, który (podobno) może być kolejnym komórkowym OS opartym na Linuksie. Tutaj równie mamy dostęp do gotowej platformy deweloperskiej (co dziwne, mimo oparcia o Eclipse, dostępnej tylko dla systemu Windows. Językiem w którym tworzymy aplikacje jest C++ ze wsparciem Bada SDK), sklep z aplikacjami, był nawet konkurs mający promować nową platformę. Ale właśnie. Czy rynek nie jest już przesycony? Raczej nikt poza Samsungiem nie zechce wykorzystać Bada’y a i sam Samsung jakoś nie kwapi się do postawienia wszystkiego na jedną kartę i zdobycia szturmem rynku smartfonów, mimo dobrej sprzedaży pierwszego telefonu z tym systemem, tj. Wave.

Lepszy fast food

Mówiąc o systemach operacyjnych na komórki nie można zapomnieć o nowym produkcie firmy z Redmond. Windows Phone 7 ma za zadanie zatrzeć niemiłe wrażenie po poprzednich wersjach mobilnego systemu firmy Microsoft oraz zdobyć pozycję lidera na rynku smartfonów. Czy mu się to uda? Ciekawa jest lista technologii w których możemy rozwijać oprogramowanie na 7. Silverlight, XNA i .NET, wyraźnie pokazuje że Microsoft nie chce się ograniczyć tylko do rozwoju aplikacji biznesowych, ale również gier i aplikacji webowych. Mam jednak spore wątpliwości co do tego. Moje doświadczenia z programowaniem w C#/.NET dla systemu mobilnego Microsoftu nie są zbyt przyjemne. Dochodziło do takich dziwnych zdarzeń, że ta sama aplikacja na jednym telefonie (ten sam model) działała a na innym już nie.

To ja poproszę jakiś deser

Niewątpliwym gorącym kąskiem jest Android, system operacyjny na komórki, od Google. Coraz bardziej rosnącą popularność (nawet szybciej niż iPhone) jest niewątpliwie zasługą marki Google, wsparciem społeczności oraz firm (jak Motorola czy HTC), które zamiast trudzić się w dostarczanie własnego systemu, wybierają gotowe rozwiązanie, mając nadzieję na wysoką sprzedaż komórek z zielonym robotem. Jednak mimo hasła „don’t be evil” oraz głośnego mówienia o wsparciu dla idei wolnego oprogramowania Google nie jest tak miłe jak niżej opisana Nokia. Skrzętnie pilnuje aby strumień gotówki płynął rzeką zwaną Android Market. Również krzywo patrzy na wszelką samowolkę programistów próbujących skorzystać z otwartości Androida, co by odbierało Google władzę nad rozwojem tej otwartej platformy. Niezbyt pomyślne wiatry wieją w kierunku Androida (i Javy którą Android wykorzystuje do aplikacji) od Oracle’a. Na pewno nie doprowadzi to do nagłego zaprzestania rozwoju tego systemy, ale może wpłynąć na jego popularność, zarówno wśród użytkowników jak i deweloperów bojących się związać z platformą nad którą zbierają się czarne chmury (u góry).

I coś słodkiego


Osobiście jest mi najbliżej do telefonów Nokii (nie żeby były takie wspaniałe, po prostu lubię Qt). Jednak tutaj mamy pewne rozdwojenie jaźni. MeeGo czy Symbian^3?
Ten pierwszy jest jak PLD. Używają go chyba tylko jego programiści. Gdyż jak inaczej wytłumaczyć fakt, że N900 (posiadający pierwowzór dla MeeGo czyli Maemo, ale również dający możliwość instalacji MeeGo) sprzedał się w mniej niż 100 tys. egzemplarzy? I to mimo zbierania bardzo dobrych recenzji. Chociaż trudno się w temu dziwić, telefon wielkości cegły, dość drogi i brak własnej religii (w przeciwieństwie do Apple i iPhone’a). Jedyną nadzieją dla tego systemu jest nowa Nokia N9 oraz nowe wydania tego systemu, które prezentują się jeszcze lepiej niż stare. Dodatkowym atutem niech będzie fakt, że MeeGo to nie tylko komórki, ale również netbooki, tablety oraz oprogramowanie dla samochodów. Sam MeeGo jest również najbardziej przyjazny deweloperowi. Ogólnie dostępne konto roota jak również możliwość dowolnej zmiany systemu (MeeGo jest oparty na Debianie a sama Nokia nie robi problemów geekom grzebiącym w ich systemie). Nie musimy się również ograniczać tylko do C++/Qt. Znający Pythona mogą wykorzystać go zamiast C++.

Drugim filarem Nokii jest nowy Symbian^3. Poprzednie wersje… mówiąc delikatnie, nie zachwyciły użytkowników. Nowy Symbian pojawi się dopiero na jesieni (wraz z premierą Nokii N8), ale już teraz zaczyna zbierać pozytywne opinie. Poza tym, Symbian nadal jest najpopularniejszym systemem dla komórek i jeżeli jesienna ofensywa Nokii się powiedzie to może umocnić swoją pozycję. Tym bardziej, że Sony Erricson również zaczyna sięgać po ten system. Widać otworzenie tego systemu może mu wyjść tylko na dobre. Szkoda tylko że stało się to tak późno.

Niestrawność

Jednak od nadmiaru „smaków” w które można się zanurzyć, może rozboleć głowa. Wybierając jedną drogę, odcinamy sobie kolejne. Nawet mimo takich prób jak przeniesienie Qt na iPhone’a. Czy jest inny sposób na upieczenie kilku pieczeni na jednym ogniu? Pewną nadzieją może być HTML5 i jego możliwości. Piszemy jedną aplikację internetową, dajemy możliwość korzystania z niej nie tylko an telefonach, ale również na zwykłych komputerach. O ile użytkownicy zechcą za to zapłacić. Jednak, jeżeli nie to zawsze pozostaną reklamy na stronie.

Komentarze:

Aleś zapodał wpisa, w końcu nie narzekasz tak bardzo, i jakoś nawet coś merytorycznie w tym jest.
To po kolei:

1) iPhoneOS – zgadzam się w całosci. Telefon i system naprawdę fajny, ale żeby musieć kupować Maca, żeby móc na niego kodować… i te obostrzenia przy wyborze technologii i akceptacji w iStore – dyskwalifikacja

2) Samsung bada – technologia ciekawa, ichniejsza wersja C++ też przyjemna (wprowadzili pewne swoje modyfikacje, ale moim zdaniem – na plus). Szkoda tylko, że SDK tylko na Windows – właściwie to tak jak z Apple – niby nie trzeba kupować nowego komputera, ale jednak… No i popularność wiadomo.

3) Windows Phone 7 – a To oni sobie jeszcze siana nie dali? Po wszelkich doświadczeniach z Windows Mobile nie wierzę, że to się będzie jeszcze do czegokolwiek nadawało.

4)Android – trochę są niepokojące te doniesienia odnośnie Oracle’a, ale mimo to mój obecny faworyt – SDK na linuksa, fajny system, duże możliwości. No i mam telefon, który go ma ;)

5)Symbian – „Sony Erricson również zaczyna sięgać po ten system.” – zaczyna? Kiedy 5 lat temu miałem SE P800, to już wtedy miał Symbiana (co prawda UIQ, ale jednak). Z resztą, jako pierwszy był użyty właśnie w SE.
To też fajny system, a będzie jeszcze fajniejszy, kiedy zrobią Qt SDK z deployem dla symbiana na inne systemy niż Windows.

MeeGo pomijam, bo to crap.

Ja bym Ci wybrał coś z androidem, któregoś HTC albo motkę milestone w 2 edycji

@bigfun: za to Ty nadrabiasz narzekając na moje narzekanie. We wpisach o grach nie narzekam. ;P

SE ostatnio wprowadził dwa (czy więcej nawet) telefony z S60. I nie zdziwiłbym się jakby postawili też na S^3. I Qt już da się kompilować na SE.

Co do samego Symbiana to nie jest to fajny system. Przynajmniej z punktu widzenia użytkownika.

Czemu MeeGo to crap? Imo to całkiem ciekawa rzecz. Szkoda że tak mało popularna.

Swoją drogą to chciałbym zobaczyć Symbianowego C++, ciekawe jak zmienili go. A co zrobili w C++ Bady?

PS. Tak w ogóle to gdzie Ty się zawieruszyłeś? Ostatnio w ogóle Ciebie nie ma online.
Jak chcesz mi wybierać to możesz mi jeszcze kupić. ;D A sam (o ile wygram ten konkurs) to kupię sobie właśnie jakąś Nokię na nowym Symbianie (E7, w ostatecznym wypadku N8) lub właśnie coś na MeeGo (N9).

A co ma za przeproszeniem Oracle do Androida? Przecież system od googla wykorzystuję Dalvika – własną implementację JVM.

Edit: ok, nie przeczytałem podlinkowanego artykułu, chora sytuacja.

Z tych wszystkich najbardziej interesujący wydaję się być Android, raczej Oracle nie powinno się bać, po przejęciu Sun chce trochę wycisnąć kasy z Google, żeby im się kasa wydana na Sun zwróciła, raczej nie uda im się nic wycisnąć z Google.
Jedną według mnie interesującą rzeczą w Symbianie jest Qt, praktycznie system trochę przestarzały.
MeeGo zapowiada się ciekawie, komórkowy, nie ograniczony Debian z Qt, brzmi ciekawie. Tym bardziej, że Nokia zapowiedziała, że następne modele z serii N mają chodzić pod kontrolą MeeGo. System ma szanse odnieść sukces.
Bada OS ciekawy system, tym bardziej, że ma trafić do tańszych Samsungów, np. Wave2, czyli Avila w wersji z bada. Biorąc pod uwagę, że Samsung jest drugim producentem telefonów na świecie system powinien stać się całkiem popularny. A po za tym badę wspiera m.in. Gameloft, czy Electronic Arts.
iPhone z ich iOS krótko mówiąc snobistyczny telefon, z snobistycznym systemem, z snobistyczną platformą deweloperską. iOS system, do którego dołożyli multitasking jak poczuli oddech ze strony Androida.
Windows Phone 7 ciekawie zapowiadający się OS, przy dobrej promocji powinien odnieść sukces. Do API całkowicie oparte o platformę .NET, bez możliwości uruchamiania aplikacji natywnych. Tylko niestety zapowiada się, że Microsoft popełni na początku kilka błędów np. brak funkcji kopiuj/wklej

Ostatnio miałem okazję pobawić się n900 działającej na maemo/MeeGo i telefon przerósł moje najśmielsze oczekiwania. Po prostu prawdziwy linux z iksami, a nie żadna proteza z javową warstwą abstrakcji. Sporo paczek, a gdy zainstalujemy debiana w chroocie (czynność praktycznie automatyczna dzięki wsparciu społeczności w postaci skryptów) dostajemy wszystko to co oferuję nam debian dla platformy ARM. Jedyny mankament jest taki że openoffice się długo włącza (i mógłby mieć trochę bardziej przyjazne dla małych wyświetlaczy UI), za to koffice śmiga już ładnie. Oprócz tego bez większych problemów uruchomiłem pptp (kvpn) i smplayera. IMO wymarzony telefon/platforma dla geeków. No i mamy roota bez konieczności łamania czegokolwiek. Android wypada w tym porównaniu bardzo blado (męczę się z tym systemem ponad dwa lata i dłużej nie mam zamiaru).

Gratulacje, interesujący post. Postaram się napisać coś na ten temat na swoim blogu, a tymczasem ten wypada mi tylko umieścić w ulubionych. Świetna robota. Trzymaj tak dalej, a na pewno zawitam tu dużo częściej! Pozdrawiam!

Zestawienie niby fajne, szkoda tylko, że nieprofesjonalne.
Trzeba trochę się namęczyć, żeby napisać dobry artykuł.

„Niewątpliwie, najbardziej popularną platformą jest iPhone.”
http://en.wikipedia.org/wiki/File:Smartphone_share_current.png

(na wiki są też starsze zestawienia, pokazujące fałsz tego twierdzenia zestawienia). To że iPhone jest iModny nie znaczy że jest najpopularniejszy.
Druga sprawa – jeśli chodzi o subiektywne podejście do WP7… no ja tutaj bym jednak szukał po stronie błędów programisty :)

No wiec „młody programisto” rada od doświadczonego programisty, zanim zaczniesz polecać, albo pisać programy na najpopularniejszy OS, sprawdź, który jest popularny a który nie, masz szansę od razu wybrać szerszy rynek urządzeń.

Dodaj komentarz:

 

Subscribe without commenting