Symbian

Käyttöliittymä

Symbianissa on ollut natiivi grafiikkatyökalupakki, tunnettu nimellä AVKON (aiemmalta nimeltään Series 60), alusta saakka. S60 suunniteltiin sellaiseksi, että sitä voisi käyttää näppäimistön kaltaisella käyttöliittymällä, joita olivat ~15-näppäiminen matkapuhelimissa yleinen numeronäppäimistö tai minikokoiset QWERTY-näppäimistöt. AVKON-pohjaiset ohjelmat ovat binaaritasolla yhteensopivia Symbian-versioon Symbian^3 saakka ja sen kanssa.
Symbian^3 sisältää Qt-kehitysympäristön, joka on nyttemmin suositeltu käyttöliittymätyökalupaketti uusille sovelluksille. Qt:n voi myös asentaa vanhemmille Symbian-laitteille.
Symbian^4:n oli tarkoitus sisältää uusi graafisen käyttöliittymän kehitysympäristö, tunnettu nimellä "UI Extensions for Mobile" tai UIEMO (sisäinen projektinimi "Orbit"), joka olisi nimenomaan kehitetty kosketuspohjaisia laitteita varten ja se olisi kehitetty Qt Widgetin pohjalta; esikatselu julkistettiin tammikuussa 2010, mutta kuitenkin lokakuussa 2010 Nokia ilmoitti, että Orbit/UIEMO oli peruutettu.
Tällä hetkellä Nokia suosittelee, että kehittäjät käyttävät Qt Quickia QML:n kanssa; QML on uusi, korkean tason deklaratiivinen käyttöliittymä- ja komentosarjakehitysympäristö visuaalisesti näyttävien kosketusnäyttökäyttöliittymien kehittämiseen, joka mahdollistaa kehityksen sekä Symbianille että MeeGolle; se saatetaan olemassa oleviin Symbian^3-laitteisiin Qt-päivityksenä. Kun yhä useammat sovellukset asteittain siirtyvät Qt-käyttöliittymään, vanhentunut S60-runko (AVKON) poistetaan käytöstä jossain vaiheessa, mikä rikkoo binaaritason yhteensopivuuden vanhojen S60-sovellusten kanssa.

Sovelluskehitys

Vuonna 2010 Symbian otti käyttöön standardi-C++:n Qt:n kanssa pääasialliseksi ohjelmistonkehityspaketikseen; sitä voi käyttää joko Qt Creatorin tai Carbide.c++:n kanssa. Qt tukee vanhempia Symbian/S60 3rd- (alkaen Feature Pack 1:stä, tunnettu myös nimellä S60 3.1) ja Symbian/S60 5th Edition (tunnettu myös nimellä S60 5.01b) -julkaisuja, kuten myös uudempaa Symbian-alustaa. Se tukee myös Maemoa ja MeeGoa, Windowsia, Linuxia ja Mac OS X:ää.
Vaihtoehtoinen sovelluskehitys onnistuu Python (katso Python for S60), Adobe Flash Liten tai Java ME:n avulla.
Symbian OS käytti aiemmin erityistä C++-versiota Carbide.c++-ohjelmointiympäristön (IDE) kanssa natiivina sovelluskehitysympäristönä.
Web Run time (WRT) on siirrettävä sovellusympäristö, joka mahdollistaa vekottimien luomisen S60-alustalla; se on lisäosa S60:n WebKit-pohjaiseen selaimeen, joka mahdollistaa useampien selaininstanssien käynnistämisen erillisinä JavaScript-sovelluksina.

Qt

Vuonna 2010 Symbianin ohjelmistonkehityspaketti on tavallinen C++ Qt:tä käyttäen. Sitä voi käyttää joko Qt Creatorin tai Carbiden (vanhempi integroitu ohjelmointiympäristö, jota käytettiin ennen Symbian-kehitykseen) kanssa. Puhelinsimulaattori mahdollistaa Qt-sovellusten testaamisen. Simulaattorille käännetyt sovellukset ovat käännetty kehitysalustan natiiville koodille sen sijaan, että niitä pitäisi emuloida. Sovelluskehityksessä voi käyttää joko C++:aa tai QML:ää.

