Follow Us on Twitter

Oracle Mobile Application Framework, de opvolger van ADF Mobile

Augustus 2014 - In Nederland zijn tegenwoordig meer smartphone bezitters dan mensen die een PC of Desktop bezitten. Daarnaast beschikt meer dan de helft van de Nederlanders (53%) over een tablet. Hierdoor wordt het ontwikkelen van mobiele applicaties steeds belangrijker. Oracle had voor het ontwikkelen van deze mobiele applicaties al ADF Mobile. ADF Mobile is een onderdeel van Oracle ADF met componenten speciaal voor het ontwikkelen van user interfaces voor diverse platformen en toestellen. In juni 2014 is de opvolger van ADF Mobile uitgebracht door Oracle. Dit nieuwe framework heet Mobile Application Framework (Oracle MAF).

Snel ontwikkelen voor meerdere platformen

Bij het ontwikkelen van mobiele applicaties kunnen verschillende aanpakken gekozen worden. Elke aanpak heeft hierbij zijn voor- en nadelen. Er kan bijvoorbeeld gekozen worden om native te ontwikkelen. Het grote voordeel hieraan is dat alle features van het toestel gebruikt kunnen worden. Het nadeel is dat de applicatie voor elk platform dat moet worden ondersteund, opnieuw ontwikkeld moet worden.

Een andere manier is om een web applicatie te ontwikkelen. Hierbij wordt de applicatie niet op het toestel geïnstalleerd, maar kan de gebruiker deze openen via de browser. Het voordeel hiervan is dat slechts één applicatie ontwikkeld hoeft te worden, maar toch elk platform (dat beschikt over een netwerkverbinding en een browser) wordt ondersteund. De nadelen hieraan zijn echter dat de gebruiker eerst de browser moet openen om de applicatie te gebruiken. Soms kunnen hierbij ook niet alle features op het toestel worden gebruikt. Hiernaast is het ook niet mogelijk om de applicatie te gebruiken wanneer er geen netwerk verbinding is.

Via Oracle MAF is het mogelijk om hybride applicaties te ontwikkelen. Deze hybride manier van ontwikkelen combineert de voordelen van de eerder genoemde opties. Een hybride applicatie is namelijk een web applicatie waar een native container omheen is geïnstalleerd. Zo is de applicatie op het toestel te installeren, waardoor het ook mogelijk is om de applicatie te gebruiken wanneer er geen netwerk verbinding is. Voor deze offline gegevens, kan gebruik worden gemaakt van een interne SQLite database. Ook kan gebruik worden gemaakt van alle features van het device.

Wat is Oracle MAF?

Oracle MAF is een hybride framework om mobiele applicaties te ontwikkelen. Bij het ontwikkelen van een mobiele applicatie met Oracle MAF hoeft slechts in één project ontwikkeld te worden, wat vervolgens naar zowel Android als iOS gedeployed kan worden. Oracle MAF maakt gebruik van Java, HTML5 en JavaScript om een compleet MVC (Model View Controller) framework aan te bieden. Ook levert Oracle MAF een visuele en declaratieve ontwikkelomgeving. Hergebruik van code wordt gemaximaliseerd waardoor mobiele applicaties sneller kunnen worden ontwikkeld.

De ontwikkelomgeving

Voor het ontwikkelen van Oracle MAF applicaties kan gebruik worden gemaakt van JDeveloper. Ik heb hiervoor JDeveloper 12.1.3.0.0 gebruikt. Om aan de slag te gaan met Oracle MAF moeten nog enkele plugins worden geïnstalleerd. Selecteer hiervoor "Help" > "Check for Updates…" in het menu. Selecteer hier de volgende updates:

  • Mobile Application Framework
  • Mobile Application Framework JDeveloper Patch

Voor het ontwikkelen van iOS applicaties moet gebruik worden gemaakt van een computer met Mac OS X, XCode en iOS SDK. Voor het ontwikkelen van Android applicaties moet JDK7 en Android SDK geïnstalleerd worden. Ik heb voor dit artikel gebruik gemaakt van Android SDK.

Configuratie Android en Oracle MAF

Nadat de ontwikkelomgeving is geïnstalleerd moeten een aantal zaken worden geconfigureerd in JDeveloper. Er moet onder andere worden ingesteld waar de Android SDK, het te gebruiken Android Platform en de Android Build Tools te vinden zijn. Dit kan worden ingesteld bij "Tools" > "Preferences" > "Mobile Application Framework" > "Android Platform".

Oracle Mobile Application Framework - Oracle MAF - Oracle ADF Mobile

Een nieuwe applicatie

