ACA Group Blog | Inzichten over Softwareontwikkeling, UX/UI, Data & Innovatie

Hoe homescreen-widgets de gebruikservaring van je app verbeteren

Geschreven door Jelle Schrijvers | 15-okt-2024 23:00:00

In de snelle digitale wereld van vandaag willen mobiele gebruikers snel en gemakkelijk toegang tot de informatie die ze het belangrijkst vinden. Startschermwidgets bieden de perfecte oplossing en bieden hapklare, interactieve tools die direct toegang bieden tot belangrijke app-functies zonder de app zelf te openen. In onze blog onderzoeken we hoe widgets op het startscherm de betrokkenheid van gebruikers vergroten, wat de verschillende mogelijkheden zijn en hoe je ze kunt implementeren op platformen als Flutter, iOS en Android. Lees verder om te ontdekken hoe widgets de zichtbaarheid en gebruikerservaring van je app kunnen verbeteren.

Wat is een homescreenwidget?

Een homescreenwidget is een kleine, interactieve functie die op het homescreen van je telefoon staat en je snel toegang geeft tot nuttige informatie of app-functies zonder dat je de app zelf hoeft te openen. Zie het als een miniversie van een app die regelmatig wordt bijgewerkt en waarmee je direct vanaf het startscherm kunt werken - of je nu het weer wilt controleren, agenda-evenementen wilt bekijken of de laatste nieuwskoppen wilt bekijken.

Deze widgets zijn in hoge mate aanpasbaar, zodat gebruikers ze naar wens kunnen rangschikken en er moeiteloos mee kunnen interageren. Door gemak in een oogopslag te bieden, verbeteren widgets op het startscherm de algehele bruikbaarheid van een apparaat zonder dat gebruikers in individuele apps hoeven te duiken.

Hoe widgets op het startscherm de betrokkenheid van gebruikers vergroten

Widgets spelen een cruciale rol in het verhogen van de betrokkenheid van gebruikers door directe toegang te bieden tot de belangrijkste functies van een app. Hier zijn een paar manieren waarop ze helpen:

  • Directe toegang: Widgets bieden snel en met één tik toegang tot de meest relevante functies of informatie, waardoor gebruikers tijd besparen en minder stappen nodig hebben om een actie te voltooien.
  • Zichtbaarheid: Omdat ze altijd zichtbaar zijn op het startscherm, houden widgets je app top of mind, wat leidt tot meer interacties en een hogere retentie.
  • Personalisatie: Met de toenemende aanpassingsmogelijkheden op zowel Android als iOS, stelt de integratie van widgets gebruikers in staat om hun telefoon te personaliseren, wat zorgt voor een meer aantrekkelijke ervaring.
  • Verhoogde gebruikersbinding: Door waardevolle content of functionaliteit aan te bieden op het startscherm, zorgen widgets ervoor dat gebruikers langer bij je app blijven, omdat ze afhankelijk worden van het gemak dat de app biedt.
  • Real-time updates en meldingen: Widgets op het startscherm kunnen realtime updates en meldingen bieden, waardoor gebruikers betrokken blijven en vaker terugkeren naar de app om de nieuwste informatie te bekijken.

Door widgets te integreren, maak je niet alleen je app toegankelijker, maar vergroot je ook de kans dat gebruikers vaker met je app en content in contact komen.

Verschillende soorten schermwidgets

Startschermwidgets vs. vergrendelschermwidgets

Hoewel zowel widgets voor het beginscherm als voor het vergrendelscherm handige toegang tot informatie bieden, dienen ze verschillende doelen:

  • Startschermwidgets: Deze widgets op het startscherm bieden snelkoppelingen naar belangrijke app-functies zonder dat gebruikers de app hoeven te openen. Of het nu gaat om weerberichten, kalendergebeurtenissen of nieuwskoppen, widgets op het startscherm zijn volledig aanpasbaar en kunnen worden aangepast aan individuele gebruikersvoorkeuren.
  • Widgets voor het vergrendelscherm: Met deze widgets, die beschikbaar zijn op iOS- en Samsung-apparaten, hebben gebruikers toegang tot essentiële meldingen zoals agenda-events of weeralarmen zonder hun telefoon te ontgrendelen. Hoewel ze minder aanpasbaar zijn dan widgets op het startscherm, bieden widgets op het vergrendelscherm nog steeds snelle toegang tot essentiële informatie of tools.

Informatieve widgets