Symbian C++

Koska Symbian-käyttöjärjestelmä on kirjoitettu C++-kielellä käyttäen Symbianin koodausstandardeja, on mahdollista kehittää Symbian C++:aa käyttämällä, vaikkakin se ei ole standarditoteutus. Ennen Qt-ohjelmistonkehityspaketin julkaisua, tämä oli normaali kehitysympäristö. Oli olemassa useita Symbianiin pohjautuvia alustoja, jotka tarjosivat ohjelmistonkehityspaketteja (SDK) ohjelmistonkehittäjille, jotka halusivat kehittää Symbian OS -laitteille; näistä tärkeimmät olivat UIQ ja S60. Yksittäisillä puhelintuotteilla tai -perheillä oli usein valmistajan sivuilta ladattavia ohjelmistonkehityspaketteja tai ohjelmistonkehityspakettien laajennoksia.
Ohjelmistonkehityspaketit sisältävät dokumentaatiota, Symbian OS -ohjelmiston kääntämiseen tarvittavat otsikko- ja kirjastotiedostot sekä Windows-pohjaisen emulaattorin ("WINS"). Symbian OS:n versioon 8 saakka ohjelmistonkehityspaketit sisälsivät myös version GCC-kääntäjästä (ristikääntäjä), jota tarvittiin kääntämään ohjelmisto laitteessa toimivaksi.
Symbian OS 9 ja Symbian-alusta käyttävät uutta ABI:a ja tarvitsevat erilaisen kääntäjän. Kääntäjiä on useita erilaisia, mukaan lukien uudempi versio GCC:stä.
Symbian C++ -ohjelmointi on vaikeaa oppia, koska Symbian C++ vaatii erityisten tekniikoiden, kuten kuvaajien, aktiivisten objektien ja siivouspinon, käyttöä. Tämä saattaa tehdä jopa melko yksinkertaisten ohjelmien toteuttamisesta vaikeampaa kuin muissa ympäristöissä. On mahdollista, että nämä 1990-luvun huomattavasti rajoittuneemmalle mobiililaitteistolle ja -kääntäjille kehitetyt tekniikat aiheuttivat tarpeetonta monimutkaisuutta lähdekoodissa, koska ohjelmoijien on ollut pakko kiinnittää huomiota matalan tason yksityiskohtiin sovelluskohtaisten ominaisuuksien sijaan. Vuonna 2010 nämä eivät enää ole ongelmia standardi-C++:aa ja Qt-ohjelmistonkehityspakettia käytettäessä.
Symbian C++-ohjelmointia tehdään yleensä integroidun ohjelmointiympäristön (IDE) kanssa. Aiempien versioiden kanssa kaupallista CodeWarrior-IDE:ä suosittiin. Vuonna 2006 CodeWarror-työkalujen korvaajaksi tuli Carbide.c++, Nokian kehittämä Eclipse-pohjainen IDE. Carbide.c++-versioita on neljä: Express, Developer, Professional, ja OEM, joissa jokaisessa on erilaiset kyvyt. Ilmaisella Express-versiolla voi tehdä ja julkaista täysin toimivia ohjelmistoja. Käyttöliittymän suunnittelu, virheenkorjaus kaatumistilanteessa jne. ovat saatavilla muissa, maksullisissa versioissa. Microsoft Visual Studion 2003- ja 2005-versioita tuetaan Carbide.vs-lisäosan avulla.

Muut kielet

