Portál AbcLinuxu, 15. května 2025 11:19
Jednoducha uvodni odpoved : univerzalni reseni neexistuje.
Pokud chces zacit s vyvojem, zalezi co jsi delal doted. Pokud jsi student a / nebo mas zkusenosti spis s MS prostredim, pak doporucuju zacit s Windows Mobile. SDK i docela schopnej emulator jsou zadarmo ke stazeni jako plugin do Visual Studia (i.e. pokud mas Visual Studio a trochu zkusenosti s MS, neni potreba zadna dalsi investice - API je docela podobny s desktopem).
Co se tyka Symbianu, tam je to trochu jina liga. Slozitejsi API, mensi prenositelnost (nejenom mezi S60 a UIQ, ale i mezi jednotlivymi verzemi) a spousta veci se musi dokupovat (zatim napriklad nevim o volne dostupnem emulatoru). Vyhodou je potom PODSTATNE vetsi moznost rozsireni (Gartner tusim uvadi, ze okolo 70% smartphonu bezi na nejake verzi Symbianu). Co se tyka QT4, pokud vim tak s koupi Trolltechu zacala Nokia experimentovat s portovanim QT4 na Symbian - uvidime kam to povede, Symbiani API by potrebovalo novy vitr jako sul.
Android a Apple (i kdyz tam to tusim neni ciste C++, ale nejake jejich upravene C) jako platformy moc neznam, takze me neber moc vazne. IMO jsou obe moc nove a do velke miry spolehaji na "novou vlnu". Apple uz se trochu rozkoukal a podle poslednich cisel prodava zhruba tolik novych telefonu, jako ostatni s Windows Mobile, ale na muj vkus ma jednak moc restriktivni podminky na vyvojare a jednak si nejsem moc jisty jakym smerem to bude mirit dal (jak licence, tak vyvoj cele te platformy). Android zatim nic moc extra taky nepredvedl - slibuje lepsi podminky pro vyvojare (i kdyz to tak obcas moc nevypada - viz historie zpravicek tady na ABC), ale zatim ma v prodeji jeden telefon, ktery navic zdaleka neni tak zadany, jako iPhone.
Zaver:
Jako zacatecnikovi, ktery chce vyvijet ted hned (bez dalsich informaci) bych Ti doporucil Windows Mobile. Paradoxne je to MS, ktery ma vcelku (pro vyvojare aplikaci) nejotevrenejsi platformu, navic s pomerne slusnou komunitou okolo a neprilis narocnym API.
Pokud chces delat neco komercniho, nejlepsi odbyt (ciste podle poctu telefonu) je asi pro Symbian.
Pokud jsi student a hledas si nejake zamereni pro budoucnost, je to otazka - podil Symbianu na trhu spis stabilne klesa, ale je porad nejvetsi a Nokia porad muze vytahnout nejake eso z rukavu (a vsadil bych se, ze neco chysta - nejdriv koupila Trolltech, pak zalozila Symbian Foundation, tak uvidime co z toho vzejde). MS ma fajn platformu pro firemni aplikace (synchronizace s Exchange se vazne hodi), ale zatim to vypada, ze se tak trochu placa na miste a snazi se trochu dohnat Apple ohledne UI - nevidel bych to jako dobrou platformu pro vyvoj aplikaci pro koncove uzivatele (napr. hry, pripadne takove ty typicke veci co delaji zacatecnici - budiky, poznamkove bloky, etc.). Apple docela prekvapil s rychlosti, s jakou se mu povedlo rozsirit iPhone, ale zatim bych rekl, ze je to presny opak MS - povedlo se mu dostat se mezi koncove uzivatele, ale ve firmach bych ho nehledal. Android ma "silny potencial pro budoucnost", ale timhle se ohani uz od doby, co ho Google uvedl. Zatim to s nim vypada jako s mobilnim Linuxem - spoustu zarizeni planovanych, ale kdyz to chces realne koupit, tak kde nic tu nic...
V C++ je mozne programovat pro Symbian. Vedle ciste Symbianich veci jako aktivni objekty, muzes pouzivat standardni C++, STL, Boost. V C++ lze v Symbianu delat zajimvejsi aplikace nez v Java ME, napr. jen vytvoreni adresare, ovladani telefonniho serveru, ovladani kontaktu, messaging, zjisteni imei, systemove servisy, OpenGL, atd. Java je prenositelna, ale dan za to je omezeny prunik funkci. Takze ja bych po Jave sel pouze v pripade, pokud aplikace nevyuziva mobil naplno a zaroven bych chtel, aby aplikace byla spis prenositelna. Tvrzeni, ze aplikace v C++ je i mezi verzemi Symbian neprenositelna, je asi stejne hodnotne, jako tvrdit, ze Java me je vsude prenositelna. Staci si promyslet architekturu, rozdeleni do modulu, napr. na klient (gui veci) a servisu (engine). Programovat pro Symbiani verzi <9.0 je pravek, od v9.0 je prenositelnost lepsi, v podstate az na gui detaily, s prenositelnosti od v9.0 nejsou problemy, samozrejme nektere veci se v apicku zmeni, ale ty zmeny nejsou zasadni, aby to bolelo a clovek by musel kuvli tomu volit Javu. Co se mi na C++ v Symbianu nelibi je velika granuralita apicka, ale to je dano v podstate tim, ze Symbian bezi na tolika zarizenich, vyhoda je ta, ze aplikace mohou byt variabilni, ale to muze byt zase na ukor rychlosti kodovani. Jak nekdo vyse tvrdil, ze emulator neni zdarma je blbost, ten byl a je zdarma. Zdarma nebyla profesionalni verze vyvojoveho prostredi Carbide C++, ta je ale ted zdarma uz nejake dva mesice. Pokud vyvojar oddeli standardni C++ od zbytku kodu, napr. ve forme knihovny, pak ta po mensi uprave lze pouzit i pri vyvoji pro IPhone, tam lze take pouzivat std C++, stl. V Carbide C++ lze pouzit UI Design Editor, docela uzitecny nastroj, jak rychle vytvorit gui aplikaci, soucasti Carbide C++ je TRK debugger, profilovani vykonu. Nevyhoda, ale to je zrejme vsude, kde se zasahuje do zakladnich funkci telefonu (jako ze to Java me na Symbianu nedokaze) je certifikacni politika, a privatni apicka od Nokie/Symbianu. Ale to je dano tlakem vyrobcu mobilu, ze nechteji, aby vyvojari menily a zasahovali do zakladnich funkci anonymne, tj. certifikaty stoji $200, pokud ale nechces zasahovat do telefonniho serveru, drm nebo do systemovych adresaru, pak certifikat neni treba. Ale rikam podobne ojebavani vyvojare muze byt kdekoliv, kde vyrobce vyzaduje kontrolu nad tim, jak se jeho vyrobek pouziva, jinak receno, v C++ lze poslat volajiciho do haje, aniz by to majitel mobilu vedel a slysel. Krivka uceni v Jave ME je urcite strmejsi, v C++ pozvolnejsi, ale zato aplikace mohou byt zajimavejsi a vice vyuzit funkce mobilu.
Tvrzeni, ze aplikace v C++ je i mezi verzemi Symbian neprenositelna, je asi stejne hodnotne, jako tvrdit, ze Java me je vsude prenositelna.
Omlouvam se za nepresnost - chtel jsem to jenom srovnat s WM. Jasne ze to v principu mozne je (a pokud s tim pocita navrh, tak je to i proveditelne). Ale treba ve srovnani s WM je to podle me o dost horsi. Muzeme se hadat o duvodech (WM dela jediny vyrobce, je min rozsirene, etc.), ale za tim si stojim.
Jak nekdo vyse tvrdil, ze emulator neni zdarma je blbost, ten byl a je zdarma
Ten "nekdo" jsem byl ja a opet je na rade omluva za nepresnost - se Symbianem jsem naposledy prisel do styku uz pred nejakou chvili a co si pamatuju, tak tehdy jsem s nalezenim simulatoru mel problem. Mohl bych poprosit o link? Nebo je to uz primo soucasti Carbide? Asi bych si pro ten system mel zas zkusit neco vyrobit (zvlast kdyz jsem si pred chvili koupil novou Nokii ;o)
Vcelku (az na vyse zminene nepresnosti z moji strany) se ale myslim shodnem na tom, ze Symbiani C++ je sice silne, ale asi ne tak uplne vhodne, pokud si chce clovek jenom zkusit udelat neco, co pobezi na mobilu. Symbian je rozsireny (vyhoda pokud to chcete sirit a/nebo prodavat), ale krivka uceni u API zrovna moc strma neni - chce to ze zacatku dost "zatnout zuby a tahnout".
ale krivka uceni u API zrovna moc strma neni - chce to ze zacatku dost "zatnout zuby a tahnout"
Pravda, a nejenom zuby:)
Je třeba nainstalovat Perl.
Emulator je soucasti SDK.
A nakonec Carbide C++.
Vše do defaultních míst.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.