Logo el.androidermagazine.com
Logo el.androidermagazine.com

Αντιμετώπιση του «κατακερματισμού»: οι προγραμματιστές απογοητεύονται από την υποστήριξη πολλαπλών οθονών

Πίνακας περιεχομένων:

Anonim

Το Android τρέχει σε μια ποικιλία συσκευών, πράγμα που σημαίνει ότι λειτουργεί επίσης σε διάφορα μεγέθη οθόνης και αναλύσεις. Πολλοί λαοί αποκαλούν αυτό τον "κατακερματισμό". Δεν πειράζει το γεγονός ότι χρησιμοποιούν προϊόντα που έχουν σχεδιαστεί και αναπτυχθεί με τον ίδιο τρόπο εδώ και χρόνια στην επιφάνεια εργασίας τους. Προφανώς, αν όλα δεν είναι ακριβώς τα ίδια παίρνει την ετικέτα "κατακερματισμού".

Υπάρχουν διάφοροι τρόποι αντιμετώπισης των προβλημάτων που προκύπτουν όταν χρησιμοποιείτε οθόνες με διαφορετικά μεγέθη και πυκνότητες. Η Apple έχει ξεχωριστές λίστες για εφαρμογές που έχουν σχεδιαστεί για το iPhone σε σχέση με το iPad. Η Microsoft δημιουργεί ένα νέο οικοσύστημα για τις συσκευές μεγάλης οθόνης. Το Android παρέχει στους προγραμματιστές έναν τρόπο να κάνουν την ίδια εργασία διαφορετικά για διαφορετικές οθόνες. Υπάρχει καλό και κακό για κάθε μέθοδο, αλλά πρόκειται να επικεντρωθούμε στο Android εδώ.

Στο Android, οι εφαρμογές μπορούν να προσαρμόσουν τη διάταξη για διαφορετικές οθόνες μεγέθους καθώς και την ανάλυση. Αυτό είναι όλα ενσωματωμένα, αλλά υπάρχουν μερικά πράγματα που οι προγραμματιστές πρέπει να δηλώσουν στον κώδικα τους για να κάνουν την εφαρμογή να δείχνει καλή. Το πράγμα που πρέπει να θυμάστε είναι πώς το μέγεθος και η πυκνότητα της οθόνης θα αλλάξουν την εμφάνιση της εφαρμογής. Το Droid DNA έχει οθόνη υψηλότερης ανάλυσης από το tablet της Motorola XOOM, αλλά δεν θέλουμε να δούμε μια διάταξη δισκίου για εφαρμογές στην οθόνη τηλεφώνου μεγέθους.

Ένας προγραμματιστής πρέπει να παρέχει στοιχεία (εικόνες) που είναι αρκετά υψηλής ποιότητας για να δούμε αιχμηρά σε υψηλή ανάλυση (ποτέ δεν το μυαλό insalely υψηλής ανάλυσης), και να είστε βέβαιος να χρησιμοποιήσετε μονάδες πυκνότητας ανεξάρτητα pixel κατά το σχεδιασμό της διάταξης τους. Αυτό είναι που κρατά τα πράγματα όπως τα κουμπιά και τα άλλα χειριστήρια να είναι πραγματικά μεγάλα σε οθόνες χαμηλής πυκνότητας όπως το Galaxy S2, ή από το να είσαι πραγματικά μικροσκοπικό σε οθόνες υψηλής πυκνότητας όπως το DNA.

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

Δεν προσπαθούμε να κρίνουμε τους προγραμματιστές εδώ. Η σύνταξη εφαρμογών είναι δύσκολη. Οι προγραμματιστές Android έχουν κηρύξει όλα αυτά από την κυκλοφορία του Gingerbread, αλλά πόσο πρακτικό είναι αυτό; Ρωτήσαμε μερικούς προγραμματιστές για αυτό, δείτε τι έπρεπε να πουν μετά το διάλειμμα.

Περισσότερα: Ο ιστότοπος προγραμματιστή Android της Google.

Ρωτήσαμε μια χούφτα προγραμματιστών (τόσο μεγάλων όσο και μικρών) μερικές βασικές ερωτήσεις σχετικά με το θέμα.

  • Πόσο δύσκολο είναι να τηρηθούν οι κατευθυντήριες γραμμές;
  • Φαίνεται εύκολο στο χαρτί, αλλά υπάρχουν κάποια ειδικά θέματα που έχετε δει ή τμήματα που δεν καλύπτει η Google;
  • Πώς αυτό επηρέασε το χρόνο ανάπτυξης και το κόστος, εάν υπήρξε καθόλου;
  • Περισσότερα για το θέμα που θέλετε να μοιραστείτε;

