
R Shiny Cursus
Beheers R Shiny van de basis af en bouw interactieve, datagestuurde webapplicaties volledig in R. Deze cursus neemt je mee van je eerste app naar productieklare implementaties met authenticatie, CI/CD-pijplijnen en schaalbare architectuur. Of je nu analist, datascientist of R-ontwikkelaar bent, je verwerft de vaardigheden om ruwe data om te zetten in gepolijste, deelbare tools.
Wat je gaat leren:
Je leert hoe je volwaardige Shiny-applicaties ontwerpt en bouwt, van de kern van R-syntax en het Shiny-framework tot modulaire app-architectuur en enterprise-implementatie. Je beheerst Shiny's reactieve programmeermodel, creëert rijke gebruikersinterfaces met dynamische invoer en uitvoer, en integreert tidyverse-dataverwerking rechtstreeks in reactieve werkstromen. De cursus behandelt interactieve visualisaties met plotly en leaflet, gestructureerde logging en geautomatiseerd testen met shinytest2. Je verkent ook technieken voor prestatieoptimalisatie, waaronder caching, asynchroon programmeren en belastingtesten om je apps snel te houden onder echt gebruikersverkeer.
Hoe je praktisch studeert R Shiny Cursus
Hoe je oefent R Shiny Cursus
Voor bedrijven die hun team willen trainen
Bij Dedika voor bedrijven bevat de cursus oefeningen en voorbeelden die zijn afgestemd op jouw organisatie en precies zoals jouw bedrijf het nodig heeft.
Cursusinhoud
8 Hoofdstukken • 39 LessenDuur tussen 4 en 360 uren (jij beslist)
Hoofdstuk 1VerbergenVerberg detailsBekijk detailsInleiding tot R en Shiny
Inleiding tot R en Shiny
Les 1 • De R-omgeving instellen
Installeer R, RStudio en essentiële pakketten die nodig zijn voor Shiny-ontwikkeling. Legt de basistoolchain vast voor alle volgende hoofdstukken.
Les 2 • Anatomie van een Shiny-app
Onderzoek de componenten ui, server en shinyApp die elke Shiny-applicatie vormen. Verbindt R-basisbeginselen met het Shiny-uitvoeringsmodel.
Les 3 • Kern-R-syntax voor Shiny
Bespreek vectoren, dataframes, functies en controlestroom zoals gebruikt in Shiny-apps. Biedt de R-vaardigheid die nodig is voordat reactieve code wordt geschreven.
Les 4 • Je eerste Shiny-app uitvoeren
Maak en start een minimale app die statische tekst en een plot weergeeft. Bevestigt dat de omgeving correct is geconfigureerd en ontraadselt de uitvoeringscyclus.
Hoofdstuk 2VerbergenVerberg detailsBekijk detailsGebruikersinterfaces bouwen
Gebruikersinterfaces bouwen
Les 1 • Layoutfuncties en paginatypen
Verken fluidPage, navbarPage en fillPage om de algehele app-structuur te beheren. Het juiste paginatype bepaalt hoe de inhoud schaalt over verschillende schermformaten.
Les 2 • Catalogus van invoerwidgets
Implementeer tekst-, numerieke-, datum-, selectie-, selectievakje-, radio- en schuifregelaarinvoeren. Elke widget wordt toegewezen aan een benoemde invoerwaarde die door de serverfunctie wordt verbruikt.
Les 3 • De UI opmaken met HTML en CSS
Pas inline stijlen, aangepaste CSS-bestanden en HTML-hulpfuncties van Shiny toe om de visuele weergave te verfijnen. Bereidt studenten voor op het thema met bslib in latere hoofdstukken.
Les 4 • Sidebar- en panellay-outs
Gebruik sidebarLayout, sidebarPanel en mainPanel om bedieningselementen van uitvoer te scheiden. Dit patroon is de meest gebruikelijke Shiny UI-conventie en vormt de basis voor later dashboardwerk.
Les 5 • Dynamische UI-elementen
Genereer UI-componenten conditioneel met uiOutput en renderUI. Maakt interfaces mogelijk die zich aanpassen aan de gebruikersstatus zonder volledige paginavernieuwingen.
Hoofdstuk 3VerbergenVerberg detailsBekijk detailsBasisbeginselen van reactiviteit
Basisbeginselen van reactiviteit
Les 1 • Reactieve expressies
Maak reactive()-expressies om tussentijdse berekeningen te cachen die door meerdere uitvoer worden gedeeld. Vermindert dubbele code en verbetert de app-prestaties.
Les 2 • Reactieve waarden en status
Sla veranderlijke applicatiestatus op met reactiveValues() en reactiveVal(). Maakt functies mogelijk zoals ongedaan maken-geschiedenis, tellers en sessieniveau-gegevensaccumulatie.
Les 3 • Observers en bijwerkingen
Gebruik observe() en observeEvent() om bijwerkingen te activeren, zoals het schrijven van bestanden of het bijwerken van invoer. Onderscheidt reactieve producenten van reactieve consumenten.
Les 4 • Reactiviteit isoleren en beheersen
Pas isolate(), req() en validate() toe om te bepalen wanneer en hoe reactieve code wordt uitgevoerd. Voorkomt voortijdige uitvoering en geeft gebruiksvriendelijke foutmeldingen.
Les 5 • Het reactieve uitvoeringsmodel
Traceer hoe Shiny afhankelijkheden bijhoudt en heruitvoering plant wanneer invoer verandert. Het begrijpen van dit model voorkomt overbodige berekeningen en stille bugs.
Hoofdstuk 4VerbergenVerberg detailsBekijk detailsUitvoer en weergavefuncties
Uitvoer en weergavefuncties
Les 1 • Statische en interactieve plots weergeven
Produceer base R-, ggplot2- en plotly-visualisaties in Shiny-uitvoersleuven. Interactieve plots maken klik- en hovergebeurtenissen mogelijk die in latere hoofdstukken worden gebruikt.
Les 2 • Meldingen en voortgangsindicatoren
Geef gebruikers feedback tijdens lange bewerkingen met showNotification() en withProgress(). Verbetert de waargenomen prestaties en communiceert de app-status duidelijk.
Les 3 • Bestanden downloaden en uploaden
Implementeer downloadHandler() voor CSV- en PDF-export en fileInput() voor door de gebruiker geleverde gegevens. Sluit de lus voor gegevensinvoer en -export in een complete app.
Les 4 • Tekst- en woordelijke uitvoer
Geef dynamische tekenreeksen en ruwe R-uitvoer weer met renderText() en renderPrint(). Vormt het eenvoudigste uitvoertype en valideert dat reactiviteit correct is aangesloten.
Les 5 • Tabellen met DT en gt
Geef interactieve gegevenstabellen weer met het DT-pakket en opgemaakte statische tabellen met gt. Tabellen zijn de meest voorkomende gegevensuitvoer in zakelijke Shiny-apps.
Hoofdstuk 5VerbergenVerberg detailsBekijk detailsGegevensbewerking binnen Shiny
Gegevensbewerking binnen Shiny
Les 1 • Gegevens reactief filteren
Pas dplyr filter() toe in reactieve expressies die worden aangestuurd door widgetinvoer. Reactief filteren is het kernpatroon voor verkennende gegevens-apps.
Les 2 • Omgaan met ontbrekende en onjuiste gegevens
Detecteer en verwerk NA-waarden, typefouten en foutief opgemaakte invoer voordat ze worden weergegeven. Voorkomt cryptische fouten en zorgt dat uitvoer zinvol blijft.
Les 3 • Gegevensbronnen koppelen aan apps
Laad CSV-, Excel- en RDS-bestanden bij het opstarten of reactief op basis van gebruikersinvoer. De juiste strategie voor het laden van gegevens bepaalt de opstarttijd van de app en het geheugengebruik.
Les 4 • Gegevens transformeren en samenvatten
Gebruik mutate(), group_by() en summarize() in reactieve pijplijnen om nieuwe metrieken af te leiden. Getransformeerde gegevens voeden tegelijkertijd zowel plot- als tabeluitvoer.
Les 5 • Werken met databases via DBI
Maak verbinding met SQL-databases met DBI en voer parameterized query's uit op basis van reactieve invoer. Maakt apps mogelijk die grote datasets kunnen opvragen zonder ze in het geheugen te laden.
Hoofdstuk 6VerbergenVerberg detailsBekijk detailsApp-organisatie en modules
App-organisatie en modules
Les 1 • Grote Shiny-projecten structureren
Organiseer code in de mappen R/, www/ en data/ volgens de golem- en standaardconventies. Een goede structuur vermindert de inwerktijd en samenvoegconflicten.
Les 2 • Apps bouwen als R-pakketten
Wikkel een Shiny-app in een R-pakket met golem om documentatie, testen en afhankelijkheidsbeheer te verkrijgen. Pakketstructuur is de industriestandaard voor productie-apps.
Les 3 • Gegevens doorgeven tussen modules
Retourneer reactieve waarden uit modules en geef ze door als argumenten aan zustermodules. Maakt complexe multi-module gegevensstromen mogelijk zonder globale status.
Les 4 • Inleiding tot Shiny-modules
Kapsel UI- en serverlogica in in namespaced modulefuncties met moduleServer(). Modules voorkomen ID-botsingen en maken hergebruik van componenten in apps mogelijk.
Les 5 • Shiny-apps testen met shinytest2
Schrijf snapshot- en interactietests met het shinytest2-pakket om regressies op te sporen. Geautomatiseerde tests zijn essentieel voordat bijgewerkte apps naar productie worden geïmplementeerd.
Hoofdstuk 7VerbergenVerberg detailsBekijk detailsPrestaties en schaalbaarheid
Prestaties en schaalbaarheid
Les 1 • Gegevens en weergave optimaliseren
Verminder de hoeveelheid gegevens die naar de browser worden verzonden door server-side vooraf te aggregeren en efficiënte uitvoerformaten te gebruiken. Kleinere payloads verbeteren direct de time-to-interactive voor eindgebruikers.
Les 2 • Asynchroon programmeren met promises
Verplaats trage bewerkingen naar achtergrondprocessen met de pakketten promises en future. Asynchrone uitvoering voorkomt dat een trage query van één gebruiker alle andere sessies blokkeert.
Les 3 • App-prestaties profileren
Gebruik profvis en reactlog om trage reactieve ketens en weergaveknelpunten te identificeren. Profileren vóór optimaliseren voorkomt verspilde moeite aan niet-kritische codepaden.
Les 4 • Schalen met Shiny Server en belastingtesten
Configureer werkprocessen en voer belastingtesten uit met shinyloadtest om capaciteitslimieten te vinden. Belastingtesten vóór de lancering voorkomen uitval onder echt gebruikersverkeer.
Les 5 • Cachen met bindCache en memoise
Pas bindCache() toe op weergavefuncties en memoise() op pure R-functies om overbodige berekeningen te voorkomen. Caching is de optimalisatie met de hoogste hefboomwerking voor data-intensieve apps.
Hoofdstuk 8VerbergenVerberg detailsBekijk detailsImplementatie en productiegereedheid
Implementatie en productiegereedheid
Les 1 • Authenticatie en toegangscontrole
Beperk app-toegang met Posit Connect-machtigingen, shinymanager of OAuth-integraties. Beschermt gevoelige gegevens en voldoet aan beveiligingseisen van de organisatie.
Les 2 • Implementeren op shinyapps.io
Publiceer apps naar het beheerde shinyapps.io-platform met rsconnect en configureer instantie-instellingen. De snelste weg van een lokale app naar een openbaar toegankelijke URL.
Les 3 • Logging en foutbewaking
Implementeer gestructureerde logging met het logger-pakket en leg runtime-fouten vast voor waarschuwingen. Observeerbaarheid is essentieel voor het diagnosticeren van problemen in productie zonder gebruikersrapporten.
Les 4 • Continue implementatiepijplijnen
Automatiseer testen en implementatie met GitHub Actions en rsconnect CLI bij elke codepush. CI/CD elimineert handmatige implementatiestappen en handhaaft kwaliteitsdrempels.
Les 5 • Zelfgehoste implementatieopties
Implementeer apps op Posit Connect of open-source Shiny Server op Linux virtuele machines. Zelfhosten biedt de gegevensresidentiecontrole die veel organisaties vereisen.
Jouw geldig certificaat van voltooiing
Deze cursus is voor jou:
Data-analisten: klaar om statische exporten te vervangen door interactieve, deelbare tools.
Academische onderzoekers: die bevindingen willen delen via verkennbare, browsergebaseerde interfaces.
Ontwikkelaars van business intelligence: die R-native app-levering aan hun vaardigheden willen toevoegen.
R-programmeurs: gretig om verder te gaan dan scripts naar gestructureerde, inzetbare applicatiecode.
Statistici: die een praktische manier nodig hebben om klanten modellen te laten verkennen zonder code te schrijven.
Carrièreswitchers: die datarollen betreden en een concreet, aantoonbaar full-stack project willen.
Wat onze studenten zeggen
Jullie lessen zijn perfect. Ik heb het jaarpakket aangeschaft en heb eindelijk de mogelijkheid om verschillende onderwerpen die mij interesseren te volgen zonder van platform te hoeven wisselen... bedankt voor alles wat jullie doen, ik heb jullie al aan anderen aanbevolen...

Ik vind het fijn hoe de lessen direct ter zake zijn en hoe ik tussen hoofdstukken kan wisselen en content kan overslaan die ik niet nodig heb.

Ik vind de content en de manier van presenteren en transcriptie van video's geweldig, wat het proces versnelt!

Het platform is snel en eenvoudig te gebruiken. De diversiteit aan content en de aanvullende video's helpen enorm bij het leren.

Belangrijkste opleidingen
FAQ
Wie is Dedika?
Is het certificaat geldig in Nederland?
Zijn de cursussen gratis?
Wat is de studielast van de cursus?
Hoe zien de cursussen eruit?
Hoe werken de cursussen?
Wat is de duur van de cursussen?
Wat zijn de kosten of prijzen van de cursussen?
Wat is een EAD- of online cursus en hoe werkt het?
PDF-cursus




















