Όλα όσα γνωρίζουμε μέχρι στιγμής για τη Dark Mode του Android Q

Η επόμενη έκδοση Android της Google, το Android 10 Q, θα περιλαμβάνει μια σκοτεινή λειτουργία σε όλο το σύστημα. Πώς χειρίζονται τα σκοτεινά θέματα οι εφαρμογές στο Android Q;

Στο δικό μας πρώτη ανάρτηση Αναφέροντας λεπτομερώς τις αλλαγές που βρήκαμε από την υπό ανάπτυξη έκδοση Android Q που αποκτήσαμε, μιλήσαμε εν συντομία για τη σκοτεινή λειτουργία που έχει ενθουσιάσει όλους. Ανακεφαλαιώνοντας, η ενσωματωμένη σκοτεινή λειτουργία της Google στο Android Q μπορεί να ενεργοποιηθεί μέσω μιας νέας επιλογής "Σκοτεινή λειτουργία" στις Ρυθμίσεις οθόνης. Η σκοτεινή λειτουργία μπορεί είτε να είναι πάντα απενεργοποιημένη, πάντα ενεργοποιημένη ή να ενεργοποιηθεί αυτόματα τη νύχτα και να απενεργοποιηθεί το πρωί. Θέματα Dark mode για το SystemUI (πίνακας έντασης ήχου, μενού τροφοδοσίας, πλαίσιο Γρήγορων ρυθμίσεων, ειδοποιήσεις), εφαρμογή Ρυθμίσεις και πλαίσιο (χρώμα έμφασης, κ.λπ.).

Πάνω: Σκοτεινή λειτουργία στο Android Q στο Google Pixel 3 XL. Παρακάτω: Ανοιχτό θέμα στο Android Pie στο Google Pixel 2 XL.

Ωστόσο, η Google δεν θέλει απλώς τα στοιχεία συστήματος να έχουν σκούρο θέμα. Εργάζονται επίσης για να διασφαλίσουν ότι όλες οι εφαρμογές πρώτου κατασκευαστή υποστηρίζουν τη σκοτεινή λειτουργία όταν ο χρήστης γυρίζει το διακόπτη. Οι εφαρμογές Google όπως Μηνύματα, Τηλέφωνο, Επαφές, Νέα, Παίξε παιχνίδια, YouTube, Χάρτες, και άλλα έχουν ενημερωθεί με εναλλαγές σκοτεινής λειτουργίας προς το χρήστη, ενώ σε άλλες εφαρμογές αρέσει Google Chrome εξακολουθούν να εξαλείφουν τυχόν παραμορφώσεις πριν από το Google I/O 2019. Η Google έχει επίσης αρχίσει να ενθαρρύνει τρίτους προγραμματιστές εφαρμογών να αγκαλιάζει σκοτεινά θέματα στις εφαρμογές τους, επειδή η εταιρεία παραδέχεται ότι είναι εξαιρετικές για τη διάρκεια ζωής της μπαταρίας (τουλάχιστον σε smartphone με οθόνες OLED.)

Για να βοηθήσει τους προγραμματιστές να ενημερώσουν τις εφαρμογές τους με υποστήριξη για τη σκοτεινή λειτουργία του Android Q, η Google παρέχει μια νέα Επιλογή προγραμματιστή που φαίνεται να αναγκάζει όλες τις εφαρμογές να αλλάξουν σε σκοτεινή λειτουργία. Αυτή η επιλογή δεν προορίζεται για χρήστες που θέλουν να κάνουν όλα τα πράγματα σε σκοτεινή λειτουργία, επειδή είναι δύσκολο για το σύστημα να επιλέξει τα σωστά χρώματα για όλες τις εφαρμογές που δεν έχουν εγγενή σκοτεινή λειτουργία. Ευτυχώς, η Google έχει ήδη θέσει τις βάσεις για τις εφαρμογές να υποστηρίζουν σκοτεινές λειτουργίες και υπάρχουν ήδη πολλές εφαρμογές που φαίνονται καλά με την επιλογή παράκαμψης σκοτεινής λειτουργίας του Android Q ενεργοποιημένη, ακόμα κι αν η εφαρμογή δεν διαθέτει σκοτεινή λειτουργία που βλέπει τον χρήστη μεταβάλλω. Ακολουθεί μια συλλογή από στιγμιότυπα οθόνης από 24 διαφορετικές εφαρμογές που δείχνουν πώς φαίνονται όταν τους επιβάλλεται μια σκοτεινή λειτουργία χρησιμοποιώντας την εναλλαγή παράκαμψης σκοτεινής λειτουργίας του Android Q. Δεν θα φαίνονται όλες οι εφαρμογές τόσο καλές, όπως θα σας δείξω παρακάτω.