Προσπάθησα να κάνω τις ερωτήσεις όσο το δυνατόν πιο ουδέτερες, ώστε να μην προχωρήσουμε σε αυτό με κάποια προκατάληψη. Όταν αμφιβάλλετε, ρωτάτε τους ανθρώπους που το γνωρίζουν, έτσι; Έχω κάνει το δίκαιο κομμάτι του προγραμματισμού μου, αλλά η κωδικοποίηση σε Java και η δημιουργία εφαρμογών Android είναι πολύ διαφορετική από την εγγραφή κώδικα στον κώδικα C ή στον κώδικα μηχανής ή ακόμα και στον Perl. Υπάρχουν αποχρώσεις που δεν καταλαβαίνω, ακόμα κι αν έχω τις γενικές μεθόδους κατασκευής μιας εφαρμογής.

Φαντάζομαι ότι ένας καλός αριθμός από εσάς είναι σαν εμένα και δεν γνωρίζουμε τις περιπλοκές της κατασκευής εφαρμογών Android. Βλέπουμε μόνο τι λένε οι προγραμματιστές Android, και το κάνουν να ακούγεται εύκολο. Για αυτούς, είναι πιθανότατα - έχουν γράψει αυτά τα πράγματα από το έδαφος μέχρι το 2007. Ας δούμε τι πρέπει να πουν οι λαοί που ήταν σε θέση να τους ακολουθήσουν.

Joe Simpson (@kennydude) - Boid

Ο Joe είναι μέλος της Team Boid και επίσης δημοσιεύει τις δικές του εφαρμογές. Αυτός (και η υπόλοιπη ομάδα του) είναι ένα εξαιρετικό παράδειγμα ανεξάρτητων προγραμματιστών με πάθος για το Android που έχουν ξεκλειδώσει μερικές εκπληκτικές εφαρμογές.

Σύμφωνα με τις κατευθυντήριες γραμμές είναι αρκετά δύσκολο, ειδικά αν θέλετε μια άπαχη εφαρμογή, αλλά οι άνθρωποι θέλουν back-συμβατότητα. Ένα από τα πιο ενοχλητικά πράγματα είναι να βλέπεις κάτι που μοιάζει με το d.android.com/design αλλά τίποτα για το πώς να το κάνεις αυτό.

Ένα αδύναμο σημείο είναι αναζωογονητικό όταν φυσικά δεν μπορείτε να χρησιμοποιήσετε το GCM λόγω Twitter και δεν θέλετε να χρησιμοποιήσετε το PtR. Επίσης, οι εφαρμογές της Google συνθέτουν τις δικές τους οδηγίες. Πάρτε το παράθυρο slide-in για παράδειγμα, το Google+ το κάνει διαφορετικά από το YouTube (αν και γνωρίζω ότι η βιβλιοθήκη υποστήριξης πρόκειται να ελπίζει ότι θα το διευθετήσει).

Επίσης, μπορείτε να φτάσετε σε ένα σημείο και δεν υπάρχει τεκμηρίωση για κάτι (EdgeEffect για παράδειγμα).

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

Το Boid πρόκειται σύντομα να πηγαίνει ανοιχτά (yay!) Και μπορείτε να βρείτε την ίδια την εφαρμογή στο Google Play. Θα βρείτε επίσης όλες τις εφαρμογές του Joe (υπάρχουν κάποια κοσμήματα εκεί) εδώ.

Christophe Versieux - BeTrains - SNCB Βέλγιο; HoloEverywhere

Ο Christophe έχει χτίσει πολλές εφαρμογές Android, όπως το BeTrains - SNCB Belguim - μια εφαρμογή με πανέμορφη διάταξη που δείχνει τι μπορεί να γίνει με μια καλά κατασκευασμένη εφαρμογή. Ενώ οι περισσότερες στις ΗΠΑ δεν θα το χρησιμοποιήσουν ποτέ (είναι μια εφαρμογή χρονοδιαγράμματος τρένων για βελγικές σιδηροτροχιές) αξίζει να το εγκαταστήσετε μόνο για να δείτε πόσο καλά γίνεται. Οι λαοί στη Δυτική Ευρώπη σίγουρα γνωρίζουν αυτό το θέμα.

Επιπλέον, έχει αναπτύξει το HoloEverywhere, μια βιβλιοθήκη που μπορούν να χρησιμοποιήσουν άλλοι προγραμματιστές για την κατασκευή εφαρμογών τύπου Holo για Android 2.1 και νεότερες εκδόσεις. Με πολλά τηλέφωνα που εξακολουθούν να τρέχουν το Gingerbread, αυτό είναι μια πραγματική απόλαυση για προγραμματιστές που θέλουν να διατηρήσουν τις εφαρμογές τους να δείχνουν τρέχουσες.

