Το Instapaper Creator προτείνει μια κομψή λύση για την ενημέρωση εφαρμογών στο παρασκήνιο

Η Apple έκανε μια επιδέξια δουλειά μετριάζοντας τα μειονεκτήματα της πραγματικής πολλαπλών εργασιών με το iOS 4 δίνοντας στους προγραμματιστές πρόσβαση σε μερικά έξυπνα επιλεγμένα API (όπως τον ήχο στο παρασκήνιο) και καθολική εξοικονόμηση κατάστασης.

Αυτό θα είναι αρκετά καλό για τους περισσότερους ανθρώπους και τις περισσότερες εφαρμογές χωρίς να προκαλεί τεράστια εξάντληση της διάρκειας ζωής της μπαταρίας ή της επεξεργαστικής ισχύος, αλλά δυστυχώς, τα νέα iOS 4 API μην κάνετε τίποτα για να αντιμετωπίσετε ένα από τα μεγαλύτερα πλεονεκτήματα των πολλαπλών εργασιών: εφαρμογές στο παρασκήνιο που μπορούν να ενημερώσουν ή να συγχρονίσουν πληροφορίες όταν δεν έχουν Συγκεντρώνω. Με άλλα λόγια, όταν έρχεται το iOS 4, εφαρμογές όπως οι συσκευές ανάγνωσης ζωοτροφών, οι πελάτες του Twitter και τα προγράμματα IM θα πρέπει να είναι συνεχώς ανοιχτές για να απορροφούν νέες πληροφορίες από το Διαδίκτυο.

Στο προσωπικό του blog, ο Marco Arment - προγραμματιστής του αγαπημένου Instapaper του App Store - έχει δημοσιεύσει

μια σπουδαία πρόταση στην Apple σχετικά με τον τρόπο με τον οποίο επιτρέπεται στις εφαρμογές να ενημερώνονται αποτελεσματικά στο παρασκήνιο: δώστε στο iOS τη δυνατότητα να δώσει προτεραιότητα σε περιοδικά αιτήματα δικτύου εφαρμογών τρίτων.

Η προσθήκη μιας ακόμη υπηρεσίας πολλαπλών εργασιών θα έλυνε αυτό το ζήτημα για πολλούς τύπους εφαρμογών: ένα περιοδικό αίτημα δικτύου. Να πώς θα το έκανα:

• Η εφαρμογή δίνει στο σύστημα ένα NSURLRequest και ένα ιδανικό διάστημα ανανέωσης, όπως κάθε 30 λεπτά, κάθε λίγες ώρες ή κάθε μέρα.

• Το iOS εκτελεί αυτό το αίτημα, όποτε κρίνει ότι πρέπει και αποθηκεύει την απάντηση σε ένα τοπικό αρχείο.

• Την επόμενη φορά που θα ξεκινήσει η εφαρμογή, το iOS της δίνει ένα NSData της πιο πρόσφατης απάντησης.

Η εκτέλεση του αιτήματος "όποτε κρίνει ότι πρέπει" είναι σημαντική. Το iOS μπορεί να αποφασίσει, για παράδειγμα:

• Να μην ενημερώνεται όταν η μπαταρία είναι χαμηλή, η συνδεσιμότητα είναι κακή, άλλα αιτήματα εκτελούνται, η ελεύθερη μνήμη είναι χαμηλή, η χρήση της CPU είναι υψηλή ή ο χρήστης προβλέπεται να υπερβεί το μηνιαίο όριο δεδομένων.

• Να μην ενημερώνεται τόσο συχνά όσο ζητά η εφαρμογή ή να αυξάνει το διάστημα με την πάροδο του χρόνου ή να προσαρμόζει δυναμικά το διάστημα με βάση τη συχνότητα που λαμβάνει απόκριση 304 (Δεν έχει τροποποιηθεί).

• Να μην ενημερώνεται καθόλου εάν η αιτούσα εφαρμογή δεν έχει ξεκινήσει εδώ και πολύ καιρό.

Αυτό θα επέτρεπε στο Instapaper να πραγματοποιεί λήψη ενημερώσεων στο παρασκήνιο και θα ωφελούσε επίσης πολύ τους αναγνώστες RSS, τους πελάτες Twitter, τη συνομιλία προγράμματα, widget καιρού και ειδήσεων και τεράστιος αριθμός άλλων εφαρμογών που προς το παρόν δεν μπορούν να επωφεληθούν ιδιαίτερα από το iOS » πολλαπλών εργασιών.

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

Τελευταία δημοσίευση ιστολογίου

Οι πωλήσεις iPhone XS της πρώτης εβδομάδας ξεπέρασαν σημαντικά το iPhone 8
September 11, 2021

Τα iPhone XS και XS Max ξεκίνησαν τον περασμένο μήνα και ορισμένες εκδόσεις εξαντλήθηκε σχεδόν αμέσως. Αλλά αυτό δεν σημαίνει αυτόματα ότι είναι τε...

| Cult of Mac
September 11, 2021

Η Tesla εξαπολύει κομψό αλλά αργό ασύρματο φορτιστή τηλεφώνουΤο φθηνότερο προϊόν που κατασκευάζει η Tesla.Φωτογραφία: TeslaΘέλατε πάντα ένα Tesla α...

Το πραγματικά σφάλμα iPhone 8 μπορεί να χρειάζεται μια νέα πλακέτα λογικής
September 11, 2021

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