Catalyst: alles over universele apps voor iOS en macOS
Catalyst: wat is het?
Apple gaat iOS en macOS niet samenvoegen, maar het wordt wel gemakkelijker om apps uitwisselbaar te maken tussen beide platformen. Hiervoor is Project Catalyst opgericht, dat vanaf macOS 10.15 Catalina beschikbaar is voor ontwikkelaars. Hiermee kunnen ontwikkelaars apps maken die op alle drie platformen werken. Apple liet bij de aankondiging drie apps zien die met Catalyst geschikt zijn gemaakt voor de Mac: Twitter, Asphalt 9 en Jira Cloud. Twitter zou dankzij Catalyst in staat zijn geweest om in een dag een geschikte app te ontwikkelen.
- Wat is Catalyst?
- Waarom universele apps?
- Fase 1
- Fase 2
- Voordeel crossplatform
- Wanneer
- Einde van Mac-apps?
Van Marzipan naar Catalyst
Het project heette aanvankelijk ‘Marzipan’ en die naam is lange tijd blijven hangen, ook al noemt Apple het intern niet meer zo. Met Marzipan heeft Apple in 2018 al een viertal apps zelf naar de Mac gebracht, waaronder de Aandelen- en de Woning-app.
Waarom universele apps?
Apple zit met een probleem: er zijn miljoenen apps voor de iPhone en iPad gemaakt, maar de Mac App Store loopt een beetje achter. Ontwikkelaars vinden het minder interessant om Mac-apps te maken en ook bij Apple zelf is te merken dat de focus vooral op iOS ligt.
Daarnaast is er een ander probleem: steeds meer functies moeten zowel op iOS als macOS beschikbaar komen en daarbij komt de Mac vaak op de tweede plaats. Zo was de Woning-app lange tijd wel op iOS te gebruiken, maar nog niet op de Mac. Op zich is dat vreemd, want zo heel ingewikkeld steekt de app niet in elkaar. Het zou voor Apple vrij simpel moeten zijn om de Woning-app geschikt te maken voor macOS.
Met Catalyst heeft Apple daar nu iets op gevonden. Concreet houdt Catalyst in dat ontwikkelaars een Mac-versie van een iPad-app kunnen maken door gebruik te maken van UIKit. Dit is een Apple-framework dat tot nu toe alleen gebruikt kon worden voor iOS-apps. Wil je je bestaande iPad-app ook op de Mac beschikbaar stellen, dan open je een Xcode-project en zet je een vinkje bij de Mac in het onderdeel General > Deployment Info.
Catalyst fase 1: universele apps van Apple zelf
Tijdens WWDC 2018 benadrukte Apple dat iOS en macOS niet zullen worden samengevoegd, maar dat er zou worden gewerkt aan een oplossing voor universele apps. In fase 1 bracht Apple de volgende iOS-apps over naar macOS, om een indruk te geven wat er met Catalyst mogelijk is:
- Apple News
- Woning
- Dictafoon
- Aandelen
Als je goed kijkt zijn deze Mac-apps eigenlijk identiek aan de iPad-versies. We kregen alvast een ‘sneak peak’ van hoe het eruit gaat zien.
Catalyst fase 2: universele apps van externe ontwikkelaars
In fase 2 kunnen ontwikkelaars zelf aan de slag gaan met het omzetten van hun iOS-apps naar de Mac. Daarbij zal in veel gevallen ook de iPad-versie het uitgangspunt zijn. Tijdens WWDC 2019 gaf Apple meer details over Catalyst en vervolgens heeft Apple ook de benodigde ontwikkelaarstools beschikbaar gesteld. Het wordt hiermee eenvoudiger om apps te maken waarvan de interface onafhankelijk is van een specifiek besturingssysteem. Ontwikkelaars hoeven dan geen rekening te houden met de verschillen tussen iOS en macOS.
Wat is het voordeel van cross-platform apps?
Het voordeel voor gebruikers is dat apps sneller beschikbaar komen op macOS. Je hoeft dus niet meer tien jaar te wachten tot de Aandelen- en Dictafoon-app eindelijk naar de Mac komen. Ook lopen apps zoals iMessage, Safari, Notes en Kaarten en functies zoals Siri niet meer zover uiteen als je de iOS-versie met de Mac-versie vergelijkt.
Voor ontwikkelaars heeft het ook voordelen, dat ze makkelijker hun apps kunnen uitbreiden van iOS naar macOS.
UIKit vs AppKit
Daarnaast heeft het voor Apple allerlei voordelen. De huidige iOS-apps maken gebruik van het nieuwere UIKit framework, terwijl de Mac-apps gebruik maken van de oudere AppKit frameworks. AppKit biedt alle elementen van de gebruikersinterface, zoals vensters, knoppen, menu, scrollbalken en tekstvelden. Ook regelt het aan de softwarekant alles wat nodig is om apps op het scherm te tonen. AppKit dateert echter uit de jaren tachtig van de vorige eeuw en is ontstaan uit de NeXTSTEP Application Kit van NeXT, het bedrijf dat Steve Jobs oprichtte in de periode dat hij bij Apple was opgestapt.
Bij de ontwikkeling van iOS koos Apple voor een compleet nieuw software-framework voor apps, namelijk UIKit. Dit was afgestemd op kleinere schermen en touch-bediening. Hoewel apps voor iOS en macOS met Objective-C en Swift worden gemaakt, gebruiken ze toch fundamenteel andere frameworks voor de interface.
Apple probeerde ooit de Foto’s-app (de vervanger van iPhoto) met UXKit te bouwen, zodat het gelijktijdig op iOS en macOS verscheen, maar dit liep vertraging op en de gebruikerservaring was niet optimaal. Ook bij andere oplossingen om cross-platform apps te maken valt de gebruikerservaring vaak tegen. Zo zijn er externe frameworks (niet van Apple) die beloven dat je in één moeite iOS- en Android-apps kunt maken. Meestal zien ze er echter uit als een typische iOS-app, waardoor Android-gebruikers ontevreden zijn. Of omgekeerd: dat apps een Android-achtige interface krijgen, waardoor iOS-gebruikers zich niet goed thuis voelen.
Betekent dit het einde van Mac-apps?
Niet helemaal, we zullen nog steeds traditionele ‘native’ Mac-apps zien, die speciaal voor macOS gemaakt zijn. Maar er komen ook veel meer apps bij die eruit zien als iPad-apps. Nu zijn ontwikkelaars vaak gedwongen om te kiezen tussen het ontwikkelen van een iOS-app of een Mac-app. Ze hebben ook maar beperkte tijd en middelen, dus allebei lukt vaak niet omdat er bij een app nog veel meer komt kijken, zoals support. Vaak valt de keuze dan op een iOS-app, omdat er domweg veel iPhone- en iPad-gebruikers zijn. Daardoor loop je als Mac-gebruiker vaak leuke nieuwe apps mis. Door het makkelijker te maken om apps over te zetten hoopt Apple dat er meer keuze komt voor Mac-gebruikers. Het zal daarbij vaak gaan om lichtgewicht apps. Zo zou een app voor Instagram erg nuttig kunnen zijn.
Je zult in de Mac App Store een mix gaan zien van native Mac-apps en apps die eruit zien als iPad-apps. Deze apps zijn uiteraard aangepast voor een andere bediening. Op de Mac gebruik je een toetsenbord en muis, terwijl je op de iPhone en iPad met je vingers werkt. Dat het heel goed mogelijk is om apps van iOS naar een ander platform over te brengen is al te merken bij tvOS: er zijn heel wat Apple TV-apps die vanuit een iOS-versie zijn overgezet naar een versie die op het grotere tv-scherm getoond kan worden. Voor elk platform gelden wel andere eisen, bijvoorbeeld wat de bediening en het design betreft. Op een Apple TV moeten de knoppen extra groot zijn, zodat je op afstand kunt lezen wat er staat. En je moet ze met een afstandsbediening kunnen aansturen.
Opgeblazen iPad-apps
Toch zien de eerste Catalyst/Marzipan-apps die Apple heeft uitgebracht er vooral uit als opgeblazen iPad-apps. Ze zijn te bedienen met toetsenbord en muis, maar de gebruikersinterface is niet speciaal aangepast voor de Mac. Dat blijkt vooral in de Woning-app, die er op de Mac hetzelfde uitziet als op de iPad, met grote knoppen waarop je kunt tikken. Op de Mac zul je er echter met de muispijl naartoe moeten bewegen. Dat kan gaan veranderen als Apple in 2019 zelf vooruitgang heeft geboekt. Apple is in UIKit al bezig om klassieke interface-elementen van de Mac toe te voegen, zoals een zijmenu.
Ontwikkelaars kunnen in Xcode aangeven dat ze een versie van hun app willen maken die op macOS draait, waardoor meteen de layout en de werking van de app wordt aangepast. Een long press in iOS zal dan automatisch worden vervangen door een dubbelklik met de muis in macOS. Sommige ontwikkelaars zullen wat meer moeite doen om van hun app een native uitziende Mac-app te maken, terwijl andere ontwikkelaars tevreden zullen zijn met een 1-op-1 kopie.
Een interessante bijkomstigheid is dat iPhones en iPads draaien op ARM-processors, terwijl er bij de Mac een overstap gaande is van Intel naar ARM. Daardoor zijn er nog minder obstakels om apps op meerdere platformen te laten draaien.
Suggestie hoe we dit artikel kunnen verbeteren? Laat het ons weten!