Δεν είναι καθόλου δύσκολο. Σοβαρά. Το δύσκολο μέρος έρχεται όταν ο πελάτης ζητά να ξεφύγουμε από αυτές τις οδηγίες!

Θυμάμαι έναν πελάτη που ήθελε να βάλω τις καρτέλες στο κάτω μέρος της οθόνης, κουμπιά iPhone παντού, εναλλαγή στυλ iPhone και αυτό το έργο ήταν πραγματικά δύσκολο να επιτευχθεί και πραγματικά έχασα πολύ χρόνο και χρήματα σε αυτό.

Ήμουν πραγματικά θυμωμένος σε αυτόν όταν ρώτησε όλα αυτά τα ηλίθια πράγματα, και σκέφτηκε ότι ήμουν ένας τεμπέλης προγραμματιστής.

Τώρα έχω πολλές επαφές μαζί του και ξαναγράψουμε εντελώς την εφαρμογή του, δημιουργήσαμε απίστευτο κώδικα αφαιρώντας όλα αυτά τα άχρηστα χαρακτηριστικά και δημιουργώντας μια "καθαρή" εφαρμογή Android. Οι πελάτες και οι εταιρείες πρέπει απλώς να γνωρίζουν αυτές τις κατευθυντήριες γραμμές, πιστεύω ακράδαντα.

Οι βιβλιοθήκες όπως το ActionBarSherlock, το HoloEverywhere (δημιουργία μου), το UnifiedPreferences και το SlidingMenu είναι πολύ εύκολο στη χρήση και παρέχουν σε μερικές γραμμές κώδικα μια φοβερή εμπειρία χρήστη.

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

Ορισμένα εκπληκτικά έργα δημιουργούνται από την κοινότητα, όχι πάντα από την Google. Μερικοί άνθρωποι, πολύ ενεργοί στο Google+, όπως ο Ρωμαίος Nurik (Google), ο Reto Meier (Google) Juhani Lehtimäki, ο Jake Wharton, ο Taylor Ling,.. (πάντα φοβάμαι να ξεχάσω τους σημαντικούς ανθρώπους) είναι πολύ διδακτικά. Οι προγραμματιστές απλά πρέπει να γνωρίζουν πού να δούμε και η ανάπτυξη Android θα είναι εύκολο για αυτούς!

Μπορείτε να βρείτε BeTrains στο Google Play και θα θελήσετε να ρίξετε μια ματιά στο HoloEverywhere αν σας ενδιαφέρει η ανάπτυξη του Android.

Μάθιου Ρούνο - Ζάππος

Σε αντίθεση με μερικούς από τους μικρότερους ανεξάρτητους προγραμματιστές με τους οποίους μιλήσαμε, ακούσαμε επίσης από τον Matthew στον Zappos. Ο Zappos είναι μια εταιρία λιανικής πώλησης ιστού και πιθανότατα διαθέτει ειδικό προϋπολογισμό για το σχεδιασμό τόσο στην ιστοσελίδα όσο και στις εφαρμογές τους. Είναι επίσης μια εταιρεία που αγοράζω από τακτικά, αλλά αυτό δεν είχε καμία σχέση και ο Ματθαίος αγνοούσε ότι είμαι συχνός πελάτης όταν προσφέρθηκε εθελοντικά.

Στον Zappos, δεδομένου ότι είμαστε λιανοπωλητής, πρέπει να επιμείνουμε πρώτα και κύρια στο δικό μας σήμα. Εκκεντρικός, διασκέδαση και λίγο έξω από τον τοίχο. Τούτου λεχθέντος, και οι δύο είμαστε ισχυροί πιστοί στις κατευθυντήριες γραμμές για το Android - και ό, τι κάνουμε στο UI λαμβάνεται από το πνεύμα αυτών των κανόνων. Πριν από ένα χρόνο, η εφαρμογή μας ήταν ως επί το πλείστον ένα iOS λιμάνι από το πώς φαινόταν και δούλευε. Σήμερα, είναι (νομίζω) ένα στολίδι του τι μπορείτε να κάνετε στο Android. Δεχόμαστε τις οδηγίες όποτε είναι δυνατόν - και οι σχεδιαστές μας δουλεύουν από αυτούς ως σημείο εκκίνησης.

Οι κατευθυντήριες γραμμές σχεδιασμού δεν είναι όλα και τέλος όλα - στο τέλος, είναι εκεί ακριβώς για να προσπαθήσουμε να προωθήσουμε το σχεδιασμό των εφαρμογών Android για να είναι πιο συνεπείς. Διαπιστώσαμε ότι οι περισσότερες από τις κοινές "νέες" βιβλιοθήκες ανοικτού κώδικα που χρησιμοποιήσαμε κατέληξαν ως μέρος των οδηγιών (συρόμενο μενού, κρουτόν).

