Ionic is een open-source framework voor het maken van cross-platform mobiele applicaties met behulp van webtechnologieën. In tegenstelling tot native tools werkt het via WebView en biedt het een uniforme codebase in HTML, CSS en JavaScript. Volgens Ionic, 2025 wordt het framework gebruikt in meer dan 5 miljoen applicaties wereldwijd. Capacitor is een sleutelcomponent van het platform dat toegang biedt tot native API's via een uniforme JavaScript-interface.
Belangrijkste punten
Ionic is een open-source platform voor het maken van cross-platform applicaties met HTML, CSS en JavaScript. Het project werd in 2013 gelanceerd door Drifty Co. en heeft sindsdien de weg afgelegd van een jQuery Mobile-add-on tot een volwaardig framework met ondersteuning voor Angular, React en Vue.
Het hoofdidee van Ionic is dat ontwikkelaars die de webstack beheersen mobiele apps kunnen maken zonder Java, Kotlin of Swift te leren. Het uiterlijk van de app is zo dicht mogelijk bij native dankzij kant-en-klare componenten die zijn gestyled volgens Material Design en iOS Human Interface Guidelines.
Volgens Statista-gegevens voor 2024 heeft Ionic ongeveer 17% van de markt voor cross-platform frameworks, achter Flutter en React Native, maar vóór Cordova en Xamarin. Het framework wordt gekozen door startups en bedrijven die waarde hechten aan ontwikkelsnelheid en herbruikbaarheid van code tussen platforms.
De Ionic-architectuur is gebaseerd op drie lagen: WebView voor het renderen van de interface, Capacitor als brug tussen JavaScript en native code, en een pluginsysteem voor toegang tot hardwaremogelijkheden van het apparaat.
WebView is een native component van het besturingssysteem dat een webpagina binnen de app weergeeft. Ionic gebruikt WKWebView op iOS en Android System WebView op Android. Het framework laadt een single-page applicatie (SPA) in Angular, React of Vue in de WebView, die de gebruikersinterface vormt.
Volgens Google Chrome Team (2024) ondersteunen moderne WebViews alle mogelijkheden van ES2023, CSS Grid, Flexbox en WebGL, waardoor complexe interfaces kunnen worden gemaakt zonder prestatieverlies in dagelijkse scenario's.
Capacitor is een native runtime van het Ionic-team die Cordova heeft vervangen. Het biedt een uniforme JavaScript API voor het aanroepen van native functies van het apparaat: camera, geolocatie, accelerometer, bestandssysteem en biometrie.
In tegenstelling tot Cordova gebruikt Capacitor geen aangepast URL-protocol voor de brug — het werkt direct via de JavaScript Bridge die in WebView is ingebouwd. Dit levert een prestatieverbetering tot 30% bij frequente aanroepen van native API's, zoals blijkt uit tests van Ionic Team (2024).
Plugins in Capacitor zijn native bibliotheken in Swift en Kotlin die in de runtime worden geregistreerd en toegankelijk worden vanuit JavaScript. De ingebouwde set bevat meer dan 40 plugins voor werken met camera, geolocatie, meldingen, opslag en netwerk.
Een ontwikkelaar kan een eigen plugin schrijven als de standaardfunctionaliteit niet voldoende is. Hiervoor wordt een klasse gemaakt die overerft van CapacitorPlugin met methoden die zijn geannoteerd met @PluginMethod. De plugin wordt automatisch gecompileerd voor beide platforms.
Bij de keuze tussen Ionic en native tools is het belangrijk te begrijpen dat Ionic niet concurreert met SwiftUI of Jetpack Compose wat betreft animatieprestaties en complexe graphics, maar wint in ontwikkelsnelheid en hoeveelheid herbruikbare code.
| Criterium | Ionic + Angular | SwiftUI (iOS) | Jetpack Compose (Android) |
|---|---|---|---|
| Taal | TypeScript | Swift | Kotlin |
| Codebase | Universeel voor iOS en Android | Alleen iOS | Alleen Android |
| Prestaties | Gemiddeld (WebView) | Maximaal (native) | Maximaal (native) |
| API-toegang | Via Capacitor plugins | Direct | Direct |
| Community | Groot, 5M+ apps | Enorm (Apple) | Groot (Google) |
Voor apps met intensieve graphics, aangepaste animaties of AR-functies hebben native tools de voorkeur. Voor CRUD-apps, webwinkels en bedrijfsportalen biedt Ionic voldoende prestaties tegen aanzienlijk lagere ontwikkelingskosten.
Backlinko (2025) merkt op dat hybride apps op Ionic gemiddeld 15–20% langzamer laden dan native apps bij het opstarten, maar in dagelijkse gebruiksscenario's wordt het verschil onmerkbaar voor de gebruiker.
Laten we de basisstructuur van een Ionic-app in Angular bekijken. De onderstaande code demonstreert het maken van een pagina met een lijst en navigatie.
import { Component } from '@angular/core';
import { IonContent, IonList, IonItem } from '@ionic/angular/standalone';
@Component({
selector: 'app-home',
standalone: true,
imports: [IonContent, IonList, IonItem],
template: `
<ion-content>
<ion-list>
<ion-item *ngFor="let item of items">
{{ item.name }}
</ion-item>
</ion-list>
</ion-content>
`
})
export class HomePage {
items = [{ name: 'Eerste element' }, { name: 'Tweede element' }];
}
In dit voorbeeld gebruikt de component de standalone API van Angular 17+, wat het bouwen vereenvoudigt en de bundelgrootte verkleint. De *ngFor-directive rendert een lijst met elementen en IonItem styliseert elk item automatisch volgens het platform.
Voor toegang tot de camera via Capacitor wordt het volgende patroon gebruikt met import van de native plugin en afhandeling van machtigingen:
import { Camera, CameraResultType } from '@capacitor/camera';
async takePhoto() {
const image = await Camera.getPhoto({
resultType: CameraResultType.DataUrl,
quality: 90
});
this.photo = image.dataUrl;
}
De methode getPhoto vraagt automatisch toestemming voor cameratoegang — aparte code voor permissions is niet nodig. Capacitor verwerkt de toestemming van de gebruiker op platformniveau en retourneert de afbeelding in base64-formaat of als bestands-URL.
Ionic biedt meer dan 50 kant-en-klare UI-componenten die zich aanpassen aan het platform van de gebruiker. Dezelfde IonButton ziet er op iOS uit als een systeemknop van Apple en op Android als een Material Design-knop, zonder codewijzigingen.
Elke Ionic-component reageert op CSS-variabelen die zijn gedefinieerd in het globale thema. Een ontwikkelaar kan kleuren, afrondingen, marges en lettertypen overschrijven via de variabelen --ion-color-primary, --ion-border-radius en andere.
Volgens Ionic Framework Docs (2025) is het voldoende om 6 CSS-variabelen te wijzigen die overeenkomen met de belangrijkste merk kleuren voor een volledige thema-aanpassing. De overige componenten erven de waarden automatisch.
:root {
--ion-color-primary: #3880ff;
--ion-color-secondary: #3dc2ff;
--ion-border-radius: 12px;
--ion-font-family: 'Inter', sans-serif;
}
Ionic gebruikt zijn eigen IonRouter met stack-navigatie die het gedrag van native UINavigationController en FragmentManager nabootst. Overgangsanimaties tussen pagina's zijn gedefinieerd in CSS en vereisen geen JavaScript-code.
Routering is gebaseerd op Angular Router met extra IonNavLink voor geanimeerde overgangen. Ondersteuning voor tabbladen (Tabs) en zijmenu (Menu) is ingebouwd in het framework en wordt declaratief geconfigureerd.
Het bouwproces van een Ionic-app omvat drie fasen: compilatie van webresources, genereren van de native schil via Capacitor en het bouwen van APK/IPA met Xcode of Android Studio. Ionic CLI automatiseert alle stappen met één commando: ionic build && npx cap sync.
Capacitor maakt afzonderlijke projecten voor iOS en Android in de mappen ios/ en android/. De ontwikkelaar kan ze openen in Xcode of Android Studio voor de uiteindelijke build, het toevoegen van aangepaste plugins of het configureren van App Store-specifieke parameters.
Voor publicatie in Google Play en App Store worden de standaard tools van de platforms gebruikt. Ionic legt geen beperkingen op aan de app-grootte of gebruikte API's — de uiteindelijke build is een volwaardige mobiele app met een native wrapper. Elke build doorloopt de standaard pipelines van Xcode en Android Studio, wat compatibiliteit met het beleid van app-winkels garandeert.
Het releaseproces omvat het ondertekenen van het binaire bestand met ontwikkelaarscertificaten en het configureren van metadata in de winkel. Fastlane is een populair hulpmiddel voor het automatiseren van de implementatie van Ionic-apps en ondersteunt alle fasen van testen tot publicatie.
Veelgestelde vragen
Ionic gebruikt WebView en webtechnologieën, terwijl React Native en Flutter de interface met hun eigen engines renderen zonder WebView. Dit geeft hen een voordeel in prestaties, maar Ionic wint in eenvoud van toegang voor webontwikkelaars.
Ja, Ionic ondersteunt React en Vue als alternatieven voor Angular. Sinds 2024 hebben alle drie de frameworks dezelfde set UI-componenten en worden ze volledig ondersteund door het Ionic-team. De keuze hangt af van de voorkeuren van het team.
Toegang tot native API's wordt gerealiseerd via Capacitor — een laag die een JavaScript-interface biedt voor camera, GPS, accelerometer, biometrie en andere functies. Elke aanroep wordt vertaald naar native Swift- of Kotlin-code via de WebView-brug.
Ionic is niet geoptimaliseerd voor games en apps met intensieve 3D-graphics. Voor dergelijke taken is het beter om native tools of Flutter met zijn eigen Skia-renderengine te gebruiken. Ionic is geschikt voor zakelijke apps, webwinkels en diensten.
Ionic ondersteunt updates via App Store Connect en Google Play op de standaard manier. Daarnaast maakt Capacitor het mogelijk om het webgedeelte van de app bij te werken zonder opnieuw te publiceren in de winkels via het Live Update-mechanisme en Appflow-service.
Samenvatting
We ontwikkelen een mobiele applicatie turnkey
IT Sectr creëert sinds 2017 iOS- en Android-applicaties voor startups en bedrijven. We adviseren u en stellen de beste oplossing voor.
Lees ook