Το Jetpack Compose for Desktop προσθέτει Swing layer και υποστήριξη Apple Silicon

Η JetBrains κυκλοφόρησε μια νέα έκδοση του Jetpack Compose for Desktop, ενός πλαισίου ανάπτυξης διεπαφής χρήστη ανοιχτού κώδικα μεταξύ πλατφορμών.

Εάν κάνετε οποιαδήποτε εργασία ανάπτυξης, πιθανότατα έχετε ακούσει για το JetBrains. Είναι η εταιρεία πίσω από την τεράστια σουίτα IDE που περιλαμβάνει το IntelliJ (η βάση για το Android Studio), το CLion, το PhpStorm και πολλά άλλα. Είναι και αυτοί που έφτιαξαν Κότλιν, η εξαιρετικά δημοφιλής γλώσσα προγραμματισμού πολλαπλών πλατφορμών.

Και η JetBrains επιστρέφει ξανά σε αυτό. Πριν από λίγο περισσότερο από ένα χρόνο, η Google παρουσίασε μια νέα μηχανή διάταξης για Android που ονομάζεται Jetpack Compose. Έχει περάσει αρκετές σημαντικές αλλαγές από τότε, αλλά έχει μετατραπεί σε μια ικανή (αν και ακόμα κάπως ασταθής) εναλλακτική στις κλασικές διατάξεις XML του Android.

Τι σχέση έχει το Jetpack Compose με το JetBrains; Λοιπόν, για ένα, είναι γραμμένο σε Kotlin. Αλλά επίσης, η JetBrains εργάζεται σιωπηλά για τη μεταφορά του Compose στον χώρο της επιφάνειας εργασίας. Ήταν δημόσια ως μια πρώιμη προεπισκόπηση προγραμματιστή και τώρα η JetBrains είναι έτοιμη να ανακοινώσει επίσημα ότι υπάρχει.

Τι είναι το Jetpack Compose;

Μίλησα για αυτό λίγο στην εισαγωγή, αλλά νομίζω ότι αξίζει περισσότερη εξήγηση. Αν έχετε αναπτύξει στο Android στο παρελθόν, πιθανότατα έχετε συνηθίσει τον τρόπο λειτουργίας των διατάξεων. Αρχικά, σχεδιάζετε τη διάταξή σας σε ένα αρχείο XML και, στη συνέχεια, αλληλεπιδράτε με αυτήν τη διάταξη από Java ή Kotlin. Αν και είναι λειτουργικό, είναι λίγο ξεπερασμένο και η διαχείριση των διατάξεών σας σε διαφορετικές γλώσσες μπορεί να είναι δύσκολη.

Ως εναλλακτική λύση σε αυτό, η Google άρχισε να αναπτύσσει το Jetpack Compose. Το Compose είναι μια μηχανή διάταξης για Android χτισμένη πάνω στο Kotlin. Όλη η διάταξη και ο λογικός σας κώδικας βρίσκονται σε ένα μέρος, γεγονός που κάνει τη διαδραστικότητα πολύ πιο εύκολη. Είναι επίσης δηλωτικό, αντί για το επιτακτικό στυλ των διατάξεων XML.

Η μετάβαση σε μια μηχανή δηλωτικής διάταξης από μια επιτακτική μπορεί να χρειαστεί λίγη εξοικείωση, αλλά το Compose είναι σίγουρα μια βελτίωση σε σχέση με την XML, παρόλο που βρίσκεται ακόμα στα αρχικά της στάδια.

Jetpack Compose για Desktop

Έτσι, το Compose είναι μια ωραία εναλλακτική διάταξης για εγγενείς εφαρμογές Android. Αλλά δεν είναι (συνήθως) cross-platform. Εκεί μπαίνει το JetBrains. Η εταιρεία έχει μεταφέρει το Jetpack Compose στον χώρο της επιφάνειας εργασίας, με υποστήριξη για Windows, Linux και macOS (τόσο Intel όσο και ARM).

Ενώ υπάρχουν άλλες μηχανές διάταξης που υπάρχουν για επιτραπέζιους υπολογιστές, όπως Electron, JavaFX και UWP, είναι λίγο χάος αυτή τη στιγμή. Ορισμένες δεν είναι πολλαπλές πλατφόρμες, επομένως λειτουργούν μόνο σε ένα συγκεκριμένο λειτουργικό σύστημα. Άλλα είναι τεχνικά cross-platform, αλλά απαιτούν πολλή δουλειά για να διανεμηθούν. Και παρόλα αυτά, άλλα είναι απλά ένας πόνος για να δουλέψεις, όπως το JavaFX.

Το Jetpack Compose for Desktop, από την άλλη πλευρά, είναι σχετικά εύκολο στη χρήση, υποστηρίζει κλιμάκωση οθόνης, έχει ενσωματωμένο στυλ και είναι (σχεδόν) πλήρως cross-platform. Ενώ δεν μπορείτε ακόμη να κάνετε μεταγλώττιση για όλες τις διανομές από ένα λειτουργικό σύστημα, ο ίδιος ο κώδικας είναι εντελώς φορητός. Ακριβώς όπως με το Android, μια συσκευασμένη εφαρμογή βασίζεται σε Java, αν και οι χρήστες δεν χρειάζονται εγκατεστημένο JDK για να τη χρησιμοποιήσουν.

