Waarom universele iOS- en Mac-apps een goed idee zijn

Door: Raymon Mens - 17 reacties

Woensdag kwam groot nieuws naar buiten. Apple wil volgens de betrouwbare reporter Mark Gurman universele iOS- en Mac-apps mogelijk maken. Ontwikkelaars kunnen zo één keer een app maken en die op iPhone, iPad en Mac laten werken.

De aankondiging zou tijdens WWDC 2018 kunnen gebeuren. Maar zijn universele apps een goed idee? Absoluut! Wij duiken in de staat van apps, de realiteit voor ontwikkelaars en de voordelen voor gebruikers.

Ontwikkelaar heeft twee keuzes

Apps voor iOS en macOS worden in Objective-C of Swift geschreven, de programmeertaal is dus hetzelfde. Het framework dat gebruikt wordt voor de interface en andere acties is echter verschillend. Apple heeft twee smaakjes en om te begrijpen waarom universele apps een goed idee zijn, moet je de verschillen kennen.

  • AppKit (Mac): De interface van native macOS-apps worden vaak op basis van AppKit gemaakt. Dit is een framework dat het makkelijk maakt om menu’s, animaties en vensters, maar ook het opslaan van bestanden te implementeren. Dit framework is robuust, maar oud. De roots gaan terug naar NeXTStep, een besturingssysteem uit de jaren 90 dat Apple kocht van het bedrijf van Steve Jobs nadat hij Apple (tijdelijk)had verlaten.
  • UIKit (iOS): Het framework voor iOS-apps heet UIKit. Dit is op vele gebieden een moderne variant op AppKit die rekening houdt met touchscreens. Het is gemaakt met de lessen die Apple met AppKit geleerd heeft na tien jaar AppKit.

Meeste ontwikkelaars kennen UIKit

Naast Objective-C of Swift weten de meeste ontwikkelaars hun weg binnen UIKit te vinden. Een Mac-app met AppKit maken voelt als een stap terug in de tijd en wordt vaak als langzaam en omslachtig ervaren. Het is ook veel moeilijker om een goede AppKit-ontwikkelaar te vinden en dat maakt Mac-apps voor veel bedrijven een dure aangelegenheid en voor individuele ontwikkelaars weinig aantrekkelijk.

Tel daarbij op dat de Mac een kleinere gebruikersgroep heeft en het platform staat al drie stappen achter.

De pragmatische oplossing: Electron

Toch willen grote en kleine ontwikkelaars op de Mac aanwezig zijn. Apple’s computers hebben niet de grootste gebruikersgroep, maar ze zijn wel invloedrijk. Een aantal grote Mac-apps wordt dan ook volledig zonder Apple’s tools gemaakt. De ontwikkelaars gebruiken Electron. Dat is een framework dat je met webtechnieken zoals html en javascript apps laat maken die soort-van-native voelen op Mac en Windows.

Bekende Electron-apps zijn: Spotify, WhatsApp, Slack, Tweetdeck en Skype. Eigenlijk zijn dit gewoon uitgeklede Chrome-vensters met een extra laagje. Electron-apps staan bekend als traag, gebruiken veel geheugen en accu en ze brengen niets unieks naar de Mac.

spotify desktop
Spotify op macOS – Klik/tap voor groter.

De nieuwe realiteit

Door de uitdagingen en kosten van een Mac-app krijgen we momenteel niet de keuze tussen goede Mac-apps of een web-app. Het is een crappy web-app of helemaal geen Mac-app. Leuke, kleine apps van enthousiaste ontwikkelaars worden ook steeds vaker op basis van Electron gemaakt, zelfs als ze helemaal niet voor Windows uitgebracht worden. Dat komt omdat ontwikkelaars bekend zijn met webtechnieken of iOS development. Daar kan Apple met universele apps prima op inhaken.

De meeste iOS-apps werken al op verschillende schermformaten en schalen van een 4-inch iPhone tot een 12,9-inch iPad Pro. Een iPad Pro-app zal best werkbaar zijn op een Mac. Misschien niet optimaal, maar met kleine aanpassingen beter dan een Electron-app. Om maar niet te spreken over het verschil in geheugen- en accugebruik.

Miljoen extra Mac-apps die vertrouwd voelen

In de iOS App Store zijn meer dan twee miljoen apps beschikbaar. Als de helft op zijn minst experimenteert met een cross-platform-app voor Mac en iOS zijn er plots een miljoen extra Mac-apps beschikbaar. Al is het tien procent, dan zijn dat er waarschijnlijk meer apps dan nu in de Mac App Store staan. Dat is in ieder opzicht een enorme vooruitgang in het Mac-ecossyteem dat momenteel een beetje stil staat en weinig nieuwe ontwikkelaars aantrekt.

