Galerija

Adobe Flash, konačno jedno pravo rešenje cross-platform

Hajde malo da opravdam titulu koju sam dobio od vlasnika emisije: Markus – lični programer Zaira. Mada, još jednom da podvučem, ja jesam programer u srcu, mada već godinama radim kao softverski arhitekta, što znači da su mi horizonti široki i daleki, ali slabo divanim madžarski, odnosno ne pišem gomile koda lično već jako dugo, pišem tek ponekad za svoju dušu, da ne zarđam. Uz to pišem i ekperimentalni kod da proverim neke ideje. No, sve jedno, jednom programer, zauvek programer, koncepti uvek ostaju.

Phone Gap

Phone Gap

Danas bih se pozabavio nečim što može biti i zanimljivo, ali i korisno mladim novim programerskim preduzetnicima na Balkanu. Pisanje softvera za mobilne uređaje. Nekada su vam bili potrebne poslovne prostorije, pa marketing, distribucija, a sve su to velike investicije. Danas vam je uglavnom potrebna samo dobra ideja i znanje. I jedan PC i par mobilnih uređaja, a i njih možete deliti sa vašim drugovima, svako kupi po jedan. Vi napišete aplikaciju, vaše novo remek delo i onda sve ostalo prepustite drugima. Ako pišete za iOS dovoljno je da objavite to Apple-u i on će staviti vašu aplikaciju na AppStore, ako pišete za Android, slično tome postavićete je na Android Marketplace, dok ako pišete za Windows Phone, postavićete aplikaciju na Windows Mobile Marketplace. Plaćanje, download, distribucija, pa čak i marketing za vas će obavljati giganti Apple, Google i Majkrosoft. Na vama je da napišete program i da im date broj vašeg tekućeg računa i čekate da nešto kaplje. Ako budete jako dobri, može i da pocuri, ali i da teče u vodopadima. U pitanju su stotine miliona potencijanih kupaca. Jeste, ima već stotine hiljada drugih aplikacija, ali nikada nije kasno da vi napišete nešto mnogo bolje. Pomislite samo na iPhone koji se pojavio deset godina nakon drugih telefona i skoro ih je izbacio sa tržišta.

Titanium

Titanium

No, kako je mobilno tržište fragmentirano, pitate se za koju platformu da se opredelite. iOS, Android, Windows Phone, RIM/BlackBerry, Samsung Bada,  itd.. Imate 2 pristupa problemu.

a.) pišete native aplikaciju direktno za svaki operativni sistem, imate mogućnost da iskoristite svaku, pa i najmanju pogodnost šta svaki od njh pruža, nema posrednika između aplikacije i sistema. Koristite najmanje memorije, izvršavanje je najbrže i grafički izgled je najkompatibilniji uobičajenom izgledu aplikacija na tom sistemu. To je idealna varijanta što se kvaliteta aplikacije tiče, ali je neverovatno zahtevna što se tiče uloženog vremena. Svi nabrojani sistemi su potpuno različiti jedan od drugoga, ako pišete za iOS, da biste prešli na Android morate skoro sve od početka da napišete. Kako ima barem 4 glavna sistema koji su trenutno u trendu, to će vas skoro četiri puta usporiti, umesto da pišete više i bolje, vi ćete potrošiti svo vreme za porting sa jednog sistema na drugi. Može, ali nije dobro, ima i bolje.

b.) izaberete neki cross-platform sistem. Napišete aplikaciju jednom, i sistem se prilagodi svakom pojedinačnom operativnom sistemu automatski. To je najjeftiniji način razvoja, ali uvek ima problema, aplikacije su sporije, troše više memorije i nude jedan grafički izgled na bilo kom sistemu. I ono što je najgore, ima tako puno mobilnih sistema i cross platform sistema da je teško naći pravu kombinaciju. Najveći je problem što su tehnički bolja rešenja ne i dobra rešenja, naročito zato što ne pokrivaju sve. Ako se opredelite za Javu, teško da će u dogledno vreme ona raditi na iOSu, ako izaberete Majkrosoft Silverlight, nema šanse da će ikada biti na iOSu ili Androiudu, osim ako open source community ne odradi to. Ako izaberete Nokia-Trolltech Qt (čitaj: kjut) i tu su male šanse da će proraditi na iOS. Razlog tako velikom neskladu i nekompatibilnosti je u tome što se veliki igrači takmiče ne samo u operativnim sistemima, već i u alatima i programskim jezicima za njihovo korišćenje. Pa šta onda izabrati? Evo 3 kandidata, sa moje strane, pa vi izaberite šta vam se najviše sviđa.

1.) AirPlaySDK (Marmelade)
2.) Adobe Flash
3.) HTML 5

Ako vam je potrebna maksimalna performansa i ne pristajete na kompromise oko programskog jezika, ako program mora da se piše u C++ jeziku i da se izvršava bez posrednika, onda je AirPlaySDK pravo rešenje za vas. Radi na svim najvažnijiim mobilnim sistemima. Dosta košta, čak preko 2000 eura, ali ima i demo verzija, koja traje određeno vreme.

Ako vam je C++ prejak jezik i više ste orijentisani na grafiku i jednostavnije programske jezike, onda je bolje da se pozabavite Adobe Flash ili HTML 5 rešenjima. Adobe Flash je konačno uspeo da se udene na iOS nakon godina Appleove blokade. Verovatno zato što je jedina velika kuća koja ima jak programerski paket, ali ne i operativni sistem, pa se ne nadmeće ni sa Applom ni Guglom ni Nokijom. Recimo da je ovi veliki tolerišu. Flash je divan razvojni sistem, ima neverovatno bogatu grafičku opremu, veoma napredan objektno orijentisani jezik Action Script i puno godina prisustva na tržištu, dakle puno gotovog koda, knjiga i sajtova koji vas mogu i te kako ubrzati. Lično, moj izbor pada na njega kao top rešenje. No, ako ste čistunac i ne volite nikom da pripadate, ne želite da se vežete ni za jedan komercijalni paket, onda vam ne preostaje ništa drugo nego HTML5 i JavaScript. To je otvoreni standard, ni jedna firma nije njegov vlasnik, ali ima dva velika problema. Prvo HTML5 nije gotov standard i svaki mobilni browser ima svoju podskup implementaciju tako da nikada niste načisto što možete a šta ne možete da koristite, i drugo JavaScript je poprilično smešan programski jezik. Daleko zaostaje za C++, C# (čitaj: S-šarp) ili Action Script jezicima.

Moj izbor ostaje na Flashu jer jednom kada napišete vaše aplikacije možete sa mobilnog segmenta da ih prebacite  nazad na Web, pa možete da nudite Web-mobilne igrice na primer. Želim vam veliki komercijalni uspeh.

Dodatak: evo još jednog dokaza kako je nezahvlano predviđati tehnološke trendove, od kada sam ovo prvi put napisao pa do danas (Dec 2012) stvari su se dosta promenile, Flash je praktično ispao i iz mobilnog sekora, preorijentišući se na HTML 5.

Ako želite da odslušate, prilog počinje na min 38 sek 30

Advertisements

One comment on “Adobe Flash, konačno jedno pravo rešenje cross-platform

  1. Povratni ping: Na koliko se načina može biti virtuelan? | Markus Maki

Zatvoreno za komentare.