Siirry sisältöön

IOS-arkkitehtuuri

Wikiopistosta

iOS (aiemmalta nimeltään iPhone OS) mobiilikäyttöjärjestelmää käytetään yksinoikeudella Apple Inc:n laitteissa mukaan lukien iPhone, iPod Touch ja iPad laitteet. Ensimmäinen iOS käyttöjärjestelmä julkaistiin vuonna 2007, kun ensimmäinen iPhone tuotiin markkinoille [1]. IOS on laajennettu tukemaan myös muita Applen laitteita, kuten iPod Touch (syyskuu 2007) ja iPad (tammikuu 2010). Käyttöjärjestelmää päivitetään vuosittain ja viimeisin päivitys iOS 12 julkaistiin syyskuussa 2018. Tämä versio on yhteensopiva kaikkien iPhone, iPod Touch ja iPad laitteiden kanssa, joissa on 64 bittinen prosessori [2]. Heti Android käyttöjärjestelmän jälkeen iOS on toiseksi käytetyin käyttöjärjestelmä koko maailmassa [3]. Applen oma IOS store avattiin vuonna 2008, storessa ennustetaan olevan yli 5 miljoona ohjelmaa vuoteen 2020 mennessä.

iOS arkkitehtuurissa on neljä kerrosta: CoreOS Layer, Core Services, Media Layer ja Cocoa Touch. Abstraktisuus kasvaa liikuttaessa alimmasta kerroksesta ylöspäin. Toisin sanoen ylemmillä tasoilla on suurempi abstraktiotaso kuin alemmilla. Alemmat tasot ovat näin ollen läheisimmin tekemisissä laitteiston kanssa. Ylempien kerrosten toiminnallisuus on siten osittain riippuvainen alemmista kerroksista [4].

iOS arkkitehtuurin tasot ja niiden toiminnot.

CoreOS Layer

[muokkaa]

Core OS Layer on IOS-arkkitehtuurin pohjakerros, joka toimii perustana käyttöjärjestelmälle. Core OS-kerros on suoraan yhteydessä laitteistoon [5] ja sen kautta muut palvelut ja toiminnot on rakennettu [6].

Core OS Layer sisältää matalamman tason ominaisuuksia, johon korkeamman tason ominaisuudet ovat liittyneet. Se sisältää muun muassa seuraavat ominaisuudet: Bluetooth-yhteys, turvallisuuspalvelut, järjestelmä- ja verkkopalvelut ja muistinhallinta [5][6]

Core OS Layeriin sisältyvät kehykset: [4]

Core OS Layer Frameworks
Core Bluetooth Framework
Accelerate Framework
External Accessory Framework
Security Services Framework
Local Authentication Framework
64-bit Support

Core Services

[muokkaa]

Core Services on joukko macOS- ja iOS-sovellusohjelmointikäyttöliittymiä, jotka sijoittuvat arkkitehtuurillisesti Carbonin, Cocoan ja Cocoa Touchin alle. IOS Core Services-kerros tarjoaa suurimman osan perustasta, jolle yllä olevat kerrokset on rakennettu ja koostuvat seuraavista kehyksistä[7][8]:

* 1 Osoitekirjakehys (AddressBook.framework) Osoitekirja-kehys tarjoaa ohjelmoitavan pääsyn iPhonen osoitekirjan tietokantaan, jonka avulla sovellukset voivat hakea ja muuttaa yhteystietoja.

* 2 “Ydin-data-kehys” (CoreData.framework) Tämä kehys helpottaa tietojen mallinnuksen ja tallennuksen luomista Model-View-Controller (MVC) -perusteisiin sovelluksiin. Core Data -kehyksen käyttö vähentää huomattavasti koodin määrää, joka on kirjoitettava suorittamaan tavallisia tehtäviä, kun käsitellään sovelluksen jäsenneltyjä tietoja.

* 3 "Ydin-perusta-kehys” (CoreFoundation.framework) Core-Foundation on C-pohjainen kehys, joka tarjoaa perustoimintoja, kuten tietotyypit, merkkijonon manipulointi, raakalohkon tietojen hallinnan, URL-manipuloinnin, kierteet ja juoksusilmukat, päivämäärän ja kellonajan, perus XML-manipuloinnin sekä satama- ja pistorasian viestinnän.

* 4 Perustuskehys (Foundation.framework) Perustuskehys on standardi Objective-C-kehys, joka on tuttu niille, jotka ovat ohjelmoineet Objective-C:llä muilla alustoilla (todennäköisesti Mac OS X). Pohjimmiltaan tämä koostuu Objective-C-kääreistä, jotka liittyvät suurelta osin C-pohjaiseen Core Foundation -kehikkoon.

