Το Jetpack Compose, η εργαλειοθήκη διεπαφής χρήστη της Google για την ανάπτυξη εφαρμογών Android, είναι πλέον στο alpha. Είναι πλήρως διαλειτουργικό με τα τυπικά Views του Android.
Όσον αφορά την ανάπτυξη μιας εφαρμογής, υπάρχουν πολλοί τρόποι για να το κάνετε. Μπορείτε να επιλέξετε για ποιες πλατφόρμες θα αναπτύξετε, ποιες γλώσσες προγραμματισμού θέλετε να χρησιμοποιήσετε και πολλά άλλα.
Πίσω το φθινόπωρο του 2019, η Google εισήχθη ένα νέο πλαίσιο για τη δημιουργία διεπαφής χρήστη στο Android, χρησιμοποιώντας το Kotlin. Μέχρι τώρα, βρισκόταν σε αναπτυξιακή κατάσταση, με συχνές αλλαγές και πολλά χαρακτηριστικά που λείπουν. Αλλά σήμερα, η Google έχει ωθήσει το Jetpack Compose στην κατάσταση έκδοσης άλφα, που σημαίνει ότι είναι ένα βήμα πιο κοντά στη χρήση του σε έργα ποιότητας παραγωγής.
Τι είναι το Jetpack Compose;
Κατά τη δημιουργία μιας εφαρμογής Android, υπάρχουν συνήθως δύο κύρια στοιχεία που πρέπει να αντιμετωπίσετε: ο κώδικας, για πράγματα που βασίζονται στη λογική. και το XML, για διατάξεις. Από προεπιλογή, το Android χρησιμοποιεί Java για κώδικα και το δικό του σύνολο ετικετών XML για διατάξεις.
Για πολλούς, η Java και η XML είναι μια χαρά, ειδικά για απλούστερες εφαρμογές. Αλλά και τα δύο συστήματα έχουν τους περιορισμούς και τις ενοχλήσεις τους. Με την εισαγωγή του Kotlin ως αν επίσημος (και συνιστώμενη) γλώσσα για ανάπτυξη Android, η κωδικοποίηση της δημιουργίας μιας εφαρμογής Android αναμφισβήτητα έγινε πολύ πιο εύκολη. Με τις εύχρηστες λειτουργίες του Kotlin, όπως η ενσωματωμένη προστασία null και οι λειτουργίες επέκτασης, ο κώδικας φαίνεται πιο καθαρός και είναι πιο ευανάγνωστος.
Αλλά ο Kotlin δεν άλλαξε τίποτα με τις διατάξεις του Android. Για να δημιουργήσετε μια περίπλοκη διάταξη, έπρεπε ακόμα να δημιουργήσετε ένα αρχείο XML και να το σχεδιάσετε εκεί. Αυτό έχει μερικά αξιοσημείωτα μειονεκτήματα, συμπεριλαμβανομένου του εγγενούς διαχωρισμού μεταξύ του κώδικα και της XML. Εάν έχετε μια σταθερή συμβολοσειρά στον κώδικά σας, για παράδειγμα, δεν μπορείτε να την αναφέρετε μόνο από XML, οπότε αν αυτή η συμβολοσειρά αλλάξει σε κώδικα, πρέπει να θυμάστε να την ενημερώσετε και σε XML.
Εισαγάγετε το Jetpack Compose. Αυτή είναι η απάντηση της Google στην ολοένα και πιο δύσκολη διαδικασία σχεδίασης διάταξης XML στο Android. Αντί να σχεδιάζετε τη διεπαφή χρήστη της εφαρμογής σας σε XML, μπορείτε να το κάνετε απευθείας από τον κώδικά σας. Ενώ είναι δυνατή η δημιουργία διατάξεων που βασίζονται σε κώδικα, είναι συνήθως λιγότερο διατηρούμενες από την XML και περιλαμβάνουν βιβλιοθήκες που σπάνε εύκολα. Το Compose, από την άλλη πλευρά, έχει σχεδιαστεί για να λειτουργεί απευθείας μέσα στο Kotlin: όχι άλλο XML.
Το Jetpack Compose είναι επίσης μια αρκετά ριζική απόκλιση από την τυπική επιτακτική σχεδίαση των διατάξεων XML. Αντίθετα, μοιάζει περισσότερο με το React ή το Flutter, με δηλωτικές διατάξεις που ενημερώνονται όταν αλλάζουν δεδομένα, αντί να βασίζονται στον προγραμματιστή για την εφαρμογή αυτής της λογικής.
Τι υποστηρίζεται
Έτσι, το Jetpack Compose είναι τώρα στο alpha. Τι σημαίνει αυτό? Λοιπόν, πολλά πράγματα.
Διαλειτουργικότητα με Views
Ακριβώς όπως το Kotlin είναι πλήρως διαλειτουργικό με Java, το Jetpack Compose είναι πλήρως διαλειτουργικό με τα τυπικά Views του Android. Αυτό σημαίνει αρκετά πράγματα.
Για ένα, θα είναι πολύ πιο εύκολο να κάνετε μετεγκατάσταση στο Jetpack Compose, αν το θέλετε. Αντί να χρειάζεται να μετατρέψετε όλες τις προσαρμοσμένες προβολές και διατάξεις σας σε Composables, θα μπορείτε απλώς να κάνετε τις νέες διατάξεις και τα στοιχεία σας στο Compose. Έχετε μια βιβλιοθήκη που χρησιμοποιεί "παλαιού τύπου" Προβολές, αλλά η εφαρμογή σας έχει σχεδιαστεί με Σύνθεση; Κανένα πρόβλημα. Μπορείτε να προσθέσετε την Προβολή απευθείας στη συνάρτηση Composable. Δεν έχετε κάνει ακόμα το άλμα στο Compose, αλλά θέλετε να χρησιμοποιήσετε μια βιβλιοθήκη που βασίζεται σε Composables; Και πάλι, κανένα πρόβλημα. Απλώς βάλτε το Composable απευθείας στη διάταξή σας.
Όσο για το θέμα, δεν είναι τόσο plug-and-play όσο η διαλειτουργικότητα διάταξης. Ωστόσο, Η Google έφτιαξε μια βιβλιοθήκη για να προσαρμόσετε τα τυπικά θέματα XML σας σε θέματα συμβατά με τη Σύνθεση, βοηθώντας να κρατήσετε τα πράγματα κεντρικά και να αποφύγετε την αντιγραφή.
Κινούμενα σχέδια
Δεν υπάρχουν πραγματικά πολλά να πούμε εδώ, εκτός από το ότι το Jetpack Compose υποστηρίζει κινούμενα σχέδια, όπως το πλαίσιο προβολής του Android. Μπορείτε να μετακινήσετε, να αλλάξετε το μέγεθος και να περιστρέψετε ανάλογα με την καρδιά σας.
Λίστες τεμπέλης
Μια τεμπέλης λίστα είναι ουσιαστικά η έκδοση του Compose για ένα RecyclerView. Τοποθετεί μόνο αντικείμενα όπως χρειάζεται, εξοικονομώντας RAM και αυξάνοντας την απόδοση. Φυσικά, όταν πρόκειται για Σύνταξη, οι λίστες είναι πολύ πιο απλές στην εφαρμογή.
ConstraintLayout
Ένα από τα πιο ισχυρά Views στο Android είναι το ConstraintLayout. Αυτό σας επιτρέπει να τοποθετείτε, το μέγεθος και το βάρος των παιδιών να προβάλλει η μία σε σχέση με την άλλη, ενώ παράλληλα διευκολύνει ορισμένες κινούμενες εικόνες. Αν ανησυχούσατε μήπως χάσετε αυτήν τη λειτουργικότητα στο Compose, δεν θα έπρεπε, γιατί είναι και εδώ.
Υλικά UI Components
Ένα άλλο σύνολο ισχυρών προβολών είναι η βιβλιοθήκη Material Components της Google. Τα περισσότερα από αυτά που υπάρχουν εδώ είναι τυπικές προβολές και διατάξεις που μπορείτε να βρείτε στο εγγενές πλαίσιο προβολής. Αλλά έχουν τροποποιηθεί ή τυλιγμένα για να παρέχουν επιπλέον λειτουργικότητα και να διευκολύνουν τη δημιουργία θεμάτων, ενώ έχουν φτάσει και στο Compose.
Δοκιμές
Ένα σημαντικό μέρος της ανάπτυξης μιας εφαρμογής είναι η δοκιμή της. Για μια απλή εφαρμογή, θα μπορούσατε να το κάνετε χειροκίνητα εγκαθιστώντας και χρησιμοποιώντας την. Ωστόσο, τα πιο σύνθετα έργα μπορούν να ωφεληθούν πολύ από τα αυτοματοποιημένα πλαίσια δοκιμών που κάνουν το μεγαλύτερο μέρος της σκληρής δουλειάς για εσάς. Το Jetpack Compose υποστηρίζει αυτοματοποιημένες δοκιμές, ώστε να μπορείτε να κάνετε την εφαρμογή σας όσο το δυνατόν πιο σταθερή.
Δυνατότητες προσβασιμότητας
Η προσβασιμότητα είναι ένα σημαντικό μέρος της κοινωνίας μας. Χωρίς λειτουργίες προσβασιμότητας στην τεχνολογία μας, πολλοί άνθρωποι απλώς θα αποκλείονταν από τα οφέλη που παρέχουν τα τηλέφωνα, οι τηλεοράσεις μας και οτιδήποτε άλλο. Το Jetpack Compose είναι ακόμα στο alpha, επομένως η υποστήριξη προσβασιμότητας δεν είναι πλήρης, αλλά η Google το έχει υπόψη κατά τη διάρκεια της ανάπτυξης και υπάρχει ήδη στοιχειώδης υποστήριξη.
Android Studio
Ωστόσο, δεν υπάρχουν όλες οι δυνατότητες του Jetpack Compose στο ίδιο το Jetpack Compose. Το Android Studio και το Kotlin διαθέτουν επίσης πρόσθετα και επεκτάσεις για ευκολότερη Σύνταξη.
Πρόσθετο μεταγλωττιστή Kotlin
Όπως και με το Kotlin JVM, υπάρχει μια προσθήκη μεταγλωττιστή στο Android Studio για τη σωστή μετατροπή των συναρτήσεων Compose σε κώδικα που το Android μπορεί πραγματικά να κατανοήσει και να ακολουθήσει.
Διαδραστικές προεπισκοπήσεις
Όπως και με τις τυπικές διατάξεις XML, το Android Studio διαθέτει μια προεπισκόπηση διάταξης για το Jetpack Compose. Αν και αυτή τη στιγμή δεν είναι τόσο βολικό όσο οι προεπισκοπήσεις XML σε ορισμένες πτυχές—πρέπει να δημιουργήσετε το έργο σας για η προεπισκόπηση για ενημέρωση και η δημιουργία μιας αποκλειστικής λειτουργίας προεπισκόπησης—έρχεται με ένα αξιοσημείωτο πλεονέκτημα: διαδραστική προεπισκοπήσεις.
Μια διαδραστική προεπισκόπηση είναι απλώς μια κανονική προεπισκόπηση, αλλά διαδραστικό. Τρελός, το ξέρω. Αυτό σημαίνει, ωστόσο, ότι μπορείτε πραγματικά να πληκτρολογήσετε κείμενο σε πλαίσια κειμένου, να κάνετε κλικ σε κουμπιά και, καλά, να αλληλεπιδράσετε με τα Composables σας, χωρίς καν να χρειάζεται να τα αναπτύξετε.
Single Composable Deployment
Εάν θέλετε πραγματικά να αναπτύξετε (δηλαδή να εγκαταστήσετε) τη διάταξή σας για να δείτε πώς λειτουργεί σε μια πραγματική συσκευή, αυτή η δυνατότητα μπορεί να σας βοηθήσει. Με κανονικές διατάξεις XML, για να δείτε πώς λειτουργεί μια διάταξη στον πραγματικό κόσμο, πρέπει να δημιουργήσετε και να εγκαταστήσετε ολόκληρη την εφαρμογή. Εάν η διάταξη που θέλετε να δοκιμάσετε δεν βρίσκεται στην κύρια οθόνη, μπορεί να κάνετε πολύ πάτημα για να φτάσετε σε αυτήν.
Και εκεί είναι που παίζει ρόλο η δυνατότητα ανάπτυξης μόνο ενός Composable. Αντί να χρειάζεται να δημιουργήσετε και να εγκαταστήσετε την εφαρμογή σας και, στη συνέχεια, να πλοηγηθείτε στη διάταξη που δοκιμάζετε, μπορείτε απλώς να αναπτύξετε τη διάταξη. Το Android Studio θα δημιουργήσει και θα ανοίξει ένα περιτύλιγμα Δραστηριότητα που απλώς εμφανίζει το Composable που αναπτύξατε. Αυτό μπορεί να κάνει τη δοκιμή και τη σχεδίαση πολύ πιο γρήγορη και μπορεί ακόμη και να βοηθήσει στην απομόνωση ζητημάτων που σχετίζονται με την αλληλεπίδραση στοιχείων.
Συμπλήρωση κώδικα
Εάν το IDE σας δεν έχει συμπλήρωση κώδικα, είναι καν IDE; Όχι. Όχι, δεν είναι. Έτσι, φυσικά, το Android Studio υποστηρίζει την πλήρη συμπλήρωση κώδικα για το Jetpack Compose.
Αν και αυτό δεν είναι το μόνο που φέρνει στο τραπέζι το Jetpack Compose, οι παραπάνω δυνατότητες και συμπεριφορά δείχνουν πόσο ισχυρό θέλει η Google να είναι αυτό το πλαίσιο. Και, ενώ είναι ακόμα στο alpha, αυτό είναι ένα βήμα μπροστά από την προηγούμενη κατάσταση «ανάπτυξης». Αν περιμένατε να χρησιμοποιήσετε πραγματικά το Jetpack Compose (όπως ήμουν εγώ), ίσως είναι η ώρα να το δοκιμάσετε ξανά.