Om een nieuwe Oracle MAF applicatie aan te maken, selecteer in het menu "File" > "New" > "Application…" en kies hier voor "Mobile Application Framework Application".

Oracle Mobile Application Framework - Oracle MAF - Oracle ADF Mobile

Druk op "OK" en voer in het volgende scherm een applicatie naam, directory en package prefix in. Kies "Next" en accepteer in de resterende wizard schermen de standaard waarden.

Oracle Mobile Application Framework - Oracle MAF - Oracle ADF Mobile

De applicatie wordt nu aangemaakt. In het "Applications" tabblad is nu het volgende te zien:

Oracle Mobile Application Framework - Oracle MAF - Oracle ADF Mobile

Het is belangrijk om te controleren of het bestand maf-feature.xml is aangemaakt. Als dit bestand niet is aangemaakt, maar het bestand adfmf-feature.xml aan het project is toegevoegd, is de kans groot dat een van de updates (Zie onder "De ontwikkelomgeving") niet (correct) is geïnstalleerd!

Navigatie door middel van Features

Een manier om verschillende pagina's aan de applicatie toe te voegen is het gebruiken van Features. Deze Features kunnen onder de applicatie in de navigatie balk (links) of op een "springboard" (rechts) getoond worden.

Oracle Mobile Application Framework - Oracle MAF - Oracle ADF Mobile Oracle Mobile Application Framework - Oracle MAF - Oracle ADF Mobile

In het maf-application.xml bestand kan aangegeven worden of de navigatie balk zichtbaar moet zijn en/of er een springboard gebruikt moet worden. Het maf-application.xml bestand is te vinden in de ADF META-INF folder.

Oracle Mobile Application Framework - Oracle MAF - Oracle ADF Mobile

Features kunnen in het maf-feature.xml bestand worden toegevoegd door middel van de groene plus. Vervolgens kunnen hier onder het "General" tabblad ook iconen worden geselecteerd die getoond worden in de navigatie balk en/of het springboard.

Oracle Mobile Application Framework - Oracle MAF - Oracle ADF Mobile

Task Flows en AMX pagina's

Nadat een feature is aangemaakt, kan de inhoud hiervan worden gedefinieerd. Dit wordt gedaan in maf-features.xml onder het tabblad "Content". Hiervoor zijn verschillende mogelijkheden. Zo is er bij het type content de keuze tussen een lokale HTML pagina, een HTML pagina van internet (Remote URL) of een MAF AMX pagina. Als hier MAF AMX wordt geselecteerd, is er vervolgens de keuze tussen een "MAF AMX Page" of een "Task Flow". Deze Task Flows kunnen op dezelfde manier worden toegepast als bij ADF applicaties.

Oracle Mobile Application Framework - Oracle MAF - Oracle ADF Mobile

Een Task Flow wordt toegevoegd door op de groene plus achter "File" te klikken. Aan deze Task Flow kunnen vervolgens views, methoden, etc. worden toegevoegd. Voor views kunnen de bijbehorende pagina's worden aangemaakt door dubbel te klikken op de betreffende view. Hierdoor zal een wizard openen om een nieuwe AMX view aan te maken.

Oracle Mobile Application Framework - Oracle MAF - Oracle ADF Mobile

Wanneer dit AMX bestand is aangemaakt valt meteen op dat, in tegenstelling tot bij ADF applicaties, nog geen "Design" view beschikbaar is. In deze Design weergave kan normaal gesproken door middel van de drag-and-drop methode eenvoudig een user interface worden opgebouwd. Momenteel kan wel gebruik worden gemaakt van de drag-and-drop methode in de "Source" view. Daarnaast is er de mogelijkheid om een voorbeeld van de opgebouwde pagina te tonen in de "Preview" weergave.

User Interface

Oracle MAF beschikt over een rijke set standaard componenten voor het opbouwen van de user interface. Daarnaast kunnen deze componenten worden gecombineerd om zo eigen nieuwe componenten te creëren. In mobiele applicaties wordt vaak gebruik gemaakt van lijsten om gegevens te tonen. Hier kan bijvoorbeeld het List View component voor worden gebruikt.

Oracle Mobile Application Framework - Oracle MAF - Oracle ADF Mobile

Naast deze standaard componenten zijn er diverse componenten om grafieken, diagrammen, gauges of kaarten te tonen in een applicatie. Deze elementen zijn beschikbaar in de "MAF AMX Data Visualizations" set bij de componenten.

Oracle Mobile Application Framework - Oracle MAF - Oracle ADF Mobile Oracle Mobile Application Framework - Oracle MAF - Oracle ADF Mobile

Data Controls