Informatieve widgets geven gebruikers in één oogopslag informatie zoals weersvoorspellingen, kalendergebeurtenissen, nieuwskoppen of aandelenkoersen. Ze zijn ontworpen om gebruikers op de hoogte te houden zonder dat ze de bijbehorende app hoeven te openen.

Interactieve widgets

Interactieve widgets gaan verder dan alleen het weergeven van informatie; ze stellen gebruikers in staat om direct vanaf het startscherm acties uit te voeren. Dit kunnen functies zijn zoals knoppen, schuifbalken of toggles. Bijvoorbeeld, een interactieve widget voor een smart home app kan gebruikers de lichten aan laten doen met een enkele tik-zonder de app te openen.

Startscherm widgets in Flutter

Flutter ontwikkelaars hebben een paar opties als het gaat om het implementeren van widgets voor het startscherm. Je kunt kiezen voor een volledige native implementatie, data versturen via een platformkanaal of een pakket gebruiken om het proces te vereenvoudigen.

Flutter implementatie

Als je widgets voor iOS ontwikkelt, moet je een app-groep instellen om communicatie met de native iOS-implementatie mogelijk te maken. Voor een meer gestroomlijnde Flutter integratie is het home_widgetpakket een handig hulpmiddel. Hiermee kunnen ontwikkelaars eenvoudig gegevens verzenden en bijwerken voor native implementaties. Hoewel het creëren van de widget UI direct in Flutter niet mogelijk is, kun je Flutter widgets renderen als afbeeldingen voor weergave binnen het native framework. Houd er wel rekening mee dat deze methode geen interactieve elementen zoals knoppen ondersteunt.

Zelfs met het home_widget pakket, is er nog steeds een aanzienlijke hoeveelheid native werk nodig, omdat Flutter van nature geen home screen widgets ondersteunt. Om het pakket te gebruiken, volg je de installatie-instructies in de documentatie. Specifiek voor iOS widgets moet je de AppGroupId instellen om communicatie met de native iOS implementatie mogelijk te maken.

HomeWidget.setAppGroupId(<JOUW APPGROEP ID>);
JavaScript

Vervolgens kun je de stappen volgen om gegevens op de widget weer te geven. Dit omvat het gebruik van methodes zoals saveWidgetData om data te versturen of renderFlutterWidget om Flutter-widgets als afbeeldingen weer te geven.

await HomeWidget.saveWidgetData<String>(<KEY FOR YOUR DATA>, <DATA YOU WANT TO DISPLAY>); await HomeWidget.renderFlutterWidget(<FLUTTER WIDGET>, key: <KEY FOR YOUR DATA>, logicalSize: <SIZE OF YOUR IMAGE>, pixelRatio: <PIXEL RATIO>);

Onthoud dat elke keer dat je wijzigingen aanbrengt in je gegevens, je de updateWidget methode uit het home_widget pakket moet aanroepen om deze updates weer te geven op de widget.

HomeWidget.updateWidget( iOSNaam: <NAAM VAN UW IOS WIDGET>, androidNaam: <NAAM VAN UW ANDROID WIDGET>, gekwalificeerdeAndroidNaam: <Gekwalificeerde NAAM VAN UW ANDROID WIDGET>);

Startschermwidgets in iOS

Om startschermwidgets in iOS te implementeren, moet je een widgetuitbreiding maken en zowel je app als de WidgetExtension aan dezelfde appgroep koppelen. Deze instelling genereert automatisch de nieuwe widget-extensie met alle vereiste configuraties.

Om toegang te krijgen tot de gegevens die zijn verzonden via het home_widget pakket, haal je deze op uit UserDefaults. Maak een UserDefaults object aan met de juiste AppGroupId en benader de data met dezelfde sleutel die je hebt gebruikt in de saveWidgetData of renderFlutterWidget methods. Om bijvoorbeeld een string met de titel "title" op te halen, gebruikt u het volgende:

let userDefaults = UserDefaults(suiteName: <JOUW APP GROEP>) let title = userDefaults?.string(forKey: "title") ?? "Geen titel ingesteld"

Raadpleeg de officiële documentatie hier voor meer informatie over het maken van een startschermwidget voor iOS.

Mogelijkheden

Widgets in iOS zijn er in verschillende formaten, waaronder klein (één cel), medium (2x2 cellen) en groot (2 cellen hoog bij 4 cellen breed). Bovendien kunnen ze worden aangepast, zodat gebruikers instellingen kunnen aanpassen zoals een postcode voor weerberichten, kunnen kiezen uit voorgedefinieerde filters of een eenvoudig tekstveld kunnen gebruiken om de titel van de widget aan te passen.