Οι κατευθυντήριες γραμμές δεν θα πρέπει ποτέ να αποτελούν παρακράτηση. Ορισμένα πράγματα - συνολική πλοήγηση - πρέπει να είναι συνεπή ώστε η εφαρμογή σας "να λειτουργεί απλά". Όλα τα υπόλοιπα - ξεκινήστε από τις οδηγίες και τρέχετε με το σχέδιό σας. Θέλουμε η εφαρμογή μας να είναι η ΕΡΓΑΣΙΑ ΜΑΣ - έτσι δεν μπορούμε απλά να κάνουμε το βασικό θέμα holo.

Αυτή τη χρονιά ξεκινήσαμε ουσιαστικά από τη στιγμή που ξαναγράψαμε την εφαρμογή μας για να δουλέψουμε με θραύσματα. Τους τελευταίους 6 μήνες δουλέψαμε σκληρά για να προσθέσουμε υποστήριξη 7 "για δισκία και επί του παρόντος δουλεύουμε σε υποστήριξη 10". Το πιο δύσκολο πράγμα που κάνουμε είναι να δοκιμάζουμε συσκευές, αλλά έχουμε μια μεγάλη ομάδα QA που βοηθά με αυτό. Έχουμε 2 άτομα που εργάζονται με πλήρη απασχόληση στην εφαρμογή μας από τον Αύγουστο περίπου, πριν από αυτό ήταν 1 πλήρους απασχόλησης άτομο.

Η κατώτατη γραμμή είναι, νομίζω, οι κατευθυντήριες γραμμές του σχεδιασμού Android μας βοηθούν να εξορθολογίσουμε τη διαδικασία μας - και έτσι να μειώσουμε το κόστος. Ας το παραδεχτούμε, οι περισσότεροι σχεδιαστές από το iOS - έχοντας έτσι μια μεγάλη πηγή όπως το design.android.com είναι μια θαυμάσια βοήθεια για να τους πάρει kickstarted στο οικοσύστημα των ανδροειδών.

Μπορώ να πω ότι οι επιλογές σχεδιασμού του Zappos λειτουργούν καλά και η γυναίκα μου έχει ένα ντουλάπι γεμάτο ρούχα, πορτοφόλια και μπότες που ενισχύουν την απαίτησή μου. Ελέγξτε την εφαρμογή Android από το Google Play.

Τζος Μπάρτον - jRemote

Ο Josh έχει συγγράψει πολλές μικρές εφαρμογές για το Android και η εφαρμογή jRemote του (είναι ένας ελεγκτής για το δημοφιλές πρόγραμμα jDownloader PC) είναι ένα τέλειο παράδειγμα για τη χρήση των σχεδιαγραμμάτων για τη δημιουργία μιας εφαρμογής που θα έχει μεγάλη εμφάνιση τόσο στο τηλέφωνο όσο και σε ένα tablet. Μεγιστοποιεί τη χρήση της οθόνης της συσκευής και σας δίνει τις πληροφορίες που ψάχνετε ακριβώς όπως θα το περιμένατε.

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

Είναι πραγματικά απογοητευτικό ότι τόσες συσκευές δεν έχουν διατάξεις tablet. Αν η εφαρμογή σας είναι κατασκευασμένη με θραύσματα, η προσθήκη μιας διάταξης tablet μπορεί να γίνει σε 30 λεπτά. Ειλικρινά, είναι τόσο εύκολο.

Νομίζω ότι για πολλούς προγραμματιστές, δεν έχουν συσκευές tablet για να δοκιμάσουν, και χρησιμοποιώντας τον εξομοιωτή μπορεί να είναι ένας πόνος. Αλλά τα νέα εργαλεία ADT που μόλις κυκλοφόρησαν το κάνουν πολύ πιο εύκολο. Η προβολή πολλαπλών ρυθμίσεων στον επεξεργαστή διάταξης σημαίνει ότι μπορείτε να δείτε ποια είναι η εμφάνιση της διαμόρφωσής σας σε 5-6 διαφορετικά μεγέθη οθόνης ταυτόχρονα. Και γρήγορα. Φυσικά, θα χρειαστεί να δοκιμάσετε τελικά σε ένα εξομοιωτή / συσκευή τελικά, αλλά σίγουρα επιταχύνει τη ροή εργασίας.

Το jDownloader είναι ένα πρακτικό πρόγραμμα που μπορείτε να χρησιμοποιήσετε στην επιφάνεια εργασίας σας και το jRemote μοιάζει με έναν υπέροχο τρόπο για να τον ελέγξετε. Εάν δεν υπάρχει τίποτα άλλο, κατεβάστε το από το Google Play και ρίξτε μια ματιά μόνο για να δείτε πώς μια εφαρμογή μπορεί να είναι απλή και όμορφη την ίδια στιγμή.

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