Inleiding
Voor het programma is een java frontend nodig, zodat het gebruikt kan worden door een eindgebruiker via een exe bestand. Hiervoor zijn meerdere opties mogelijk, zoals JavaFX of Swing. Dit moet vroeg besloten worden omdat het onwikkelen van een frontend handig is om dingen te presenteren aan de product owner, en het duurt lang, dus is het beter om dit te ontwikkelen aan het begin van het project.
De hoofdvraag is dus Kunnen wij beter JavaFX of Swing als java frontend framework gebruiken om een nieuwe versie van rokade te maken?
Dit kan worden opgedeeld in de volgende deelvragen:
Wat is JavaFX?
Wat is Swing?
Wat zijn de voor en nadelen van JavaFX?
Wat zijn de voor en nadelen van Swing?
Wat is het verschil tussen JavaFX en Swing?
Wat is JavaFX?
JavaFX is een softwareplatform en framework voor het maken en leveren van desktoptoepassingen en zogenaamde rich internet applications (RIAs) die kunnen worden uitgevoerd op verschillende apparaten. Het is de opvolger van de Swing GUI-toolkit die voorheen werd gebruikt voor het maken van Java-desktoptoepassingen.
JavaFX biedt een set grafische en mediapakketten waarmee ontwikkelaars visueel aantrekkelijke gebruikersinterfaces kunnen ontwerpen en creëren, evenals ondersteuning voor functies zoals animatie, audio- en videoweergave, 3D-graphics en meer.
Belangrijke kenmerken van JavaFX zijn onder meer:
1. **Rijke gebruikersinterfacecomponenten:** JavaFX biedt een uitgebreide set UI-componenten zoals knoppen, tekstvelden, tabellen, lijsten, grafieken en meer, die kunnen worden aangepast en gestileerd om moderne en visueel aantrekkelijke gebruikersinterfaces te creëren.
2. **FXML:** JavaFX ondersteunt FXML (FXML Markup Language), een op XML gebaseerde taal voor het definiëren van gebruikersinterfaces. FXML stelt ontwikkelaars in staat om het lay-out- en presentatiegedeelte van de UI te scheiden van de toepassingslogica, waardoor het eenvoudiger wordt om complexe UI's te ontwerpen en te onderhouden.
3. **CSS-styling:** JavaFX maakt het mogelijk om UI's te stylen met behulp van CSS (Cascading Style Sheets), waardoor eenvoudige aanpassing en thematisering van toepassingen mogelijk is.
4. **Scene Graph:** JavaFX gebruikt een scene graph-API voor het renderen van 2D- en 3D-graphics. De scene graph is een hiërarchische boomstructuur die de visuele elementen van de UI van een applicatie vertegenwoordigt, waardoor het eenvoudig is om UI-componenten te manipuleren en te animeren.
5. **Mediaweergave:** JavaFX biedt ingebouwde ondersteuning voor het afspelen van audio- en videobestanden, evenals voor het vastleggen en streamen van media-inhoud.
6. **Integratie met Java:** JavaFX is volledig geïntegreerd met de Java-programmeertaal, waardoor ontwikkelaars bestaande Java-bibliotheken en -frameworks kunnen benutten in hun JavaFX-toepassingen.
Kortom biedt JavaFX een krachtig en veelzijdig platform voor het bouwen van cross-platform desktop- en webtoepassingen met rijke gebruikersinterfaces en multimediatoepassingen.
Wat is Swing?
Wat zijn de voor en nadelen van JavaFX?
Wat zijn de voor en nadelen van Swing?
Wat is het verschil tussen JavaFX en Swing?
Conclusie
Bronnen
Oud
Oud
Oud
Oud
Oud
Restful API
Een restful api is een serverapplicatie die requests kan handlen die het krijgt van een clientapplicatie, vaak een browser. Als de applicatie ontwikkeld zou worden als een RESTful server applicatie zou er een website bij ontwikkeld moeten worden die de server requests en responses verwerkt met behulp van javascript of PHP. Hiervoor is dus een website nodig, en een host machine.
Voor en nadelen van een Restful API
Voordelen:
- Een user interface kan gemaakt worden met behulp van HTML en CSS, wat erg goed te stijlen is. Het kan dus precies gemaakt worden volgens de wensen van de opdrachtgever.
- Een HTML frontend is makkelijker om responsive te maken, en dit maakt het gebruik op allerlijk soorten devices mogelijk.
- Het is veel modulairder, met een goede specification kan iedereen een andere frontend ontwikkelen.
- Het is eenvoudiger om een beveiligde database connectie te leggen, omdat de database op dezelfde machine gehost kan worden als de API.
- Alle teamgenoten zijn al bekend met RESTful apis en HTML frontends
Nadelen:
- Er moet een website ontwikkeld worden die los staat van de applicatie.
- Er moet extra beveiliging gemaakt worden om de webapp te beveiligen tegen ongewenste gebruikers.
- Er moet meer gehost worden dan alleen een database.
- De webapp zou eventueel compatible gemaakt moeten worden met de bestaande wordpress website.
Beste keus voor een RESTful API
Bijna alle teamleden zijn al bekend met Jakarta EE Wildfly, maar er zijn ook andere opties zoals Spring of andere frameworks die aan de stack toe te voegen zijn. De belangrijkste technische keuzes die bij deze optie horen zijn de keuzes voor de frameworks die gebruikt worden voor de frontend, vooral de javascript frameworks om de JSON objecten correct af te handelen. Hier zou ook een onderzoek voor gedaan moeten worden.
Standalone GUI framework
De oude versie van Rokade is een standalone Delphi applicatie. De eisen van de opdrachtgever kunnen ook opgelost worden door het net als Rokade een standalone applicatie te maken met een GUI framework binnen Java.
Voor en nadelen van een GUI framework
Voordelen:
- Een standalone applicatie kan eenvoudiger geconfigured worden voor een individuele user.
- De gebruikers van de applicatie zijn al bekend met het gebruiken van een standalone applicatie.
- Frameworks als JavaFX zijn ook met CSS te stylen.
- Als een open source project zijn standalone applicaties makkelijker om aan te passen.
Nadelen:
- De meeste teamleden zijn niet bekend met GUI frameworks in Java.
Beste keus voor een GUI framework
Oracle heeft zelf een framework hiervoor die ingebouwd zit in openJDK, JavaFX. Hiervoor zijn ook plugins voor IntelJ om het ontwikkelen te stroomlijnen. Als alternatief op JavaFX zou Swing gebruikt kunnen worden, maar JavaFX was bedoelt als een opvolger op Swing