Διασταυρούμενη συμβατότητα

Δεδομένου ότι το Compose for Desktop είναι ακόμα νέο, λείπουν ορισμένες λειτουργίες. Για να βοηθήσει τους προγραμματιστές να αντιμετωπίσουν αυτούς τους περιορισμούς, το Compose for Desktop είναι διαλειτουργικό με δύο από τις πιο δημοφιλείς μηχανές διάταξης Java, το JavaFX και το Swing. Εάν έχετε μια εφαρμογή για επιτραπέζιους υπολογιστές που έχει αναπτυχθεί σε έναν (ή και στους δύο) από αυτούς τους κινητήρες, μπορείτε να ξεκινήσετε τη μετάβαση στο Compose διατηρώντας την τρέχουσα βάση κωδικών σας.

Android + Desktop

Τι γίνεται αν θέλετε να μεταφέρετε την εφαρμογή Compose Android στον υπολογιστή σας; Λοιπόν, μπορείτε επίσης (κάπως) να το κάνετε αυτό. Τα στοιχεία διεπαφής χρήστη της εφαρμογής σας μπορούν εύκολα να μοιραστούν μεταξύ Android και επιτραπέζιου υπολογιστή. Δεν θα μπορείτε να μοιραστείτε τα πάντα, αλλά σίγουρα διευκολύνει την ανάπτυξη.

Υποστήριξη Apple Silicon

Το ανέφερα παραπάνω, αλλά θα το αναφέρω ξανά. ο νέα Apple Silicon Mac είναι αρκετά εκπληκτικοί, αλλά οι επεξεργαστές βασίζονται στην αρχιτεκτονική της CPU ARM, πράγμα που σημαίνει ότι πολλές εφαρμογές macOS τρέχουν αυτήν τη στιγμή μέσω του μεταφραστή Rosetta 2 x86. Ενώ η Apple έκανε πολύ καλή δουλειά με αυτήν τη μετάφραση, τα εγγενή προγράμματα ARM θα εξακολουθούν να λειτουργούν καλύτερα.

Λοιπόν, το Jetpack Compose for Desktop υποστηρίζει εγγενώς το Apple Silicon. Αυτό σημαίνει ότι δεν θα χρειάζεται να ανησυχείτε για πτώση απόδοσης από τη μετάφραση ή για μελλοντική υποστήριξη όταν η Apple τη διακόψει.

Λειτουργικότητα

Λοιπόν, είναι πολύ καλό που η JetBrains έφτιαξε μια νέα μηχανή διάταξης για επιτραπέζιους υπολογιστές, αλλά ποιος θα πει ότι είναι καλύτερο από αυτό που έχουμε τώρα;

Μου.

Χρησιμοποίησα την πιο πρόσφατη διαθέσιμη έκδοση κατά τη σύνταξη αυτού του (0.2.0-build132) για να φτιάξω μια απλή εφαρμογή εκχώρησης αδειών για το SystemUI Tuner. Επειδή δεν είμαι τόσο εξοικειωμένος με το Compose και το declarative design, ήταν λίγο πιο δύσκολο για μένα από μια εφαρμογή XML-layout, αλλά το έκανα. Και είναι πολύ πιο εύκολο στη χρήση από το JavaFX.

Ενώ η υποστήριξη θεμάτων (δηλαδή η σκοτεινή λειτουργία) εξακολουθεί να είναι λίγο ανήσυχη, είναι πολύ εύκολο να δημιουργήσετε μια διαδραστική διάταξη και εκτός από μερικά τρεμοπαίζει κατά την αλλαγή μεγέθους του παραθύρου, όλα λειτουργούν καλά.

Εάν θέλετε να ελέγξετε την εφαρμογή, ο πηγαίος κώδικας είναι διαθέσιμος GitHub. Απλώς εισάγετέ το με το IntelliJ ή το Android Studio και θα πρέπει να είναι έτοιμο για εκτέλεση.


Προσωπικά, είμαι πολύ ενθουσιασμένος με το Jetpack Compose for Desktop. Δεν ήξερα καν ότι υπήρχε πριν, αλλά είναι ήδη η μηχανή διάταξης επιφάνειας εργασίας της επιλογής μου. Μπορείτε να μάθετε περισσότερα για το Ιστότοπος Jetpack Compose for Desktop ή στο GitHub.

Τι πιστεύετε γι 'αυτό; Αξίζει να το ελέγξετε και ίσως να το χρησιμοποιήσετε αντί για άλλα διαθέσιμα πλαίσια; Ενημέρωσέ με!

Επιλεγμένες πιστώσεις εικόνων: JetBrains στο GitHub