Az OS X 10.10.3 programozói újításai

Az új Fotók alkalmazás csak az egyik újdonság, ami az OS X 10.10.3 első fejlesztői előzetesébe került. Bőven lesznek más újdonságok is a tavasszal megjelenő rendszerben.

Az első újítás, hogy az OS X alapját képző Darwin kernel verziószáma igen nagyot ugrott. Az OS X 10.10.2 alatt egy 14.1.0-s változat működik, de az Apple az OS X 10.10.3 alá egy 14.3.0-t tett.

Ez nagy ugrás és kerneleknél egyáltalán nem megszokott, hogy ilyen nagy verziószámbeli ugrás legyen, hacsak nem történik valami igazán nagy változás.

imageA másik újdonság a Fotók alkalmazás működéséhez szükséges. A Fotók ugyanis nem az AppKit keretrendszert használja az ablakok kirajzolására, hanem egy UXKit nevű privát keretrendszert.

Az Apple gyakran használ olyan keretrendszereket, amik sosem lesznek nyilvánosak, hanem örökre megmaradnak privátok, de az UXKit különlegesnek tűnik.

Néhány fejlesztő belenézett a UXKit belsejébe és azt találták, hogy az UXKit a UIKit funkcióit implementálja, miközben az AppKitből öröklődik. Ez igazán izgalmas és ha az Apple ezen a vonalon indul el, az érdekes jövőt hozhat a Mac-es alkalmazásoknak.



@willing: Az új Fotók Mac-es változata egy új, a 10.10.3-ban lévő privát keretrendszeren alapszik, a UXKiten. Igazából ez egy UIKit másolat az AppKit tetején.

Az AppKit az OS X grafikus felületének alapját adja amióta a rendszer létezik. Az AppKit, eredeti nevén Application Kit még az OpenStep operációs rendszerrel együtt keletkezett a 90-es évek közepén.

A UIKit már újabb csemete. Az Apple a UIKitet kifejezetten a Cocoa Touch környezetbe készítette, az iOS grafikus felületének alapjait köszönhetjük neki.

Ebből már következik, hogy a UIKit úgy készült, hogy az Apple mérnökeinek volt ~10 éve tanulni az AppKit hibáiból. Ami rossz volt az AppKitben, már ki tudták javítani és tudták máshogy implementálni a UIKitben, hogy egyszerűbb dolguk legyen.

Sok esetben hiába találnak ki egy jobb megoldást később, kénytelenek a régi módszert is megtartani, kompatibilitási okokból. A UIKit esetén erre nem volt szükség, tiszta lappal kezdhettek.

Az AppKit és a UIKit mindig is közel álltak egymáshoz, annak ellenére, hogy korukban nagy eltérés van közöttük. Az AppKitben a legtöbb metódus és osztály még a NeXTStep-es időkre emlékeztet nevében (NSColor, NSNumber…), míg a UIKit már szakít az NS előtaggal (UIColor, UITableView).

Szóval mit is jelent a UXKit? Nos, a Fotók alkalmazás belsejében található privát keretrendszert felhasználva például készíthetőek ilyen felülettel rendelkező alkalmazások:



@stroughtonsmith: Az UXKit rendelkezik navigációs vezérlőkkel, fülváltó vezérlőkkel, táblázat vezérlőkkel, eszközsorokkal és még tintColor támogatással is 😓.

Ez magyarra fordítva annyit tesz, hogy az Apple egy rakás olyan, eddig csak iOS-en létező felületi elemet hozott át OS X-re, amik eddig ismeretlenek voltak a Mac-en. Ilyen például a fenti képen látható “vissza” gomb is és az is, hogy a gombok lehetnek keret nélküliek és a rajtuk lévő szöveg színe módosítható (az Apple az iOS 7 óta használja széleskörűen a tintColort, hogy gombokat és egyéb kijelzőn megjelenő elemeket színezzen).

Vannak persze, akik kételkednek abban, hogy a UXKitből lesz valami és nem csak az Apple saját játékszere marad arra, hogy könnyebben tudjanak platformfüggetlen kódot írni. Így vélekedik például Brent Simmons is, aki blogján hosszasan összefoglalja, hogy szerinte miért nem fog soha sem kikerülni a UXKit.

Röviden összefoglalva: szerinte az AppKit eléggé hasonlít a UIKitre és az Apple nem vállalná be azt, hogy hosszú éveken keresztül két rendszert is támogassanak OS X-en.

Úgy véli, hogy ha valaha is nyilvános keretrendszer lesz a UXKitből, akkor az csak egy kompatibilitási réteget ad majd platformfüggetlen kód írásához. Gyakorlatilag fordításkor a UXColor kicserélődne a kódban UIColorra, ha iOS-re fordítjuk az alkalmazást és NSColorra, ha OS X-re.

Ez is egy érdekes gondolat, és elképzelhető, hogy az Apple-nek ilyen tervei vannak.

A Microsoft már felfedte kártyáit a Windows 10-zel, hogy ők továbbra is hisznek az egységes szoftverplatformban. A Windows 10 mellé a Microsoft olyan fejlesztői eszközöket adott ki, amikkel 4 colos telefonoktól egészen asztali rendszerekig terjeszkedő felületeket lehet készíteni, ami sehol sem mutat szétnyújtottnak vagy zsúfoltnak.

Nyilvánvalóan az Apple mérnökeinek munkáját is megkönnyítené, ha egyszerre tudnának kódolni iOS-re és OS X-re is, a két rendszert még közelebb húzná egymáshoz egy közös UI keretrendszer. Az Apple-nél mindenképp játszadoznak a gondolattal, mert az OS X 10.10.3-ban nem csak a Fotók alkalmazás használja az új keretrendszert, hanem a Game Center is:



@hbkirb: A Game Center is UXKitet használ a Yosemite 10.10.3-as változatában.

Te mit gondolsz ezekről a változásokról? Vajon milyen újdonságok kerülhettek a kernelbe, hogy az Apple kihagyott egy verziót? És vajon mi lesz a UXKit jövője?
2 hozzászólás
adam10603
2015. 02. 06. @ 18:43

Érdekes lesz látni mi lesz belõle. A Darwin verziószámának ugrását én sem igazán értem, de az újabb kernel mindig jó dolog :) Talán jobb lesz az akkumlátor üzemidõ, vagy hasonló.

adam10603
2015. 02. 06. @ 18:45

Egyébként maga a Darwin nem igazán egy kernel, valójában egy oprendszer, ami az XNU kernelre épül (ami pedig a Mach mikrokernelbõl és egy BSD rétegbõl áll).

Hozzá szeretnél szólni te is? Először be kell lépned!