![]() | ![]() |
![]() |
| ![]() |
| |||||||||||||||||||
Programiranje mobilnih telefona (4): Symbian
S trenutno veoma jakim udelom na tržištu, platforma Symbian još dugo će biti prisutna, a samim tim i interesantna sadašnjim i budućim programerima
Godine 1998. Psion software udružio se sa kompanijama Ericsson, Motorola i Nokia i nazvao se Symbian Ltd, a njegov proizvod EPOC počeo je da se zove Symbian OS. Gde je Symbian Treba imati na umu to da ono što se naziva Symbian predstavlja operativni sistem u užem smislu reči, dakle sloj „iznad” hardvera a „ispod” ostatka sistema koji čine korisnički interfejs, aplikacije i još mnogo toga. Sam Symbian OS nema svoj interfejs na mobilnim telefonima, a ono što se koristi u te svrhe jesu softverske platforme kao što su S60, UIQ ili MOAP. Vrlo pojednostavljeno, moglo bi se reći da su S60 ili UIQ na Symbianu nešto kao Gnome ili KDE na Linuxu. Slična struktura je i na Android platofmi koja radi nad prilagođenim Linux kernelom, ili iPhone platformi koja koristi prilagođeni Darwin BSD kernel, s tim što je u celoj priči zanimljivo to što je Symbian uspeo da zadrži svoje ime, jer iako nikome ne pada na pamet da jedan iPhone nazove BSD telefonom ili da neki Android nazove Linux telefonom, svi će za jedan N97 reći da je Symbian telefon. Moguće je da je to zbog krajnje nemaštovitih imena koja su Nokia i ostali davali svojim smartphone platformama... Platforma
Trenutno aktuelne verzije S60 platforme su S60 3rd Edition, na kojoj radi čitava E serija i većina N serije Nokijinih telefona, i S60 5th Edition (4th edition ne postoji) na kojem rade N97, X6 i još neki. Glavna razlika između 3rd i 5th editiona je u tome što 5th prodržava ekrane osetljive na dodir. Pored Nokije, S60 3rd i 5th koriste i neki Samsungovi i Sony-Ericssonovi telefoni. Pored interfejsa za uspostavljanja poziva, slanje poruka, telefonskog imenika i svega što jedan telefon čini telefonom, S60 platforma obezbeđuje i niz servisa kao što su PIM servisi (personal information manager – kontakti, kalendar...), multimedijalni servisi (reprodukcija audio i video fajlova), web servisi (prikazivanje web strana i downlaod fajlova), lokacijski servisi (GPS, lociranje pomoću baznih stanica...) i razni drugi, a detalji variraju u zavisnosti od konkretne verzije S60 i modela telefona. Servisi mogu biti dostupni direktno krajnjem korisniku kroz aplikacije već ugrađene u S60 (npr. svaki S60 uređaj ima neki web browser, program za puštanje muzike itd.) ili kroz aplikacije koje korisnik instalira (lokacijski servisi kao što je GPS mogu biti prisutni, ali program koji ih koristi ne mora da postoji). Takođe, svaki S60 telefon može da izvršava Java ME programe, i to je servis koji obezbeđuje upravo S60, dok sam Symbian nema ništa sa podrškom za Javu. Može i Java, ali... Iako svaki S60 ima podršku za Javu ME kao jednu univerzalnu i standardizovanu platformu za 3rd party aplikacije koja radi na mnogim platformama, tolika univerzalnost takođe znači i da Java ima ograničenu kontrolu nad nekim funkcijama specifičnim za S60, koje druge platforme nemaju pa zbog toga nisu ugrađene u Javu ME, a tu je i problem sa performansama... Dakle, način da se iz S60 (i verovatno bilo kog drugog Symbian baziranog telefona) izvuče maksimum performansi i maksimalna kontrola nad uređajem jeste razvoj aplikacija u jeziku Symbian C++. Alati
Važna komponenta potrebna za kompajliranje je Perl runtime, koji koriste skripte za kompajliranje (tzv. build chain). U trenutku pisanja ovog teksta Nokia i dalje preporučuje da se koristi relativno stari ActivePerl 5.6.1.635, koji već neko vreme nije dostupan za downlaod sa sajta proizvođača. Razlog zašto se insistira na staroj verziji Perla je to što Perl skripte iz buid chaina imaju sintaksne greške (?!), sa kojima stari Perl radi, ali novi ne. Kako stara verzija više nije (legalno i besplatno) dostupna, rešenje problema je da se instalira najnoviji besplatni ActivePerl i da se nekoliko Perl skripti iz SDK-a preprave na način kako je to opisano na forumu, nakon čega sve lepo radi, ali razočaranje u aljkavost Nokijinih programera i dalje ostaje... Teoretski, S60 SDK je sve što je potrebno da se napravi program za S60, ali se to u praksi radi u razvojnom okruženju pod nazivom Carbide.c++, koji je Nokijina varijanta Eclipsea sa prilagođenim CDT (C/C++ Development Tooling) plug-inom. Hello world Struktura jednog Symbian C++ projekta relativno je složena (i solidno objašnjena u dokumentaciji, tako da sada nema potrebe opet u to zalaziti), a okruženje Carbide.c++ nudi wizard za kreiranje različitih vrsta projekata, tako da ovo za početnike nije problem. Wizard se pokreće na File > New > Symbian C++ Project. Wizardi uglavnom prave jednostavne „Hello world” aplikacije koje se odmah mogu pokrenuti u emulatoru (zeleno Run dugme na tulbaru). Treba imati na umu to da emulator radi na Windowsu, što znači da aplikaciju koja se pokreće na emulatoru treba kompajlirati za Windows platformu (što je namešteno po defaultu), a kada se pravi verzija za telefon potrebno je podesiti da se kompajlira za ARM procesore, koje koriste Nokia telefoni. To se radi tako što se u Project > Build Configurations > Set Active podesi na „Phone Release (GCCE)”, ili preko tulbara. Kompajliranje sa pokreće sa Project > Build Project. Kada je gotovo, u Sys folderu projekta pojaviće se .sysx fajl koji može da se instalira na telefon. Ko god se malo igrao programiranja, naučio je da nema programiranja bez debagovanja. Sa Carbide.c++, pored debagovanja aplikacije koja se izvršava na emulatoru, postoji i mogućnost debagovanja aplikacije direktno na telefonu. Za to je potrebno iskompajlirati aplikaciju koja se debuguje sa „Phone Debug” kofiguracijom, instalirati na telefon posebnu aplikaciju (TRK aplikacija) koja omogućava debug na telefonu, kao i aplikaciju koja se debaguje, i kreirati konekciju između telefona i razvojnog okruženja. Sve ovo se radi prilično jednostavno iz interfejsa koji postoji u Carbide.c++. Hello documentation and tutorials
Prethodno znanje C++-a svakako nije na odmet, ali čak će i iskusan C++ programer morati da sedne i nauči razne specifičnosti Symbian C++-a, koje inače potiču od toga što je prilagođen uređajima sa ograničenom memorijom i izvršavanju na raznolikim hardverskim platformama. Između ostalog, treba nešto naučiti i o tipovima podataka koji se koriste u Symbian C++-u, leave mehanizmu koji je alternativa exceptionima i raznim mehanizmima za sprečavanje memory leakova u raznim predviđenim i nepredviđenim situacijama. Takođe, treba se prilagoditi konvenciji za imenovanje klasa, funkcija i promenjivih, nedostatku standardne biblioteke i zamena za nju koje Symbian nudi. Help u Carbide.c++ sadrži detaljnije informacije o Symbian C++-u i upotrebi Carbide.c++ okruženja, ali baš i nije najsrećniji za učenje, jer te informacije nisu organizovane tako da početniku daju ideju odakle da krene i kojim redom da ide. Za to je mnogo bolje koristiti neki od tutorijala koji postoje širom Interneta. Nokijin forum ima priličan broj uputstava i primera i, naravno, (kao što mu ime kaže) forum na kome se raspravlja o svemu vezanom za Symbian programiranje. Jedna zanimljiva knjiga o Symbian programiranju je „The accredited Symbian developer primer – Fundamentals of Symbian OS” (autori Jo Stichbury i Mark Jacobs). To je knjiga za polaganje ispita za zvanje Accredited Symbian Developer (ACD), koja počinje od osnova C++-a i ide do nivoa potrebnog za polaganje, tako da je dobra za programere početnike, kao i za one iskusnije. Potpis je obavezan U cilju očuvanja ugleda narušenog sigurnosnim propustima u nekim ranim verzijama Symbiana, koji su omogućavali širenje virusa preko Bluetootha i SMS-a, od verzije 9.1 uveden je veoma striktan bezbedonosni mehanizam. Deo tog mehanizma je sistem „potpisivanja” kompajliranih aplikacija. Potpis je tu da garantuje integritet aplikacije, tačnije to da instalacioni fajl nije menjan, kao i njen identitet, tj. to da je aplikacija iz proverenih izvora. Aplikaciju može da potpiše sam programer (onda je „self-signed”), i to se automatski radi prilikom kompajliranja u Carbide.c++, ili može da je potpiše Symbian fondacija nakon što testiranjem utvrdi da aplikacija zadovoljava određene zahteve propisane od strane fondacije (onda je „Symbian signed”, i to košta 200 dolara na godišnjem nivou, plus troškovi testiranja aplikacije, a detalji se nalaze na sajtu Symbian fondacije developer. Prilikom instalacije self- -signed aplikacije korisnik mora eksplicitno da potvrdi da aplikaciji dozvoljava pristup određenim funkcijama telefona (započinjanje poziva, slanje SMS-ova, konektovanje na Internet itd.), dok kod instaliranja Symbian signed aplikacije ne samo što nema tih bezbedonosnih pitanja, već aplikacija ima pristup nekim osetljivim delovima sistema, što može i da ne bude problem, jer nije svakom potreban takav nivo pristupa osetljivim delovima operativnog sistema. Mnogo veća prednost Symbian signed aplikacije je nesmetan pristup distribucionim kanalima, uključujući tu i Nokijin OVI store, koji funkcioniše kao pandan iPhone App storeu ili Android Marketu. Perspektiva Iako je još na vrhu po pitanju udela u svetskom tržištu, postoji određen trend opadanja udela Symbiana, između ostalog i zbog toga što tržište postaje sve zanimljivije pojavom novih i unapređivanjem postojećih konkuretskih smartphone platformi. I sama Nokia eksperimentiše sa alternativama Symbianu u vidu Linux baziranih platformi Maemo i MeeGo. Symbian trenutno prolazi kroz velike promene koje se „kuvaju” nekoliko godina unazad, otkad je Nokia potpuno preuzela Symbian Ltd. otkupljujući deonice od ostalih firmi i održavanje OS-a prenela na organizaciju Symbian Foundation, koja počinje da nudi nešto što se zove Symbian platform – smartphone platformu koja se sastoji od onoga što je pre bilo Symbian OS i Nokijinog S60. Dok starije verzije Symbiana ostaju potpuno ili delimično zatvorene, Symbian^3 platforma (objavljena u februaru 2010. godine) 100 odsto je otvorena, što znači da se Symbian od sada razvija po sličnom modelu kao i Android platforma. Iako kompanije kao što su Google i Apple imaju priličan potencijal da uzmu parče tržišta (što će u manjoj ili većoj meri i uraditi), Symbian/S60 je tehnološki vrlo jaka platforma, čija je svaka komponenta od nule dizajnirana specijalno za mobilne uređaje i koja prelaskom na open source model razvoja može postati interesantna i raznim drugim proizvođačima mobilnih uređaja koji nemaju mogućnosti ili interesa da razvijaju sopstvena softverska rešenja. Sa trenutno vrlo jakim udelom na tržištu, Symbian platforma još dugo će biti prisutna, a samim tim i interesantna sadašnjim i budućim programerima. Marko JOVANOVIĆ |
![]() ![]()
| |||||||||||||||||||||
![]() | |
![]() | ![]() |
Home / Novi broj | Arhiva • Opšte teme | Internet | Test drive | Test run | PD kutak | CeDeteka | WWW vodič • Svet igara Svet kompjutera Copyright © 1984-2018. Politika a.d. • Redakcija | Kontakt | Saradnja | Oglasi | Pretplata • Help • English | |
SKWeb 3.22 |