ΣΤΟΧΕΥΜΕΝΟ ΚΟΙΝΟ
Αυτή η εφαρμογή έχει δημοσιευτεί για προγραμματιστές που ακολουθούν το έργο WebFX και αποτελεί μέρος των επιδείξεων του έργου.
ΓΙΑ ΝΕΟ ΚΟΙΝΟ
Το WebFX είναι μια δωρεάν, ανοιχτού κώδικα λύση πολλαπλών πλατφορμών που μπορεί να στοχεύσει 7 πλατφόρμες (Web, Android, iOS, macOS, Linux, Windows & ενσωματώσεις όπως το Raspberry Pi) από μια ενιαία βάση κώδικα Java.
Υποκείμενες τεχνολογίες: OpenJFX, Gluon & GWT.
Για παράδειγμα, μπορείτε να επισκεφτείτε την έκδοση web της ίδιας εφαρμογής στη διεύθυνση https://raytracer.webfx.dev
Όποια και αν είναι η πλατφόρμα, ο πηγαίος κώδικας της εφαρμογής είναι ακριβώς ο ίδιος (δείτε την ενότητα ΣΥΝΔΕΣΜΟΙ παρακάτω για πρόσβαση στον πηγαίο κώδικα αυτής της επίδειξης).
Η εφαρμογή είναι γραμμένη σε Java και χρησιμοποιεί το JavaFX API για τη δημιουργία της διεπαφής χρήστη.
Η αλυσίδα εργαλείων Gluon (χτισμένη πάνω από το GraalVM) χρησιμοποιείται για τη μεταγλώττιση του κώδικα Java της εφαρμογής σε μια εγγενή εφαρμογή για όλες τις πλατφόρμες εκτός από τον Ιστό (άρα περιλαμβάνει αυτήν την έκδοση Android).
Το GWT χρησιμοποιείται για τη μεταγλώττιση της έκδοσης Web. Μετατρέπει τον κώδικα Java σε έναν βελτιστοποιημένο κώδικα JavaScript.
Ως αποτέλεσμα, όλα τα εκτελέσιμα σε όλες τις πλατφόρμες προσφέρουν βελτιστοποιημένες επιδόσεις.
ΣΧΕΤΙΚΑ ΜΕ ΑΥΤΟ ΤΟ ΣΥΓΚΕΚΡΙΜΕΝΟ DEMO
Αυτή η επίδειξη δείχνει ένα παράδειγμα εφαρμογής που δεν αποκλείει τη διεπαφή χρήστη παρά τη μεγάλη χρήση της CPU, και αυτό σε οποιαδήποτε πλατφόρμα (ακόμη και στον Ιστό).
Ενώ η εφαρμογή υπολογίζει την ανίχνευση ακτίνων, η διεπαφή χρήστη εξακολουθεί να είναι αντιδραστική, μπορείτε ακόμη και να αναπαράγετε την κινούμενη εικόνα που έχει υπολογιστεί μέχρι τώρα ενώ συνεχίζει τον υπολογισμό στο παρασκήνιο.
Αυτό επιτυγχάνεται χρησιμοποιώντας το WebFX Worker API, το οποίο μεταφράζεται σε πραγματικούς Εργάτες Ιστού για την πλατφόρμα Ιστού και τυπικά νήματα Java για άλλες πλατφόρμες.
ΣΥΝΔΕΣΕΙΣ
Πηγαίος κώδικας επίδειξης: https://github.com/webfx-demos/webfx-demo-raytracer
Ιστότοπος WebFX: https://webfx.dev
WebFX GitHub: https://github.com/webfx-project/webfx