Net als bij ADF applicaties, kan bij het ontwikkelen van MAF applicaties gebruik worden gemaakt van Data Controls. Op deze manier wordt op eenvoudige wijze data uit bijvoorbeeld SOAP of REST services, of uit bijvoorbeeld een database op de user interface getoond. Voor het maken van de Whitehorses Whitebooks applicatie heb ik gebruik gemaakt van een "URL Service Data Control" om de Whitehorses Whitebooks RSS feed uit te lezen. Nadat een Data Control is aangemaakt, kan deze door middel van de drag-and-drop methode aan de user interface worden toegevoegd.

Rechten en permissies

Nadat ik de zojuist beschreven Data Control aan de user interface had toegevoegd in de vorm van een List View, heb ik de applicatie gedeployed op mijn toestel om deze te testen. Ik kreeg hierbij echter de volgende foutmelding te zien.

Oracle Mobile Application Framework - Oracle MAF - Oracle ADF Mobile

Deze foutmelding komt voort uit een belangrijk onderdeel waar bij het ontwikkelen van (Android) applicatie rekening mee moet worden gehouden. Om gebruikers te beschermen, moeten voor bepaalde acties toestemming worden gevraagd aan de gebruiker. Dit wordt aan de gebruiker gevraagd wanneer de applicatie geïnstalleerd wordt op het toestel. Hierbij gaat het bijvoorbeeld om zaken als het gebruik van de camera, de GPS en het netwerk. Het is bij het ontwikkelen van de applicatie belangrijk dat wordt aangegeven welke van deze permissies nodig zijn voor de applicatie. Deze rechten worden ingesteld in het maf-application.xml bestand. Open hiervoor het tabblad "Device Access" en vink de rechten aan die nodig zijn voor het gebruik van de applicatie. Wanneer de applicatie nu opnieuw gedeployed wordt, zal de foutmelding zijn opgelost.

Oracle Mobile Application Framework - Oracle MAF - Oracle ADF Mobile

Device features

Om gebruik te maken van verschillende device features, kan gebruik worden gemaakt van de automatisch aangemaakte Data Control "DeviceFeatures". Dit Data Control zorgt voor de aansturing van bijvoorbeeld de camera, GPS of contactenlijst van het toestel te benaderen. Naast dat de "DeviceFeatures" Data Control gebruikt kan worden voor de user interface, bijvoorbeeld door het tonen van de camera, kunnen deze features ook benaderd worden via Java code. Dit zal in het volgende hoofdstuk verder worden toegelicht. Het is erg belangrijk om bij gebruik van deze device features te controleren of alle benodigde rechten zijn aangevinkt.

Ontwikkeling in Java

Wat direct opvalt als begonnen wordt met het ontwikkelen van Java code in een Oracle MAF applicatie, is dat niet alle standaard Java klassen beschikbaar zijn. Oracle MAF beschikt over een beperkte set Java libraries. Voor het werken met XML zijn bijvoorbeeld de DOM en SAX parsers niet te gebruiken omdat de libraries javax.xml.* en org.w3c.* niet beschikbaar zijn. Als alternatief wordt de kXML library aangeboden die gebruikt kan worden voor het parsen van XML.

Binnen de applicatie kunnen de aangemaakte Java klassen, net als bij ADF, worden gebruikt als Data Control. Dit gebeurt door rechts op het Java bestand te klikken en vervolgens "Create Data Control" te kiezen.

Oracle Mobile Application Framework - Oracle MAF - Oracle ADF Mobile

Binnen Java klassen kan ook gebruik worden gemaakt van de DeviceManager klasse om toegang te krijgen tot toestel specifieke functies. Hierbij is echter wel belangrijk dat de applicatie over de juiste rechten beschikt. Hier onder staan een aantal opties beschreven om toestel specifieke features te aan te spreken binnen een Java klasse.

DeviceManagerFactory.getDeviceManager().createContact(contact); //Maakt een nieuw contact aan
DeviceManagerFactory.getDeviceManager().getNetworkStatus(); //Geeft in String formaat de netwerk status aan
DeviceManagerFactory.getDeviceManager().hasCamera(); //Geeft aan of het toestel over een camera beschikt
DeviceManagerFactory.getDeviceManager().getCurrentPosition(10000, true); //Geeft de laatste bekende GPS positie terug van (minder dan) 10 seconde (10000 milliseconde) oud.		

Deployment

Als de applicatie is gerealiseerd, kan deze gedeployed worden naar een emulator of een toestel om te testen. Ik heb hiervoor mijn toestel gebruikt. Selecteer voor het deployen van de gerealiseerde applicatie in het applicatie menu "Deploy" > "New Deployment Profile…".

