Oracle APEX Offline
Voordat ik het over mijn opdracht met Oracle Apex ga hebben, zal ik me eerst even voorstellen. Ik ben Noah Pelzer en studeer HBO-ICT aan Zuyd Hogeschool Heerlen. Het afgelopen half jaar heb ik met veel plezier stage gelopen bij The DOC.
Mijn opdracht bestond uit het onderzoeken en bedenken van een oplossing om applicaties met Oracle APEX offline te kunnen gebruiken. Zo kun je zonder internet of ontvangst de site of Progressive Web App (PWA) openen, data inzien, bewerken, toevoegen of verwijderen. Ook moest het zoeken in data offline beschikbaar blijven.
Het was belangrijk dat er geen externe download voor hoefde plaats te vinden maar dat het werkte met Oracle Apex. De offline applicatie moest dezelfde look en feel behouden van de online applicaties.
Ik vond al snel een oplossing vanuit Oracle Apex, namelijk door de webpagina’s met Javascript, css, afbeeldingen en etc. te cachen. Wanneer je de pagina online had geopend, bleef deze offline beschikbaar. Een nadeel hiervan was dat functies zoals het zoeken, toevoegen en bewerken van data vervielen. Als dit opgelost kon worden, was deze methode een goede optie.
Tijdens het onderzoek bleek het gebruikmaken van Angular niet geschikt. Ook had je voor deze optie additionele externe software nodig. Hierna werd besloten om een single pagina in APEX te gebruiken. Op deze manier hoef je geen twintig pagina’s te openen om te cachen wanneer je de app offline wil gebruiken. Ga je offline? Dan moet de pagina één keer geopend zijn en de (web) app heeft deze, met daarbij de meest recente data, in de cache opgeslagen. Zodra je online bent wordt de data naar de database geüpload en opnieuw opgehaald waardoor deze altijd up-to-date blijft.
Om dit voor een nieuwe site mogelijk te maken, was een stukje maatwerk nodig. Met Oracle APEX kun je functies gebruiken zodat je die niet zelf hoeft te programmeren (zoals invoervelden, knoppen, etc.). Vanuit Oracle APEX heb je ook het PWA stuk nodig, zo kan er een service worker worden geïnstalleerd om de site te cachen en events te starten wanneer de gebruiker weer online is. Voor de data wordt er gebruik gemaakt van REST-Services, die zorgen dat de data in- en uit de database gaan.