Η καταγραφή και η παρακολούθηση είναι δύο πυλώνες σταθερότητας της εφαρμογής για κινητά. Σύμφωνα με την Gartner (2025), η αγορά λύσεων APM θα φτάσει τα 8 δισεκατομμύρια δολάρια έως το 2027. Η σωστή καταγραφή επιτρέπει όχι μόνο την εύρεση σφαλμάτων, αλλά και την πρόβλεψη προβλημάτων προτού επηρεάσουν τους χρήστες.
Βασικά σημεία
Η καταγραφή εφαρμογών για κινητά στο iOS βασίζεται στο os_log — το ενσωματωμένο σύστημα της Apple, διαθέσιμο από το iOS 10. Το os_log γράφει αρχεία καταγραφής σε ένα ενιαίο αρχείο καταγραφής συστήματος (στη συσκευή ή μέσω του Console.app), υποστηρίζει κατηγορίες, επίπεδα και ετικέτες απορρήτου. Ο συνδυασμός καταγραφής και παρακολούθησης στο iOS μέσω του Console.app και του xcrun επιτρέπει την παρακολούθηση σφαλμάτων και απόδοσης σε πραγματικό χρόνο.
Το os_log έχει επίπεδα: Default, Info, Debug, Error, Fault. Στην παραγωγή διατηρούνται τα Error και Fault — τα Debug και Info απενεργοποιούνται. Η επιλογή του σωστού επιπέδου είναι μέρος της στρατηγικής παρακολούθησης εφαρμογών για κινητά στο iOS. Απόρρητο: %{public}@ για μη προστατευμένα δεδομένα, %{private}@ για προσωπικά δεδομένα.
CocoaLumberjack είναι μια δημοφιλής βιβλιοθήκη για καταγραφή στο iOS. Σε αντίθεση με το os_log, υποστηρίζει προσαρμοσμένες μορφές, ασύγχρονη εγγραφή και περιστροφή αρχείων καταγραφής. DDLog, DDTTYLogger (κονσόλα), DDFileLogger (αρχείο με περιστροφή). Για απομακρυσμένη παρακολούθηση, το CocoaLumberjack μπορεί να συνδυαστεί με το os_log — γράψτε σε ένα αρχείο για απομακρυσμένη καταγραφή και στο os_log για το Console.app.
Για την καταγραφή εφαρμογών για κινητά στο Android χρησιμοποιείται το Timber — μια βιβλιοθήκη του Jake Wharton που έχει γίνει το πρότυπο της πλατφόρμας. Το Timber είναι ένα περιτύλιγμα γύρω από το Android Log (Logcat) που προσθέτει αυτόματα την ετικέτα κλάσης και διαμορφώνει το Tree. Το Timber αποτελεί μέρος του συστήματος παρακολούθησης εφαρμογών για κινητά Android: DebugTree για εντοπισμό σφαλμάτων, CrashlyticsTree για αποστολή δεδομένων.
Το Timber χρησιμοποιεί Tree — ένα στοιχείο που αποφασίζει τι να κάνει με το αρχείο καταγραφής. Σε εκδόσεις εντοπισμού σφαλμάτων, DebugTree (έξοδος στο Logcat), σε release — CrashlyticsTree (αποστολή σφαλμάτων). Timber.wtf() καταγράφει θανατηφόρα σφάλματα. Timber.tag("CustomTag") παρακάμπτει την ετικέτα. Για αποτελεσματική παρακολούθηση, το Timber συνδυάζεται με εργαλεία APM.
Android Log έχει επίπεδα: VERBOSE, DEBUG, INFO, WARN, ERROR, ASSERT. Το ProGuard/R8 αφαιρεί τα Log.d και Log.v στο release — το Timber επιτρέπει την καταγραφή μέσω του Plant. Η επιλογή επιπέδου επηρεάζει την ποιότητα παρακολούθησης της εφαρμογής για κινητά — στην παραγωγή διατηρούνται τα WARN και ERROR.
| Εργαλείο | Πλατφόρμα | Μορφή | Περιστροφή | Απομακρυσμένο | Πολυπλοκότητα |
|---|---|---|---|---|---|
| os_log | iOS | Δομημένο | Σύστημα | Console.app | Χαμηλή |
| CocoaLumberjack | iOS | Κείμενο/JSON | DDFileLogger | Ναι (προσαρμοσμένο) | Μεσαία |
| Timber | Android | Κείμενο | Logcat/Προσαρμοσμένο | Tree | Χαμηλή |
| Sentry | iOS/Android | JSON | Διακομιστής | Ναι | Μεσαία |
| Logcat | Android | Κείμενο | Buffer | ADB | Χαμηλή |
Κατά την επιλογή ενός εργαλείου καταγραφής, λάβετε υπόψη: χρειάζεστε απομακρυσμένη καταγραφή, πόσο συχνά αλλάζουν τα αρχεία καταγραφής και ποιος θα τα αναλύει. Για νεοφυείς επιχειρήσεις, αρκούν το os_log ή το Timber. Για επιχειρήσεις — CocoaLumberjack με αποστολή στον διακομιστή. Στην IT Sectr, χρησιμοποιούμε τον συνδυασμό Timber + Crashlytics για Android και os_log + CocoaLumberjack για iOS.
Δομημένη καταγραφή — εγγραφή αρχείων καταγραφής σε μορφή JSON αντί για απλό κείμενο. Παράδειγμα: αντί για "User login failed" γράφουμε {"event": "login_failed", "user_id": 123, "reason": "invalid_password"}. Αυτή είναι η βάση για την αυτόματη παρακολούθηση — η στοίβα ELK και το Grafana φιλτράρουν, συγκεντρώνουν και αναλύουν τέτοια δεδομένα.
Φιλτράρισμα ανά πεδίο: βρείτε όλα τα αρχεία καταγραφής με event=crash την τελευταία ώρα. Συγκέντρωση: δημιουργήστε ένα γράφημα του αριθμού σφαλμάτων ανά έκδοση εφαρμογής. Ενσωμάτωση με ELK (Elasticsearch, Logstash, Kibana) ή Grafana. Η δομημένη καταγραφή δεν είναι υποχρεωτική για τις πρώτες εκδόσεις, αλλά γίνεται κρίσιμη όταν το DAU υπερβαίνει τις 10.000.
Απομακρυσμένη καταγραφή — αποστολή αρχείων καταγραφής από τη συσκευή σε έναν διακομιστή για κεντρική παρακολούθηση. Υλοποιείται μέσω προσαρμοσμένου Tree (Android) ή αιτημάτων HTTP. Στείλτε μόνο Error και Warning — μην σπαταλάτε την κίνηση του χρήστη. Περιστροφή αρχείων καταγραφής: DDFileLogger (iOS) κάθε 1 MB ή 1 ημέρα. Στο Android, ο buffer του Logcat είναι περιορισμένος.
Application Performance Monitoring (APM) — μια κατηγορία εργαλείων για την παρακολούθηση εφαρμογών για κινητά. Το APM μετρά: χρόνο εκκίνησης, αιτήματα δικτύου, FPS, χρήση μνήμης, συχνότητα σφαλμάτων. Κύριοι παίκτες: Sentry (Performance), New Relic Mobile, Datadog Mobile.
Sentry — όχι μόνο αναφορά σφαλμάτων, αλλά και παρακολούθηση απόδοσης. Το Sentry Performance δημιουργεί κατανεμημένα ίχνη που δείχνουν πόσο χρόνο διήρκησε κάθε στάδιο: από το πάτημα του κουμπιού έως την απάντηση του διακομιστή. Υποστηρίζει iOS, Android, Flutter, React Native. Δωρεάν έως 5k συμβάντα τον μήνα.
New Relic Mobile παρέχει μετρήσεις: αριθμός συνεδριών, χρόνος στην εφαρμογή, συχνότητα σφαλμάτων, αιτήματα δικτύου. Datadog Mobile — ένα πιο σύγχρονο εργαλείο με πίνακες ελέγχου σε πραγματικό χρόνο και ειδοποιήσεις. Και τα δύο είναι πληρωτέα, αλλά έχουν δωρεάν επίπεδα. Η IT Sectr συνιστά να ξεκινήσετε με το Firebase Performance και να μεταβείτε σε πληρωτέο APM όταν το DAU υπερβεί τις 100.000.
Firebase Performance — ένα δωρεάν εργαλείο παρακολούθησης εφαρμογών για κινητά από την Google. Συλλέγει αυτόματα μετρήσεις: χρόνο εκκίνησης εφαρμογής, αιτήματα HTTP (URL, μέθοδος, κωδικός απόκρισης), FPS. Για προσαρμοσμένη παρακολούθηση, χρησιμοποιήστε το Trace API. Ενσωμάτωση: προσθέστε το SDK στο build.gradle (Android) ή στο Podfile (iOS).
Trace — ένα χρονικό τμήμα με αρχή και τέλος που μετράτε. Παράδειγμα: trace = FirebasePerformance.getInstance().newTrace("checkout_process"). Μετρήσεις — αριθμητικοί δείκτες (μέγεθος απόκρισης, αριθμός στοιχείων). Το Firebase Performance δεν απαιτεί υποδομή διακομιστή — όλα τα δεδομένα περνούν μέσω του Firebase SDK. Κατά την παρακολούθηση εφαρμογών για κινητά, το Trace API παρέχει περιβάλλον για ανάλυση απόδοσης.
Συχνές Ερωτήσεις
Τυπικά επίπεδα: ERROR (κρίσιμα σφάλματα), WARN (δυνητικά προβλήματα), INFO (βασικά συμβάντα), DEBUG (εντοπισμός σφαλμάτων), VERBOSE (λεπτομερής παρακολούθηση). Στην παραγωγή διατηρούνται τα ERROR, WARN και INFO, τα υπόλοιπα απενεργοποιούνται.
Timber είναι μια βιβλιοθήκη-περιτύλιγμα γύρω από το Logcat από τον Jake Wharton για καταγραφή εφαρμογών για κινητά στο Android. Εισάγει αυτόματα την ετικέτα κλάσης, διαμορφώνει το Tree και απενεργοποιεί τα αρχεία καταγραφής στην παραγωγή με μία γραμμή κώδικα.
APM (Application Performance Monitoring) — μια κατηγορία εργαλείων για την παρακολούθηση της απόδοσης: χρόνος εκκίνησης, αιτήματα δικτύου, χρήση μνήμης, συχνότητα σφαλμάτων. Κατά την παρακολούθηση εφαρμογών για κινητά, τα New Relic, Datadog και Firebase Performance βοηθούν στην εύρεση σημείων συμφόρησης πριν από τα παράπονα των χρηστών.
Για μια νεοφυή επιχείρηση, το Firebase Performance είναι αρκετό — ένα δωρεάν εργαλείο παρακολούθησης εφαρμογών για κινητά. Τα New Relic και Datadog συνδέονται όταν χρειάζεται λεπτομερής παρακολούθηση και προσαρμοσμένοι πίνακες ελέγχου. Η IT Sectr συνιστά να ξεκινήσετε με το Firebase και να μεταβείτε σε πληρωτέες λύσεις όταν το DAU υπερβεί τις 100.000.
Δομημένη καταγραφή είναι μια μορφή αρχείων καταγραφής σε JSON ή κλειδί-τιμή αντί για απλό κείμενο. Επιτρέπει το φιλτράρισμα αρχείων καταγραφής ανά πεδίο, τη δημιουργία γραφημάτων και την αυτόματη ανάλυση στο ELK ή στο Grafana. Χωρίς δομημένα αρχεία καταγραφής, είναι δύσκολο να βρεθούν μοτίβα σε χιλιάδες εγγραφές.
Σύνοψη
Θα αναπτύξουμε μια εφαρμογή για κινητά έτοιμη για χρήση
Η IT Sectr δημιουργεί εφαρμογές iOS και Android για νεοφυείς επιχειρήσεις και επιχειρήσεις από το 2017. Θα σας συμβουλεύσουμε και θα προτείνουμε την καλύτερη λύση.