Startschermwidgets in Android

Om een widget voor het beginscherm van een Android-applicatie te maken, voeg je gewoon een app-widget toe aan je Android-project in Android Studio. Dit zal automatisch alle essentiële bestanden genereren die nodig zijn voor een basis-widget voor het homescreen.

Om toegang te krijgen tot gegevens die worden verzonden via het home_widget-pakket in Android, gebruik je de HomeWidgetPlugin. Na het importeren van de plugin, maak je een HomeWidgetPlugin object en gebruik je de getData methode om de gegevens op te halen:

import es.antonborri.home_widget.HomeWidgetPlugin; // Gegevens ophalen Bundel widgetData = homeWidgetPlugin.getData(context); // Titel ophalen String title = widgetData.getString("title", null);

Raadpleeg de officiële documentatie hier voor meer informatie over het maken van een widget voor het beginscherm van Android.

Mogelijkheden

Android-widgets bieden een scala aan mogelijkheden, waaronder volledige aanpasbaarheid met aanpasbare minimale en maximale breedte en hoogte. Bovendien kunnen widgets worden bewerkt, zodat gebruikers verschillende filteropties kunnen instellen, zoals een postcode voor een weerwidget of een lijst met vooraf gedefinieerde filters. Deze flexibiliteit omvat ook functies zoals een eenvoudig tekstveld dat de titel van de widget dynamisch kan bijwerken.

Taken op de achtergrond

Om je widget up-to-date te houden, kun je achtergrondtaken implementeren die periodiek data ophalen uit de app, zelfs als die niet in gebruik is. In Flutter kun je dit doen met het workmanager pakket. Als de UI van je widget echter in Flutter is gemaakt en als afbeeldingen wordt weergegeven, kan deze niet worden bijgewerkt zonder de app opnieuw te openen.

Voor de iOS setup, begin met het inschakelen van background fetch of background processing in de instellingen van je app. Voeg dan de volgende code toe aan het AppDelegate.swift bestand:

WorkmanagerPlugin.setPluginRegistrantCallback {register in GeneratedPluginRegistrant.register(with: register) } UIApplication.shared.setMinimumBackgroundFetchInterval(TimeInterval(60*15))

Deze setup start een periodieke data fetch die ongeveer elke 15 minuten wordt uitgevoerd, hoewel het soms langer kan duren.

Begin in Flutter met het maken van een entry point met behulp van de @pragma('vm:entry-point') annotatie boven je methode in het hoofdbestand. Gebruik de executeTask methode van de WorkManager klasse om specifieke taken te filteren en de benodigde code uit te voeren om de data van je widget bij te werken. Nadat je het invoerpunt hebt gedefinieerd, initialiseer je het wanneer de app start. Registreer vervolgens de periodieke taak, waarbij je in gedachten moet houden dat de frequentie standaard op 15 minuten staat en niet op een korter interval kan worden ingesteld:

Workmanager().initialize(callbackDispatcher, isInDebugMode: true); Workmanager().registerPeriodicTask("updateWidget", "updateWidget", frequency: const Duration(minutes: 15), ); @pragma('vm:entry-point') voidbackDispatcher() { Workmanager().executeTask((task, inputData) async {switch (task) {case Workmanager.iOSBackgroundTask: // Code om gegevens op te halen break; case "updateWidgetTask": // Code om gegevens op te halen break; } return Future.value(true); }).

Deze instelling zorgt ervoor dat je widget actueel blijft met de laatste gegevens, waardoor de functionaliteit en gebruikerservaring worden verbeterd.

Conclusie

Samengevat zijn widgets op het startscherm en widgets op het vergrendelscherm vitale onderdelen van de ontwikkeling van mobiele apps. Ze bieden gebruikers eenvoudig toegang tot informatie en functies, wat de betrokkenheid aanzienlijk kan vergroten.

Met behulp van widgets op het startscherm krijgen gebruikers snel toegang tot specifieke functies en informatie, rechtstreeks vanaf het startscherm van het apparaat, wat de bruikbaarheid en interactie verbetert. Vergrendelschermwidgets geven belangrijke meldingen door zonder dat gebruikers hun toestel hoeven te ontgrendelen, wat een extra laag van gemak toevoegt.

Het opnemen van beide soorten widgets in je mobiele app kan de gebruikerservaring en toegankelijkheid enorm verbeteren. Het gebruik van tools zoals het home_widget pakket in Flutter zorgt voor een soepele communicatie tussen Flutter en native code, waardoor widget integratie naadloos en effectief is.