Εφαρμογή Dark Mode στο Android Q

Στο επίπεδο API 8 (Android 2.2 Froyo), παρουσίασε η Google - νυχτερινά προκριματικά για πόρους. Οι προγραμματιστές εφαρμογών θα μπορούσαν να αλλάξουν μεταξύ λειτουργίας ημέρας και νύχτας χρησιμοποιώντας το setNightMode in UiModeManager. Ωστόσο, το setNightMode απαιτεί η συσκευή να είναι σε λειτουργία αυτοκινήτου ή σε λειτουργία βάσης σύνδεσης, εάν η συσκευή βρίσκεται σε επίπεδο API 22 ή χαμηλότερο. AppCompat v23.2 έφερε την εφαρμογή DayNight, επιτρέποντας σε εφαρμογές όπως οι πελάτες Reddit να αλλάζουν αυτόματα μεταξύ των θεμάτων ημέρας και νύχτας με βάση την ώρα της ημέρας χρησιμοποιώντας το AppCompatDeletegate.setDefaultNightMode(). Το επίπεδο API 28 (Android 9 Pie) έγινε MODE_NIGHT_FOLLOW_SYSTEM (η προεπιλεγμένη τιμή του setDefaultNightMode()) ακολουθεί τη ρύθμιση συστήματος που ορίζεται από τον χρήστη στις Ρυθμίσεις --> Επιλογές προγραμματιστή --> Νυχτερινή λειτουργία. Η Google είναι που εργάζονται για βελτιώσεις στο DayNight API στο AppCompat, ειδικά σε σχέση με "συχνά προβλήματα" όπως προβλήματα με το WebView. Τέλος, η Google έχει ενεργοποιήσει ανίχνευση νυχτερινής λειτουργίας και έχει αποκλεισμένες εφαρμογές χωρίς το MODIFY_DAY_NIGHT_MODE υπογραφή/προνομιακή άδεια στο πλαίσιο του Android Q. Η τελευταία αλλαγή σημαίνει ότι οι εφαρμογές δεν μπορούν πλέον να τροποποιήσουν τη νυχτερινή λειτουργία σε όλο το σύστημα, κάτι που επέτρεψε σε ένα πρόσφατο σφάλμα του Messages να μπερδέψει τους χρήστες στο Android Pie.

Εκσυγχρονίζω: Ενα εκσυγχρονίζω στο AndroidX Η βιβλιοθήκη υποστήριξης θα διευκολύνει τους προγραμματιστές να ενεργοποιούν αυτόματα τις σκοτεινές λειτουργίες στις εφαρμογές τους όταν η συσκευή εισέρχεται σε λειτουργία εξοικονόμησης μπαταρίας.

Επιβολή σκοτεινής λειτουργίας στο Android Q

Εφαρμογές όπως το Snapchat, το Slack, το AOSP Email, το AOSP Messaging, το AOSP Dialer και πολλές άλλες έχουν χαρακτηριστικούς πόρους νύχτας, ακόμα κι αν δεν παρέχουν στον χρήστη τρόπο να χρησιμοποιήσει την εφαρμογή με τη νυχτερινή λειτουργία. Άλλες εφαρμογές που δεν διαθέτουν σκληρά κωδικοποιημένα κριτήρια για νυχτερινούς πόρους, όπως το Facebook και το Instagram, μπορεί να φαίνονται ή να μην είναι καλές με ενεργοποιημένο το σκοτεινό θέμα παράκαμψης του Android Q. Το Instagram φαίνεται μια χαρά, ενώ το Facebook θέλει πολλή δουλειά. Από τη δοκιμή μου, η παράκαμψη της νυχτερινής λειτουργίας Επιλογή προγραμματιστή είναι πολύ διαφορετική από την αντιστροφή χρωμάτων στις Ρυθμίσεις προσβασιμότητας—ίσως Η Google σκοπεύει με αυτήν τη δυνατότητα να βοηθήσει τους προγραμματιστές να δημιουργήσουν σκοτεινές λειτουργίες για τις εφαρμογές τους ενώ οι προεπισκοπήσεις προγραμματιστών Android Q είναι σε εξέλιξη. Ωστόσο, δεν θα ξέρουμε πώς ακριβώς λειτουργεί αυτή η δυνατότητα έως ότου κυκλοφορήσει ο πηγαίος κώδικας για το Android Q ή η Google δημοσιεύσει τεκμηρίωση για αυτό.