Oracle Mobile Application Framework - Oracle MAF - Oracle ADF Mobile

Er opent een dialoog venster. Selecteer hier als Profile Type "MAF for Android" en geef het nieuwe deployment profiel een naam. Druk vervolgens op "OK".

Oracle Mobile Application Framework - Oracle MAF - Oracle ADF Mobile

In het volgende scherm, kunnen onder "Android Options" enkele zaken worden ingesteld met betrekking tot de Android applicatie. Zo kan hier onder andere worden ingesteld welke API versie wordt vereist op het toestel. Daarnaast is er de keuze of het deployen van de applicatie in Debug mode of in Release mode plaats moet vinden. Onder "Application Images" kunnen afbeeldingen worden geselecteerd die gebruikt worden als applicatie icoon en voor de splashscreens.

Oracle Mobile Application Framework - Oracle MAF - Oracle ADF Mobile

Wanneer een applicatie in Debug mode wordt gedraaid op een toestel, verschijnt links boven in de hoek een rood driehoekje. Het voordeel van de Debug mode is dat er meer informatie gelogd wordt door het toestel. Het deployen van de applicatie duurt hierdoor wel wat langer.

Daarnaast is voor het deployen van Android applicaties een keystore nodig. Android maakt gebruik van digitale certificaten om applicaties en auteurs te identificeren. De ontwikkelaar van de applicatie heeft hiervoor een "private key". De Android keystore is een binair bestand waarin deze private keys worden bijgehouden. Standaard wordt voor het deployen van Oracle MAF applicaties de Debug keystore gebruikt. Om een applicatie in de Play Store te zetten, moet echter een Release keystore gebruikt worden. Om dit in te stellen moet "Tools" > "Preferences" > "Mobile Application Framework" > "Android Platform" worden geopend in het menu. Vervolgens kan onder "Signing Credentials" worden aangegeven welke keystore moet worden gebruikt bij het deployen van de applicatie.

Oracle Mobile Application Framework - Oracle MAF - Oracle ADF Mobile

Nu alle instellingen gereed zijn, deployen we de applicatie via het applicatie menu. Kies hier "Deploy" en selecteer vervolgens het eerder aangemaakte deployment profiel. Ten slotte is er de keuze of de applicatie moet worden gedeployed naar een emulator, toestel of als APK bestand.

Oracle Mobile Application Framework - Oracle MAF - Oracle ADF Mobile

Conclusie

Oracle MAF is een framework voor de ontwikkeling van hybride applicaties voor mobiele devices voor zowel Android als iOS. Door de combinaties van Features en Task Flow componenten kunnen eenvoudig pagina's aan de applicatie worden toegevoegd en kan de navigatie tussen pagina's op een overzichtelijke manier worden geregeld. Zeker voor ontwikkelaars met ervaring met Oracle ADF zal dit erg intuïtief werken.

Bij het ontwikkelen van Oracle MAF applicaties heb je beschikking over een ruime componenten set voor de opbouw van de user interface. Momenteel mist voor het opbouwen van de user interfaces echter nog wel de "Design" view voor AMX pagina's. Er zijn echter al wel drag-and-drop methoden om componenten en data op een eenvoudige manier aan de user interface toe te voegen.

Door middel van Data controls wordt eenvoudig data uit verschillende type bronnen opgehaald. Data afkomstig uit bijvoorbeeld SOAP/REST webservices, een RSS feed of Java klassen kan eenvoudig worden opgehaald en getoond in de applicatie. Het is echter jammer dat er slechts een beperkte set Java libraries beschikbaar is met Oracle MAF. Zo ontbreken bijvoorbeeld de DOM en SAX parsers uit de standaard Java libraries. Hiervoor in de plaats is echter wel de kXML library beschikbaar.

Oracle MAF lijkt een uitstekend framework voor het ontwikkelen van (zakelijke) mobiele applicaties waarbij het visualiseren van data centraal staat. Voor het ontwikkelen van bijvoorbeeld games is dit framework niet geschikt. Door de ondersteuning van Android en iOS, wordt gezamenlijk 95% van de smartphones bereikt. Wellicht is Windows Phone (met een marktaandeel van 3,5%) in de toekomst een welkome toevoeging aan het rijtje ondersteunde platformen.

Referenties:

Reacties

Nieuwe reactie inzenden

De inhoud van dit veld is privé en zal niet openbaar worden gemaakt.

Meer informatie over formaatmogelijkheden

CAPTCHA
Deze vraag is om te testen of u een persoon bent en om spam te voorkomen
Image CAPTCHA
Enter the characters shown in the image.