Symbian-laitteita voi myös ohjelmoida Pythonia, Java ME:tä, Flash Litea, Rubyä, .NET:iä, Web Runtime (WRT) -vekottimia ja standardia C/C++:aa käyttämällä.
Visual Basics -ohjelmoijat voivat käyttää NS Basicia kehittääkseen sovelluksia S60 3rd Editionille ja UIQ 3 -laitteille.
Aiemmin Visual Basic-, Visual Basic .NET-, ja C#-ohjelmointi Symbianille oli mahdollista Microsoft Visual Studion lisäosan, nimeltään AppForge Crossfire, avulla. 13. maaliskuuta 2007 AppForge lopetti toimintansa; Oracle osti tekijänoikeudet, mutta ilmoitti, ettei se aio myydä tai tarjota tuotetukea entisille AppForgen tuotteille. RedFIVElabs myy kaupallisena tuotteena Symbianille Net60:tä, pienikokoista .NET-ohjelmointiympäristöä. Net60:n avulla (muun muassa) VB.NET- ja C#-lähdekoodi käännetään välikieleksi, jonka Symbian OS suorittaa käyttämällä just-in-time-kääntäjää. (18. tammikuuta 2010 mennessä RedFIVElabs on lopettanut Net60:n kehittämisen ja heidän sivuillaan lukee seuraavaa: "Tässä vaiheessa etsimme muita mahdollisuuksia tekijänoikeuksien myymiseen, jotta Net60:llä voi olla tulevaisuus jatkossakin.")
Symbian OS:lle on saatavilla myös versio Borland-ohjelmointiympäristöstä. Symbian OS -kehitys on myös mahdollista Linuxilla ja OS X:llä käyttäen yhteisön kehittämiä työkaluja ja tapoja, jonka on mahdollistanut avaintyökalujen lähdekoodin vapauttaminen. Saatavilla oli lisäosa, joka mahdollistaa Symbian-sovellusten kehittämisen Applen Xcode-ohjelmointiympäristössä Mac OS X -käyttöjärjestelmän kanssa.
Java ME-sovellusten kehittäminen Symbianille tapahtuu käyttämällä sekä standarditekniikoita ja -työkaluja, kuten Sun Java Wireless Toolkitiä (aiemmin tunnettu nimellä J2ME Wireless Toolkit). Ne ovat pakattuina JAR (ja mahdollisesti JAD)-tiedostoina. Sekä CLDC- ja CDC-sovelluksia voi luoda NetBeansin avulla. Muihin työkaluihin lukeutuvat SuperWaba, jota voi käyttää rakentaakseen Symbian 7.0 ja 7.0s -sovelluksia Javaa käyttäen.
Nokian S60-puhelimet pystyvät myös suorittamaan Python-komentosarjoja, kun Python for S60 -komentotulkki on asennettuna Bluetooth-tuen tarjoavan mukautetun ohjelmointirajapinnan kanssa. On myös olemassa interaktiivinen konsoli, joka mahdollistaa Python-komentosarjojen kirjoittamisen suoraan puhelimesta.

Käyttöönotto

Kehityksen jälkeen Symbian-sovellusten täytyy löytää tiensä asiakkaiden matkapuhelimiin. Ne ovat pakattuina SIS-tiedostoihin, joita pystyy asentamaan ilmateitse (engl. over-the-air), yhdistämällä puhelimen tietokoneeseen, Bluetoothin välityksellä tai muistikortilta. Vaihtoehtona on tehdä yhteistyötä puhelimen valmistajan kanssa saadakseen ohjelmistonsa sisällytettyä puhelimeen. Sovellusten tulee olla digitaalisesti allekirjoitettuja (Symbian Signed) Symbian OS 9.x -versioille, jotta ne voivat saada täyden hyödyn tietyistä ominaisuuksista (järjestelmän ominaisuudet, rajoitetut ominaisuudet ja laitteen valmistajan ominaisuudet). Sovelluksia voi allekirjoittaa maksutta.

Teknologiatoimialueet ja paketit