Universele apps kunnen de Mac ook vertrouwd aan laten voelen voor iOS-gebruikers. Ervaren Mac-gebruikers zullen niet staan te springen om een ingekaderde iPad-app op de Mac, maar het kan ook voor een stukje herkenning bij iOS-gebruikers zorgen en de Mac op die manier aantrekkelijker maken.

macappstore2011-16x9
De Mac App Store is sinds de introductie in 2011 weinig veranderd – Klik/tap voor groter.

Het is makkelijk om te zeggen dat iedereen maar een échte native Mac-app met AppKit moet maken, maar die ideale wereld bestaat niet. Momenteel laten veel ontwikkelaars de Mac links liggen en worden web-apps gebruikt om de gaten te vullen. Universele apps die beter werken dan web-apps via Electron én de Mac aantrekkelijker maken voor meer ontwikkelaars zijn daarom een prima idee. Soms is de juiste oplossing de meest pragmatische. Wij kunnen niet wachten op WWDC 2018.

Reacties

17 reacties
  • Profielfoto
    renato

    Nou, zo te zien zijn we er dus met al die mooie ‘web technologieën’ niet echt op vooruit gegaan. Luie programmeurs en suboptimale applicaties – en dat zal dan voor windows ook gelden of gaan gelden.

  • Profielfoto
    steveb

    Klinkt als: mac os en iOS worden 1
    Dus meer personeel om Apple os tot een goed einde te brengen

    Net als Windows?

  • Profielfoto
    renato

    Dat bedoel ik – het zal dus een unified framework moeten zijn, maar ik denk niet dat iOS en macOS hierin direct ‘één’ worden.

    In de tijd van de overgang van PPC naar Intel kenden we ook ‘universal binaries’ – dat ging wel over een andere laag van het framework, maar ik denk dat zoiets ook hier succesvol kan zijn. Een codebase met verschillende verschijningsvormen en hier en daar verschillende ‘gedragsvormen’ (wel of geen touch, trackpad, etc.)

    Dan blijven iOS en macOS duidelijk onderscheiden, maar worden voor de programmeur in feite geabstraheerd.

  • Profielfoto
    Poezenbeest

    Op zich hebben we dat al met iOS en tvOS… die worden ook als universal binaries in de store gezet… Verschil in code is volgens mij alleen een extra html-achtige layer voor AppleTV

  • Profielfoto
    Ton Haex

    Maar wat is dan junuhet verschil met Progressive Web Apps (PWA)? Ook hiervoor heeft Apple een nieuwe richtlijn voor opgesteld in navolging van Google. Deze webapp’s gedragen zich op desktop en mobile en combineren dus het beste van webpagina; s en apps.

  • Profielfoto
    polansky

    Ik kan er maar één ding in zien – Een gesloten OS met teveel beperkingen.

    Renato, Apple is al heel lang bezig om MacOS naar iOS te brengen en omgekeerd.
    Dat proces is al een aantal jaar gaande en kun je ook gewoon terugzien wanneer je kijkt naar de mogelijkheden en onmogelijkheden van beide OS’en.

    Het is dus niet iets dat ze gisteren hebben bedacht. Het is eerder zo dat ze volgend jaar of het jaar erop al zeggen dat er nog maar één OS is voor alle platformen. Volgens mij ook de reden waarom Apple al een tijdje zo laks is met het upgraden van haar MBP’s en iMacs.

  • Profielfoto
    Facundo

    Dit zou eindelijk de weg kunnen openen naar een gecombineerd systeem met de extra mogelijkheid voor touch-bediening, net als windows 10. Dat zou Mac’s in de toekomst weer bij mij in beeld kunnen brengen.Hoop doet leven.

  • Profielfoto
    Leffe Blond

    MacOS zal een moderner besturingssysteem worden wat ook de weg openstelt naar ARM-processoren. Lijkt mij wel een logische stap. MacOS zal dichter komen bij iOS maar zal haar identiteit niet verliezen. Evolutie.

  • Profielfoto
    Melle

    Allemaal mooi en leuk. Ik kan gewoon wachten tot ik excel, word, CS6, autocar, sketchup kan draaien op een iPhone. Dan wordt de wereld ineens zoveel mooier. Die phone heb ik toch altijd bij en is klein. En dan kan de laptop weg. Hoeveel stappen ze nodig hebben en hoe het pad er naar toe is, interesseert mij eigenlijk niet. Ik wil het eigenlijk gewoon vandaag al….

  • Profielfoto
    bartvdv

    Het lijkt mij een utopie te denken dat je in dat geval nog CS6 zal kunnen draaien. Het is de doodsteek voor alle verouderde programma’s.

  • Profielfoto
    Melle

    @bartvdv – daar heb je een punt. Even denken: kijk, als mijn telefoon mijn computer wordt, dan wil ik onmiddellijk de stap maken naar de huur software systemen van Adobe en Co. ( wat ik vreselijk vind – maar het zou het waard zijn)

  • Profielfoto
    /dev/enschede

    Ik denk dat het een goede zaak is dat je iOS applicaties op een eenvoudige manier kunt porten naar MacOS.

    Ik ben niet bang dat MacOS net zo gesloten zal worden als iOS. Apple zou hiermee z’n unieke positie verliezen op de developers markt. Ik zie nergens zo’n hoge concentratie Macs als op developer conferences en binnen high tech bedrijven. Dus zo stom dat ze die markt verliezen zullen ze echt niet zijn.

  • Profielfoto
    Maikelw

    Beetje het Windows Core OS idee, super. Ik zie alleen maar voordelen:)

  • Profielfoto
    knekkie

    Het lijkt mij een utopie te denken dat je in dat geval nog CS6 zal kunnen draaien. Het is de doodsteek voor alle verouderde programma’s.

    GEEN utopie maar werkelijkheid als je kijkt naar Windows on ARM.

    In de demo van vorig jaar draaide Photoshop (CC) prima op arm. Als je een CC abonnement hebt kan je CS6 ook installeren als je perse CS6 draaien moet)

    Het draait weliswaar geëmuleerd maar veel verschil merk je niet omdat ARM zo efficient en snel is. Maar het kan. En de snelheid zal met tijd alleen maar toe nemen als ARM processors beter worden.

    de demo is hier te bekijken. https://www.theverge.com/2016/12/8/13881800/microsoft-demonstrates-full-windows-10-with-photoshop-on-arm-chips

  • Profielfoto
    iGuy

    renato 23 uur geleden
    Nou, zo te zien zijn we er dus met al die mooie ‘web technologieën’ niet echt op vooruit gegaan. Luie programmeurs en suboptimale applicaties – en dat zal dan voor windows ook gelden of gaan gelden.

    Nou, luie programmeurs lijkt me niet helemaal juist. Een beetje app wil op meerdere platformen beschikbaar zijn, maar gezien elk platform minimaal 1 keer per jaar een update krijgt én er rekening moet worden gehouden met verschillende specificaties per toestel, krijg je al snel een flinke opdracht voor de kiezen. Webshops zijn dan een veilige tussenweg, als voor- en nadelen worden afgewogen. Met deze stap wordt het een stuk aantrekkelijker om een app een stuk beter te maken onder de motorkap.

  • Profielfoto
    xaddict

    Ik zou vooral universele apps voor iPhone, iPad en Apple TV handig vinden. Op de computer doe ik totaal andere dingen dan op die devices. En heel veel developers weten de weg naar Apple TV ook nog niet te vinden.

    Aan de andere kant: de Twitter app voor Mac ondersteunt nog stééds niet de langere berichten, is geschreven in AppKit en de gratis alternatieven die beschikbaar zijn, zijn bijna allemaal beter én geschreven in Electron. Je kunt in Electron namelijk ook native code toevoegen (zelfs Swift) die je meer met het systeem laat doen en het geheugengebruik verminderen. Dat doet de Spotify app deels ( wat ik trouwens een heel goede app vind, voor een “crappy Electron app”)

    Daarbuiten denk ik dat live web apps de toekomst zijn ipv native apps. Daarin heeft Apple nu grote stappen gezet met WebRTC (voor realtime video, audio en tekst chats bijvoorbeeld) en Service Workers (voor offline werken van webpagina’s en apps

  • Profielfoto
    WillemZ

    Utopie te denken dat het allemaal hetzelfde gaat worden.
    Alleen al een goed programma maken voor de iPhone is al wat anders dan voor de iPad, de overeenkomsten ten spijt.

    Het gebruik van zaken als groter scherm, muis, printers, bestandsorganisatie, netwerksituaties, systeembeheer, servers etc. maken nog steeds groot verschil.

    Windows lukte dit ook niet zo goed als gehoopt, benieuwd hoe Apple dit gaat doen.