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í na NSPersistentStoreCoordinator, 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 nebo FilterWithImageURL 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 v UIImageView 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 a HKWeatherConditionCloudy) a typy cvičení (například HKWorkoutActivityTypeFlexibility a HKWorkoutActivityTypeWheelchairRunPace).
  • 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 a LocationType 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í:

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 (DiffuseMetalnessaRoughness).
  • 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 a SCNDisableWideGamut klíčů v aplikaci Info.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í SKTileMapModeSKTileGroupSKTileGroupRule , a SKTileSet 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ňte IndexDisplayMode vlastnost, která určuje, jak se index zobrazuje, když se uživatel posouvá jako UIScrollViewIndexDisplayMode :
    • Automatic - Zobrazení indexu je řízeno operačním systémem.
    • AlwaysHidden – Zobrazení indexu je vždy skryté.

Informace o využití najdete v ukázce iOSTenThree.

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 a UIPreviewInteractionDelegate 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ů UIAccessibilityIsAssistiveTouchRunningUIAccessibilityAssistiveTouchStatusDidChangeNotification určete, jestli je povolená funkce AssistiveTouch.
  • UIAccessibilityHearingDevicePairedEarUIAccessibilityHearingDevicePairedEarDidChangeNotification 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 metodu UIFont třídy.
  • Pokud se chcete rozhodnout, jestli má prvek aktualizovat písmo při změně zařízení UIContentSizeCategory , použijte AdjustsFontForContentSizeCategory vlastnost delegáta UIContentSizeCategoryAdjusting .
  • Metoda OpenURLUIApplication 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 a UICloudSharingControllerDelegate 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áta UICollectionViewDataSourcePrefetching .
  • 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.