MechDome is een nieuwe ontwikkelaarstool die Android-apps automatisch naar iOS converteert en alle UI-elementen en de meeste native functionaliteit behoudt.
Cross-platformontwikkeling vormt al jaren een grote uitdaging voor de meeste onafhankelijke ontwikkelaars. Heel vaak is het simpelweg een te grote investering in tijd en middelen om een nieuwe programmeertaal te leren en uw app over te zetten naar een ander platform.
Jarenlang heeft dit feit van de toewijzing van middelen ervoor gezorgd dat veel ontwikkelaars hun inspanningen primair op iOS hebben gericht, vanwege de meer lucratieve markt. Dankzij projecten als XamarinOntwikkelaars die bekend zijn met C# hebben hun projecten echter kunnen pushen naar iOS, Android en Windows Mobile. Maar Android-ontwikkelaars zijn het meest bekend met schrijven in Java, dus het gebruik van Xamarin vereist dat een ontwikkelaar zich vertrouwd maakt met een nieuwe taal en een nieuw platform bouwt. We hebben één project behandeld dat gericht is op het overbruggen van de kloof tussen mobiele besturingssystemen door het bieden van een cross-ontwikkelingsplatform voor Java-ontwikkelaars:
Intel's Multi-OS-engine - maar het is niet te zeggen waar dat project naartoe gaat. Dat is waar MechDome komt binnen.MechDome is een startend bedrijf gevestigd in Californië en opgericht in januari, dat een conversietool heeft ontwikkeld voor maak automatisch native iOS- en OS X-apps vanuit uw Android-app. U hoeft niet te leren hoe u een nieuwe IDE of API gebruikt. Het enige wat u hoeft te doen is een APK-bestand naar MechDome te sturen (u hoeft uw broncode niet naar hen te sturen) en de volledig geautomatiseerde tool zal binnen enkele seconden een zelfstandig binair bestand compileren voor iOS en OS X, dat de ontwikkelaar vervolgens kan distribueren in de App Store van Apple. We spraken met de oprichter en CEO van MechDome, Mario Kosmiskas, om een demonstratie van de tool in actie te zien - en het werken. Hoewel er enkele beperkingen zijn vanwege fundamentele verschillen tussen de manier waarop iOS en Android werken (die we hieronder zullen bespreken), heeft de tool al een paar live apps in de Apple App Store geproduceerd, zoals de open source Reddit-client Rode Lezer en een open sourceSudoku klant om te bewijzen dat het werkt.
Android-apps op iOS met MechDome
Het verklaarde doel van MechDome is om ontwikkelaars in staat te stellen een ongewijzigde Android-app om te zetten in een native iOS- of OS X-app. Vergeleken met technologieën als Intel's Multi-OS Engine of Xamarin hoeft een Android-ontwikkelaar dit niet te weten hoe u een Objective-C-bibliotheek kunt binden omdat de tool dat voor u afhandelt. Het is ook niet nodig om een UI-bouwer te gebruiken om uw Android-app aan te passen, aangezien MechDome de conversie van alle Android UI-elementen verzorgt. Ja, zelfs Android-tablet-apps vertalen zich mooi naar een formaat dat geschikt is voor iPads.
De grootste belofte van MechDome is dat de geconverteerde Android-app zal functioneren op een manier waarmee gebruikers van het doelbesturingssysteem bekend zullen zijn. Het Android-deelmenu zal bijvoorbeeld worden vervangen door het oorspronkelijke deelblad in iOS, en zal de mogelijkheid bevatten om AirDrop te gebruiken, indien van toepassing. Apps die meldingen in Android plaatsen, geven in plaats daarvan een melding weer in het Berichtencentrum van iOS. Bepaalde bedoelingen, zoals het openen van een camera op Android, zullen inderdaad de camera op het iOS-apparaat openen, en URL-intenties op Android zullen Safari op iOS aanroepen. Contentproviders op Android die toegang hebben tot contacten of de agenda, zullen voor deze informatie in plaats daarvan toegang krijgen tot de relevante iOS- of OS X-databases.
Maar zoals eerder vermeld, zijn er inderdaad enkele beperkingen aan deze tool die worden opgelegd door de aard van de manier waarop iOS werkt. Een van de grootste uitdagingen waarmee een Android-ontwikkelaar wordt geconfronteerd die zijn of haar app naar iOS wil converteren, is hoe om te gaan met een achtergrondservice. iOS is veel strenger als het gaat om wanneer en welke soorten achtergrondservices door applicaties van derden kunnen worden uitgevoerd, in positieve of negatieve zin. Bovendien is het rijke intentiesysteem dat aanwezig is in Android en dat communicatie tussen apps mogelijk maakt, grotendeels afwezig op iOS. Ten slotte wordt de Google Play Services API momenteel niet ondersteund, dus elke app die afhankelijk is van Google-services zal niet functioneren. Ontwikkelaars zullen dus meestal beperkt zijn tot functionaliteit die rechtstreeks toegankelijk is via handmatige gebruikersinvoer, wat voor de meeste games of apps geen groot probleem zou moeten opleveren.
MechDome in gebruik
In een privédemo lijkt de tool inderdaad te functioneren zoals geadverteerd. De heer Kosmiskas demonstreerde het compileren van verschillende volledig functionele Android-apps in werkende iOS- en OSX-apps. Toastmeldingen, meldingen in het Berichtencentrum, webweergave, locatietoegang, tekstinvoer en algemene functionaliteit van UI-elementen werkten allemaal in de demo. De AOSP-rekenmachine op iOS zag er precies hetzelfde uit en functioneerde precies zoals op elk Android-apparaat.
Het updaten van een applicatie en het opnieuw compileren ervan voor iOS werd ook getoond, en het proces was vrij eenvoudig. De ontwikkelaar, in dit geval de heer Kosmiskas, demonstreerde het wijzigen van een tekstvak om "XDA-Developers" weer te geven in Android Studio. Vervolgens exporteerde hij de app, genereerde een ondertekende APK en compileerde binnen enkele seconden de binaire bestanden van iOS en OS X vanaf de MechDome-server. Toen de iOS-app werd gestart met behulp van een emulator, waren de wijzigingen die in Android Studio waren aangebracht aanwezig.
Momenteel ondergaat MechDome een gratis openbaar bètaprogramma. Ontwikkelaars kunnen dat hun app registreren op de MechDome-website om een uitnodiging te ontvangen om het converteren van hun Android-app te testen. Helaas is er nog geen prijsinformatie voor de service onthuld. Toch is het een interessant project om in de gaten te houden als je een Android-ontwikkelaar bent die uiteindelijk golven wil maken in het ecosysteem van Apple zonder dat je er zelf veel moeite voor hoeft te doen.