Další změny architektur pro iOS 10
Tento článek popisuje další, menší změny nebo vylepšení stávajících architektur pro iOS 10.
Doplňky architektury AV Foundation
Architektura AVFoundation zahrnuje následující vylepšení:
- V iOSu 10 už vývojář nemusí implementovat různé chování AVPlayerItem na základě typu obsahu. Jednoduše nastavte
Rate
vlastnost a AVFoundation určí, kdy je k dispozici dostatek obsahu pro přehrávání bez zastavení. - Nová třída AVCapturePhotoOutput nahrazuje zastaralou
AVCaptureStillImageOutput
třídu a poskytuje jednotnou metodu pro zpracování všech pracovních postupů fotografie tím, že poskytuje sofistikované řízení a monitorování procesu zachycení a podporu nových funkcí, jako je Live Photos a formát RAW capture. - Nová
AVPlayerLooper
třída usnadňuje smyčku daného média během přehrávání. - Třída
AVAssetDownloadURLSession
umožňuje stahování a pozdější přehrávání streamů HLS šifrovaných FairPlay. - Ve výchozím nastavení třída AVCaptureSession automaticky podporuje širokobarevný širokoúhlý zachytávání, když ho hardware zařízení podporuje. Další podrobnosti najdete v referenčních informacích k kompatibilitě zařízení s iOSem společnosti Apple.
Doplňky AVKitu
Architektura AVKit teď obsahuje novou UpdatesNowPlayingInfoCenter
vlastnost, která indikuje, kdy má být aktualizováno Centrum informací o přehrávání.
Vylepšení základních dat
iOS 10 zahrnuje následující vylepšení architektury Základních dat:
- Objekty NSManagedObjectContext s úložišti dat SQLite v režimu DENÍKU WAL podporují novou funkci generování dotazů, ve které je možné připnout kontexty spravovaného objektu (MOC) ke konkrétním verzím databáze pro budoucí načítání a chybující transakce.
- Kořenové objekty NSManagedObjectContext podporují souběžné chybování a načítání bez serializace.
- NSPersistentStoreCoordinator třída udržuje fond úložišť dat SQLite.
- Bylo přidáno několik nových metod usnadnění, které
NSManagedObject
usnadňují načítání a vytváření podtříd. - Použití vysoké úrovně
NSPersistenceContainer
k odkazování naNSPersistentStoreCoordinator
, NSManagedObjectModel a další základní datové konfigurační prostředky.
Další informace najdete v referenčních informacích k rozhraní Core Data Framework společnosti Apple.
Vylepšení základního obrázku
iOS 10 provádí následující vylepšení architektury základních imagí:
- Vývojář teď může zpracovávat obrázky v barevném prostoru mimo pracovní barevný prostor základního obrázku tím, že před zpracováním a po zpracování převede barevný prostor do a z barevného prostoru.
- U zařízení s iOSem, která používají procesory A8 nebo A9, je teď formát image RAW podporovaný. Základní obrázek teď poskytuje podporu dekódování obrázků RAW z integrované kamery iSight nebo z fotoaparátu třetí strany.
FilterWithImageData
Ke zpracování obrázků RAW použijte neboFilterWithImageURL
metody třídy CIFilter. - V objektech bylo provedeno
UIImage
několik vylepšení výkonu vykreslování (při zálohování úložištěm imagí Core Image).UIImageView
UIImage
objekty označené širokoúhlým gamutem se vUIImageView
objektech na zařízeních s iOSem, které podporují širokou barvu, vykreslují jako širokoúhlou barvu.- Kód jádra základní image teď může požadovat konkrétní formáty výstupu pixelů.
ImageWithExtent
Metoda CIFilter třídy lze použít k vložení vlastního zpracování do operace filtru. Základní image vyvolá dané zpětné volání mezi filtry při zpracování obrázku pro výstup nebo zobrazení.
Kromě toho byly přidány následující nové základní filtry imagí:
CINinePartTiled
CINinePartStretched
CIHueSaturationValueGradient
CIEdgePreserveUpsampleFilter
CIClamp
Přidání základního pohybu
Architektura Core Motion je novinkou v iOSu 10 a obsahuje události pedometru, které aplikaci umožňují přijímat rychlá oznámení o pozastavení a obnovení sledování uživatele v reálném čase během běhu. Pomocí CMPedometru zaregistrujte události pedometru na popředí nebo na pozadí.
Základní vylepšení
V rámci architektury Foundation pro iOS 10 jsme provedli následující vylepšení:
Použijte novou třídu NSMeasurementFormatter k formátování lokalizovaných měření pro zobrazení koncového uživatele.
Pomocí nové třídy NSDateInterval můžete provádět výpočty kalendářních a časových intervalů, jako jsou doby trvání, pro porovnání intervalů a testování pro průniky intervalů.
Pomocí nové třídy NSMeasurement můžete převést mezi různými měrnými jednotkami (UOM) nebo provádět výpočty s hodnotami v různých UOM.
Použijte nové třídy NSUnit a NSDimension pro reprezentaci konkrétních UOM.
Do třídy NSLocal bylo přidáno několik nových vlastností pro získání místních informací a dostupných formátů zobrazení.
Vylepšení sady GameKit
V rozhraní GameKit v iOSu 10 jsme provedli následující vylepšení:
- Aplikace Game Center je zastaralá a odebraná z iOSu. Pokud aplikace používá GameKit, musí prezentovat vlastní rozhraní pro zobrazení funkcí GameKitu, jako jsou tabulky výsledků atd.
- Nový typ účtu jen pro iCloud byl implementován třídou GKCloudPlayer .
- Nová třída GKGameSession poskytuje generalizované řešení pro správu trvalého úložiště dat v Game Center.
GKGameSession
udržuje seznam hráčů a aplikace zodpovídá za implementaci toho, jak a kdy se datum účastníka uloží, načte nebo vymění mezi hráči. V mnoha případech herní relace můžou nahradit stávající shody založené na turn-time, shody v reálném čase nebo trvalé metody ukládání her.
Vylepšení sady GameplayKit
V rozhraní GameplayKit v iOSu 10 jsme provedli následující vylepšení:
- Pomocí nové třídy GKMeshGraph můžete poskytovat vysoce výkonné a přirozeně vypadající cesty.
- Byla přidána procedurální generace šumu a lze ji použít k vylepšení realismu v přírodních texturách, přidat realismus k pohybům kamery a pomoci generovat bohaté herní světy.
- Pomocí prostorového dělení rozdělte data herního světa k efektivnímu vyhledávání.
- Byl přidán nový monte carlo strategist (GKMonteCarloStrategist) pro vyčerpávající možné výpočty přesunutí.
- Podpora 3D byla přidána do existujícího agenta a chování hledání cest pomocí nových tříd GKAgent3D a GKGraphNode3D .
- Nové třídy GKScene a GKSKNodeComponent usnadňují kombinování Sady GameplayKit a SpriteKit.
- Přidali jsme nové rozhraní API rozhodovacího stromu (GKDecisionTree a GKDecisionNode), které vylepšuje rozhraní AI pro vytváření her.
Vylepšení sady HealthKit
V iOSu 10 jsme provedli následující vylepšení architektury HealthKit:
- Byly přidány nové klíče metadat pro typy počasí (například
HKWeatherConditionClear
aHKWeatherConditionCloudy
) a typy cvičení (napříkladHKWorkoutActivityTypeFlexibility
aHKWorkoutActivityTypeWheelchairRunPace
). - Byla přidána nová
HKCDADocument
třída představující dokument ve formátu CDA (Clinical Document Architecture). - Pomocí nové třídy HKWorkoutConfiguration určete
ActivityType
aLocationType
cvičení. - Byly přidány nové HKWheelchairUseObject a
WheelchairUse
metoda HKHealthStore třídy pro práci s invalidními zdravotními údaji.
Vylepšení HomeKitu
V rozhraní HomeKit v iOSu 10 jsme provedli následující vylepšení:
- Byly přidány nové služby a charakteristiky.
- IPad je možné nakonfigurovat tak, aby fungoval jako Centrum HomeKit, aby poskytoval vzdálený přístup k přístupovým objektům, spouštěl triggery automatizace a povoloval sdílená uživatelská oprávnění.
- Podpora byla přidána pro fotoaparát a doorbell příslušenství.
- Další kontext a konfigurace jsou k dispozici pro příslušenství.
Další informace najdete v naší dokumentaci Úvod do HomeKitu .
Vylepšení kovu
V systému iOS 10 jsme provedli následující vylepšení:
- 3D aplikace a hry teď Můžou pomocí Tessellation efektivně vykreslovat složité scény a geometrii prostřednictvím GPU.
- Poskytuje jemně odstupňovanou kontrolu nad přidělováním prostředků za účelem optimalizace výkonu aplikací založených na kovu pomocí heaps prostředků a cílů vykreslování bez paměti.
- Pomocí specializace funkcí můžete vytvořit vysoce optimalizovanou kolekci materiálových a lehkých kombinovaných funkcí pro scénu.
Další informace najdete v průvodci programováním kovu společnosti Apple.
Vylepšení modelIO
V rozhraní ModelIO v iOSu 10 jsme provedli následující vylepšení:
- Formát souboru USD je nyní podporován.
- Podpora Pole podepsané vzdálenosti byla přidána do třídy MDLVoxelArray .
- Pomocí nové
MDLLightProbeIrradianceDataSource
třídy můžete pomoct s umístěním light sondy. - Pomocí nové
MDLMaterialPropertyGraph
třídy můžete snadno podporovat změny modulu runtime v modelech.
Vylepšení fotek
V rozhraní Photos v iOSu 10 jsme provedli následující vylepšení:
- Pomocí tříd CIImageProcessorInput a CIImageProcessorOutput můžete využít novou funkci procesoru Core Image k provádění úprav.
- Úpravy živých fotek jsou teď dostupné pro aplikace, které podporují architekturu Fotky a rozšíření pro úpravy fotek (pro použití v aplikacích Fotky a Kamera).
- Pomocí nové PHLivePhotoEditingContext třídy použít úpravy jak na video, tak i na obsah Live Photos.
Vylepšení sady ReplayKit
V rozhraní ReplayKit v iOSu 10 jsme provedli následující vylepšení:
- Pomocí TŘÍDY RPScreenRecorder, RPBroadcastActivityViewController a RPBroadcastController podporují vysílání zaznamenaných médií prostřednictvím webů třetích stran.
- Rozšíření Broadcast UI a Broadcast Upload se vyžadují pro podporu služeb vysílání ReplayKit 3rd party v aplikaci.
Vylepšení sady SceneKit
V rozhraní SceneKit v iOSu 10 jsme provedli následující vylepšení:
- SCN Kamera třída může poskytovat větší realismus pomocí funkcí a efektů HDR. Pomocí adaptivní expozice můžete vytvářet automatické efekty nebo používat vignetting, color fringing a color grading a color grading k přidání výplňových efektů do hry.
- SceneKit teď obsahuje nový systém PBR (Physically Based Rendering) pro realističtější výsledky s jednodušším vytvářením prostředků.
- Pomocí nového modelu stínování SCNLightingModelPhyslyBased můžete produktovat širokou škálu realistických stínování efektů a současně vyžadovat pouze tři základní vlastnosti (
Diffuse
Metalness
aRoughness
). - Vzhledem k tomu, že stínování PBR funguje nejlépe s osvětlením na základě prostředí, použijte
LightingEnvironment
vlastnost k přiřazení osvětlení založeného na obrázku k celé scéně. - Použijte vlastnost k importu
IESProfileURL
reálných světelných zařízení, která definují osvětlení na základě hodnot reálného světa, jako je intenzita (v lumenech) a teplota barev (ve stupních Kelvin). - Funkce kamery PBR i HDR poskytují lepší výsledky než tradiční techniky vykreslování a v důsledku toho sceneKit nyní provádí všechny barevné výpočty v lineárním barevném prostoru (pomocí barevného gamutu P3 na širokobarevných displejích zařízení).
- Sada SceneKit teď barevně odpovídá všem barvám tím, že čte informace o profilu barev.
- SceneKit interpretuje hodnoty barevných komponent v lineárním barevném prostoru RGB pro všechny typy shaderu.
- Vykreslování lineárního barevného prostoru i široké barvy je možné zakázat zadáním
SCNDisableLinearSpaceRendering
aSCNDisableWideGamut
klíčů v aplikaciInfo.plist
. - Sestavení libovolných mnohoúhelníkových primátů (buď načtených ze souborů nebo vygenerovaných programově), aby bylo možné určit geometrii pomocí nové třídy SCNGeometryPrimitiveTypePolygon .
- Vzhledem k tomu, že SceneKit čte a upravuje informace o barevném profilu v obrázcích textury, použijte katalogy assetů pro všechny obrázky, abyste zajistili, že jsou tyto informace k dispozici.
Vylepšení SpriteKit
V iOSu 10 jsme provedli následující vylepšení architektury SpriteKit:
- Vlastní shadery můžou poskytovat atributy (
SKAttribute
), které je možné konfigurovat samostatně jednotlivými uzly, které používají shader zadáním hodnoty atributu (SKAttributeValue
). - Mapy dlaždic nyní podporují čtvercové, šestnáctkové a izometrické obrazce dlaždic pro 2D, 2,5D a boční posouvání hry pomocí
SKTileMapMode
SKTileGroup
SKTileGroupRule
, aSKTileSet
tříd. - Pomocí nové
SKWarpGeometry
třídy můžete roztáhnout nebo zkreslit vykreslování SKSpriteNode nebo SKEffectNode . Novou třídu SKAction lze použít k animaci přechodů mezi efekty warp. - SkView třída poskytuje několik nových metod, které poskytují jemně odstupňovanou kontrolu nad tím, kdy a jak se scéna vykresluje.
Vylepšení scrollView
V iOSu 10.3 byly provedeny následující vylepšení ovládacího prvku ScrollView:
UIScrollView
Nyní zahrňteIndexDisplayMode
vlastnost, která určuje, jak se index zobrazuje, když se uživatel posouvá jakoUIScrollViewIndexDisplayMode
:Automatic
- Zobrazení indexu je řízeno operačním systémem.AlwaysHidden
– Zobrazení indexu je vždy skryté.
Vylepšení uiKitu
V rozhraní UIKit v iOSu 10 jsme provedli následující vylepšení:
- Nové rozhraní API UIPasteboard poskytuje nové možnosti (například omezení životnosti) a automaticky deklaruje kompatibilní typy obsahu pro běžné typy tříd.
- Byla přidána nová plně interaktivní podpora přerušitelné animace založené na objektech a je možné ji propojit s gesty. Další informace najdete v referenční dokumentaci k protokolu UIViewAnimating, UIViewPropertyAnimator Class Reference, UITimingCurveProvider Protocol Reference, UICubicTimingParameters Class Reference a UISpringTimingParameter Reference.
- Nová
UIPreviewInteraction
aUIPreviewInteractionDelegate
umožňuje vývojářské aplikaci poskytovat vlastní rozhraní pro náhled a operace pop. - Nová
UIAccessibilityCustomRotor
třída umožňuje aplikaci poskytovat vlastní kontextové funkce pro technologie usnadnění, jako je Voice Over. - Pomocí symbolů
UIAccessibilityIsAssistiveTouchRunning
UIAccessibilityAssistiveTouchStatusDidChangeNotification
určete, jestli je povolená funkce AssistiveTouch. UIAccessibilityHearingDevicePairedEar
UIAccessibilityHearingDevicePairedEarDidChangeNotification
Pomocí symbolů získáte stav všech spárovaných sluchových pomůcek MFi.- Chcete-li podporovat dynamické typy popisků, textová pole a textová pole používají novou
PreferredFontForTextStyle
metoduUIFont
třídy. - Pokud se chcete rozhodnout, jestli má prvek aktualizovat písmo při změně zařízení
UIContentSizeCategory
, použijteAdjustsFontForContentSizeCategory
vlastnost delegátaUIContentSizeCategoryAdjusting
. - Metoda
OpenURL
UIApplication
třídy je volána asynchronně a nyní podporuje obslužnou rutinu dokončení, která je volána po dokončení otevřené akce. - Zahajte sdílení CloudKitu a upravte jeho vlastnosti pomocí nových
UICloudSharingController
aUICloudSharingControllerDelegate
tříd. - Využijte výhod předem načtených buněk a vylepšete tak možnosti
UICollectionViews
posouvání nového delegátaUICollectionViewDataSourcePrefetching
. - Vývojář teď může řídit vzhled odznáčku u položek na panelu karet (například text a barva pozadí).
- Ovládací prvek Aktualizovat je nyní podporován ve všech zobrazeních pro posouvání a v podtřídách zobrazení pro posouvání (například
UICollectionView
).
Vylepšení sady WebKit
V rozhraní WebKit v iOSu 10 jsme provedli následující vylepšení:
- Do třídy jsme přidali podporu náhledu a popu
WKWebView
.ShouldPreviewElement
Pomocí metody určete, jestli má dané webové zobrazení zobrazit náhled.