* 5 Sijaintikehys (CoreLocation.framework) Core Location -kehyksen avulla voit hankkia laitteen nykyisen maantieteellisen sijainnin (leveys- ja pituusasteet) ja kompassilukemat omilta sovelluksiltasi. Laitteen koordinaattien käyttämä menetelmä riippuu käytettävissä olevista tiedoista, joita käytössä oleva sovellus pyytää, ja tietyn iOS-mallin laitteistokannasta. Tämä joko perustuu GPS-lukemiin, WiFi-verkon tietoihin tai solutorni-triangulaatioon (tai johonkin näiden kolmen yhdistelmän).

* 6 Kauppa-välineistökehys (StoreKit.framework) Store Kit -kehyksen tarkoituksena on helpottaa kaupankäyntiä sovelluksesi ja Apple App Storen välillä. Ennen iPhone OS: n version 3.0 versiota sovelluksen lataaminen asiakkaalle oli mahdollista vain siinä vaiheessa, kun se osti sen App Storesta. iPhone OS 3.0 esitteli "app-oston" käsitteen, jonka avulla käyttäjälle voidaan antaa mahdollisuus tehdä lisämaksuja sovelluksesta.

* 7 SQLite Kirjasto Mahdollistaa kevyen SQL-pohjaisen tietokannan luomisen ja manipuloinnin iPhone-sovelluksestasi.

Media Layer

[muokkaa]

Media Layer on iOS-arkkitehtuurin toiseksi korkein taso. Media Layer on termi, joka viittaa IOS-järjestelmän ohjelmistokehyksiin ja erilaisiin tekniikoihin. Se vastaa äänestä, visuaalisuudesta ja muista multimediaominaisuuksista. Media Layer määrittää koko multimedia-arkkitehtuurin Applen laitteissa ja sovelluksissa. [9][10]

Media Layer -tekniikan avulla ohjelmiston kehittäjät voivat luoda erilaisia mobiilisovelluksia ja palveluita IOS-laitteissa. Tekniikka jakautuu useampaan komponenttiin: graafiseen, audio- ja visuaaliseen tukikehykseen. Graafinen kehys (Graphics Framework) antaa kehittäjälle mahdollisuuden luoda sovelluksia, jotka tarjoavat graafisia rajapintoja ja animaatioita sovelluksiin ja myös kuviin. Audio-kehys (Audio Framework) mahdollistaa taas äänen toiston, tallentamisen ja integroinnin erilaisiin sovelluksiin. Video-kehys (Video Framework) mahdollistaa taas videopohjaisen sisällön toistamisen. Se tukee median toistamista, tallentamista, lukemista koodausta, kirjoittamista ja muokkaamista. Sitä voidaan käyttää myös videoiden kaappaamiseen ja sisällyttämään nämä erilaisiin sovelluksiin.

Cocoa Touch

[muokkaa]

Cocoa Touch on iOS-arkkitehtuurin korkein taso. Se on käyttöliittymäkehikko, jolla voidaan rakentaa ohjelmia, joita voidaan ajaa iOS:ssa. Cocoa Touch tarjoaa iOS:n abstraktiotason eli käyttöjärjestelmän iPhone, iPod Touch ja iPad laitteille. Cocoa touch perustuu macOS Cocoa API-työkaluihin ja on ensisijaisesti kirjoitettu Objective-C kielellä.

Cocoa Touch mahdollistaa laitteiston ja ominaisuuksien käytön, joita ei löydy macOS tietokoneista tehden nämä laitteistot ja ominaisuudet näin ollen uniikeiksi iOS-laitteille. Cocoa Touch seuraa Model-View-Controller (MVC)-ohjelmistoarkkitehtuurityyliä, joka voidaan jakaa kolmeen osaan: malliin (Model), näkymään (View) ja käsittelijään (Controller). Cocoa Touch sisältää erilaisia graafisia hallinnoinnin elementtejä. Cocoa Touch:iin perustuvat sovellusten kehitystyökalut ovat sisällytettynä iOS SDK:ssa. [6]

Lähteet

[muokkaa]
  1. http://www.apple.com/iphone/features/index.html
  2. https://www.macrumors.com/2018/09/17/apple-releases-ios-12/
  3. https://deviceatlas.com/blog/android-v-ios-market-share
  4. 4,0 4,1 https://intellipaat.com/tutorial/tutorial-ios-tutorial/ios-architecture (viitattu 19.11.2018)
  5. 5,0 5,1 Lee Wei-Meng, 2012, Beginning iOS 5 application development, ProQuest (Firm), Indianapolis : Wiley 2012
  6. 6,0 6,1 6,2 Rajiv Ramnath & Cheyney Loffing, 2014, Beginning iOS programming for dummies, Hoboken, New Jersey, Wiley 2014. (s.14)
  7. https://www.techotopia.com/index.php/The_iPhone_OS_Core_Services_Layer
  8. https://developer.apple.com/documentation/coreservices
  9. https://developer.apple.com/library/archive/documentation/MacOSX/Conceptual/OSX_Technology_Overview/MediaLayer/MediaLayer.html
  10. https://www.techopedia.com/definition/27170/media-layer-apple-ios-devices