Η παράκαμψη της σκοτεινής λειτουργίας στο Android Q είναι πιο σπασμένη σε εφαρμογές που χρησιμοποιούν WebViews.

Στο "Κόστος ενός χρώματος pixelΟμιλία που παρουσιάστηκε από τους Chris Banes και Alan Viverette από την Google, το δίδυμο ενθαρρύνει τους προγραμματιστές να εφαρμόσουν σκοτεινά θέματα με:

  • Χρήση του DayNight API στο AppCompat. Τα γραφικά στοιχεία μετοχών ανταποκρίνονται αυτόματα στις αλλαγές στη νυχτερινή λειτουργία ή μπορείτε επίσης να προσθέσετε έναν διακόπτη στην εφαρμογή σας.
  • Δυναμική εφαρμογή θεμάτων επικάλυψης κατά την εκτέλεση καλώντας getTheme().applyStyle(). Περισσότερες πληροφορίες μπορείτε να βρείτε σε αυτήν την προηγούμενη ομιλία εδώ.
  • Δόμηση της εφαρμογής σας ώστε να βασίζεται στη χρήση χαρακτηριστικών θέματος όπως colorForeground, colorControlNormal, colorAccent κ.λπ.
  • Προσθήκη προκριματικών για τη νύχτα για τους πόρους σας. -Νυχτερινά προκριματικά θα πρέπει να χρησιμοποιούνται για πόρους που είναι δύσκολο να εξαχθούν τα χρώματα θέματος.
  • Ενεργοποίηση της λειτουργίας ανεστραμμένων χρωμάτων (Ρυθμίσεις --> Χρώματα --> Αντιστροφή χρωμάτων) για να πάρετε μια γρήγορη ιδέα για το πώς θα φαίνεται η εφαρμογή σας στη σκοτεινή λειτουργία. Εάν θέλετε να τραβήξετε ένα στιγμιότυπο οθόνης της εφαρμογής σας με ανεστραμμένα χρώματα, θα πρέπει να γνωρίζετε ότι το η αντιστροφή χρώματος δεν θα εμφανίζεται στο στιγμιότυπο οθόνης.

Κατά την κυκλοφορία, η σκοτεινή λειτουργία του Android Q θα επεκταθεί σε εφαρμογές Google πρώτου κατασκευαστή, αλλά ελπίζουμε ότι οι εφαρμογές τρίτων θα υιοθετήσουν γρήγορα σκοτεινά θέματα στις εφαρμογές τους. Επιπλέον, ελπίζουμε να δούμε περισσότερες εφαρμογές να αλλάζουν αυτόματα στα νυχτερινά τους θέματα όταν ο χρήστης ενεργοποιήσει τη ρύθμιση σε όλο το σύστημα. Αυτήν τη στιγμή, η μόνη εφαρμογή που έχω δει που αλλάζει αυτόματα θέματα όταν είναι ενεργοποιημένη η σκοτεινή λειτουργία σε όλο το σύστημα του Android Q είναι οι Επαφές Google. Θα δούμε πώς θα εξελιχθούν τα πράγματα σε μερικούς μήνες όταν κυκλοφορήσει το Android Q, αλλά για όλους τους προγραμματιστές που το διαβάζουν: αγκαλιάστε τη σκοτεινή πλευρά!

Με στοιχεία από τον συνεργάτη LineageOS Joey Rizzoli.