Εφαρμογή καιρού (JavaScript) Susanna Huhtanen ihmis.suski@gmail.com 2012 Marta Maria Casetti mmcasetti@gmail.com 2013 Πώς να σχεδιαστεί μια εφαρμογή που χρησιμοποιεί ασύγχρονες κλήσεις. Οι ασύγχρονες κλήσεις θα αναπαριστώνται μέσα από μια εφαρμογή καιρού. Ελληνική μεταφραστική ομάδα GNOME team@gnome.gr 2012-2015 Δημήτρης Σπίγγος dmtrs32@gmail.com 2012, 2013 Μαρία Θουκιδίδου marablack3@gmail.com 2014 Θάνος Τρυφωνίδης tomtryf@gmail.com 2014, 2015 Εφαρμογή καιρού

Σε αυτόν τον οδηγό πρόκειται να κατασκευάσουμε μια εφαρμογή καιρού χρησιμοποιώντας ασύγχρονες κλήσεις. Οι πληροφορίες του καιρού σε αυτό το παράδειγμα παρέχονται από τον geonames.org και η εφαρμογή χρησιμοποιεί το κώδικες ICAO για να τοποθετήσει την αίτηση σας για τον καιρό. Για να γράψετε και να εκτελέσετε οι ίδιοι τα παραδείγματα του κώδικα, χρειάζεστε έναν επεξεργαστή για να γράψετε τον κώδικα, τερματικό και GNOME 3 ή μεταγενέστερο εγκατεστημένο στον υπολογιστή σας. Σε αυτόν τον οδηγό θα εξετάσουμε τα παρακάτω μέρη:

Σχεδιασμός της γραφικής διεπαφής χρήστη

Ασύγχρονες κλήσεις

Το κύριο αρχείο του προγράμματος

Τοπική βιβλιοθήκη GeoNames

Αυτόματα εργαλεία και εικονίδια

Μετά την ανάγνωση αυτού του μαθήματος, θα πρέπει να δείτε αυτό στην οθόνη σας:

Σχεδιασμός της γραφικής διεπαφής χρήστη

Δομώντας μια εφαρμογή για το GNOME 3 σημαίνει τη χρήση του GTK+. Το πιο σημαντικό πράγμα είναι να θυμόσαστε ότι το κύριο παράθυρο θα αποδεχθεί μόνο ένα γραφικό στοιχείο. Πρέπει να σχεδιάσετε τη δομή σας ανάλογα (αυτό το παράδειγμα χρησιμοποιεί Gtk.Grid). Μια χρήσιμη μέθοδος είναι η σχεδίαση του κύριου παραθύρου και η τοποθέτηση κάθε απαιτούμενου γραφικού στοιχείου μέσα σε αυτό το πλαίσιο. Κοιτώντας μια εικόνα της μελλοντικής σας εφαρμογής είναι ευκολότερο να πείτε ποιες είναι οι σχέσεις μεταξύ γραφικών στοιχείων. Για παράδειγμα Gtk.Grid τοποθετεί τα γραφικά στοιχεία σας σε σχέση με τα άλλα γραφικά στοιχεία, έτσι μετά τη τοποθέτηση του πρώτου γραφικού στοιχείου στη θέση του, η τοποθέτηση των γραφικών στοιχείων μπορεί να γίνει σε σχέση με οποιοδήποτε γραφικό στοιχείο στο πλέγμα.

Ασύγχρονες κλήσεις

Με πολλές προγραμματιστικές γλώσσες, όλες οι λειτουργίες εκτελούνται σύγχρονα - λέτε στο πρόγραμμα να κάνει κάτι και θα περιμένετε μέχρι αυτή η πράξη να ολοκληρωθεί πριν να συνεχίσετε. Αυτό όμως είναι κακό για τη γραφική διεπαφή χρήστη, καθώς όλη η εφαρμογή παγώνει, ενώ το πρόγραμμα περιμένει τη λειτουργία. Πηγαίνοντας ασύγχρονα (async) βοηθά εδώ. Με ασύγχρονες κλήσεις, το UI σας δεν θα φραχτεί με αιτήσεις. Οι ασύγχρονες κλήσεις κάνουν την εφαρμογή σας πιο εύχρηστη και καλύτερα εξοπλισμένη για χειρισμό καταστάσεων όταν οι κλήσεις παίρνουν περισσότερο χρόνο από το αναμενόμενο ή για κάποιο λόγο κολλάνε. Οι ασύγχρονες κλήσεις μπορούν να χρησιμοποιηθούν για παράδειγμα με αρχείο συστήματος I/O και για πιο αργούς υπολογισμούς στο παρασκήνιο.

Σε αυτό το παράδειγμα πρέπει να πάρουμε δεδομένα από το geonames.org. Ενώ κάνουμε αυτό θέλουμε το υπόλοιπο πρόγραμμα να συνεχίσει. Εάν δεν παίρναμε καμιά πληροφορία από το geonames.org λόγω έλλειψης σύνδεσης με το διαδίκτυο και αυτό ήταν μια σύγχρονη εφαρμογή δεν θα μπορούσαμε ποτέ να πάμε στο σημείο όπου το main_quit() συνεχίζει σωστά και η εφαρμογή θα έπρεπε να θανατωθεί από το τερματικό.

Τα διαφορετικά μέρη του προγράμματος