Ο πελάτης GitHub για το Android χτίστηκε χρησιμοποιώντας μοτίβο σχεδίασης MVVM, αντιδραστικό προγραμματισμό με LiveData, μοτίβο αποθετηρίου, Library Resistance Room.
Χαρακτηριστικά: Πλαστογράφηση, αποτελέσματα αναζήτησης σε cache και δυνατότητα προσθήκης σελιδοδεικτών.
Ο κωδικός είναι συσκευασμένος ανά στοιχείο. Το πακέτο δεδομένων περιέχει τοπικές κατηγορίες μοντέλων βάσης δεδομένων, υπηρεσία ιστού και αποθήκη που χρησιμοποιείται ως μία και μόνη πηγή αλήθειας.
Το πακέτο UI περιέχει VIEW (Δραστηριότητες) και VIEW MODEL (AndroidViewModel) για κάθε οθόνη στην εφαρμογή. Το VIEW MODEL δεν περιέχει αναφορές στις τάξεις VIEW ή MODEL στο πακέτο δεδομένων, οπότε ο κώδικας είναι αρθρωτός και είναι εύκολο να αλλάξετε τις οθόνες και να προσθέσετε χαρακτηριστικά.
Το LiveData χρησιμοποιείται για την επικοινωνία μεταξύ των επιπέδων εφαρμογών. Οποιεσδήποτε αλλαγές στο στρώμα MODEL διαδίδονται μέσω του LiveData στο VIEW MODEL και μετά στο επίπεδο VIEW.
Στην τάξη Utils υπάρχει διεπαφή διαμόρφωσης, στην οποία μπορείτε να ρυθμίσετε τον προεπιλεγμένο όρο αναζήτησης, τα αποτελέσματα ανά σελίδα και για το χρονικό διάστημα που θα πρέπει να διατηρούνται τα αποτελέσματα στην τοπική μνήμη cache πριν προσπαθήσετε να ενημερώσετε με νέα.
Ελέγξτε τον πηγαίο κώδικα στη διεύθυνση: https://github.com/giantturtle/RepoExplorerMVVM