Die theorie klinkt heel leuk, maar voor mobiele platformen is hij niet toepasbaar. Zoals in het artikel al is aangegeven, vereisen de verschillende platforms ook allemaal een andere programmeertaal.
Daarom bouw je zoiets als webapplicatie, dan boeit het platform waar je op draait al niet zo heel veel meer, zolang je maar een browser hebt. En als je een browser hebt, dan kun je alles netjes in HTML + script maken, zolang je browser dat maar ondersteunt zit je goed. Je hebt totaal niets te maken met architecturen.
Ik werk hier met de nodige Broadcomchips, ik heb werkelijk geen idee wat voor architecturele verschillen daar precies inzitten als ik het vergelijk met m'n X86 CPU's, maar dat maakt me niet uit. Ik kan er gewoon standaard HTML + Javascript op draaien, die browser op het betreffende apparaat zorgt er wel voor dat het werkt zoals het moet werken op die architectuur.
Tenzij jouw 'api' stiekem een emulator is, wat bijvoorbeeld door Apple al niet is toegestaan, moet je nog steeds je code voor elk platform apart schrijven
Nee, het is juist geen emulator. Je gebruikt de API alleen om bepaalde functies op de juiste manier aan te roepen.
Om een voorbeeld te geven. Stel ik wil een filmpje afspelen. Wil ik dat doen met applicatie X dan kan ik gewoon zeggen x.play(url), en dan speelt het ding af. applicatie Y zal iets anders willen, die wil bijvoorbeeld iets hebben als y.player.addPlayListItem(url) en dan y.player.playPlayList(); en applicatie Z wil weer wat anders.
Als je die API niet zou gebruiken, dan bouw je dus je code voor ieder platform apart. Bouw je hier een generieke API voor (of liever, raap je die bij elkaar, door alle beschikbare API's samen te voegen), dan kun je gewoon zeggen 'API.play(url)'. En de API kijkt dan wel op welk device je op dat moment zit en hoe de playfunctie daadwerkelijk aangeroepen moet worden.
Bovendien, het maken van een multiplatform api vereist hoe dan ook een erg grote hoeveelheid werk en platform kennis, zodat het voor één enkele app niet rendabel is.
Niet helemaal waar. Als je in eerste instantie uitgaat van een applicatie die je op een aantal platformen wil draaien dan ben je toch bezig om al die functies te bouwen, dan kun je het beter generiek doen, dat kost je amper meer tijd, zelfs maar voor 1 applicatie. Maar wil je het ding daarna uitbreiden, of verandert er ergens iets, dan hoef je alleen je API aan te passen, niet de applicatie zelf. Komt er een nieuw apparaat bij, zet zorg ervoor dat je daar de juiste API van hebt en het werkt, zonder dat je een letter aan code in je applicatie hoeft te veranderen. En bij het bouwen van meerdere applicaties neemt dit voordeel alleen maar toe.
En mocht je toch eindelijk je eigen mooie api hebben met eigen runtime, moeten der programmeurs die hem willen gebruiken toch nog weer een nieuwe taal/omgeving leren.
Nee, dat hoeven ze dus niet. Sterker nog, de programmeurs van de applicatie (dus niet van de API) hoeven nog minder te doen, die hoeven alleen maar de API aan te roepen, en verder zich 0,0 zorgen te maken over de onderliggende afhandeling ervoor, dat fixed de API.
Dan is gewoon html gebruiken toch een stuk makkelijker!
gewoon HTML doet bijzonder weinig, je zult altijd nog een scripttaal moeten hebben wil je er echt een applicatie van maken. Maar dat is niet makkelijker, het is exact hetzelfde. Programmeurs hoeven geen nieuwe taal te leren, ze hoeven geen nieuwe omgeving te gebruiken, ze hoeven alleen maar te weten hoe de functie heet die ze aan moeten roepen en welke argumenten ze daaraan mee moeten geven. Dat is echt stukken makkelijker als voor ieder apparaat het zelf uit gaan zoeken iedere keer.