Symbianin design on jaettu teknologiatoimialueisiin, joista jokainen käsittää erinäisen määrän ohjelmistopaketteja. Jokaisella teknologiatoimialueella on oma etenemissuunnitelmansa ja Symbian Foundationilla on ryhmä teknologiahallinnoijia, jotka hallinnoivat näitä teknologiatoimialueiden etenemissuunnitelmia.
Jokainen paketti on jaettu tasan yhdelle teknologiatoimialueelle, joka perustuu siihen, millaista toiminnallisuutta paketti lisää ja mistä se on saanut vaikutteita. Ryhmittämällä paketit teemoittain Symbian Foundation toivoo kannustavansa niiden ympärille muodostuvan vahvan yhteisön keskustelun ja tarkastelun aikaansaamiseksi.
Symbianin järjestelmämalli havainnollistaa teknologiatoimialueiden laajuutta alustapakettien halki.
Paketit omistaa ja niitä ylläpitää paketin omistaja, Symbian Foundationin organisaatiojäsenen nimeämä henkilö, joka hyväksyy koodimuutoksia laajemmalta Symbian-yhteisöltä ja joka vastaa kyseisestä paketista.

Symbianin ydin

Symbianin ydin (EKA2) tukee kohtuullisen nopeaa reaaliaikaista vastausta yksiytimisen puhelimen rakentamiseen sen ympärille—siis puhelin, jossa yksi ydin suorittaa sekä käyttäjän sovellusohjelmat ja protokollapinot. Reaaliaikaisella ytimellä on mikroydinarkkitehtuuri, joka sisältää vain tarpeellisimmat, alkeellisimmat toiminnallisuudet parhaimman vakauden, saatavuuden ja reagointivalmiuden takaamiseksi. Sitä on kutsuttu nanoytimeksi, koska se tarvitsee laajennetun ytimen toteuttaakseen mitä tahansa muita abstraktioita. Se sisältää aikatauluttajan, muistin hallinnan ja laiteajurit, ja verkko-, puhelin- ja tiedostojärjestelmätukipalvelut joko käyttöjärjestelmän palvelujen kerroksessa tai peruspalvelujen kerroksessa. Laiteajurien sisällyttäminen tarkoittaa, että ydin ei ole todellinen mikroydin.

Markkinaosuus ja kilpailijat

16. marraskuuta 2006 100.s miljoonas Symbiania käyttävä älypuhelin valmistettiin. 21. heinäkuuta 2009 mennessä yli 250 miljoonaa Symbian OS -laitetta oli valmistettu.
Vuonna 2006 Symbianin markkinaosuus älypuhelinmarkkinoista oli 73% verrattuna sen markkinaosuuteen vuoden 2011 toisella neljänneksellä, mikä oli 22.1%.
Symbian on menettänyt markkinaosuuttaan vuosien varrella samalla kun markkinat ovat dramaattisesti kasvaneet ja markkinoille on tullut kilpailevia alustoja, vaikkakin sen myynti on noussut samalla aikaa. Vaikkakin Symbianin osuus maailmanlaajuisista älypuhelinmarkkinoista putosi vuoden 2008 52.4% vuoden 2009 lukuun 47.2%, Symbian-laitteiden valmistus kasvoi 4.8%, 74.9 miljoonasta yksiköstä 78.5 miljoonaan yksikköön. Vuoden 2009 toisesta neljänneksestä vuoden 2010 toiseen neljännekseen Symbian-laitteiden valmistusmäärät nousivat 41.5%, 8.0 miljoonalla yksiköllä, 19 178 910 yksiköstä 27 129 340 yksikköön; verrattuna Androidin 9.6 miljoonan yksikön, RIM:in 3.3 miljoonan yksikön ja Applen 3.2 miljoonan yksikön nousuun.
Aiempien helmikuussa 2010 julkaistujen raporttien mukaan Symbian-laitteiden osuus vuonna 2009 myydyistä älymobiililaitteista oli 47.2%, RIM:in osuus 20.8%, Applen 15.1% (iOS:in kautta), Microsoftin 8.8% (Windows CE:n ja Windows Mobilen kautta) ja Androidin osuus oli 4.7%.
"Älymobiililaitteiden" myyntimäärissä Symbian-laitteet olivat markkinajohtajia vuonna 2010. Tilastot näyttävät, että Symbian-laitteiden osuus kaikista myydyistä älymobiililaitteista oli 37.6%, Androidin osuus oli 22.7%, RIM:in 16%, ja Applen 15.7% (iOS:in kautta). Joidenkin arvioiden mukaan vuoden 2010 toisen neljänneksen loppuun mennessä on myyty 385 Symbian OS -laitetta.
Vuosien 2009-2010 aikana Motorola, Samsung, LG, ja Sony Ericsson ilmoittivat vetäytyvänsä Symbianista vaihtoehtoisten alustojen, kuten Googlen Androidin ja Microsoftin Windows Phonen, hyväksi.
IDC:n mukaan Symbianin markkinaosuus on pudonnut kaikkien aikojen pohjalukemiin — 4.4% — vuoden 2012 toisella neljänneksellä.

Kritiikkiä

Symbianin käyttäjät maissa, jotka eivät käytä latinalaista aakkostoa (kuten Venäjä, Ukraina ja muut), ovat kritisoineet monimutkaista kielenvaihtotapaa useita vuosia. Esimerkiksi jos käyttäjä haluaa kirjoittaa latinalaisen kirjaimen, hänen tulee ottaa valikko esiin, napsauttaa kielikuvaketta, käyttää nuolinäppäimiä valitakseen esimerkiksi englannin kieli monien muiden kielten joukosta ja sitten painaa OK-painiketta. Latinalaisen kirjaimen kirjoitettuaan käyttäjän tulee toista sama menettely palatakseen käyttämään äidinkielistä näppäimistöään. Tämä tapa hidastaa vierailla kielillä kirjoittamista merkittävästi. Kosketusnäyttö- ja QWERTY-puhelimissa menettelytapa on hieman erilainen, mutta silti aikaavievä. Kaikissa muissa mobiilikäyttöjärjestelmissä, mukaan lukien Nokian S40-puhelimet, on mahdollista vaihtaa kahden alussa valitun kielen välillä yhdellä napsautuksella tai eleellä.
Alkuperäisen Nokia N97:n laiteohjelmiston varhaisia versioita, jotka käyttivät Symbian^1/Series 60 5th Editionia, kritisoitiin kovasti viallisiksi (osasyyllisenä oli myös puhelimen keskusmuistin vähäinen määrä).
Marraskuussa 2010 älypuhelinblogi All About Symbian kritisoi Symbianin oletusverkkoselaimen suorituskykyä ja suositteli vaihtoehtoista selainta, Opera Mobilea. Nokian vanhempi varajohtaja Jo Harlow lupasi päivitetyn selaimen vuoden 2011 ensimmäisellä neljänneksellä.
Symbianista on useita eri versioita ja painoksia, mikä on johtanut pirstoutumiseen. Sovellukset ja ohjelmistot eivät välttämättä ole keskenään yhteensopivia eri Symbian-versioiden kanssa.

Alustan turvallisuuden ohittaminen

Symbian OS 9.x -laitteet pystyy hakkeroimaan poistaakseen käyttöjärjestelmän versiossa 9.1 ja uudemmissa esitellyn alustan turvajärjestelmän, joka mahdollistaa allekirjoittamattoman koodin suorittamisen. Tämä mahdollistaa järjestelmätiedostojen muokkaamisen ja pääsyn aiemmin lukittuihin käyttöjärjestelmän osiin. Nokia kritisoi tätä hakkerointia siitä, että se mahdollisesti voi kasvattaa mobiilivirusten uhkaa, kun allekirjoittamatonta koodia voi suorittaa.