Πτυχιακή Εργασία. «Κινητή εφαρμογή με επίγνωση θέσης για εύρεση σημείων ενδιαφέροντος»

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "Πτυχιακή Εργασία. «Κινητή εφαρμογή με επίγνωση θέσης για εύρεση σημείων ενδιαφέροντος»"

Transcript

1 Πανεπιστήμιο Πελοποννήσου Σχολή Θετικών Επιστημών και Τεχνολογίας Τμήμα Επιστήμης και Τεχνολογίας Υπολογιστών Πτυχιακή Εργασία «Κινητή εφαρμογή με επίγνωση θέσης για εύρεση σημείων ενδιαφέροντος» άνα Χρήστος ΑΜ: Επιβλέπων Καθηγητής: Βασιλάκης Κωσταντίνος Τρίπολη, Μάρτιος 2013

2 Περίληψη Η παρούσα εργασία αφορά το έργο ανάπτυξης μιας κινητής εφαρμογής με επίγνωση θέσης για την εύρεση σημείων ενδιαφέροντος. Περιγράφονται λεπτομερώς και αναλύονται όλα τα στάδια της δημιουργίας της εφαρμογής, από τη μελέτη των λειτουργικών απαιτήσεων και την αρχιτεκτονική του συστήματος και την τεχνική υλοποίηση, μέχρι την παρουσίαση των συμπερασμάτων και μελλοντικών προοπτικών της να λειτουργήσει ως μια ανοικτή πλατφόρμα διαχείρισης σημείων ενδιαφέροντος. Σελίδα 2 από 94

3 Abstract This diploma thesis discusses the project of developing a location-aware mobile application for finding points of interest. All the phases of the application lifecycle are discussed in detail, including the functional requirements study and analysis, the formulation of the system architecture and the implementation, as well as its prospect to function as an open platform for managing points of interest. Σελίδα 3 από 94

4 Περιεχόμενα ΠΕΡΙΛΗΨΗ... 2 ABSTRACT... 3 ΕΥΡΕΤΗΡΙΟ ΕΙΚΟΝΩΝ... 7 ΕΥΡΕΤΗΡΙΟ ΟΘΟΝΩΝ... 8 ΕΥΡΕΤΗΡΙΟ ΠΙΝΑΚΩΝ ΕΙΣΑΓΩΓΗ ΠΑΡΟΥΣΙΑΣΗ ANDROID ΕΦΑΡΜΟΓΗΣ NEARME! Σκοπός δημιουργίας Πλατφόρμα υλοποίησης Συνοπτική παρουσίαση Τεχνικές απαιτήσεις εφαρμογής ΥΦΙΣΤΑΜΕΝΕΣ ΛΥΣΕΙΣ ημοφιλείς εφαρμογές ιαφορές της NearMe! από άλλες εφαρμογές ΠΛΑΤΦΟΡΜΑ ANDROID ΕΙΣΑΓΩΓΗ Ιστορική αναδρομή Η νέα εποχή Ο ανταγωνισμός και οι διαμάχες ΤΡΕΧΟΥΣΑ ΚΑΤΑΣΤΑΣΗ Η κυριαρχία Παράγοντες επιτυχίας Android παντού Τα μειονεκτήματα Πολυμορφικότητα Αγορές Android και διανομή εφαρμογών Εκδόσεις Android και κατακερματισμός αγοράς Πειρατεία λογισμικού Ασφάλεια και απόρρητο ιδιωτικότητας ΤΕΧΝΙΚΗ ΠΕΡΙΓΡΑΦΗ ΚΑΙ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ANDROID Τεχνική περιγραφή Αρχιτεκτονική ιεπαφή χρήστη Πλατφόρμα ανάπτυξης εφαρμογών Σύγκριση εγγενών και διαπλατφορμικών λύσεων Βασικές αρχές εφαρμογών Android ραστηριότητες (Activities) Υπηρεσίες (Services) Πάροχοι Περιεχομένου (Content Providers) Προθέσεις και Φίλτρα Προθέσεων (Intents and Intent Filters) ιεργασίες και Νήματα (Processes and Threads) ικαιώματα (Permissions) Αρχείο βασικών ορισμών (Android Manifest) ΑΝΑΛΥΣΗ ΑΠΑΙΤΗΣΕΩΝ ΕΙΣΑΓΩΓΗ Σκοπός και αντικείμενο ενότητας Περίληψη ενότητας Κατηγοριοποίηση απαιτήσεων ΑΠΑΙΤΗΣΕΙΣ ΑΝΑ ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ Τεχνολογία/ Πλατφόρμα/ Τεχνικά χαρακτηριστικά Σελίδα 4 από 94

5 Βασική λειτουργικότητα ΛΕΙΤΟΥΡΓΙΚΕΣ ΠΡΟ ΙΑΓΡΑΦΕΣ ΕΙΣΑΓΩΓΗ ομή ενότητας Σημειώσεις ΛΕΙΤΟΥΡΓΙΚΟΤΗΤΑ ΚΑΙ ΙΑΤΑΞΗ ΚΥΡΙΑΣ ΟΘΟΝΗΣ Σκοπός κύριας οθόνης Κατηγορίες σημείων ενδιαφέροντος Επιπρόσθετη λειτουργικότητα Χαρακτηριστικά πεδία ΛΕΙΤΟΥΡΓΙΚΟΤΗΤΑ ΚΑΙ ΙΑΤΑΞΗ ΟΘΟΝΗΣ ΛΙΣΤΑΣ Σκοπός οθόνης λίστας υνατότητες οθόνης λίστας Χαρακτηριστικά πεδία Επιπρόσθετη λειτουργικότητα ΛΕΙΤΟΥΡΓΙΚΟΤΗΤΑ ΚΑΙ ΙΑΤΑΞΗ ΟΘΟΝΗΣ ΛΕΠΤΟΜΕΡΕΙΩΝ Σκοπός οθόνης λεπτομερειών Επιπρόσθετη λειτουργικότητα ΛΕΙΤΟΥΡΓΙΚΟΤΗΤΑ ΚΑΙ ΙΑΤΑΞΗ ΟΘΟΝΗΣ ΧΑΡΤΗ Σκοπός οθόνης χάρτη Επιπρόσθετη λειτουργικότητα ΛΕΙΤΟΥΡΓΙΚΟΤΗΤΑ ΚΑΙ ΙΑΤΑΞΗ ΟΘΟΝΗΣ ΠΛΗΡΟΦΟΡΙΩΝ Σκοπός οθόνης πληροφοριών ΤΕΧΝΙΚΕΣ ΠΡΟ ΙΑΓΡΑΦΕΣ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΕΦΑΡΜΟΓΗΣ ΥΠΟΣΤΗΡΙΖΟΜΕΝΕΣ ΠΗΓΕΣ ΑΝΤΛΗΣΗΣ Ε ΟΜΕΝΩΝ Σχήμα ροής JSON Σχήμα ροής XML Σχήμα ροής ΚML Σχήμα τοπικής βάσης δεδομένων SQLite ΤΑΙΡΙΑΣΜΑΤΑ Ε ΟΜΕΝΩΝ ΡΟΗ ΒΑΣΙΚΟΥ ΣΕΝΑΡΙΟΥ ΧΡΗΣΗΣ ΤΗΣ ΕΦΑΡΜΟΓΗΣ ΕΙΣΑΓΩΓΗ Σύντομη περιγραφή Εμπλεκόμενοι ρόλοι χρηστών ΡΟΗ ΣΥΜΒΑΝΤΩΝ Βασικές ροές Βασική ροή Εναλλακτικές ροές Φιλτράρισμα αποτελεσμάτων Επιμέρους ροές Επισκόπηση σημείου ενδιαφέροντος στον χάρτη Κλήση τηλεφώνου σημείου ενδιαφέροντος Προθήκη σημείου ενδιαφέροντος ως επαφή ΤΕΧΝΙΚΗ ΥΛΟΠΟΙΗΣΗ ΠΕΡΙΓΡΑΦΗ ΛΥΣΗΣ ΕΠΙΛΟΓΟΣ ΣΥΜΠΕΡΑΣΜΑΤΑ ΜΕΛΛΟΝΤΙΚΕΣ ΕΠΕΚΤΑΣΕΙΣ ΚΑΙ ΒΕΛΤΙΩΣΕΙΣ ΒΙΒΛΙΟΓΡΑΦΙΑ ΟΡΟΛΟΓΙΑ Σελίδα 5 από 94

6 11. ΠΑΡΑΡΤΗΜΑ Α - Ο ΗΓΙΕΣ ΕΓΚΑΤΑΣΤΑΣΗΣ ΚΑΙ ΠΑΡΑΜΕΤΡΟΠΟΙΗΣΗΣ ΠΕΡΙΒΑΛΛΟΝΤΟΣ ΑΝΑΠΤΥΞΗΣ ANDROID ΕΓΚΑΤΑΣΤΑΣΗ JDK ΕΓΚΑΤΑΣΤΑΣΗ ANDROID SDK (ADT BUNDLE) ΦΟΡΤΩΜΑ ΠΗΓΑΙΟΥ ΚΩ ΙΚΑ ΤΟΥ ΠΡΟΓΡΑΜΜΑΤΟΣ NEARME! ΒΙΒΛΙΟΓΡΑΦΙΚΕΣ ΠΑΡΑΠΟΜΠΕΣ Σελίδα 6 από 94

7 ΕΥΡΕΤΗΡΙΟ ΕΙΚΟΝΩΝ ΕΙΚΟΝΑ 1: ΙΑΓΡΑΜΜΑ ΡΟΗΣ ΙΕΠΑΦΗΣ ΧΡΗΣΤΗΣ ΤΗΣ ΕΦΑΡΜΟΓΗΣ NEARME! ΕΙΚΟΝΑ 2: ΣΤΙΓΜΙΟΤΥΠΟ ΟΘΟΝΗΣ ΤΗΣ ΕΦΑΡΜΟΓΗ NEARME! ΣΕ ΠΡΑΓΜΑΤΙΚΕΣ ΣΥΣΚΕΥΕΣ ΕΙΚΟΝΑ 3: ΙΣΤΟΣΕΛΙ Α ΠΑΡΟΥΣΙΑΣΗΣ ΚΑΙ ΠΡΟΩΘΗΣΗΣ ΕΦΑΡΜΟΓΗΣ NEARME! ΕΙΚΟΝΑ 4: ΤΟ ΛΟΓΟΤΥΠΟ ΤΟΥ ANDROID ΕΙΚΟΝΑ 5: Η ΕΚ ΟΣΗ ΤΟΥ ANDROID ΤΟ ΕΙΚΟΝΑ 6: ΚΑΤΑΝΟΜΗ ΕΚ ΟΣΕΩΝ ANDROID ΕΙΚΟΝΑ 7: ΚΑΤΑΚΕΡΜΑΤΙΣΜΟΣ ANDROID ΑΝΑ ΣΥΣΚΕΥΗ ΕΙΚΟΝΑ 8: DALVIK VM ΣΥΓΚΡΙΤΙΚΑ ΜΕ ΤΟΝ ΕΜΠΝΕΥΣΤΗ ΤΟΥ, JAVA VM ΕΙΚΟΝΑ 9: ΕΠΙΣΚΟΠΗΣΗ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ ANDROID ΕΙΚΟΝΑ 10: ΜΙΑ ΣΥΓΧΡΟΝΗ ΚΙΝΗΤΗ ΣΥΣΚΕΥΗ ΠΟΥ ΧΡΗΣΙΜΟΠΟΙΕΙ ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ ANDROID ΕΙΚΟΝΑ 11: ΈΝΑ ΠΡΑΓΜΑΤΙΚΟ ΠΑΡΑ ΕΙΓΜΑ ΕΡΓΑΣΤΗΡΙΟΥ ΟΚΙΜΩΝ ANDROID ΕΦΑΡΜΟΓΩΝ ΕΙΚΟΝΑ 12: ΚΥΚΛΟΣ ΖΩΗΣ ΡΑΣΤΗΡΙΟΤΗΤΑΣ (ACTIVITY) ΕΙΚΟΝΑ 13: ΙΑΓΡΑΜΜΑ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ ΣΧΕ ΙΑΣΗΣ ΤΗΣ ΕΦΑΡΜΟΓΗΣ ΕΙΚΟΝΑ 14: ΟΜΗ ΠΗΓΑΙΟΥ ΚΩ ΙΚΑ ΕΙΚΟΝΑ 15: ΙΑΓΡΑΜΜΑ ΡΟΗΣ ΡΑΣΤΗΡΙΟΤΗΤΩΝ ΕΙΚΟΝΑ 16: ΙΑΓΡΑΜΜΑ ΚΛΑΣΕΩΝ ΕΙΚΟΝΑ 17: Η ΠΙΛΟΤΙΚΗ ΕΦΑΡΜΟΓΗ "GREEK WIFI HOTSPOTS" Σελίδα 7 από 94

8 ΕΥΡΕΤΗΡΙΟ ΟΘΟΝΩΝ ΟΘΟΝΗ 1: ΕΝΕΡΓΟΠΟΙΗΣΗ ΔΥΝΑΤΟΤΗΤΑΣ ΕΝΤΟΠΙΣΜΟΥ ΘΕΣΗΣ ΟΘΟΝΗ 2: ΕΠΙΛΟΓΗ ΤΥΠΟΥ/ ΚΑΤΗΓΟΡΙΑ ΣΗΜΕΙΟΥ ΕΝΔΙΑΦΕΡΟΝΤΟΣ ΟΘΟΝΗ 3: ΛΙΣΤΑ ΔΙΑΘΕΣΙΜΩΝ ΣΗΜΕΙΩΝ ΕΝΔΙΑΦΕΡΟΝΤΟΣ ΟΘΟΝΗ 4: ΛΙΣΤΑ ΦΙΛΤΡΑΡΙΣΜΕΝΩΝ ΔΙΑΘΕΣΙΜΩΝ ΣΗΜΕΙΩΝ ΕΝΔΙΑΦΕΡΟΝΤΟΣ ΟΘΟΝΗ 5: ΑΝΑΛΥΤΙΚΑ ΣΤΟΙΧΕΙΑ ΣΗΜΕΙΟΥ ΕΝΔΙΑΦΕΡΟΝΤΟΣ ΟΘΟΝΗ 6: ΑΠΕΙΚΟΝΙΣΗ ΣΗΜΕΙΟΥ ΕΝΔΙΑΦΕΡΟΝΤΟΣ ΣΤΟΝ ΧΑΡΤΗ Σελίδα 8 από 94

9 ΕΥΡΕΤΗΡΙΟ ΠΙΝΑΚΩΝ ΠΙΝΑΚΑΣ 1: ΠΙΝΑΚΑΣ ΕΚΔΟΣΕΩΝ ANDROID ΠΙΝΑΚΑΣ 2: ΣΥΓΚΡΙΤΙΚΟΣ ΠΙΝΑΚΑΣ ΕΡΓΑΛΕΙΩΝ ΑΝΑΠΤΥΞΗΣ ΚΙΝΗΤΩΝ ΕΦΑΡΜΟΓΩΝ ΠΙΝΑΚΑΣ 3: ΣΤΟΙΧΕΙΑ ΤΥΠΩΝ/ ΚΑΤΗΓΟΡΙΩΝ ΣΗΜΕΙΩΝ ΕΝΔΙΑΦΕΡΟΝΤΟΣ ΠΙΝΑΚΑΣ 4: ΣΤΟΙΧΕΙΑ ΛΙΣΤΑΣ ΔΙΑΘΕΣΙΜΩΝ ΣΗΜΕΙΩΝ ΕΝΔΙΑΦΕΡΟΝΤΟΣ ΠΙΝΑΚΑΣ 5: ΑΝΑΛΥΤΙΚΑ ΣΤΟΙΧΕΙΑ ΣΗΜΕΙΟΥ ΕΝΔΙΑΦΕΡΟΝΤΟΣ ΠΙΝΑΚΑΣ 6: ΣΤΟΙΧΕΙΑ ΣΗΜΕΙΩΝ ΕΝΔΙΑΦΕΡΟΝΤΟΣ ΑΠΕΙΚΟΝΙΣΜΕΝΑ ΣΤΟΝ ΧΑΡΤΗ Σελίδα 9 από 94

10 1. Εισαγωγή 1.1. Παρουσίαση Android εφαρμογής NearMe! Σκοπός δημιουργίας Σκοπός της Android εφαρμογής NearMe! είναι να αποτελέσει το προοίμιο μιας, ανοικτού κώδικα, κινητής πλατφόρμας εύκολης αξιοποίησης ανοικτών/ ελεύθερων δεδομένων (open/ free data) προς όφελος της διευκόλυνσης συγκεκριμενών καθημερινών διαδικασιών αναζήτησης πληροφοριών γεωχωρικού χαρακτήρα. Τα δεδομένα μπορούν να προέρχονται είτε από συλλογές απλών χρηστών (όπως αυτά διαθέσιμα από την κοινότητα του pois.gr [1]) είτε ανοικτά δεδομένα συγκεντρωμένα από επίσημες υπηρεσίες της ημόσιας ιοίκησης, όπως αυτά προσφέρονται πλέον στα πλαίσια της κυβερνητικής δράσης «Εθνική Στρατηγική για τις Τεχνολογίες Πληροφορικής και Επικοινωνιών (ΤΠΕ) και την Ηλεκτρονική ιακυβέρνηση» [2][3]. Αποτελεί ουσιαστικά έναν εύκολο τρόπο συνάθροισης γεωχωρικών δεδομένων (geodata), με έμφαση στα Σημεία Ενδιαφέροντος (Σ.Ε.) από ποικιλόμορφες πηγές καθώς και τρόπο ενιαίας διάθεσης, απεικόνισης και εξυπηρέτησης του τελικού χρήστη στην έξυπνη κινητή συσκευή (smartphone) του. Ουσιαστικά βοηθάει στο να απαντηθούν ερωτήματα όπως: Ποιό είναι το πλησιέστερο εφημερεύον φαρμακείο; Ποιά είναι η καθαρότερη παραλία κοντά μου; Ποιό είναι το πλησιέστερο σημείο δωρεάν ασύρματης πρόσβασης στο ιαδίκτυο; Πιο συγκεκριμένα, οι τρέχουσες υποστηριζόμενες κατηγορίες Σ.Ε. είναι οι ακόλουθες: 1. Εφημερεύοντα Φαρμακεία. 2. Βραβευμένες Παραλίες με «Γαλάζια Σημαία». 3. Βραβευμένα Ξενοδοχεία με Green Key. 4. ημόσια σημεία ασύρματης πρόσβασης στο ιαδίκτυο - Wi-Fi Hotspots. Με την ίδια ευκολία, η εφαρμογή, θα μπορούσε να υποστηρίζει πληροφόρηση για φθηνότερα πρατήρια βενζίνης, εφημερεύοντα νοσοκομεία, πλησιέστερη στάση ΜΜΜ, πλησιέστερο Αστυνομικό Τμήμα/ ΚΕΠ/ ημόσια Υπηρεσία, κ.ά. Οι πηγές καθώς και η μορφή των υποστηριζόμενων κατηγοριών Σ.Ε. περιγράφονται αναλυτικότερα στην ενότητα «4. Λειτουργικές προδιαγραφές» Πλατφόρμα υλοποίησης Προς το παρόν, η εφαρμογή, απευθύνεται στο λειτουργικό σύστημα Android, το οποίο είναι πλατφόρμα ανοιχτού κώδικα και κυρίαρχο στην αγορά των έξυπνων κινητών συσκευών. Ωστόσο, όπως θα δούμε και στην ενότητα «8.2. Μελλοντικές επεκτάσεις και βελτιώσεις», υπάρχουν μελλοντικές βλέψεις και ελπίδες για μια διαπλατφορμική λύση. Η εφαρμογή είναι εγγενής (native application) και διαθέτει εύκολη στην εκμάθηση και εύχρηστη διεπαφή χρήστη υλοποιώντας σχεδιαστικά μοτίβα (design patterns) όπως κεντρικό ταμπλό (dashboard) και κύριας δευτερευούσης οθόνης (master-detail screens). ιαθέτει επίσης ευκολίες προς τον προγραμματιστή προκειμένου να προσθέσει νέα κατηγορία Σημείου Ενδιαφέροντος. Περισσότερες τεχνικές λεπτομέρειες παρέχονται στην ενότητα «7. Τεχνική υλοποίηση» Συνοπτική παρουσίαση Μια συνοπτική παρουσίαση της λειτουργικότητας και της διεπαφής χρήστη, γίνεται στην Εικόνα 1: ιάγραμμα Ροής ιεπαφής Χρήστης της εφαρμογής NearMe!. Σελίδα 10 από 94

11 Εικόνα 1: ιάγραμμα Ροής ιεπαφής Χρήστης της εφαρμογής NearMe! Η εφαρμογή είναι λειτουργική για πραγματική χρήση και διαθέσιμη για δημοσίευση στο Play Store [4]. ιατίθεται δωρεάν και μπορεί να τη μεταφορτώσει οποιοσδήποτε επιθυμεί, αρκεί η συσκευή του να πληροί τις τεχνικές απαιτήσεις της εφαρμογής. Η Εικόνα 2 δείχνει πως θα φαίνεται ένα στιγμιότυπο της εφαρμογής σε πραγματικές συσκευές (μια ταμπλέτα (tablet) και ένα κινητό τηλέφωνο νέας γενιάς). Σελίδα 11 από 94

12 Εικόνα 2: Στιγμιότυπο οθόνης της εφαρμογή NearMe! σε πραγματικές συσκευές Επίσης, όπως είθισται για κάθε τέτοια εφαρμογή, έχει δημιουργηθεί μια ιστοσελίδα [5] η οποία παρουσίαζει/ διαφημίζει την λειτουργικότητα της εφαρμογής και τα οφέλη που προσφέρει στους χρήστες, όπως φαίνεται στην Εικόνα 3. Σελίδα 12 από 94

13 Εικόνα 3: Ιστοσελίδα παρουσίασης και προώθησης εφαρμογής NearMe! Αναλυτικότερη παρουσίαση της λειτουργικότητας και τρόπου χρήσης της εφαρμογής γίνεται στην ενότητα «6. Ροή βασικού σεναρίου χρήσης της εφαρμογής» Τεχνικές απαιτήσεις εφαρμογής Η εφαρμογή NearMe! μπορεί να λειτουργήσει σε κινητές συσκευές που τρέχουν εκδόσεις του λειτουργικού συστήματος Android μεγαλύτερες της Υφιστάμενες λύσεις ημοφιλείς εφαρμογές Τον τελευταίο χρόνο είδαμε μια έξαρση, στις διάφορες αγορές Android, των εφαρμογών που εστιάζουν στα Σ.Ε. Ανάμεσα στις διαθέσιμες εφαρμογές είναι οι ακόλουθες (ως πιο γνωστές): XrySOS (από την εταιρία «Χρυσός Οδηγός»). AthensBook/ ThesBook (από την εταιρία Susuko Maka ). Google Places. Waze (από την εταιρία Waze Mobile). AroundMe (της εταιρίας Attorno a Me ) ιαφορές της NearMe! από άλλες εφαρμογές Όλα τα προαναφερθέντα, είτε εξυπηρετούν μέρος της τοπικής Ελληνικής αγοράς είτε ολόκληρη την παγκόσμια αγορά, έχουν δυο σημαντικές διαφορές με την εφαρμογή NearMe!: δεν διατίθενται ως εφαρμογές ανοικτού κώδικα και δεν παρέχουν κάποια πρόσβαση στα δεδομένα τους. Αυτό είναι Σελίδα 13 από 94

14 φυσιολογικό για όσες δεν υποστηρίζουν εισαγωγή Σ.Ε. από τους χρήστες και έχουν καθαρά εμπορικό χαρακτήρα. Υπάρχουν ωστόσο και οι περιπτώσεις όπου χρήστες των εφαρμογών συνεισφέρουν στην ανεύρεση Σ.Ε. και καταχώρισης τους στα αντίστοιχα συστήματα. Εντούτοις, η πληροφορία τελικώς αποτελεί ιδιοκτησία της εκάστοτε εταιρίας στην οποία ανήκει η εφαρμογή. Χρησιμοποιούν δηλαδή την κοινότητα για να εμπλουτίσουν τις βάσεις δεδομένων τους. Κάτι τέτοιο δεν είναι παράνομο ή ανήθικο καθώς ο τελικός χρήστης λαμβάνει δωρεάν την εφαρμογή, ωστόσο αποτελεί ένα από τα κυριότερα σημεία διαφοροποίησης. Σελίδα 14 από 94

15 2. Πλατφόρμα Android 2.1. Εισαγωγή Ιστορική αναδρομή Το Android είναι ένα λειτουργικό σύστημα ανοικτού κώδικα για έξυπνες κινητές συσκευές με οθόνη αφής (touch screen), βασισμένο στον πυρήνα του λειτουργικού συστήματος Linux. Απαριθμεί περισσότερες από 750 εκατομμύρια ενεργοποιημένες συσκευές [6] και περισσότεροι από 60 κατασκευαστές τηλεφώνων βασίζονται σε αυτό για τα προϊόντα τους. Στα πιο γνωστά προϊόντα συγκαταλέγεται η ταμπλέτα Kindle Fire της εταιρίας Amazon, η σειρά έξυπνων κινητών τηλεφώνων Galaxy S της εταιρίας Samsung, καθώς και η σειρά κινητών τηλεφώνων και ταμπλετών Nexus της εταιρίας Google. Το σήμα κατατεθέν του Android είναι το ευρέως αναγνωρίσιμο πράσινο ρομπότ, το οποίο φαίνεται στην Εικόνα 4. Εικόνα 4: Το λογότυπο του Android. Η ανάπτυξη του Android ξεκίνησε το 2003 στο Palo Alto, California (μέρος της Silicon Valley «Μέκκα» των μεγαλύτερων εταιριών υψηλής τεχνολογίας στον κόσμο) από μια μικρή ομάδα νέων και φιλόδοξων ανθρώπων υπό την μορφή νεόφυτης εταιρείας (startup company) με το όνομα Android Inc. Λίγα είναι γνωστά για την αρχική έκδοση του λογισμικού (καθότι δουλεύαν υπό άκρα μυστικότητα), παρά μόνο το γεγονός ότι δεν έμοιαζε πολύ (ούτε εικαστικά αλλά ούτε τεχνικά) [7] με αυτό που παρουσιάστηκε το 2008 ως το πρώτο επίσημο έξυπνο κινητό τηλέφωνο με οθόνη αφής Android (το HTC Dream) [8]. Ένα στιγμιότυπου της έκδοσης του 2003 φαίνεται στην Εικόνα 5. Σελίδα 15 από 94

16 Εικόνα 5: Η έκδοση του Android το Μόλις δυο χρόνια αργότερα, το 2005 η Google εξαγοράζει την εταιρία Android Inc (παράλληλα απασχολώντας τους ιδρυτές) σε μια διαφαινόμενη προσπάθεια να εισέλθει στον χώρο του πολλά υποσχόμενου και κερδοφόρου τομέα των έξυπνων κινητών συσκευών, κάτι σημαντικό για το μέλλον της εταιρίας. Η εξαγορά είχε σαν αποτέλεσμα να δώσει οικονομική ενίσχυση, μεγαλύτερη προοπτική και ορατότητα στο Android. Παράλληλα, έκανε πολυεκατομμυριούχους τους εμπνευστές του. Ανάμεσα στην ιδρυτική ομάδα του Android ήταν και ο Andy Rubin, ο οποίος συνέχισε μέχρι τον Μάρτιο του 2013 να έχει ενεργή και σημαντική συμμετοχή στην εξέλιξη του Android [9]. Θεωρείται από πολλούς από τους βασικότερους εμπνευστές-οραματιστές και εκτελεστές του Android Η νέα εποχή Το 2007, το Android περνάει στην δικαιοδοσία και επίβλεψη μιας κοινοπραξίας εταιριών τεχνολογίας και τηλεπικοινωνιών [10], της Open Handset Alliance (ΟΗΑ). Σκοπός του νεοιδρυθέντος οργανισμού ήταν, και είναι, η ανάπτυξη και εξέλιξη ανοιχτών προτύπων στις συσκευές κινητής τηλεφωνίας. Βασικός περιορισμός του παραμένει η απαγόρευση παραγωγής και διάθεσης έξυπνων κινητών τηλεφώνων μη συμβατών με την επίσημη έκδοση του Android [11]. Παράλληλα η Google δημοσίευσε το μεγαλύτερο μέρος του κώδικα του Android υπό τους όρους της Apache License (έκδοση 2) [12], μιας άδειας ελεύθερου λογισμικού, κίνηση που όπως θα δούμε αργότερα έδωσε τεράστια ώθηση στο λειτουργικό της σύστημα, αλλά και παράλληλα οδήγησε σε ένα μεγάλο κατακερματισμό (fragmentation) της αγοράς του Android Ο ανταγωνισμός και οι διαμάχες Στο μεταξύ, το καλοκαίρι του 2007 η εταιρία Apple αποκάλυψε την πρωτοποριακή και επαναστατική για τον κλάδο, έξυπνη κινητή συσκευή με οθόνη αφής. Αυτή δεν ήταν άλλη από το πασίγνωστο, πετυχημένο και ακριβό iphone με το ιδιόκτητο (proprietary) λειτουργικό σύστημα iphone OS (μετέπειτα γνωστό ως ios). Η κίνηση αυτή της Apple αιφνιδίασε ολόκληρη την αγορά των κινητών τηλεφώνων (η οποία βρέθηκε τουλάχιστον μια γενιά πίσω όσον αφορά την τεχνολογική καινοτομία καθώς καμία άλλη εταιρία δεν χρησιμοποιούσε με επιτυχία οθόνη αφής και εξελιγμένο λειτουργικό σύστημα στη σειρά προϊόντων της για την κινητή τηλεφωνία) και μέσα σε ένα πολύ μικρό χρονικό διάστημα κατάφερε να αποκτήσει πολύ σημαντικό μερίδιο της αγοράς, με τεράστια μάλιστα κέρδη [13]. Το γεγονός αυτό σήμανε συναγερμό για τις εταιρίες πληροφορικής/ τηλεπικοινωνίων, όπως η Σελίδα 16 από 94

17 Google, η οποία αρχικά έσπευσε σε διάστημα λίγων ετών να εξελίξει το Android στο ποιοτικό επίπεδο του ios και αργότερα ίσως, για πρώτη φορά, και να το ξεπεράσει [14]. Η Apple βλέποντας να ανεβαίνει σταδιακά αλλά σταθερά το μερίδιο αγοράς του Android, κατέφυγε σε μηνύσεις. Η όλη αυτή διαδικασία αποδείχτηκε γενικά πολύ επίπονη και δαπανηρή για τις εμπλεκόμενες εταιρίες (όπως και για τις μεγαλύτερες εταιρίες κατασκευής συσκευών που λειτουργούν με λειτουργικό σύστημα Android, όπως Samsung) καθώς η Apple προσέφυγε δικαστικά ενάντια σε οτιδήποτε έμοιαζε να χρησιμοποιεί εμπορικά ή να σχετίζεται δικαιωματικά με το Android, σε αυτό που ανεπίσημα πλέον αποκαλείται Apple-Google Patent War [15]. Αργότερα ενεπλάκη στη διαμάχη και η εταιρία Microsoft, η οποία εικάζεται βλέποντας να έχει μείνει πίσω στις εξελίξεις, δημιούργησε κρυφά συμμαχία με την Apple σχετικά με πνευματικά δικαιώματα και πατέντες ευρεσιτεχνίας και στράφηκε επίσης ενάντια στο Android [16] [17] [18]. Ακολούθησαν η εταιρία Oracle η οποία ισχυρίστηκε καταπάτηση πνευματικών δικαιωμάτων όσον αφορά την γλώσσα Java [19] και η εταιρία Nokia η οποία επίσης ισχυρίστηκε παρόμοια πράγματα για διάφορες τεχνολογίες, βλέποντας ότι χάνει μεγάλο μερίδιο αγοράς (με το πλέον απαρχαιωμένο ιδιόκτητο λειτουργικό σύστημα Symbian OS) προς τους κατασκευαστές που χρησιμοποιούν Android [20]. Όλα αυτά οδήγησαν την Google να αναγκαστεί να ξοδέψει τεράστια ποσά (δισεκατομμύρια δολάρια) για να αμυνθεί (κυρίως αγοράζοντας διπλώματα ευρεσιτεχνίας) και να προστατέψει το οικοσύστημα Android [21][22][23]. Στο μεταξύ, την περίοδο οι κυρίαρχες εταιρίες του χώρου, δηλαδή η RIM (με το λειτουργικό σύστημα Blackberry OS) και η Nokia (με το λειτουργικό σύστημα Symbian OS ή το πλέον παροπλισμένο λειτουργικό σύστημα MeeGo - συνεργασία της Nokia με την εταιρία Intel), βλέπουν να χάνουν τεράστια ποσοστά της αγοράς και ξαφνικά να βρίσκονται στην τελευταία θέσης της κατάταξης, από κυρίαρχοι της αγοράς (market leaders) [24]. H Microsoft στο διάστημα αυτό, προκειμένου να γίνει ανταγωνιστική, προσπαθεί και φτιάχνει ένα καινούριο ιδιόκτητο λειτουργικό σύστημα για έξυπνα κινητά τηλέφωνα, το Windows Phone (έχοντας εγκαταλείψει πλέον το παλιό λειτουργικό σύστημα Windows Mobile). Το νέο λειτουργικό σύστημα φαίνεται να μην έχει αποκτήσει ακόμα σημαντική διείσδυση στην αγορά, εν έτει Η Nokia συνεχίζοντας να χάνει μερίδιο αγοράς προς το Android [25] τελικά υιοθέτησε το 2011 το Windows Phone (αντί να εξελίξει το δικό της) σε μια στρατηγική συνεργασία με την Microsoft. Η κίνηση αυτή δεν φαίνεται να έχει αποδώσει τα αναμενόμενα οφέλη, μέχρι και το τέλος του 2012 αρχές 2013 [26]. Η RIM στις αρχές του 2013 μετονομάστηκε σε Blackberry και κυκλοφορεί το ολοκαίνουργιο και φέρελπις λειτουργικό σύστημα Blackberry 10, μετά από τα μεγάλα οικονομικά και οργανωτικά προβλήματα που αντιμετώπισε λόγω απώλειας τεράστιου μεριδίου αγοράς στον ανταγωνισμό (κυρίως προς το Android αλλά και το ios) Τρέχουσα κατάσταση Η κυριαρχία Το Android συνεχίζει την ανοδική του πορεία στη διάρκεια 2013 όντας, πλέον κυρίαρχος της αγοράς των έξυπνων κινητών συσκευών, παρά τα προβλήματα που προσπάθησαν να δημιουργήσουν ή δημιουργήσαν οι ανταγωνιστικές εταιρίες μέσω του συστήματος κατοχύρωσης ευρεσιτεχνιών των Ηνωμένων Πολιτειών της Αμερικής. Αναλυτές της αγοράς εικάζουν ότι η επικράτηση του Android και το 2013 είναι σχεδόν σίγουρη υπόθεση [27] Παράγοντες επιτυχίας Σε αυτή την πορεία συνέβαλε η Google η οποία επένδυσε σοβαρούς πόρους στο έργο (από το να το βελτιώνει συνεχώς μέχρι να το προστατεύει στα δικαστήρια ή ξοδεύοντας δισεκατομμύρια δολάρια σε διπλώματα ευρεσιτεχνίας προκείμενου θωρακιστεί νομικά η πλατφόρμα) καθώς και η ανοικτή φύση της πλατφόρμας που έδωσε την δυνατότητα σε πληθώρα κατασκευαστών να προσφέρουν σε αφθονία άκρως ανταγωνιστικά προϊόντα και να λειτουργήσει ο ανταγωνισμός και η ελεύθερη αγορά καλύτερα. Σημειώνεται ότι το Android καλύπτει μια ευρεία γκάμα συσκευών από ταμπλέτες και κινητά έως και netbooks, με τις συσκευές να διατίθενται σε ένα εύρος τιμών που ξεκινά από τα και φθάνει έως τα επίπεδα των συσκευών ios, δηλ. στην περιοχή των ευρώ. Σελίδα 17 από 94

18 Επιπρόσθετα, το γεγονός ότι οι περισσότερες εφαρμογές για Android προσφέρονται δωρεάν (και μάλιστα δεν χρειάζονται ιδιαίτερη έγκριση, όπως οι εφαρμογές στο App Store της Apple, μειώνοντας έτσι τον χρόνο διάθεσης (deployment) στην αγορά Play Store σε τάξη λεπτών αντί ημερώνεβδομάδων), είναι ένας ακόμα βασικός λόγος επικράτησης της πλατφόρμας. Τέλος, σημαντικό ρόλο φυσικά έπαιξαν και τα σφάλματα των ανταγωνιστών, όπως Nokia (η οποία εγκατέλειψε το δικό της λειτουργικό Symbian) και RIM (πλέον Blackberry, η οποία άργησε σημαντικά να εκσυγχρονίσει το ιδιωτικό λειτουργικό της σύστημα), της Microsoft (η οποία καθυστέρησε να κυκλοφορήσει δικό της εξελιγμένο λειτουργικό σύστημα για κινητές συσκευές) και φυσικά της Apple με κύριο ζήτημα το πρόβλημα κεραίας στο iphone και πιο πρόσφατα με τα προβλήματα του προγράμματος ios 6 Maps Android παντού Πέρα από τα κινητά τηλεφώνα, τις ταμπλέτες και τα netbooks, το Android έχει επεκταθεί και σε μια πληθώρα συσκευών όπως τα παρακάτω: Φωτογραφικές Μηχανές Τηλεοράσεις Συσκευές Αναπαραγωγής Πολυμέσων (Multimedia Players) Παιχνιδομηχανές Συστήματα Αυτοματισμού Κατοικιών και Κτιρίων Έξυπνα ρολόγια Πλυντήρια, κ.ά Τα μειονεκτήματα Πολυμορφικότητα Η τεράστια επιτυχία του Android έχει και το τίμημά της, κάτι που πληρώνουν κυρίως οι καταναλωτές που δέχονται βομβαρδισμό από νέες συσκευές (αφού υπάρχει υπερπροσφορά και συνεχώς κατακλύζουν την αγορά πάρα πολλά νέα μοντέλα κάτι που οδηγεί σε μεγάλο βαθμό απαξίωση της αξίας των συσκευών καθώς αποκτούν ευκολότερα την ιδιότητα των αναλώσιμων συσκευών) καθώς και οι προγραμματιστές Android καθότι η κάθε συσκευή μπορεί να παρουσίασει ιδιαιτερότητες (εφόσον είναι ανοικτός ο κώδικας και κάθε κατασκευαστής κάνει αλλαγές βάσει των αναγκών του) επομένως είναι αναγκαία η δοκιμή της καλής λειτουργίας των εφαρμογών προς έκδοση, σε μια πολύ μεγάλη ποικιλία συσκευών και διαφορετικών εκδόσεων (πολλές φορές με ασυμβατότητες μεταξύ κυρίων εκδόσεων). Επιπρόσθετα, παρατηρείται το φαινόμενο να μην λαμβάνεται από τις εταιρείες μέριμνα για την αναβάθμιση του λειτουργικού συστήματος σε συσκευές μικρής ή μεσαίας δυναμικότητας, λόγω του μικρού τους κόστους και άρα μικρότερου περιθωρίου κέρδους. Συνεπώς οι συσκευές δεν συντηρούνται καταλλήλως από τις εταιρίες που τις παράγουν, με αποτέλεσμα να καθίστανται παρωχημένες πολύ εύκολα. Αυτό αποτελεί και ένα μεγάλο παράπονο της κοινότητας του Android, ενώ δεν συμβαίνει το ίδιο με την Apple, όπου συσκευές που βρίσκονται τρεις γενεές πίσω από άποψης υλικού μπορούν να τρέξουν σχεδόν απροβλημάτιστα την τελευταία έκδοση του λειτουργικού συστήματος (π.χ. iphone 3GS μπορεί να τρέξει την τελευταία έκδοση (ios 6)) Αγορές Android και διανομή εφαρμογών Η μεταφόρτωση και διαχείριση των εφαρμογών Android γίνεται κυρίως από το Play Store (πρώην Android Market), την επίσημη αγορά λογισμικού (marketplace) Android από την Google. Ωστόσο, υπάρχουν πλέον πολλές αγορές λογισμικού (application marketplaces) εφαρμογών Android, η καθεμία με τους δικούς της περιορισμούς. Μερικές τέτοιες αγορές είναι: Play Store (το διαχειρίζεται η Google) Amazon App Store (το διαχειρίζεται η Amazon) Opera Mobile App Store (το διαχειρίζεται η εταιρία Opera, δημιουργός της εφαρμογής πλοήγησης Opera Browser) Σελίδα 18 από 94

19 Samsung Apps Store (διαχειρίζεται από την Samsung και περιορίζεται μόνο για τα προϊόντα της) GetJar (δεν σχετίζεται με κάποια μεγάλη εταιρία πληροφορικής) SlideMe (δεν σχετίζεται με κάποια μεγάλη εταιρία πληροφορικής). Γενικότερα, υπάρχουν δύο τρόποι «φορτώματος» εφαρμογών στην Android συσκευή: 1. Ο πρωταρχικός τρόπος απόκτησης εφαρμογών είναι από κάποια από τις διαθέσιμες αγορές εφαρμογών Android. Η κάθε αγορά λογισμικού έχει και την δική της εφαρμογή που παρέχει στους χρήστες πρόσβαση στις εφαρμογές που προσφέρει. 2. Ο δεύτερος τρόπος είναι πιο χειροκίνητος και αφορά την μεταφόρτωση εκτελέσιμου αρχείου (τύπου APK) της εφαρμογής στη συσκευή. Το Android επιτρέπει την εγκατάσταση εφαρμογών (ως πακέτα.apk) εκτός των αγορών, αρκεί ο χρήστης να έχει αποδεχτεί στις ρυθμίσεις της συσκευής του να γίνεται εγκατάσταση πακέτων από μη έμπιστες πηγές. Ο τρόπος αυτός είναι και ο συνηθέστερος τρόπος εγκατάστασης πειρατικών εφαρμογών ή εφαρμογών που δεν δημοσιεύονται στο Play Store για ποικίλους λόγους (π.χ. είτε επειδή είναι ιδιωτικά είτε επειδή δεν συμφωνούν με τους όρους χρήσης της εκάστοτε αγοράς). Η διαδικασία αυτή λέγεται «κατά περίπτωση διανομή εφαρμογής» ή αλλιώς, ad-hoc app distribution Εκδόσεις Android και κατακερματισμός αγοράς Οι διάφορες εκδόσεις του Android μέχρι στιγμής και σαφή ένδειξη του υφιστάμενου κατακερματισμού της αγοράς, φαίνονται στον πίνακα Πίνακας 1. Έκδοση Android Κωδική Ονομασία Έκδοση API Κατανομή 1.6 Donut % 2.1 Eclair % 2.2 Froyo % Gingerbread % % Honeycomb % % Ice Cream Sandwich % Jelly Bean % % Πίνακας 1: Πίνακας εκδόσεων Android Η στήλη «Κατανομή» του παραπάνω πίνακα δηλώνει το ποσοστό των κινητών συσκευών Android που λειτουργούν υπό («τρέχουν») τη συγκεκριμένη έκδοση. Η Εικόνα 6 προσφέρει μια γραφική αναπαράσταση των ποσοστών. Σελίδα 19 από 94

20 Εικόνα 6: Κατανομή εκδόσεων Android Άξιο παρατήρησης είναι το γεγονός ότι το 90% περίπου των συσκευών τρέχουν εκδόσεις Android μεγαλύτερες της Αυτή είναι σημαντική παρατήρηση καθώς εξηγεί γιατί οι περισσότερες εφαρμογές στο Play Store έχουν ως ελάχιστη απαίτηση την έκδοση Για περισσότερα σχετικά στοιχεία, ο ενδιαφερόμενος αναγνώστης παραπέμπεται στο [28]. Βέβαια, ο κατακερματισμός ανά Android συσκευή είναι ακόμα μεγαλύτερος, ως αποτέλεσμα της υπερπροσφοράς από τις εταιρίες κατασκευής συσκευών Android, όπως αναφέρθηκε παραπάνω. Ένα τέτοιο παράδειγμα παρουσιάζεται στην Εικόνα 7 που ακολουθεί. Εικόνα 7: Κατακερματισμός Android ανά συσκευή Για περισσότερα σχετικά στοιχεία, ο ενδιαφερόμενος αναγνώστης παραπέμπεται στο [29]. Υπάρχουν ισχυρές ενδείξεις ότι το 2012, η Google σε μια προσπάθεια να περιορίσει τον κατακερματισμό στο Android, προέβη σε σχετικές αλλαγές στην άδεια χρήσης του Android SDK προκειμένου να περιορίσει το πρόβλημα και από την πλευρά των προγραμματιστών Android [30]. Ωστόσο σε πολλούς δεν είναι σαφές πώς η κοινότητα των προγραμματιστών ευθύνεται για τον κατακερματισμό μιας και το φαινόμενο του κατακερματισμού είναι αποτέλεσμα των πολλών παραλλαγών των πολυάριθμων κατασκευαστών. Επιπρόσθετα, η Google, από τις αρχές του 2010, καταφεύγει στη δημιουργία συσκευών αναφοράς (reference devices), κινητά και ταμπλέτες, σε συνεργασία με διάφορους κατασκευαστές, κάτω από την ονομασία Google Nexus. ιαφαινόμενος σκοπός των νέων συσκευών είναι η μείωση του Σελίδα 20 από 94

21 κατακερματισμού, αποτελώντας στην ουσία οδηγούς για τους διάφορους κατασκευαστές συσκευών Android [31]. Όπως θα δούμε και αναλυτικότερα στη συνέχεια, όλα τα παραπάνω λήφθηκαν σοβαρά υπόψιν κατά την διάρκεια επιλογής πλατφόρμας ανάπτυξης της εφαρμογής NearMe! Πειρατεία λογισμικού H Google έχει δεχτεί σφοδρή κριτική όσον αφορά την ευκολία απόκτησης και χρήσης εμπορικών εφαρμογών Android με παράνομο τρόπο (χωρίς να πληρωθεί το σχετικό αντίτιμο από τον χρήστη). Κάποιες προσπάθειες έχουν γίνει προς αυτή την κατεύθυνση χωρίς ωστόσο το πρόβλημα να λυθεί [32].Το ζήτημα της πειρατείας των εφαρμογών της πλατφόρμας παραμένει, ως και τις αρχές του 2013, ένα σοβαρό θέμα για τους εκδότες και τους προγραμματιστές εφαρμογών Android Ασφάλεια και απόρρητο ιδιωτικότητας υστυχώς όπως και με κάθε άλλο παραγωγικό σύστημα, η ασφάλεια του Android είναι ένα μεγάλο ζήτημα που παραμένει ανοικτό και η θωράκισή του από εξωγενείς κακοήθεις παράγοντες δεν έχει καταστεί απόλυτα επιτυχής. Αποτέλεσμα αυτού είναι να έχουν υπάρξει διάφορα και σημαντικά κρούσματα υποκλοπής στοιχείων και ανεξέλεγκτης χρέωσης των τελικών χρηστών τα τελευταία χρόνια [33]. Οι πηγές του κακού εντοπίζονται στα παρακάτω τέσσερα σημεία: 1. Η έλλειψη ελέγχου κατά τη διάρκεια υποβολής ενός προγράμματος στο Play Store. Ενώ η πολιτική αυτή βοηθάει στο να μειωθούν οι απαιτήσεις δημοσίευσης εφαρμογών από του νομότυπους προγραμματιστές/ εκδότες, ταυτόχρονα μπορεί να αποτελέσει σημείο εκμετάλλευσης για όσους θέλουν να διαθέσουν κακόβουλες και ζημιογόνες εφαρμογές. Ίσως μια πολύ γρήγορη και τυπική διαδικασία ανθρωπίνου ελέγχου από την Google να βοηθούσε στο να μειωθεί η έκταση αυτού του φαινομένου. Σημειώνεται ότι το Play Store έχει ήδη ένα αυτοματοποιημένο σύστημα ελέγχου εφαρμογών, γνωστό ως Bouncer, εντούτοις, εκ των πραγμάτων η ικανότητά του στην πρόληψη αμφισβητείται. 2. Ο μηχανισμός ασφαλείας του Android μερικές φορές δεν γίνεται απόλυτα κατανοητός από τους προγραμματιστές ή γίνεται κατάχρηση του μηχανισμού των δικαιωμάτων, με αποτέλεσμα ο χρήστης να συμφωνεί και να παραχωρεί πρόσβαση σε περισσότερα πράγματα απ ό,τι θα επιθυμούσε. Στην ενότητα « ικαιώματα (Permissions)» γίνεται εκτενέστερη αναφορά στον μηχανισμό δικαιωμάτων. 3. «Κερκόπορτες» (backdoors) από κατασκευαστές κινητών Android οι οποίες ανακαλύπτονται και αξιοποιούνται από διάφορους χάκερ (hackers) [34]. 4. «Κενά ασφαλείας» του Android που επιτρέπουν στους χρήστες να γίνουν υπερχρήστες (root) και να αποκτήσουν ελεύθερη πρόσβαση σε όλο το λειτουργικό σύστημα Τεχνική περιγραφή και αρχιτεκτονική Android Τεχνική περιγραφή Αρχιτεκτονική Όπως προαναφέραμε, το λειτουργικό σύστημα Android έχει βασιστεί στον πυρήνα του λειτουργικού συστήματος Linux. Ωστόσο, ο πυρήνας του Android έχει υποστεί σημαντικές τροποποιήσεις από την Google, κάτι που καθιστά αδύνατη την υποστήριξη όλων των τεχνολογιών και εφαρμογών του Linux, π.χ. των X-Windows και των βιβλιοθηκών της GNU. Τα ζητήματα που ανακύπτουν από την ασυμβατότητα αυτή, έχουν οδηγήσει τους σχεδιαστές να επιδιώξουν τη σύγκλιση των πυρήνων του Android και του Linux, και αυτό εκτιμάται ότι θα μπορέσει να συμβεί στην έκδοση 3.8 του Linux, σε περίπου 4-5 έτη. Το Android χρησιμοποιεί την εικονική μηχανή Dalvik (Dalvik Virtual Machine (DVM)) [35], η οποία είναι παρόμοια με την γνωστή εικονική μηχανή Java (Java Virtual Machine (JVM)), με την σημαντική διαφορά ότι περιλαμβάνει ένα επιπρόσθετο στάδιο ενδιάμεσου κώδικα (intermediate code) και Σελίδα 21 από 94

22 απευθύνεται σε συστήματα με πολύ περιορισμένη μνήμη. Επιγραμματικά, οι διαφορές των δυο εικονικών μηχανών φαίνονται στην Εικόνα 8. Εικόνα 8: Dalvik VM συγκριτικά με τον εμπνευστή του, Java VM Η πρωτεύουσα αρχιτεκτονική επεξεργαστών (CPU architecture) που υποστηρίζει το Android είναι η ARM [36]. Μια συνολική επισκόπηση της αρχιτεκτονικής του Android φαίνεται στην παρακάτω Εικόνα 9. Εικόνα 9: Επισκόπηση αρχιτεκτονικής Android Σελίδα 22 από 94

23 ιεπαφή χρήστη Το Android είναι κατά βάση λειτουργικό σύστημα κινητών συσκευών με οθόνες αφής και στηρίζεται στις χειρονομίες αφής του χρήστη για τη βασική λειτουργικότητα. Αξιοποιεί μηχανισμού παροχής ανάδρασης πληροφορίας (information feedback) μέσω δυνατότητων δόνησης της συσκευής καθώς και τρόπους παροχής πληροφοριών σε διάφορες εφαρμογές αξιοποιώντας, μόνα τους ή σε συνδυασμό, υλικά εξαρτήματα όπως: πυξίδα (compass), επιταχυνσιόμετρο (accelerator), βαρόμετρο (barometer), γυροσκόπιο (gyroscope), αισθητήρες εγγύτητας (proximity sensors), δέκτη GPS (GPS receiver), κ.ά. Παρέχει βολικό τρόπο προβολής και επιλογής των διαθέσιμων εφαρμογών υπό την μορφή εικονιδίων σε ένα εικονικό πλέγμα (grid). Υποστηρίζει πληθώρα βασικών εργοστασιακών εφαρμογών (από αναγνώστη ηλεκτρονικού ταχυδρομείου ( client) μέχρι και εφαρμογή διαχείρισης επαφών) καθώς και χιλιάδες άλλες εφαρμογές και παιχνίδια. Ένα παράδειγμα φαίνεται στην Εικόνα 10. Το κάθε εικονίδιο στην οθόνη αντιπροσωπεύει μια εφαρμογή και ανοίγει όταν επιλεγεί μέσω ενός αγγίγματος (tap). Πέρα από το απλό άγγιγμα, υποστηρίζονται διάφορες ενέργειες που μπορούν να γίνουν με το χέρι σε οθόνη αφής («κίνηση σάρωσης» (swipe), «τσίμπημα» (pinch), «διπλό άγγιγμα» (double tap)) και που έχουν αντιστοιχιστεί σε πολυπλοκότερες ενέργειες και λειτουργίες (π.χ. η κίνηση σάρωσης χρησιμοποιείται συχνά στο να αλλάξει η ορατή οθόνη με μια άλλη μου την ακολουθεί στη σειρά). Περισσότερα στοιχεία για τα παραπάνω μπορεί να αναζητήσει κανείς στον επίσημο οδηγό διεπαφής της τεκμηρίωσης του Android [37]. Εικόνα 10: Μια σύγχρονη κινητή συσκευή που χρησιμοποιεί το λειτουργικό σύστημα Android Σελίδα 23 από 94

24 Πλατφόρμα ανάπτυξης εφαρμογών Η ανάπτυξη εφαρμογών για την πλατφόρμα Android γίνεται (ως προεπιλογή) με τη χρήση της γλώσσας προγραμματισμού Java σε συνδυασμό με το Πακέτο Ανάπτυξης Λογισμικού για Android [Android Software Development Kit (Android SDK)]. Το Πακέτο Ανάπτυξης περιλαμβάνει μια εκτενή γκάμα εργαλείων όπως: εργαλείο διόρθωσης σφαλμάτων (debugger), βιβλιοθήκες ανάπτυξης (όπως Χάρτες Google), προσομοιωτή/ εξομοιωτή φυσικής συσκευής (εικονικές συσκευές δηλαδή), οδηγίες χρήσης, τεκμηρίωση κώδικα καθώς και παραδείγματα λειτουργικού κώδικα, μεταξύ άλλων. Το επίσημο ολοκληρωμένο περιβάλλον ανάπτυξης [Integrated Development Environment (IDE)] του Android είναι μια τροποποιημένη έκδοση του γνωστού περιβάλλοντος Eclipse, το οποίο περιλαμβάνει την τελευταία έκδοση του Android SDK και στο σύνολο ονομάζεται Εργαλεία Ανάπτυξης Λογισμικού για Android [Android Development Tools (ADT)]. Για περισσότερες λεπτομέρειες σε σχέση με τα ανωτέρω, ο ενδιαφερόμενος αναγνώστης μπορεί να ανατρέξει στο συνοδευτικό έγγραφο της ενότητας «11. Παράρτημα Α - Οδηγίες εγκατάστασης και παραμετροποίησης περιβάλλοντος ανάπτυξης Android.». Αξίζει να αναφερθεί ότι υπάρχουν εναλλακτικές προσεγγίσεις για την ανάπτυξη εφαρμογών Android με τη χρήση διαπλατφορμικού πακέτου λογισμικού δημιουργίας κινητών εφαρμογών ιστού (crossplatform mobile web applications frameworks). Στην ενότητα « Σύγκριση εγγενών και διαπλατφορμικών λύσεων» αναλύονται τα πλεονεκτήματα καθώς και τα μειονεκτήματα της κάθε προσέγγισης και η λογική πίσω από την επιλογή του «επίσημου» τρόπου ανάπτυξης για την εφαρμογή NearMe!. Αξίζει επίσης να σημειωθεί σε αυτό το σημείο ότι λόγω του κατακερματισμού της αγοράς του Android, η διαδικασία δοκιμής της καλής λειτουργίας (testing) μιας εφαρμογής έχει γίνει αρκετά δύσκολη και επίπονη καθώς χρειάζονται στην κυριολεξία πολλές δεκάδες διαφορετικές Android συσκευές προκειμένου να καλύψει κανείς μεγάλο μέρος της αγοράς. Η ύπαρξη δυνατότητας προσομοίωσης διευκολύνει σημαντικά τη διαδικασία των δοκιμών, παρόλα αυτά, στην πράξη η προσομοίωση δεν προσφέρει την πιστότητα (fidelity) των πραγματικών συσκευών και είναι αργή [38]. Ένα ενδεικτικό παράδειγμα είναι το μέγεθος του εργαστηρίου δοκιμών (testing lab) της εταιρίας animoca η οποία ειδικεύεται στην ανάπτυξη εφαρμογών ψυχαγωγίας για πλατφόρμες κινητών συσκευών (mobile platforms) [39]. Στην Εικόνα 11 φαίνεται το πλήθος των Android συσκευών που διαθέτει η εταιρία για τις απαραίτητες δοκιμές των εφαρμογών της. Σελίδα 24 από 94

25 Εικόνα 11: Ένα πραγματικό παράδειγμα εργαστηρίου δοκιμών Android εφαρμογών Σύγκριση εγγενών και διαπλατφορμικών λύσεων Για κάθε λειτουργικό κινητών συσκευών υπάρχει και η αντίστοιχη επίσημη υποδομή (IDE και SDK) δημιουργίας εγγενών εφαρμογών για αυτό. Για το Android είδαμε ότι είναι το πακέτο λογισμικού Android Development Tools το οποία περιλαμβάνει το Android SDK, κάνει χρήση της γλώσσας προγραμματισμού Java καθώς και μιας τροποποιημένης έκδοσης του προγράμματος Eclipse ως IDE. Για το Windows Phone υπάρχει το πακέτο λογισμικού Windows Phone SDK το οποίο περιλαμβάνει το ομώνυμο SDK, το πρόγραμμα Visual Studio Express ως IDE και κάνει χρήση οποιασδήποτε γλώσσας προγραμματισμού υποστηρίζεται από το πλαίσιο λογισμικού (software framework).net. Για το ios υπάρχει το πακέτο λογισμικού «Εργαλεία Προγραμματιστή ios» (ios Developer Toolset) το οποίο περιλαμβάνει το ios SDK, το πρόγραμμα XCode ως IDE και κάνει χρήση της γλώσσας προγραμματισμού Objective-C (υπερσύνολο της C). Κανένα τους δεν μοιράζεται την ίδια γλώσσα προγραμματισμού, γεγονός που έχει επιπτώσεις στους προγραμματιστές. Σημείωση: Τα προαναφερθέντα λειτουργικά δεν είναι τα μόνα λειτουργικά κινητών συσκευών, ωστόσο είναι τα επικρατέστερα και τα πιο γνωστά. Τα μικρότερα λειτουργικά δεν αναφέρονται και δεν έχουν ληφθεί υπόψιν στην μελέτη λόγω του μικρού μεριδίου αγοράς που κατέχουν. Όλα τα παραπάνω παρέχονται δωρεάν στον προγραμματιστή, ωστόσο, υπάρχουν κάποιοι βασικοί περιορισμοί στην χρήση των δύο τελευταίων: Το Windows Phone SDK λειτουργεί μόνο στα πλαίσια του λειτουργικού Microsoft Windows. Το ios Developer Toolset λειτουργεί μόνο στα πλαίσια του λειτουργικού Mac OS X. Αντίθετα, το Android Development Tool μπορεί να λειτουργήσει σε όλα τα γνωστά λειτουργικά συστήματα (Windows, Mac OS X, Linux) χωρίς πρόβλημα ή περιορισμό. Σελίδα 25 από 94

26 Επομένως, η ανάπτυξη μιας εγγενής ios εφαρμογής προϋποθέτει την ύπαρξη ενός Apple υπολογιστή. Αυτό διότι το λειτουργικό Mac OS X δεν μπορεί να λειτουργήσει σε ένα οποιοδήποτε υπολογιστή, λόγω τεχνικών και νομικών περιορισμών. Παρόμοια, η ανάπτυξη μιας εγγενής Windows Phone εφαρμογής προϋποθέτει την κατοχή άδειας χρήσης του λειτουργικού Microsoft Windows. Και τα δυο, ανεξαρτήτως επιλογής, στοιχίζουν. Αντίθετα, η ανάπτυξη μιας εγγενής εφαρμογής Android μπορεί να γίνει με μηδενικό κόστος στην περίπτωση που χρησιμοποιηθεί οποιαδήποτε δωρεάν έκδοση του λειτουργικό Linux. Οι εν λόγω περιορισμοί, καθώς και η ανάγκη ενός ενιαίου πηγαίου κώδικα (single codebase), οδήγησαν στην δημιουργία εργαλείων ανάπτυξης διαπλατφορμικών εφαρμογών, χρησιμοποιώντας μόνο μια τεχνολογία προγραμματισμού. Θεωρείται λογικό να υποτεθεί ότι η ανάπτυξη τριών διαφορετικών εγγενών εκδόσεων, μια για κάθε λειτουργικό κινητών συσκευών, σχεδόν τριπλασιάζει την συνολική απαιτούμενη προσπάθεια. Σημαντικό επίσης είναι και το κόστος δημοσίευσης εφαρμογών (δωρεάν ή επί πληρωμή) στις αντίστοιχες αγορές του ios και Windows Phone. Το ποσό ανέρχεται σε 99$ κατ έτος. Αντίθετα, για το Android το κόστος δημοσίευσης εφαρμογών στο Play Store είναι 25$, εφάπαξ. Σε κάθε περίπτωση, το κόστος υφίσταται ακόμα και αν χρησιμοποιηθεί διαπλατφορμική λύση για την δημιουργία μιας εφαρμογής (εφόσον αυτή δημοσιευτεί στις σχετικές αγορές). Παρακάτω ακολουθεί ένας συγκριτικός πίνακας, όπως διαμορφώθηκε κατά την διαδικασία αξιολόγησης πλατφόρμας ανάπτυξης, των σημαντικότερων/ διασημότερων τεχνολογιών και πακέτων λογισμικού για την δημιουργία κινητών εφαρμογών. Σελίδα 26 από 94

27 Android SDK ios SDK Windows Phone SDK Titanium SDK JQuery Mobile + Apache Cordova Εγγενής Εφαρμογές Άδεια Χρήσης ΝΑΙ ΝΑΙ ΝΑΙ ΝΑΙ ΟΧΙ ΩΡΕΑΝ ΩΡΕΑΝ* ΩΡΕΑΝ* ΩΡΕΑΝ* ΩΡΕΑΝ Γλώσσα Java Objective-C C#, C++/ CLI, F#, VB.NET JavaScript HTML5 + JavaScript + CSS3 IDE ΩΡΕΑΝ ΩΡΕΑΝ* ΩΡΕΑΝ* ΩΡΕΑΝ* ΩΡΕΑΝ Έλεγχος Εφαρμογών (App Review) Κόστος δημοσίευσης ΟΧΙ ΝΑΙ ΝΑΙ Εξαρτάται από τις αγορές δημοσίευσης 25$ εφάπαξ 99$/ έτος 99$/έτος Εξαρτάται από τις αγορές δημοσίευσης Εξαρτάται από τις αγορές δημοσίευσης Εξαρτάται από τις αγορές δημοσίευσης Μέγεθος Οικοσυστήματος ΠΟΛΥ ΜΕΓΑΛΟ ΠΟΛΥ ΜΕΓΑΛΟ ΠΟΛΥ ΜΕΓΑΛΟ ΜΙΚΡΟ ΜΕΣΑΙΟ Τεκμηρίωση (Documentation) Ταχύτητα εφαρμογής/ Αποκρισιμότητα Υποστηριζόμενα Λειτουργικά ΠΟΛΥ ΚΑΛΗ ΠΟΛΥ ΚΑΛΗ ΠΟΛΥ ΚΑΛΗ ΚΑΚΗ ΚΑΛΗ ΠΟΛΥ ΚΑΛΗ ΠΟΛΥ ΚΑΛΗ ΠΟΛΥ ΚΑΛΗ ΚΑΛΗ ΚΑΚΗ Android ios Windows Phone Android, ios Android, ios, Windows Phone Μερίδιο Αγοράς > 70% 21-22%% < 5% Εξαρτάται από τις αγορές δημοσίευσης Πίνακας 2: Συγκριτικός πίνακας εργαλείων ανάπτυξης κινητών εφαρμογών Εξαρτάται από τις αγορές δημοσίευσης * Ισχύουν περιορισμοί Γενικότερα, οι εφαρμογές χωρίζονται σε τρεις κατηγορίες. 1. Εγγενής εφαρμογές παράγωγα όλων των επίσημων SDK). 2. Εφαρμογές παράγωγα όλων των ανεπίσημων SDK που μετατρέπονται τελικώς από το SDK σε εγγενής εφαρμογές. Ένα τέτοιο παράδειγμα είναι το Titanium SDK. Οι εφαρμογές της θεωρητικά έχουν την ταχύτητα των εγγενών εφαρμογών. Στην πράξη, αποδεικνύεται ότι έχουν προβλήματα καθυστέρησης κυρίως στα εφέ των διάφορων παραθύρων της εφαρμογής καθώς και στην επιστροφή από προηγούμενη κατάσταση (π.χ. από παύση της εφαρμογής). 3. Τοπικές εφαρμογές ιστού (local web applications) γραμμένες στις κλασσικές τεχνολογίες συγγραφής ιστοσελίδων και «περιτυλιγμένες» (native wrapper) ως εγγενή. Η απόκριση Σελίδα 27 από 94

28 τους και η ταχύτητα τους εξαρτάται από την ταχύτητα της υποδομής της επίσημης εφαρμογής πλοήγησης του λειτουργικού συστήματος της συσκευής. Γενικά υπολείπονται πολύ της ταχύτητας των εγγενών εφαρμογών, κάτι που είναι προφανές για εφαρμογές σημαντικού όγκου. Τέλος, δεν υποστηρίζουν πλήρως τοπικές βάσεις δεδομένων (π.χ. SQLite). Οι απαιτήσεις της εφαρμογής NearMe! να είναι γρήγορη και αποκρίσιμη, δωρεάν, και μικρού κόστους οδήγησαν στην επιλογή του Android. Σημαντικό ρόλο επίσης συνετέλεσε και η γλώσσα προγραμματισμού, καθώς η Java είναι ευρέως διαδεδομένη και πολύ γνωστή και κατ επέκταση, γίνεται ευκολότερη η συνεισφορά και συμμετοχή άλλων προγραμματιστών. Στα μειονεκτήματα αυτής της επιλογής συγκαταλέγεται το γεγονός ότι η εφαρμογή δεν θα είναι διαθέσιμη για τα άλλα δύο μεγάλα λειτουργικά. Επίσης, οι ισορροπίες και τα μερίδια αγοράς ενδέχεται να αλλάξουν, πράγμα που σημαίνει ότι μελλοντικά η εφαρμογή πρέπει να στηρίζεται αποκλειστικά και μόνο σε τεχνολογίες ιστού, οι οποίες αποδεικνύονται, εν τέλει, μακροβιότερες και ανθεκτικότερες Βασικές αρχές εφαρμογών Android Οι βασικές δομικές οντότητες που συνθέτουν μια εφαρμογή Android, και που έχουν αξιοποιηθεί στην πράξη στην περίπτωση της εφαρμογής NearMe!, είναι οι ακόλουθες: ραστηριότητες (Activities) Ως δραστηριότητα, ορίζεται μία συγκεκριμένη ενέργεια που μπορεί να κάνει ένας χρήστης σε μία Android εφαρμογή (π.χ. να πραγματοποιήσει μια τηλεφωνική κλήση, να τραβήξει μια φωτογραφία, να στείλει ένα ή να δει έναν χάρτη). Κάθε δραστηριότητα, εφόσον ορίζει μία διεπαφή με το χρήστη, είναι υπεύθυνη για τη δημιουργία του παραθύρου που θα περιέχει τη διεπαφή αυτή. Μια εφαρμογή αποτελείται συνήθως από πολλαπλές δραστηριότητες, μία εκ των οποίων είναι η λεγόμενη «κύρια» δραστηριότητα (main activity) και η οποία αποτελεί την οθόνη που εμφανίζεται στο χρήστη όταν εκκινεί την εφαρμογή. Οι δραστηριότητες εναλλάσσονται ξεκινώντας άλλες δραστηριότητες. Για να γίνει αυτό η εν ενεργεία δραστηριότητα σταματά την εκτέλεσή της και τοποθετείται από το λειτουργικό σύστημα σε μία στοίβα (back stack). Η νέα δραστηριότητα που την αντικαθιστά τοποθετείται στην κορυφή της στοίβας με τη δραστηριότητα που έτρεχε πριν από αυτή, να βρίσκεται ακριβώς από κάτω της. Αξίζει να σημειωθεί ότι η βασική αυτή αρχή της στοίβας, καθιστά δυνατή την ύπαρξη ενός καθολικού «πίσω» κουμπιού (back button) σε όλες τις κινητές συσκευές Android και έτσι καθίσταται εφικτή η μεταφορά στην αμέσως προηγούμενη οθόνη. Μια δραστηριότητα έχει τέσσερις καταστάσεις (states): Αν είναι στο προσκήνιο (στην κορυφή της στοίβας), θεωρείται ότι είναι ενεργή (active). Αν έχει χάσει την εστίαση (focus) αλλά είναι ακόμα ορατή, θεωρείται ότι είναι σε παύση (paused). Αν έχει αντικατασταθεί από μια άλλη δραστηριότητα, θεωρείται ότι είναι σταματημένη (stopped). Αν είναι σε παύση ή σταματημένη, το λειτουργικό σύστημα μπορεί να αποδεσμεύσει το χώρο που καταλαμβάνει στη μνήμη ζητώντας του να σταματήσει τη λειτουργία της ή τερματίζοντας τη διεργασία (process) που το εκτελεί. Οι καταστάσεις αυτές και οι μεταξύ τους μεταβιβάσεις παρουσιάζονται λεπτομερώς στην Εικόνα 12 που ακολουθεί: Σελίδα 28 από 94

29 Υπηρεσίες (Services) Εικόνα 12: Κύκλος ζωής δραστηριότητας (activity) Μια υπηρεσία, είναι ένα κομμάτι μιας εφαρμογής Android το οποίο χρησιμοποιείται όταν θέλουμε να εκτελέσουμε διαδικασίες μακράς διαρκείας (long-running) που δεν απαιτούν κάποια ενέργεια από το χρήστη. Για παράδειγμα, μια υπηρεσία, μπορεί να αναλάβει την επικοινωνία με το δίκτυο, την Σελίδα 29 από 94

30 αναπαραγωγή μουσικής, την ανάγνωση / εγγραφή σε κάποιο αρχείο ή να αλληλεπιδρά (interact) με έναν πάροχο περιεχομένου (content provider). Όλα αυτά γίνονται στο παρασκήνιο. Αξίζει να σημειωθεί ότι μια υπηρεσία δεν είναι μια ξεχωριστή διεργασία. Εκτελείται στην ίδια διεργασία με την εφαρμογή της οποίας είναι μέρος. Επίσης, δεν είναι νήμα (thread) και δεν μας δίνει τη δυνατότητα να εκτελέσουμε κάποια ενέργεια εκτός του κυρίου νήματος της εφαρμογής, του λεγόμενου Event Dispatching Thread (EDT) στον κόσμο της Java Πάροχοι Περιεχομένου (Content Providers) Ένας πάροχος περιεχομένου χειρίζεται την πρόσβαση στα δεδομένα που υπάρχουν σε μία κεντρική πηγή πληροφοριών. Είναι κομμάτι μιας εφαρμογής Android και της παρέχει μία διεπαφή μέσω της οποίας χειρίζεται τα εν λόγω δεδομένα. Με τον τρόπο αυτό δίνει τη δυνατότητα σε όποιον αναπτύσσει μία τέτοια εφαρμογή να διαχωρίσει τα δεδομένα από την υλοποίηση της εφαρμογής του (encapsulation) ενώ ταυτόχρονα του παρέχει μηχανισμούς που διασφαλίζουν την ασφάλειά τους Προθέσεις και Φίλτρα Προθέσεων (Intents and Intent Filters) Τρία βασικά κομμάτια μιας εφαρμογής Android - οι δραστηριότητες, υπηρεσίες και δέκτες καθολικών εκπομπών (broadcast receivers) - ενεργοποιούνται μέσω μηνυμάτων, που στην πλατφόρμα Android ονομάζονται προθέσεις (intents). Ένα φίλτρο προθέσεων (intent filter), είναι στην ουσία μια δέσμη δεδομένων η οποία περιέχει πληροφορίες που αφορούν την οντότητα που θα λάβει το μήνυμα (όπως την ενέργεια που πρέπει να εκτελεστεί και τα δεδομένα που θα επηρεαστούν από την ενέργεια αυτή), καθώς και πληροφορίες που αφορούν το λειτουργικό (όπως το είδος της οντότητας που θα χειριστεί την πρόθεση). Σε κάθε περίπτωση, το σύστημα εντοπίζει την δραστηριότητα ή υπηρεσία για την οποία προορίζεται η πρόθεση και την αρχικοποιεί, εφόσον είναι απαραίτητο. Μια πρόθεση συνήθως αποτελείται από τα εξής δεδομένα: Το όνομα της οντότητας που θα το χειριστεί. Το είδος της οντότητας για την οποία προορίζεται η πρόθεση. Την ενέργεια που θα εκτελεστεί. Τα δεδομένα που θα επηρεαστούν από την ενέργεια αυτή ιεργασίες και Νήματα (Processes and Threads) Κάθε φορά που μια οντότητα μίας εφαρμογής Android ξεκινά και η εφαρμογή δεν έχει άλλες οντότητες που εκτελούνται εκείνη τη στιγμή, το σύστημα ξεκινά μία νέα διεργασία Linux για την εφαρμογή καθώς και ένα εκτελέσιμο νήμα. Εξ ορισμού, όλες οι οντότητες μιας εφαρμογής εκτελούνται στην ίδια διεργασία και νήμα. Σε περίπτωση που μια οντότητα ξεκινά και υπάρχει ήδη μία διεργασία για την εφαρμογή, τότε αυτό ξεκινά στην ίδια διεργασία κάνοντας χρήση του υπάρχοντος εκτελέσιμου νήματος. Παρόλα αυτά, υπάρχει η δυνατότητα (κατ απαίτηση του προγραμματιστή) διαφορετικές οντότητες σε μία εφαρμογή να εκτελεστούν σε διαφορετικές διεργασίες και να δημιουργηθούν επιπλέον νήματα για κάθε διεργασία ικαιώματα (Permissions) Το Android είναι ένα λειτουργικό σύστημα στηριζόμενο στην απομόνωση προνομίων (privilegeseparated), στο οποίο κάθε εφαρμογή που εκτελείται έχει μία μοναδική ταυτότητα. Μέρη του συστήματος, έχουν επίσης μοναδικές ταυτότητες. Έτσι διασφαλίζεται ότι κάθε εφαρμογή που εκτελείται είναι απομονωμένη από τις υπόλοιπες εφαρμογές αλλά και από το σύστημα. Μία σημαντική σχεδιαστική αρχή στην πολιτική ασφαλείας του λειτουργικού συστήματος Android είναι ότι καμία εφαρμογή δεν έχει εξ ορισμού δικαίωμα να εκτελέσει κανενός είδους ενέργεια που μπορεί να επηρεάσει άλλες εφαρμογές, το σύστημα ή τον χρήστη. Αυτό περιλαμβάνει την ανάγνωση ή εγγραφή στα προσωπικά δεδομένα του χρήστη (π.χ. στις επαφές ή τα του), την ανάγνωση ή εγγραφή σε αρχεία που ανήκουν σε άλλες εφαρμογές, την πρόσβαση στο δίκτυο κ.λπ. Το γεγονός ότι κάθε εφαρμογή είναι απομονωμένη (sandboxed) από τις υπόλοιπες, σημαίνει ότι πρέπει να δηλώσει ρητά τις επιπλέον λειτουργίες που χρειάζεται να εκτελέσει και οι οποίες δεν Σελίδα 30 από 94

31 περιλαμβάνονται στο βασικό χώρο που δίνεται από το λειτουργικό για την εκτέλεσή της (sandbox). Η εφαρμογή αιτείται αυτές τις λειτουργίες στατικά, μέσω ενός μηχανισμού δικαιωμάτων ο οποίος ζητά τη συγκατάθεση του χρήστη τη στιγμή που εγκαθιστά την εφαρμογή Αρχείο βασικών ορισμών (Android Manifest) Κάθε εφαρμογή Android πρέπει να έχει ένα αρχείο AndroidManifest.xml (με αυτό ακριβώς το όνομα) στον κεντρικό κατάλογο (root directory) του έργου (project). Το αρχείο manifest περιέχει τις απαραίτητες πληροφορίες που πρέπει να γνωρίζει το λειτουργικό σύστημα για την εφαρμογή που το αρχείο συνοδεύει. Μεταξύ άλλων, ορίζει τα εξής: Ορίζει το όνομα του πακέτου Java που περιέχει την εφαρμογή. Περιγράφει τις δομικές οντότητες και στοιχεία της εφαρμογής δραστηριότητες, υπηρεσίες και παρόχους περιεχομένου που την αποτελούν. Ορίζει τα δικαιώματα που χρειάζεται η εφαρμογή από το λειτουργικό για να εκτελεστεί. Ορίζει την ελάχιστη έκδοση του λειτουργικού με την οποία η εφαρμογή είναι συμβατή. Ορίζει τις βιβλιοθήκες με τις οποίες πρέπει να συνδεθεί (ή από τις οποίες εξαρτάται) η εφαρμογή. Σημειώνεται ότι οι αντίστοιχες βασικές οντότητες που αποτελούν το περιβάλλον χρήστη δεν αναλύονται καθώς συναντώνται με παρόμοια μορφή σε όλες σχεδόν τις διεπαφές κινητών εφαρμογών. Για περισσότερες λεπτομέρειες, ο ενδιαφερόμενος αναγνώστης μπορεί να ανατρέξει στον σύντομο οδηγό Android για προγραμματιστές [40]. Σελίδα 31 από 94

32 3. Ανάλυση απαιτήσεων 3.1. Εισαγωγή Σκοπός και αντικείμενο ενότητας Σκοπός της παρούσας ενότητας αποτελεί η αποτύπωση των λειτουργικών απαιτήσεων της γεωχωρικής εφαρμογής NearMe! που σκοπό έχει την εύρεση κοντινότερων Σημείων Ενδιαφέροντος Περίληψη ενότητας Στη συνέχεια ακολουθεί μια συνοπτική περιγραφή της απαιτούμενης λειτουργικότητας για την υποστήριξη βασικής χρησιμότητας της εφαρμογής, αυτής δηλαδή της άμεσης/ καίριας εύρεσης και οπτικοποίησης της πληροφορίας, σε πραγματικό χρόνο (real-time) και με επίγνωση της θέσης (location-aware), σε χάρτη Κατηγοριοποίηση απαιτήσεων Κατηγορία Περιγραφή Προτεραιότητα Κρίσιμη Απαραίτητη λειτουργικότητα. Αν δεν υλοποιηθεί, διακυβεύεται η ομαλή καθημερινή λειτουργία και απόδοση (ποιοτική ή ποσοτική), συνεπώς δεν ικανοποιούνται οι ανάγκες και προσδοκίες του τελικού χρήστη. Όλες οι κρίσιμες απαιτήσεις πρέπει να έχουν υλοποιηθεί κατά την παράδοση/ δημοσίευση της εφαρμογής, αλλιώς αυτή θεωρείται ημιτελής. Κρίσιμη (Κ) Απαραίτητη Λειτουργικότητα που συμβάλλει ουσιαστικά στην αποτελεσματικότητα, αποδοτικότητα και επεκτασιμότητα του προϊόντος / συστήματος, αφορά τη συνήθη χρήση του, και δεν υπάρχει εναλλακτικός τρόπος να παρασχεθεί. Αν δεν υλοποιηθεί είναι σχεδόν βέβαιο ότι επηρεάζεται η ικανοποίηση του τελικού χρήστη αλλά δεν είναι κάτι που οδηγεί στην αχρήστευση της βασικής λειτουργικότητας της εφαρμογής. Υψηλή (Υ) Σημαντική Πιθανώς σημαντική Λειτουργικότητα που βελτιώνει την αποτελεσματικότητα, αποδοτικότητα και επεκτασιμότητα της εφαρμογής. Έλλειψη της λειτουργικότητας πιθανώς θα επηρεάσει μελλοντικά την ικανοποίηση του τελικού χρήστη, ωστόσο δεν αποτελεί αιτία αχρήστευσης της εφαρμογής. Λειτουργικότητα που θα μπορούσε να βελτιώσει την αποτελεσματικότητα και αποδοτικότητα της εφαρμογής/ συστήματος, η οποία ενδεχομένως να διευκολύνει μελλοντικές επεκτάσεις της εφαρμογής/ συστήματος. Μέση (Μ) Μέση Χαμηλή (ΜΧ) Χρήσιμη Λειτουργίες που χρειάζονται σε μη συνήθη χρήση, χρησιμοποιούνται σπάνια, είτε παρακάμπτονται εύκολα. εν αναμένεται μείωση της ικανοποίησης του τελικού χρήστη ή κάποια σημαντική επίπτωση στην βασική λειτουργία της εφαρμογής. Χαμηλή (Χ) Σελίδα 32 από 94

33 3.2. Απαιτήσεις ανά θεματική ενότητα Τεχνολογία/ Πλατφόρμα/ Τεχνικά χαρακτηριστικά Α/Α ΑΠΑΙΤΗΣΗΣ ΠΕΡΙΓΡΑΦΗ ΣΧΟΛΙΑ ΕΞΑΡΤΗΣΕΙΣ ΠΡΟΤΕΡΑΙΟΤΗΤΑ (Κ, Υ, Μ, ΜΧ, Χ) 1.1 Χρήση τεχνολογίας ανοικτού κώδικα (open source) και εκμετάλλευση συστατικών (components) και πλαισίων λογισμικού ανοικτού κώδικα για την επιτάχυνση της φάσης ανάπτυξης και τεχνικής ολοκλήρωσης της εφαρμογής. Χρήση ιδιωτικών τεχνολογιών μόνο όταν δεν υπάρχει εναλλακτική λύση. 1.2 Η εφαρμογή δεν πρέπει να υπόκειται σε τεχνικές/ τεχνολογίες που δεσμεύουν σε συγκεκριμένο προμηθευτή (vendor-locking) αλλά να βασίζεται σε όσο το δυνατόν ανοικτού κώδικα πλατφόρμα/ οικοσύστημα. 1.3 Αποφυγή κόστους διανομής της εφαρμογής (Apple ios developer fee, Palm OS developer fee, Windows Phone developer fee). Η άδεια δημοσίευσης / διανομής εφαρμογών στην αγορά Play Store της Google είναι 25$ (εφ όρου ζωής με απεριόριστο αριθμό εφαρμογών). Σε άλλες αγορές Android, το κόστος είναι μηδενικό. Υ Υ Υ 1.4 ιάθεση του τελικού κώδικα της εφαρμογής ως Ελεύθερο Λογισμικό (Open Source). 1.5 Η εφαρμογή πρέπει να είναι αποκρίσιμη (responsive) και να είναι γρήγορη. Να μπορεί να εκμεταλλεύεται πλήρως τις δυνατότητες της συσκευής (CPU, GPU). 1.6 Η εφαρμογή πρέπει να είναι φειδωλή στην χρήση της μπαταρίας κατά την διαδικασία ανίχνευσης στίγματος/ θέσης χρήστη. Η εξοικονόμηση μπαταρίας ωστόσο δεν είναι πιο σημαντική από μια σχετική ακρίβεια (όριο 10μ) της θέσης. 1.7 Η εφαρμογή πρέπει να είναι φειδωλή στην χρήση του όγκου των δεδομένων που διακινούνται κατά την επικοινωνία από και προς τον εξυπηρέτη (server) και την τροφοδότηση δεδομένων. 1.1, 1.2 Υ Υ Υ Υ Σελίδα 33 από 94

34 Α/Α ΑΠΑΙΤΗΣΗΣ ΠΕΡΙΓΡΑΦΗ ΣΧΟΛΙΑ ΕΞΑΡΤΗΣΕΙΣ ΠΡΟΤΕΡΑΙΟΤΗΤΑ (Κ, Υ, Μ, ΜΧ, Χ) 1.8 Η εφαρμογή πρέπει να υποστηρίζει επικοινωνία με εξυπηρετητή για δεδομένα πραγματικού χρόνου (realtime data). Κ 1.9 Η εφαρμογή πρέπει να υποστηρίζει κατάσταση λειτουργίας χωρίς σύνδεση (offline mode) για τα διαθέσιμα σημεία ενδιαφέροντος που τα στοιχεία τους δεν αλλάζουν συχνά (π.χ. μια φορά το χρόνο και δεδομένα που δεν αφορούν πραγματικό χρόνο). Κ 1.10 Η εφαρμογή πρέπει να παρέχει μέρος της λειτουργικότητας ακόμα και αν δεν υπάρχει σύνδεση με τον εξυπηρέτη (offline mode). 1.9 Υ 1.11 Η εφαρμογή πρέπει να είναι εγγενής (native) και να υποστηρίζει κινητά με εκδόσεις Android >= Υ 1.12 Η εφαρμογή πρέπει να συνοδεύεται από γραφικό διαφημιστικό υλικό για την αγορά Play Store. Χρήσιμα για την προώθηση της εφαρμογής. Χ 1.13 Η εφαρμογή πρέπει να διατίθεται δωρεάν στην αγορά Play Store Η εφαρμογή πρέπει να υποστηρίζει δεδομένα από πολλές/ διαφορετικές πηγές. Μπορεί να διατεθεί και σε άλλες αγορές Android. Πρέπει η εφαρμογή να μπορεί να αντλεί δεδομένα από διαφορές πηγές όπως αρχεία (xml/ kml), επίσημα/ ανεπίσημα APIs, επίσημες/ ανεπίσημες υπηρεσίες ιστού, τοπικές βάσεις SQLite Κ Κ Σελίδα 34 από 94

35 Βασική λειτουργικότητα Α/Α ΑΠΑΙΤΗΣΗΣ ΠΕΡΙΓΡΑΦΗ ΣΧΟΛΙΑ ΕΞΑΡΤΗΣΕΙΣ ΠΡΟΤΕΡΑΙΟΤΗΤΑ (Κ, Υ, Μ, ΜΧ, Χ) 2.1 Η εφαρμογή πρέπει να υποστηρίζει παραπάνω από μια κατηγορίες σημείων ενδιαφέροντος. Κ 2.2 Η εφαρμογή πρέπει να υποστηρίζει, κατ ελάχιστο, σημεία ενδιαφέροντος που ανήκουν στις παρακάτω κατηγορίες: 2.1 Κ Εφημερεύοντα Φαρμακεία Παραλίες με βράβευση «Γαλάζια Σημαία» ωρεάν σημεία ασύρματης πρόσβασης στο ιαδίκτυο (Wi-Fi Hotspots) Ξενοδοχεία με βράβευση The Green Key. 2.3 Η εφαρμογή πρέπει να υποστηρίζει οπτικοποίηση των πληροφοριών/ σημείων σε χάρτη. Κ 2.4 Η εφαρμογή πρέπει να παρέχει τη δυνατότητα εύρεσης και οπτικοποίησης σε χάρτη της τρέχουσας τοποθεσίας του χρήστη. Εικονίδιο αναβοσβήνει (blinking icon). που 2.3 Κ 2.5 Η εφαρμογή πρέπει να υποστηρίζει υπολογισμό απόστασης από τα σημεία ενδιαφέροντος. 2.4 Κ 2.6 Η εφαρμογή πρέπει να υποστηρίζει τη δυνατότητα πραγματοποίησης κλήσης του τηλεφώνου του σημείου ενδιαφέροντος. Εφόσον τηλέφωνο. υπάρχει Μ 2.7 Η εφαρμογή πρέπει να δίνει τη δυνατότητα στον χρήστη να διαλέγει κατηγορία σημείου ενδιαφέροντος που τον ενδιαφέρει. 2.1 Κ 2.8 Η εφαρμογή πρέπει να ζητάει την άδεια του χρήστη να εντοπίσει τη θέση του. Υ 2.9 υνατότητα αναζήτησης στα διαθέσιμα σημεία ενδιαφέροντος της λίστας που πληρούν τα κριτήρια. Υ 2.10 Εμφάνιση πλήθους αποτελεσμάτων αναζήτησης (βρέθηκαν π.χ. 23 φαρμακεία). ΜΧ 2.11 υνατότητα ορισμού ενεργής ακτίνας αναζήτησης (active search radius). Χ 2.12 υνατότητα παρουσίασης ειδικών χαρακτηριστικών ανάλογα με το είδος του σημείου ενδιαφέροντος. Για παραλίες, προσβασιμότητα, τιμή. Για φαρμακεία, ωράριο λειτουργίας. 2.1 Υ Σελίδα 35 από 94

36 Α/Α ΑΠΑΙΤΗΣΗΣ ΠΕΡΙΓΡΑΦΗ ΣΧΟΛΙΑ ΕΞΑΡΤΗΣΕΙΣ ΠΡΟΤΕΡΑΙΟΤΗΤΑ (Κ, Υ, Μ, ΜΧ, Χ) 2.13 υνατότητα αποθήκευσης ενός σημείου ενδιαφέροντος ως επαφή Τα διαθέσιμα σημεία ενδιαφέροντος στη λίστα να είναι ταξινομημένα βάσει απόστασης (από το πιο κοντινό μέχρι το πιο μακρινό) υνατότητα εμφάνισης σημείου ενδιαφέροντος στον χάρτη υνατότητα εμφάνισης λεπτομερών στοιχείων σχετικά με το σημείο ενδιαφέροντος, πατώντας πάνω στο σχετικό εικονίδιο στον χάρτη Το εικονίδιο απεικόνισης, στον χάρτη, του σημείου ενδιαφέροντος, πρέπει να έχει διαφορετικό χρώμα για κάθε κατηγορία σημείου ενδιαφέροντος Ύπαρξη σελίδας παροχής βασικών πληροφοριών για άδειες χρήσης, δημιουργούς, κ.λπ. Εφόσον υπάρχει τρόπος επικοινωνίας. ΜΧ 2.5 Κ 2.3 Κ 2.15 Υ 2.15 Χ Χ 2.19 Φιλική διεπαφή χρήστη (UI). Υ Σελίδα 36 από 94

37 4. Λειτουργικές προδιαγραφές 4.1. Εισαγωγή ομή ενότητας Η παρούσα ενότητα περιγράφει τις λειτουργικές προδιαγραφές της κινητής εφαρμογής NearMe!, η οποία σκοπό έχει να χρησιμεύσει ως μια γενικού σκοπού κινητή εφαρμογή με επίγνωση θέσης για την εύρεση Σημείων Ενδιαφέροντος (Σ.Ε.). Η ενότητα αποτελείται από τις εξής υποενότητες: Η υποενότητα «4.2. Λειτουργικότητα και διάταξη κύριας οθόνης» παρέχει μια λεπτομερή περιγραφή της κύριας οθόνης της εφαρμογής η οποία προσφέρει γραφική και λειτουργική επισκόπηση των προσφερόμενων τύπων των σημείων ενδιαφέροντος στη διάθεση του τελικού χρήστη. Η υποενότητα «4.3. Λειτουργικότητα και διάταξη οθόνης λίστας» παρέχει μια λεπτομερή περιγραφή της οθόνης που παρουσιάζει τη λίστα με τα διαθέσιμα σημεία ενδιαφέροντος που ανήκουν στην επιλεγμένη (από τον χρήστη) κατηγορία σημείων ενδιαφέροντος. Η υποενότητα «4.4. Λειτουργικότητα και διάταξη οθόνης λεπτομερειών» παρέχει μια λεπτομερή περιγραφή της οθόνης που παρουσιάζει τα αναλυτικά χαρακτηριστικά ενός επιλεγμένου σημείου ενδιαφέροντος. Τα χαρακτηριστικά εξαρτώνται από τον τύπο (την κατηγορία) του επιλεγμένου σημείου ενδιαφέροντος. Η υποενότητα «4.5. Λειτουργικότητα και διάταξη οθόνης χάρτη» παρέχει μια επισκόπηση της οθόνης που ενσωματώνει έναν χάρτη, η οποία προσφέρει κυρίως οπτικοποίηση ενός επιλεγμένου σημείου ενδιαφέροντος καθώς και του γεωγραφικού στίγματος του χρήστη στο χάρτη. Η υποενότητα «4.6. Λειτουργικότητα και διάταξη οθόνης πληροφοριών» παρέχει μια επισκόπηση της οθόνης που εμπεριέχει τις βασικές βοηθητικές πληροφορίες σχετικά με τα νομικά/ πνευματικά δικαιώματα και υποχρεώσεις της εφαρμογής. Σημείωση: Όλες οι οθόνες, από προεπιλογή, περιλαμβάνουν ένα «πίσω» κουμπί το οποίο οδηγεί στην προηγούμενη οθόνη Σημειώσεις Παρά το γεγονός ότι η εφαρμογή NearMe! χαρακτηρίζεται ως κινητή εφαρμογή, κρίνεται σκόπιμο να αποσαφηνιστούν μερικά χαρακτηριστικά της. Πρόκειται λοιπόν για μια εγγενή εφαρμογή για το λειτουργικό σύστημα ανοικτού κώδικα Android, σχεδιασμένη με γνώμονα την ελαχιστοποίηση της κατανάλωσης του όγκου δεδομένων (ιδίως όταν πρόκειται για χρήση μέσω δικτύου 3G) καθώς και την ταχύτητα και την αποκρισιμότητά της. Για τους παραπάνω λόγους (και κυρίως αυτόν της ελαχιστοποίησης του καταναλισκόμενου όγκου δεδομένων), δεν είναι διαπλατφορμική (cross-platform με υποστήριξη άλλων λειτουργικών συστημάτων για κινητά όπως ios, Blackberry OS, webos, Windows Phone, κ.ά. ) αλλά είναι άρρηκτα συνδεδεμένη (tightly integrated) με το λειτουργικό σύστημα Android και κάνει εκτενή χρήση ειδικών λειτουργιών που παρέχουν τα Εργαλεία Ανάπτυξης Λογισμικού Android. Γενικά, οι εγγενής εφαρμογές καταναλώνουν εύρος ζώνης (bandwidth) μόνο για τα δεδομένα, ενώ τα οι κινητές εφαρμογές ιστού, για τα δεδομένα της εφαρμογής αλλά και για την ίδια την εφαρμογή (διεπαφή χρήστη). Σύμφωνα με τα ανωτέρω, το εύρος του παρόντος έργου, οριοθετείται περιορίζεται στο προαναφερθέν λειτουργικό και η μεταφορά της εφαρμογής (porting) σε άλλα λειτουργικά συστήματα θα απαιτούσε σημαντική προσπάθεια. Η εναλλακτική προσέγγιση για διαπλατφορμική εφαρμογή με επίγνωση θέσης, θα ήταν να γίνει χρήση τεχνολογιών και πλαισίων ανάπτυξης κινητών εφαρμογών (mobile framework) βασισμένα σε HTML5 και JavaScript, αλλά μια τέτοια προσέγγιση υστερεί σημαντικά σε απόκριση και σε όγκο διακινούμενων δεδομένων και ως εκ τούτου οδηγεί σε μια υποβαθμισμένη εμπειρία (και ενδεχομένως μεγαλύτερο κόστος) για τον τελικό χρήστη. Μια πιο λεπτομερής περιγραφή/ ανάλυση μπορεί να βρεθεί στην ενότητα « Σύγκριση εγγενών και διαπλατφορμικών λύσεων». Σελίδα 37 από 94

38 4.2. Λειτουργικότητα και διάταξη κύριας οθόνης Σκοπός κύριας οθόνης Η ΚΥΡΙΑ οθόνη έχει σκοπό την παροχή επισκοπικής λειτουργίας όσον αφορά τις διαθέσιμες κατηγορίες Σ.E. της εφαρμογής Κατηγορίες σημείων ενδιαφέροντος Η οθόνη περιλαμβάνει τις παρακάτω κατηγορίες: 1. ΗΜΟΣΙΑ ΣΗΜΕΙΑ ΠΡΟΣΒΑΣΗΣ WI-FI - αναφέρεται στα πανελλαδικά διαθέσιμα δωρεάν σημεία ασύρματης πρόσβασης στο ιαδίκτυο, όπως αυτά προσφέρονται από δημόσιους οργανισμούς. Τα σημεία παρουσιάζονται ταξινομημένα βάσει της απόστασής τους από το γεωγραφικό στίγμα του χρήστη. 2. ΚΑΘΑΡΕΣ ΠΑΡΑΛΙΕΣ - αναφέρεται σε Ελληνικές παραλίες βραβευμένες με «Γαλάζια Σημαία». Τα σημεία παρουσιάζονται ταξινομημένα βάσει της απόστασής τους από το γεωγραφικό στίγμα του χρήστη. 3. ΦΑΡΜΑΚΕΙΑ - αναφέρεται σε όλα τα εφημερεύοντα φαρμακεία του Νομού Αττικής, όπως αυτά παρέχονται από την ιστοσελίδα του Φαρμακευτικού Συλλόγου Αττικής. Τα σημεία παρουσιάζονται ταξινομημένα βάσει της απόστασής τους από το γεωγραφικό στίγμα του χρήστη. 4. ΒΡΑΒΕΥΜΕΝΑ ΞΕΝΟ ΟΧΕΙΑ - αναφέρεται στα φιλικά προς το περιβάλλον ξενοδοχεία της χώρας, βραβευμένα με The Green Key. Τα σημεία παρουσιάζονται ταξινομημένα βάσει της απόστασής τους από το γεωγραφικό στίγμα του χρήστη. Σημείωση: Οι παραπάνω είναι οι τρέχουσες υποστηριζόμενες κατηγορίες Σ.Ε. από την εφαρμογή. ιαφορετικές κατηγορίες Σ.Ε. με διαφορετικά χαρακτηριστικά (χρόνος, τιμή, διαθεσιμότητα κ.ά.) μπορούν σχετικά εύκολα να προστεθούν στις ήδη υπάρχουσες, αρκεί αυτές να πληρούν τις βασικές αρχές και δομές δεδομένων που ορίζονται στην σχετική ενότητα «5. Τεχνικές προδιαγραφές» Επιπρόσθετη λειτουργικότητα Η οθόνη εμφανίζει ένα υποχρεωτικό πλαίσιο διαλόγου (modal dialog box) κατά τη διάρκεια του ανοίγματος της εφαρμογής, ζητώντας από τον χρήστη να ενεργοποιήσει την λειτουργία του δέκτη GPS (εφόσον είναι απενεργοποιημένη) Χαρακτηριστικά πεδία Η οθόνη εμφανίζει τα παρακάτω χαρακτηριστικά των διαθέσιμων Σ.Ε.: Τύπος (Κείμενο) Γραφική αναπαράσταση τύπου (Εικόνα). Και τα δυο χαρακτηριστικά είναι μη επεξεργάσιμα/ τροποποιήσιμα από τον χρήστη (επιτρέπεται μόνο η ανάγνωση). Σημείωση: Από τη στιγμή της ενεργοποίησης του δέκτη GPS, γίνεται μια προσπάθεια εντοπισμού του ακριβούς γεωγραφικού στίγματος του χρήστη για συγκεκριμένο χρονικό διάστημα. Σε περίπτωση που το στίγμα δεν μπορεί να προσδιοριστεί, γίνεται χρήση της τελευταίας γνωστής θέσης του χρήστη Λειτουργικότητα και διάταξη οθόνης λίστας Σκοπός οθόνης λίστας Η οθόνη ΛΙΣΤΑΣ προβάλλει μια λίστα από τα διαθέσιμα Σ.Ε., βάσει του τρέχοντος στίγματος του χρήστη καθώς και της επιλογής της κατηγορίας Σ.Ε. από μέρους του υνατότητες οθόνης λίστας Η λίστα έχει δυνατότητα κύλισης, φιλτραρίσματος, ταξινόμησης βάσει απόστασης και περιέχει όλα τα Σ.Ε. που πληρούν τα κριτήρια αναζήτησης βάσει της κατηγορίας. που έχει επιλέξει ο χρήστης. Οι εγγραφές της λίστας είναι ταξινομημένες (κατά αύξουσα σειρά) βάσει της απόστασής τους από την τρέχουσα γεωγραφική θέση του χρήστη. Σελίδα 38 από 94

39 Χαρακτηριστικά πεδία Κάθε εγγραφή της προαναφερθείσας λίστας αποτελείται από τα παρακάτω χαρακτηριστικά: Όνομα (Κείμενο) Περιοχή (Κείμενο) Βασική πληροφορία (Κείμενο) Απόσταση (Αριθμητικό). Τα παραπάνω χαρακτηριστικά είναι μη επεξεργάσιμα/ τροποποιήσιμα από τον χρήστη (επιτρέπεται μόνο η ανάγνωση) Επιπρόσθετη λειτουργικότητα Όπως προαναφέρθηκε, μια βασική λειτουργικότητα φιλτραρίσματος προσφέρεται πάνω στις εγγραφές της λίστας. Το φιλτράρισμα γίνεται πάνω στο πεδίο «Όνομα» ή «Περιοχή» και δεν κάνει διάκριση πεζών και κεφαλαίων γραμμάτων (case insensitive). Το αποτέλεσμα ενός φιλτραρίσματος είναι η απόκρυψη όσον εγγραφών της λίστας δεν πληρούν τις συνθήκες που ορίζει το φίλτρο (δηλαδή, του λεκτικού που έχει εισάγει ο χρήστης) Λειτουργικότητα και διάταξη οθόνης λεπτομερειών Σκοπός οθόνης λεπτομερειών Η οθόνη ΛΕΠΤΟΜΕΡΕΙΩΝ προβάλει μια φόρμα που εμπεριέχει τα λεπτομερή στοιχεία του επιλεγμένου Σ.Ε. Τέτοια πληροφορία αποτελείται από τα παρακάτω (προαιρετικά ή υποχρεωτικά) χαρακτηριστικά: Όνομα (Κείμενο) Περιγραφή (Κείμενο) ιεύθυνση (Κείμενο) Περιοχή (Κείμενο) Τηλέφωνο (Αριθμητικό) Απόσταση (Αριθμητικό) Βασική πληροφορία (Κείμενο) o ιεύθυνση IP (Σημεία Wi-Fi) o Ιστοσελίδα (Ξενοδοχεία) o Πρόσβαση για ΑμεΑ (Παραλίες) o Βάρδια (Φαρμακεία) Προαιρετική πληροφορία (Κείμενο) Προαιρετική πληροφορία 2 (Κείμενο) Σχόλια (Κείμενο). Τα παραπάνω χαρακτηριστικά είναι μη επεξεργάσιμα/ τροποποιήσιμα από τον χρήστη (επιτρέπεται μόνο η ανάγνωση) Επιπρόσθετη λειτουργικότητα Οι παρακάτω ενέργειες υποστηρίζονται: Κλήση τηλεφώνου Σ.Ε. (εφόσον υπάρχει το χαρακτηριστικό «Τηλέφωνο»). Εμφάνιση Σ.Ε. στον χάρτη. Αποθήκευση Σ.Ε. ως επαφή (εφόσον υπάρχει το χαρακτηριστικό «Τηλέφωνο») Λειτουργικότητα και διάταξη οθόνης χάρτη Σκοπός οθόνης χάρτη Η οθόνη ΧΑΡΤΗ προβάλει έναν διαδραστικό χάρτη ο οποίος παρέχει μια γεωγραφική απεικόνιση του επιλεγμένου σημείου ενδιαφέροντος. Σελίδα 39 από 94

40 Τέτοια πληροφορία αποτελείται από τα παρακάτω χαρακτηριστικά: Όνομα (Κείμενο) Απόσταση (Αριθμητικό) Βασική πληροφορία (Κείμενο) o ιεύθυνση IP (Σημεία Wi-Fi) o Ιστοσελίδα (Ξενοδοχεία) o Πρόσβαση για ΑμεΑ (Παραλίες) o Βάρδια (Φαρμακεία) Πινέζα (Εικόνα). Τα χαρακτηριστικά «Όνομα», «Απόσταση», «Βασική πληροφορία» εμφανίζονται σε ένα αναδυόμενο παράθυρο (popup balloon) όταν ο χρήστης πατήσει πάνω στο χαρακτηριστικό «Πινέζα». Τα παραπάνω χαρακτηριστικά είναι μη επεξεργάσιμα/ τροποποιήσιμα από τον χρήστη (επιτρέπεται μόνο η ανάγνωση) Επιπρόσθετη λειτουργικότητα Υποστηρίζονται οι παρακάτω ενέργειες: Εμφάνιση τρέχουσας θέσης του χρήστη στον χάρτη Η τρέχουσα θέση (γεωγραφικό στίγμα) οπτικοποιείται στον χάρτη μέσω ενός εικονιδίου που αναβοσβήνει Λειτουργικότητα και διάταξη οθόνης πληροφοριών Σκοπός οθόνης πληροφοριών Η οθόνη ΠΛΗΡΟΦΟΡΙΩΝ προβάλλει βοηθητικές πληροφορίες (μόνο ανάγνωση) σχετικά με τις νομικά και πνευματικά δικαιώματα της εφαρμογής. Τέτοιες πληροφορίες μπορεί να αφορούν δικαιώματα δημιουργών, πληροφορίες χρήσης εργαλείων και εφαρμογής, άδειας εκμετάλλευσης λογισμικού και δεδομένων κ.ά. Σελίδα 40 από 94

41 5. Τεχνικές προδιαγραφές 5.1. Αρχιτεκτονική εφαρμογής Στην Εικόνα 13 παρουσιάζεται η αρχιτεκτονική σχεδίαση της εφαρμογής NearMe! καθώς και οι τρόποι άντλησης πληροφοριών ή άλλων πόρων από διάφορες πηγές (τοπικές ή απομακρυσμένες). Εικόνα 13: ιάγραμμα αρχιτεκτονικής σχεδίασης της εφαρμογής Η εφαρμογή είναι μια κλασσική Android εφαρμογή με βασικές δυνατότητες άντλησης δεδομένων από τοπικά αρχεία/ τοπικές βάσεις δεδομένων. Ταυτόχρονα συνδυάζει την σχεδιαστική προσέγγισης ενός προγράμματος Εξυπηρετούμενου-Εξυπηρέτη (Client-Server) από την άποψη ότι υποστηρίζει δυνατότητα την άντληση πληροφοριών από απομακρυσμένο εξυπηρέτη (remote server), μέσω Υπηρεσίας Ιστού (Web Service) Υποστηριζόμενες πηγές άντλησης δεδομένων Αναλυτικότερα, η εφαρμογή αντλεί γεωχωρικά δεδομένα (Σημεία Ενδιαφέροντος) από τις ακόλουθες πηγές και υπό την ακόλουθη μορφή: 1. Εφημερεύοντα Νοσοκομεία από ροή (stream) JSON ως αποτέλεσμα κλήσης δοκιμαστικής Υπηρεσίας Ιστού τύπου REST (RESTFul Web Service) [41] με πηγή τα δεδομένα του Φαρμακευτικού Συλλόγου Αττικής [42]. 2. Βραβευμένα Ξενοδοχεία από αρχείο XML προσωπικής συλλογής γεωχωρικών δεδομένων (στοιχεία προερχόμενα από την επίσημη ιστοσελίδα της μη-κυβερνητικής οργάνωσης «Ελληνική Εταιρία Προστασίας της Φύσης»). 3. Σημεία δωρεάν Wi-Fi από την τοπική βάση δεδομένων (Β ) SQLite (τα οποία έχουν φορτωθεί ανεπεξέργαστα από το αντίστοιχο πηγαίο αρχείο τύπου KML) και ως εναλλακτική λύση, κατευθείαν από το ίδιο το πηγαίο αρχείο με προέλευση την ηλεκτρονική πύλη geodata.gov.gr [43]. 4. Βραβευμένες Παραλίες από την τοπική βάση δεδομένων SQLite (και σε αυτή την περίπτωση τα δεδομένα προέρχονται από αρχείο KML της ηλεκτρονικής πύλης geodata.gov.gr [44] ενώ έχουν δεχτεί μικρή επεξεργασία προτού φορτωθούν στην Β ). Σελίδα 41 από 94

42 Ακολουθεί η αναλυτική περιγραφή του σχήματος και της δομής της κάθε προαναφερθείσας πηγής Σχήμα ροής JSON Το σχήμα της ροής JSON (JSON Schema) που υποστηρίζεται στην τρέχουσα υλοποίηση είναι: { "type":"object", "$schema": " "id": "#", "required":false, "properties":{ "Pharmacies": { "type":"array", "id": "Pharmacies", "required":false, "items": { "type":"object", "id": "0", "required":false, "properties":{ "id": { "type":"number", "id": "id", "required":false }, "name": { "type":"string", "id": "name", "required":true }, "shift": { "type":"string", "id": "shift", "required":true }, "area": { "type":"string", "id": "area", "required":false }, "address": { "type":"string", "id": "address", "required":false }, "telephone": { "type":"string", "id": "telephone", "required":false }, "coordinates": { "type":"object", "id": "coordinates", "required":true, "properties":{ "latitude": { "type":"number", "id": "latitude", "required":true }, "longitude": { "type":"number", "id": "longitude", "required":true } } } } } } } } Σελίδα 42 από 94

43 Ένα παράδειγμα βάσει του παραπάνω σχήματος είναι το ακόλουθο: { } "Pharmacies": [ { "id": 1, "name": "ΦΑΡΜΑΚΕΙΟ 1", "shift": "8 ΒΡΑΔΥ - 8 ΠΡΩΙ", "area": "ΜΑΡΟΥΣΙ", "address": "ΠΛΑΤΩΝΟΣ 20", "telephone": " ", "coordinates": { "latitude": , "longitude": } }, { "id": 2, "name": "ΦΑΡΜΑΚΕΙΟ 2", "shift": "8 ΒΡΑΔΥ - 8 ΠΡΩΙ", "area": "ΜΑΡΟΥΣΙ", "address": "ΠΛΑΤΩΝΟΣ 18", "telephone": " ", "coordinates": { "latitude": , "longitude": } } ] Περισσότερα στοιχεία για το πρότυπο JSON μπορεί να αναζητήσει κανείς στο [45]. Για την ανάγνωση, επεξεργασία και φόρτωμα δεδομένων JSON χρησιμοποιείται η τεχνολογία SAX. Για περισσότερες πληροφορίες, ο ενδιαφερόμενος αναγνώστης μπορεί να ανατρέξει στο [46] Σχήμα ροής XML Το σχήμα του αρχείου XML (XML Schema) που υποστηρίζεται στην τρέχουσα υλοποίηση ορίζεται στο ακόλουθο XSD (XML Schema Definition): <xs:schema attributeformdefault="unqualified" elementformdefault="qualified" xmlns:xs=" <xs:element name="placemarks"> <xs:complextype> <xs:sequence> <xs:element name="placemark" maxoccurs="unbounded" minoccurs="0"> <xs:complextype> <xs:sequence> <xs:element type="xs:int" name="code"/> <xs:element type="xs:string" name="name"/> <xs:element type="xs:string" name="description"/> <xs:element type="xs:string" name="municipality"/> <xs:element type="xs:string" name="county"/> <xs:element type="xs:string" name="area"/> <xs:element type="xs:anyuri" name="url"/> <xs:element type="xs:anyuri" name="url_alt"/> <xs:element type="xs:float" name="latitude"/> <xs:element type="xs:float" name="longitude"/> </xs:sequence> </xs:complextype> </xs:element> </xs:sequence> </xs:complextype> </xs:element> </xs:schema> Σελίδα 43 από 94

44 Ένα παράδειγμα βάσει του παραπάνω σχήματος είναι το ακόλουθο: <?xml version="1.0" encoding="utf-8"?> <placemarks> <placemark> <code>1</code> <name>astoria HOTEL</name> <description></description> <municipality>θεσσαλονίκη</municipality> <county></county> <area></area> <url> <url_alt></url_alt> <latitude> </latitude> <longitude> </longitude> </placemark> <placemark> <code>2</code> <name>agionissi RESORT</name> <description></description> <municipality>αμολιανή</municipality> <county></county> <area></area> <url> <url_alt></url_alt> <latitude> </latitude> <longitude> </longitude> </placemark> </placemarks> Για περισσότερες πληροφορίες σχετικά με το πρότυπο XML, ο ενδιαφερόμενος αναγνώστης μπορεί να ανατρέξει στο [48]. Για την ανάγνωση, επεξεργασία και φόρτωμα δεδομένων XML, χρησιμοποιείται η τεχνολογία SAX. Για περισσότερες πληροφορίες, ο ενδιαφερόμενος αναγνώστης μπορεί να ανατρέξει στο [46] Σχήμα ροής ΚML Το σχήμα του αρχείων KML (XML Schema) που υποστηρίζεται στην τρέχουσα υλοποίηση ορίζονται στο επίσημο XSD (XML Schema Definition) αρχείο που βρίσκεται στην διεύθυνση και δεν παρατίθεται στο παρόν έγγραφο λόγω της μεγάλης του έκτασης. Είναι το σχήμα που χρησιμοποιεί η ηλεκτρονική πύλη geodata.gov.gr για τα δεδομένα που διαθέτει σε μορφή KML (KML format). Ένα παράδειγμα βάσει του παραπάνω σχήματος είναι το ακόλουθο: Σελίδα 44 από 94

45 <?xml version="1.0" encoding="utf-8"?> <kml xmlns=" <Document><Folder><name>dhmosia_wifi</name> <Schema name="dhmosia_wifi" id="dhmosia_wifi"> <SimpleField name="name" type="string"></simplefield> <SimpleField name="description" type="string"></simplefield> <SimpleField name="gid" type="int"></simplefield> <SimpleField name="peripherei" type="string"></simplefield> <SimpleField name="nomarchia" type="string"></simplefield> <SimpleField name="id" type="float"></simplefield> <SimpleField name="ip" type="string"></simplefield> <SimpleField name="lat" type="float"></simplefield> <SimpleField name="lon" type="float"></simplefield> <SimpleField name="perigrafh" type="string"></simplefield> <SimpleField name="dhmos" type="string"></simplefield> </Schema> <Placemark> <name>δ.μεταμορφώσεως</name> <ExtendedData><SchemaData schemaurl="#dhmosia_wifi"> <SimpleData name="gid">1</simpledata> <SimpleData name="peripherei">αττικής</simpledata> <SimpleData name="nomarchia">αθηνών</simpledata> <SimpleData name="id"> </simpledata> <SimpleData name="ip"> </simpledata> <SimpleData name="lat"> </simpledata> <SimpleData name="lon"> </simpledata> <SimpleData name="perigrafh">κεντρική πλατεία δήμου</simpledata> <SimpleData name="dhmos">δ.μεταμορφώσεως</simpledata> </SchemaData></ExtendedData> <Point><coordinates> , </coordinates></Point> </Placemark> </Folder></Document></kml> Για περισσότερες πληροφορίες σχετικά με το πρότυπο KML, παράγωγο του XML, ο ενδιαφερόμενος αναγνώστης μπορεί να ανατρέξει στο [49]. Για την ανάγνωση, επεξεργασία και φόρτωμα δεδομένων από KML, χρησιμοποιείται η τεχνολογία XPath. Για περισσότερες πληροφορίες, ο ενδιαφερόμενος αναγνώστης μπορεί να ανατρέξει στο [47] Σχήμα τοπικής βάσης δεδομένων SQLite Το σχήμα της τοπικής βάσης δεδομένων SQLite που υποστηρίζεται στην τρέχουσα υλοποίηση, είναι: Σελίδα 45 από 94

46 CREATE TABLE "PLACEMARK" ( "PLMK_CODE" INTEGER PRIMARY KEY AUTOINCREMENT, "PLMK_NAME" TEXT NOT NULL, "PLMK_DESCRIPTION" TEXT NULL, "PLMK_PHONE" TEXT, "PLMK_ADDRESS" TEXT, "PLMK_AREA" TEXT, "PLMK_LATITUDE" REAL NOT NULL, "PLMK_LONGITUDE" REAL NOT NULL, "PLMK_TYPE" INTEGER, "PLMK_SPECIFIC_ATTRIBUTE_01" TEXT, "PLMK_GENERIC_ATTRIBUTE_01" TEXT, "PLMK_GENERIC_ATTRIBUTE_02" TEXT, "PLMK_COMMENT" TEXT ); CREATE UNIQUE INDEX "plmk_code_index" ON "PLACEMARK" ("PLMK_CODE"); Τονίζεται ότι τα δεδομένα δεν έχουν ομογενοποιηθεί λόγω σχεδιαστικής απόφασης, προκειμένου να παρουσιαστεί ένας τρόπος υποστήριξης δεδομένων ετερογενούς προέλευσης και μορφοποίησης. Οι διάφορες κατηγορίες διαθέσιμες στην εφαρμογή ορίζονται στην παρακάτω απαρίθμηση (enumeration). Όσες κατηγορίες έχουν ως πηγή την τοπική βάση δεδομένων SQLite, επιβάλλεται να έχουν στην στήλη PLACEMARK.PLMK_TYPE την ίδια ακέραια τιμή με αυτή που ορίζεται, για την εκάστοτε κατηγορία, στην απαρίθμηση. public enum CategoryEnum { PHARMACIES (1), /* Pharmacies with active shift */ GREENKEY_HOTELS (2), /* Hotels with the GreenKey award */ WIFI_HOTSPOTS (3), /* Free public WiFi hotspots */ BLUE_FLAGS (4); /* Greek beaches awarded the Blue Flags */ } Σημείωση: Έχουν παραλειφθεί στον ορισμό διάφορες μέθοδοι και κατασκευαστές (constructors). Για περισσότερα ο αναγνώστης μπορεί να ανατρέξει στον πλήρη ορισμό της κλάσης στο αρχείο gr.nearme.resources.categoryenum.java του πηγαίου κώδικα Ταιριάσματα δεδομένων Τα Σ.Ε. (ως μοναδικές εγγραφές) φορτώνονται από τις πηγές σε στιγμιότυπα (instances) της κλάσης (class) Placemark ανάλογα με το ταίριασμα (mapping) που ορίζεται στα αντίστοιχα Αντικείμενα Πρόσβασης εδομένων [Data Access Object (DAO)] κλάσεις, όπως αυτά απεικονίζονται στην Εικόνα 13. public class Placemark implements Comparable<Placemark>, Serializable { private int id, type; private double latitude, longitude, distance; private String name, description, phone, address, area, specificattribute1, genericattribute1, genericattribute2, comment; } Σελίδα 46 από 94

47 Σημείωση: Έχουν παραλειφθεί στον ορισμό διάφορες μέθοδοι και κατασκευαστές (constructors). Για περισσότερα ο αναγνώστης μπορεί να ανατρέξει στον πλήρη ορισμό της κλάσης στο αρχείο package.gr.nearme.valueobjects.placemark.java του πηγαίου κώδικα. Κατά το φόρτωμα της πληροφορίας, τουλάχιστον τα παρακάτω πεδία της κλάσης Placemark, πρέπει να εμπεριέχουν πληροφορία. Placemark.name Placemark.latitude Placemark.longitude Placemark.specificAttribute1 Στο specificattribute1 πεδίο ενός στιγμιότυπου κλάσης Placemark επιβάλλεται να φορτώνεται πάντα η πληροφορία που είναι ειδικό χαρακτηριστικό του Σ.Ε. Για παράδειγμα, για τα σημεία ασύρματης πρόσβασης στο διαδίκτυο είναι η διεύθυνση IP (Internet Protocol) και για εφημερεύοντα φαρμακεία οι ώρες της βάρδιας (διάστημα). Στο σύνολό τους τα Σ.Ε. σώζονται σε μια μοναδική και επαναχρησιμοποιήσιμη λίστα τύπου Placemark. Σελίδα 47 από 94

48 6. Ροή βασικού σεναρίου χρήσης της εφαρμογής 6.1. Εισαγωγή Σύντομη περιγραφή Η παρούσα ενότητα περιγράφει το βασικό σενάριο χρήσης (βασική λειτουργικότητα) που προσφέρει η κινητή εφαρμογή NearMe! Εμπλεκόμενοι ρόλοι χρηστών Απλός χρήστης Ροή συμβάντων Οθόνη 1: Ενεργοποίηση δυνατότητας εντοπισμού θέσης Σελίδα 48 από 94

49 Οθόνη 2: Επιλογή τύπου/ κατηγορία σημείου ενδιαφέροντος Σελίδα 49 από 94

50 Οθόνη 3: Λίστα διαθέσιμων σημείων ενδιαφέροντος Σελίδα 50 από 94

51 Οθόνη 4: Λίστα φιλτραρισμένων διαθέσιμων σημείων ενδιαφέροντος Σελίδα 51 από 94

52 Οθόνη 5: Αναλυτικά στοιχεία σημείου ενδιαφέροντος Σελίδα 52 από 94

53 Οθόνη 6: Απεικόνιση σημείου ενδιαφέροντος στον χάρτη Όνομα Πληροφορίας Υποχρεωτικό Τύπος Πληροφορίας Σχόλια Όνομα κατηγορίας ΝΑΙ Αλφαριθμητικό Ο τύπος του σημείου ενδιαφέροντος (Φαρμακείο, Παραλία κ.λπ.) Εικόνα κατηγορίας ΝΑΙ Εικόνα Μια διακριτή εικόνα για κάθε τύπο/ κατηγορία σημείου ενδιαφέροντος Πίνακας 3: Στοιχεία τύπων/ κατηγοριών σημείων ενδιαφέροντος Σελίδα 53 από 94

54 Όνομα Πληροφορίας Υποχρεωτικό Τύπος Πληροφορίας Σχόλια Όνομα ΝΑΙ Αλφαριθμητικό Το μοναδικό όνομα του σημείου ενδιαφέροντος. Περιοχή ΝΑΙ Αλφαριθμητικό Η διοικητική περιοχή στην οποία ανήκει το σημείο ενδιαφέροντος. Απόσταση ΝΑΙ Αριθμητικό Η απόσταση του σημείου ενδιαφέροντος από την τρέχουσα θέση του χρήστη (εκφρασμένη σε χιλιόμετρα). Κατηγορία ΝΑΙ Αλφαριθμητικό Ο τύπος του σημείου ενδιαφέροντος (π.χ. Φαρμακείο ή Παραλία) Πίνακας 4: Στοιχεία λίστας διαθέσιμων σημείων ενδιαφέροντος Όνομα Πληροφορίας Υποχρεωτικό Τύπος Πληροφορίας Σχόλια Όνομα ΝΑΙ Αλφαριθμητικό Το μοναδικό όνομα του σημείου ενδιαφέροντος. Περιγραφή ΟΧΙ Αλφαριθμητικό Περιγραφή σημείου ενδιαφέροντος ιεύθυνση ΟΧΙ Αλφαριθμητικό Η ταχυδρομική διεύθυνση του σημείου ενδιαφέροντος. ιαφέρει από το γεωγραφικό στίγμα καθώς μπορεί να μην έχουμε πληροφορία για την διεύθυνση, εντούτις, να έχουμε το ακριβές γεωγραφικό στίγμα. Περιοχή ΝΑΙ Αλφαριθμητικό Η διοικητική περιοχή στην οποία ανήκει το σημείο ενδιαφέροντος. Τηλέφωνο ΟΧΙ ΟΧΙ Σε περίπτωση που ο τύπος του σημείου ενδιαφέροντος υποστηρίζει την διάσταση (χαρακτηριστικό) του τηλεφώνου Κατηγορία ΝΑΙ Αλφαριθμητικό Ο τύπος του σημείου ενδιαφέροντος (Φαρμακείο ή Παραλία π.χ.) Σελίδα 54 από 94

55 Όνομα Πληροφορίας Υποχρεωτικό Τύπος Πληροφορίας Σχόλια Απόσταση ΝΑΙ Αριθμητικό Η απόσταση του σημείου ενδιαφέροντος από την τρέχουσα θέση του χρήστη (εκφρασμένη σε χιλιόμετρα). Βασικό Πεδίο ΝΑΙ Αλφαριθμητικό Βασική βοηθητική πληροφορία/ χαρακτηριστικό ανάλογα με το είδος/ τύπο του σημείου ενδιαφέροντος Ειδικό Πεδίο 1 ΟΧΙ Αλφαριθμητικό Επιπρόσθετη πληροφορία ανάλογα με το είδος/ τύπο του σημείου ενδιαφέροντος Ειδικό Πεδίο 2 ΟΧΙ Αλφαριθμητικό Επιπρόσθετη πληροφορία ανάλογα με το είδος/ τύπο του σημείου ενδιαφέροντος Εμφάνιση Σημείου Ενδιαφέροντος στον Χάρτη Κλήση τηλεφώνου Σημείου Ενδιαφέροντος Προσθήκη τηλεφώνου Σημείου Ενδιαφέροντος ως Επαφή Παρατηρήσεις/ Περιορισμοί ΝΑΙ Σύνδεσμος Σύνδεσμος / Κουμπί που οδηγεί στον χάρτη με τις συντεταγμένες του σημείου ενδιαφέροντος. ΟΧΙ Σύνδεσμος Σύνδεσμος / Κουμπί που καλεί το τηλέφωνο (εφόσον υπάρχει) του σημείου ενδιαφέροντος. ΟΧΙ Σύνδεσμος Σύνδεσμος / Κουμπί που προσθέτει το σημείο ενδιαφέροντος ως επαφή στη συσκευή/ κάρτα SIM (εφόσον υπάρχει τηλέφωνο). Πίνακας 5: Αναλυτικά στοιχεία σημείου ενδιαφέροντος Τα «Ειδικά Πεδία» (ειδικές παράμετροι) περιγράφονται λεπτομερώς στο κεφάλαιο «4. Λειτουργικές προδιαγραφές» Όνομα Πληροφορίας Υποχρεωτικό Τύπος Πληροφορίας Σχόλια Όνομα ΝΑΙ Αλφαριθμητικό Το μοναδικό όνομα του σημείου ενδιαφέροντος. Απόσταση ΝΑΙ Αριθμητικό Η απόσταση του σημείου ενδιαφέροντος από την τρέχουσα θέση του χρήστη (εκφρασμένη σε χιλιόμετρα). Σελίδα 55 από 94

56 Όνομα Πληροφορίας Υποχρεωτικό Τύπος Πληροφορίας Σχόλια Βασικό Πεδίο ΝΑΙ Αλφαριθμητικό Βασική βοηθητική πληροφορία/ χαρακτηριστικό ανάλογα με το είδος/ τύπο του σημείου ενδιαφέροντος «Καρφίτσα» (Drop Pin) ΝΑΙ Εικόνα Εικονίδιο που προσδιορίζει γραφικά το σημείο ενδιαφέροντος στον χάρτη. Πίνακας 6: Στοιχεία σημείων ενδιαφέροντος απεικονισμένα στον χάρτη Σημείωση: ιευκρινίζεται ότι τα στοιχεία που αναγράφονται στους παραπάνω πίνακες αφορούν την πληροφορία, μόνο για ανάγνωση (read-only), που βλέπει ο χρήστης στις οθόνες της εφαρμογής. εν είναι δηλαδή πεδία Β, αλλά πεδία (διαφόρων τύπων) που συνθέτουν όλη την πληροφορία διαθέσιμη σε μια οθόνη Βασικές ροές Βασική ροή 1 1. Ο χρήστης ανοίγει την εφαρμογή. 2. Εμφανίζεται η Οθόνη 1: Ενεργοποίηση δυνατότητας εντοπισμού θέσης παρέχοντας έτσι στον χρήστη την δυνατότητα να επιτρέψει στη εφαρμογή να εντοπίσει/ αναγνώσει τη τρέχουσα θέση του. 3. Η εφαρμογή εντοπίζει το τρέχον γεωγραφικό στίγμα του χρήστη. 4. Η εφαρμογή εμφανίζει την Οθόνη 2: Επιλογή τύπου/ κατηγορία σημείου ενδιαφέροντος με όλες τις πληροφορίες των διαθέσιμων σημείων ενδιαφέροντος, όπως περιγράφει ο Πίνακας 3: Στοιχεία τύπων/ κατηγοριών σημείων ενδιαφέροντος. 5. Ο χρήστης επιλέγει μια από τις τέσσερεις διαθέσιμες κατηγορίες Σημείων Ενδιαφέροντος:Ξενοδοχεία βραβευμένα με The Green Key ii) Παραλίες βραβευμένες με «Γαλάζια Σημαία» iii) Εφημερεύοντα Φαρμακεία iv) ωρεάν σημεία ασύρματης πρόσβασης στο ιαδίκτυο (Wi-Fi Hotspots). 6. Η εφαρμογή εμφανίζει μια λίστα με τα διαθέσιμα σημεία ενδιαφέροντος (ταξινομημένα βάσει απόστασης από το στίγμα του χρήστη) που ανήκουν στην επιλεγμένη κατηγορία, όπως φαίνεται στην Οθόνη 3: Λίστα διαθέσιμων σημείων ενδιαφέροντος και περιγράφει ο Πίνακας 4: Στοιχεία λίστας διαθέσιμων σημείων ενδιαφέροντος 7. Η εφαρμογή εμφανίζει στον χρήστη κατάλληλο στοιχείο χειρισμού για την παρακάτω εναλλακτική ροή: i) Φιλτράρισμα αποτελεσμάτων (« Φιλτράρισμα αποτελεσμάτων»). 8. Ο χρήστης επιλέγει μια εγγραφή (ένα σημείο ενδιαφέροντος) από την λίστα των διαθέσιμων σημείων ενδιαφέροντος. 9. Η εφαρμογή εμφανίζει μια νέα οθόνη με τα αναλυτικά/ λεπτομερή στοιχεία του σημείου ενδιαφέροντος, όπως φαίνεται στην Οθόνη 5: Αναλυτικά στοιχεία σημείου ενδιαφέροντος και που αναφέρονται στον Πίνακας 5: Αναλυτικά στοιχεία σημείου ενδιαφέροντος. 10. Ο χρήστης έχει την δυνατότητα να πραγματοποιήσει, μέσω κατάλληλων στοιχείων χειρισμού, μια από τις τρεις παρακάτω επιλογές: Σελίδα 56 από 94

57 i) Να δει απεικονισμένο στον χάρτη το σημείο ενδιαφέροντος, όπως προφέρεται στην επιμέρους ροή « Επισκόπηση σημείου ενδιαφέροντος στον χάρτη». ii) Να καλέσει το τηλέφωνο του σημείου ενδιαφέροντος (εφόσον υπάρχει διαθέσιμο τηλέφωνο), όπως προσφέρεται στην επιμέρους ροή « Κλήση τηλεφώνου σημείου ενδιαφέροντος». iii) Να προσθέσει ως επαφή το σημείο ενδιαφέροντος (εφόσον υπάρχει διαθέσιμο τηλέφωνο), όπως προφέρεται στην επιμέρους ροή « Προθήκη σημείου ενδιαφέροντος ως επαφή» Εναλλακτικές ροές Φιλτράρισμα αποτελεσμάτων 1. O χρήστης επιλέγει το κουμπί/ εικονίδιο του φιλτραρίσματος αποτελεσμάτων. 2. Ο χρήστης εισάγει (πληκτρολογεί) το επιθυμητό κριτήριο φιλτραρίσματος στο σχετικό πεδίο φιλτραρίσματος. 3. Η εφαρμογή αποκρύπτει όσες εγγραφές δεν πληρούν το κριτήριο φιλτραρίσματος, όπως φαίνεται στην Οθόνη 4: Λίστα φιλτραρισμένων διαθέσιμων σημείων ενδιαφέροντος. 4. Εφόσον ο χρήστη επιθυμεί να ακυρώσει το φιλτράρισμα, πατάει το κουμπί ακύρωσης της λειτουργίας του φιλτραρίσματος και η λίστα σημείων ενδιαφέροντος επανέρχεται στην αρχική της κατάσταση Επιμέρους ροές Επισκόπηση σημείου ενδιαφέροντος στον χάρτη 1. Η εφαρμογή εμφανίζει το σημείο ενδιαφέροντος στον χάρτη, απεικονίζοντας έτσι με ένα ειδικό εικονίδιο το γεωγραφικό του στίγμα, όπως φαίνεται στην Οθόνη 6: Απεικόνιση σημείου ενδιαφέροντος στον χάρτη. 2. Ο χρήστης πατάει πάνω στο εικονίδιο του σημείου ενδιαφέροντος και εμφανίζεται ένα αναδυόμενο παράθυρο (popup balloon), με δυνατότητα κλεισίματος, το οποίο παραθέτει τις βασικές πληροφορίες του σημείου, όπως αυτές φαίνονται στο Πίνακας 6: Στοιχεία σημείων ενδιαφέροντος απεικονισμένα στον χάρτη. 3. Εφόσον επιθυμεί, ο χρήστης μπορεί να δει την ενημερωμένη τρέχουσα θέση του στον χάρτη, πατώντας το διαθέσιμο κουμπί απεικόνισης τρέχουσας θέσης Κλήση τηλεφώνου σημείου ενδιαφέροντος 1. Ο χρήστης πατάει το κουμπί κλήσης τηλεφώνου του σημείου ενδιαφέροντος. 2. Η εφαρμογή καλεί τον τηλεφωνικό αριθμό Προθήκη σημείου ενδιαφέροντος ως επαφή 1. Ο χρήστης πατάει το κουμπί προσθήκης του σημείου ενδιαφέροντος ως επαφή. 2. Ο χρήστης επιλέγει που θέλει να προστεθεί η επαφή (στη συσκευή ή κάπου αλλού). 3. Η εφαρμογή αποθηκεύει το σημείο ενδιαφέροντος ως επαφή. Σελίδα 57 από 94

58 7. Τεχνική υλοποίηση 7.1. Περιγραφή λύσης Στην Εικόνα 14 απεικονίζεται γραφικά η δομή και η οργάνωση του πηγαίου κώδικα της εφαρμογής NearMe!. Γενικά, ο κώδικας της εφαρμογής αποτελείται από αρχεία Java (τα περισσότερα) για τμήμα του «Ελεγκτή» (Controller), XML αρχεία για το τμήμα της «Προβολής» (View), καθώς και αρχεία XML/ KML/ SQLite/ Java για το «Μοντέλο» (Model), προσεγγίζοντας τα πρότυπα αρχιτεκτονικής λογισμικού MVC (Model View - Controller). Οι έννοιες αυτές απεικονίζονται στην Εικόνα 13: ιάγραμμα αρχιτεκτονικής σχεδίασης της εφαρμογής της ενότητας «5.1. Αρχιτεκτονική εφαρμογής». Σε αυτή την ενότητα θα αναλύσουμε σε περισσότερη λεπτομέρεια τον ρόλο που επιτελεί η κάθε κλάση/ αρχείο. Ο φάκελος /scr/ περιέχει όλες τις κλάσεις (class) που αποτελούν τον Controller. Είναι γραμμένες στην γλώσσα Java και χωρισμένες σε πακέτα (packages), για καλύτερη οργάνωση. Αναλυτικότερα, τα πακέτα του φακέλου περιγράφονται ως ακολούθως: Πακέτo gr.nearme.activites το οποίο περιέχει τα ακόλουθα αρχεία δραστηριοτήτων (activities): DashboardActivity.java ραστηριότητα υπεύθυνη για την αρχική οθόνη επιλογής κατηγορίας σημείου ενδιαφέροντος. Ελέγχει επίσης για διαθέσιμο στίγμα του δέκτη GPS, και αν δεν υπάρχει, φροντίζει να ενημερώσει τον χρήστη προκειμένου να επιτρέψει την χρήση του δέκτη. Αν το δέκτης ενεργοποιηθεί, προσπαθεί να εντοπίσει το στίγμα στο υπόβαθρο (background) για, το πολύ, ένα λεπτό. Καλεί την δραστηριότητα ListActivity όταν ο χρήστης επιλέγει κατηγορία Σ.Ε, περνώντας ως παράμετρο της πρόθεσης (intent) την επιλεγμένη κατηγορία. ListActivity.java ραστηριότητα υπεύθυνη για την προβολή των διαθέσιμων Σ.Ε. της κατηγορίας που έχει επιλεγεί. Προσφέρει βασικές δυνατότητες αναζήτησης/ φιλτραρίσματος επί του συνόλου των Σ.Ε. Προσφέρει επίσης δυνατότητα ανανέωσης (refresh) και επαναφόρτωση δεδομένων. Καλεί την δραστηριότητα DetailsActivity όταν ο χρήστης επιλέγει ένα Σ.Ε., περνώντας το ως παράμετρο της πρόθεσης. DetailsActivity.java ραστηριότητα υπεύθυνη για την προβολή λεπτομερών στοιχείων ενός Σ.Ε. Κάνει δυνατή την εμφάνιση του Σ.Ε στον χάρτη. Τέλος, προσφέρει την δυνατότητα κλήσης του τηλεφώνου του σημείου όπως και προσθήκη του ως επαφή. Καλεί την δραστηριότητα MapsActivity όταν ο χρήστης επιλέγει την λειτουργίας της απεικόνισης του Σ.Ε. στον χάρτη, περνώντας το ως παράμετρο της πρόθεσης. MapsActivity.java ραστηριότητα υπεύθυνη για την προβολή του επιλεγμένου Σ.Ε. στον χάρτη. Κάνει δυνατή την εμφάνιση στοιχείων του σημείου σε ένα αναδυόμενο παράθυρο (popup balloon). Τέλος, προσφέρει την δυνατότητα εμφάνισης του τρέχοντος στίγματος του χρήστη στον χάρτη. OptionsMenuActivity.java ραστηριότητα υπεύθυνη για την προβολή των επιλογών του μενού της εφαρμογής (menu options). Σελίδα 58 από 94

59 Εικόνα 14: ομή πηγαίου κώδικα Σελίδα 59 από 94

60 Μια γραφική απεικόνιση των όσων περιγράφονται παραπάνω, παρέχεται στην Εικόνα 15: ιάγραμμα ροής δραστηριοτήτων. Εικόνα 15: ιάγραμμα ροής δραστηριοτήτων Πακέτo gr.nearme.adapters το οποίο περιέχει το αρχείο ListAdapter.java, υπεύθυνο για το συμπλήρωμα της λίστας της οθόνης με εγγραφές Σ.Ε. Πακέτo gr.nearme.dal το οποίο περιέχει δυο υποπακέτα τα οποία στην ουσία αποτελούν το άτυπο Επίπεδο Πρόσβασης εδομένων [Data Access Layer (DAL)] της εφαρμογής: Πακέτο gr.nearme.dal.db το οποίο περιέχει το αρχείο DBManager.java, Αντικείμενο Πρόσβασης εδομένων [Data Access Object (DAO)] υπεύθυνο για επικοινωνία και συλλογή δεδομένων από την βάση δεδομένων SQLite. Πακέτο gr.nearme.dal.parsers το οποίο περιέχει τα ακόλουθα αρχεία DAO που κληρονομούν από την αφηρημένη υπερκλάση (abstract superclass) DataParser.java: o JSONParser.java DAO υπεύθυνο για την ανάγνωση δεδομένων (εγγραφών Σ.Ε.) από απομακρυσμένη ροή JSON. o KMLParser.java (σε συνδυασμό με το βοηθητικό αρχείο KMLNameSpaceContext.java) DAO υπεύθυνο για την ανάγνωση δεδομένων (εγγραφών Σ.Ε.) από τοπικό αρχείο KML. o XMLParser.java (σε συνδυασμό με το βοηθητικό αρχείο SAXHandler.java) DAO υπεύθυνο για την ανάγνωση δεδομένων (εγγραφών Σ.Ε.) από τοπικό αρχείο XML. Πακέτo gr.nearme.gestures το οποίο περιέχει το αρχείο GestureListener.java, υπεύθυνο για απόκριση σε ενέργειες αφής στην δραστηριότητα του χάρτη (π.χ. «διπλό άγγιγμα» (double tap) πάνω στον χάρτη προκαλεί μεγέθυνση (zoom)). Σελίδα 60 από 94

61 Πακέτo gr.nearme.overlay το οποίο περιέχει το αρχείο PlacemarkOverlay.java, υπεύθυνο για προσθήκη «στρωμάτων» (layers) στον χάρτη. Ουσιαστικά το «στρώμα» χρησιμοποιούνται για να τοποθετήσουμε πληροφορία και γραφικά πάνω στον χάρτη. Στην προκειμένη περίπτωση χρησιμοποιείται στην γραφική απεικόνιση του Σ.Ε. στον χάρτη, καθώς και των πληροφοριών που το απαρτίζουν. Πακέτo gr.nearme.resources το οποίο περιέχει το ακόλουθα χρήσιμα αρχεία: CategoryEnum.java αρχείο για την διαχείριση των διαθεσίμων κατηγοριών Σ.Ε. της εφαρμογής. Η συγκεκριμένη κλάση έχει παρουσιαστεί αναλυτικότερα στην ενότητα «5.2. Υποστηριζόμενες πηγές άντλησης δεδομένων». Constants.java αρχείο που εμπεριέχει όλες τις σταθερές (constants) που χρησιμοποιεί η εφαρμογή σε διάφορα σημεία. Πακέτo gr.nearme.uicomps το οποίο περιέχει το αρχείο AlertBox.java, υπεύθυνο για την προβολή ενημερωτικών μηνυμάτων ή παραθύρων διαλόγου. Χρησιμοποιείται όταν υπάρχουν σχετικές ανάγκες προβολής πληροφορίων στον χρήστη. Πακέτo gr.nearme.utilites το οποίο περιέχει το αρχείο Converter.java, υπεύθυνο για τις απαραίτητες αριθμητικές μετατροπές αναγκαίες στην εφαρμογή. Πακέτo gr.nearme.valueobjects το οποίο περιέχει το αρχείο Placemark.java, υπεύθυνο για την απλή μοντελοποίηση των πληροφοριών που διαβάζονται από ετερογενείς πηγές. Η συγκεκριμένη κλάση έχει παρουσιαστεί αναλυτικότερα στην ενότητα «5.3. Ταιριάσματα δεδομένων». Μια γραφική απεικόνιση όλων των όσων περιγράφηκαν παραπάνω, φαίνεται στην Εικόνα 16: ιάγραμμα Κλάσεων. Σελίδα 61 από 94

62 Εικόνα 16: ιάγραμμα Κλάσεων Σημείωση: Λόγω του πολύ μεγάλου μεγέθους του ιαγράμματος Κλάσης, ο ενδιαφερόμενος αναγνώστης παραπέμπεται να το αναγνώσει σε.png μορφή στο παραδοτέο ψηφιακό υλικό της εργασίας. Ο φάκελος /assets/ περιέχει όλες τα αρχεία που αποτελούν τοπικές πηγές άντλησης δεδομένων Σ.Ε, όπως εξηγείται στην ενότητα «5.2. Υποστηριζόμενες πηγές άντλησης δεδομένων». Ο φάκελος /res/ περιέχει όλα τα αρχεία που αποτελούν το View κομμάτι της εφαρμογής. Αναλυτικότερα, ο φάκελος /res/layout/ περιέχει αρχεία που συνθέτουν γραφικά την διεπαφή χρήστη και ο φάκελος /res/values/ περιέχει αρχεία που συνθέτουν την παραμετροποίησή της. Τέλος, στο αρχείο AndroidManifest.xml περιλαμβάνονται όλα εκείνα τα στοιχεία απαραίτητα για την εκκίνηση και λειτουργία της εφαρμογής. Στοιχεία όπως: Ελάχιστη απαιτούμενη έκδοση λειτουργικού. ραστηριότητες και «κύρια» δραστηριότητα που εμπεριέχει η εφαρμογή. ικαιώματα που απαιτούνται από τον χρήστη. κ.ά. Σελίδα 62 από 94

63 Για περισσότερες λεπτομέρειες σχετικά με την τεχνική υλοποίηση της εφαρμογής μπορεί o ενδιαφερόμενος αναγνώστης να συμβουλευτεί τον διαθέσιμο πηγαίο κώδικα, ο οποίος συνοδεύεται από εκτενή σχολιασμό σε μορφή Javadoc. Σελίδα 63 από 94

64 8. Επίλογος 8.1. Συμπεράσματα Έγινε μια λεπτομερής παρουσίαση της εφαρμογής NearMe!, τόσο από τεχνικής όσο και λειτουργικής άποψης. Επίσης παρουσιάστηκε σε σημαντικό βαθμό η πλατφόρμα Android καθώς και εξηγήθηκαν οι λόγοι για τους οποίους επελέγη να αποτελέσει την απαρχή μιας νέας γενικευμένης εφαρμογής αξιοποίησης γεωχωρικών δεδομένων. Τα πρώτα δείγματα σχετικής επιτυχίας έχουν αποδειχτεί από την Android εφαρμογή Greek WiFi Hotspots [50], η οποία λειτούργησε ως πιλοτική δοκιμή της όλης προσπάθειας. Αποτελεί ουσιαστικά μια απλούστερη και περιορισμένη έκδοση της εφαρμογής NearMe!, υποστηρίζοντας ουσιαστικά μόνο σημεία ασύρματης πρόσβασης στο ιαδίκτυο. Μέχρι στιγμής, η εν λόγω εφαρμογή, μετράει κάτι λιγότερο από εγκαταστάσεις, σύμφωνα με τα επίσημα στοιχεία της αγοράς Play Store. Θα πρέπει να εξετασθεί το στοιχείο ότι έχει λάβει αξιολόγηση 3/5, κάτι που σημαίνει ότι υπάρχουν ακόμα περιθώρια για να τελειοποιηθεί. Γενικά, διαπιστώθηκε ότι η προσπάθεια που χρειάστηκε για την εφαρμογή προκειμένου να γίνει έτοιμη για προσφορά προς τους τελικούς χρήστες σε πραγματικές συνθήκες, ξεπερνά κατά πολύ τον χρόνο που είχε αρχικά προβλεφθεί. Αποδεικνύεται ότι η προσοχή στην λεπτομέρεια κάνει την διαφορά σε εφαρμογές που προορίζονται για την καταναλωτική αγορά (consumer market). Από την άλλη, θετικό είναι ότι οι χρήστες το βρίσκουν χρήσιμο και ασχολούνται, με αποτέλεσμα να συνεισφέρουν και πολύτιμη ανάδραση (feedback). Η Εικόνα 17 παρουσιάζει την εφαρμογή Greek WiFi Hotspots σε σενάριο πραγματικής χρήσης. Σελίδα 64 από 94

65 Εικόνα 17: Η πιλοτική εφαρμογή "Greek WiFi Hotspots" 8.2. Μελλοντικές επεκτάσεις και βελτιώσεις Παρότι έχουν γίνει τα αρχικά και σημαντικά βήματα της διαμόρφωσης της εφαρμογής NearMe! ως μια μελλοντική πλατφόρμα διαχείρισης και προβολής γεωχωρικών δεδομένων, εντούτοις, πολλά ακόμα θα μπορούσαν να γίνουν προκειμένου να συνεισφέρουν στην περαιτέρω επιτυχία της προσπάθειας. Αν θέταμε έναν γενικό χάρτη μελλοντικής λειτουργικότητας και χαρακτηριστικών (feature roadmap) θα συμπεριλάμβανε τις παρακάτω αλλαγές/ βελτιώσεις: 1. Οι χρήστες να μπορούν να προσθέτουν Σ.Ε. απευθείας από την εφαρμογή. Αυτά θα αποθηκεύονται σε ένα κεντρικό εξυπηρέτη προκειμένου να είναι διαθέσιμα για όλους τους χρήστες μελλοντικά. 2. Οι χρήστες να μπορούν να έχουν την δυνατότητα, μέσα από την εφαρμογή, να αξιολογούν/ σχολιάζουν την ποιότητα των δεδομένων και να σημειώνουν τυχόν σφάλματα σε αυτά. Κάτι τέτοιο ωστόσο θα απαιτούσε μια χειροκίνητη διαδικασία επαλήθευσης και διόρθωσης των δεδομένων από κάποιον υπεύθυνο. 3. Να προταθούν αμοιβαίες συνεργασίες στις Ελληνικές (για αρχή) κοινότητες που ασχολούνται με την συλλογή γεωχωρικών δεδομένων και Σ.Ε. (όπως pois.gr, free-wifi.gr κ.λπ.). 4. Να αξιοποιηθούν περισσότερα δεδομένα που προσφέρονται στο ήδη αξιοποιημένο geodata.gov.gr (π.χ. αστυνομικά τμήματα, στάσεις και δρομολόγια ΜΜΜ, κ.ά.) 5. Να αξιοποιηθούν άλλες πηγές γεωχωρικών δεδομένων, όπως: a. odata.gr Σελίδα 65 από 94

66 b. publicdata.eu c. datahub.io d. open-data.europa.eu 6. Να γίνει μετάβαση από Χάρτες Google που δεν υποστηρίζουν εκτεταμένη offline λειτουργία στο ανοικτό OpenStreetMap που την επιτρέπει [51]. Κάτι τέτοιο θα δώσει και την δυνατότητα άντλησης δεδομένων από OpenStreetMap και συνεισφορά πίσω σε αυτό. 7. Να βρεθούν εθελοντές συνεργάτες και άνθρωποι που έχουν διάθεση και όρεξη να προσφέρουν/ συμμετάσχουν στην προσπάθεια. Να δομηθεί μια ομάδα που απαρτίζεται από περισσότερα άτομα, από προγραμματιστές μέχρι διαχειριστές κοινότητας (community managers). Το βάθος και το εύρος των δυνατοτήτων ξεπερνούν την προσπάθεια ενός μόνο ατόμου και είναι εν τέλει ανάλογες των διαθέσιμων ανθρώπινων πόρων (όπως και των περισσότερων πραγμάτων, άλλωστε). 8. Να υπάρξουν στοιχειώδη πλάνα κερδοφορίας (monetization) της προσπάθειας προκειμένου να διασφαλιστεί ένα πιο ομαλό μέλλον για το εγχείρημα. Μια ιδέα είναι να αξιοποιηθεί η ιδέα της τοπικής διαφήμισης (local advertising), κάτω από την γενικότερη «ομπρέλα» των γεωγνωστικών/ γεωχωρικών διαφημίσεων (geoads). 9. Βελτίωσες τεχνικής φύσεως (π.χ. στον μηχανισμό εντοπισμού θέσης του χρήστη, στον μηχανισμό τροφοδότησης και φορτώματος δεδομένων από τις διάφορες πηγές). 10. Σύνθεση, φιλικού προς τους εμπλεκομένους, μηχανισμού μετασχηματισμού δεδομένων από διάφορες πηγές. Ενδεικτικά θα μπορούσε να είναι συνδυασμός των παρακάτω δωρεάν εργαλείων και τεχνικών όπως: a. Χρήση εργαλείων όπως scraperwiki [52] για περισυλλογή δεδομένων (data scraping) από δημόσιου συμφέροντος ιστοσελίδες που δεν προσφέρουν ιεπαφή Προγραμματισμού Εφαρμογής (Application Programming Interface (API)) ή σχετικές Υπηρεσίες Ιστού (Web Services). b. Χρήση εργαλείων μετασχηματισμού δεδομένων όπως Google Refine [53] για καθαρισμό και ομογενοποίηση δεδομένων c. Χρήση δωρεάν υπηρεσιών γεωκωδικοποίησης/ αντίστροφης γεωκωδικοποίησης (geocoding/ reverse geocoding) [54] για την ανάκτηση συμπληρωματικής γεωχωρικών χαρακτηριστικών. d. Προσαρμοσμένο στις ανάγκες της εφαρμογής, μηχανισμό χειροκίνητης διόρθωσης δεδομένων από απλούς χρήστες μέσω μιας εύχρηστης διαδικτυακής εφαρμογής. e. Χρήση Σ ΒΣ PostgreSQL [55] σε συνδυασμό με την επέκταση PostGIS [56] για αποθήκευση μεγάλου όγκου γεωχωρικών δεδομένων. 11. Στροφή προς και αξιοποίηση καθιερωμένων και ανοικτού κώδικα και προτύπων Γεωγραφικών Συστημάτων Πληροφοριών (Geographic Information Systems (GIS)) και σχετικών βιβλιοθηκών. 12. Απεμπλοκή από εφαρμογή αποκλειστικά μόνο για Android και στροφή προς μια λειτουργική διαπλατφορμική λύση, όταν οι συνθήκες το επιτρέψουν και οι ανάλογες τεχνολογίες ιστού (web technologies) ωριμάσουν αρκετά. Περισσότερα στοιχεία για τα συγκεκριμένο θέμα παρέχονται στην ενότητα « Σύγκριση εγγενών και διαπλατφορμικών λύσεων». 13. Υποστήριξη πολυπλοκότερων γεωχωρικών δεδομένων. Σελίδα 66 από 94

67 9. Βιβλιογραφία [1] [2] [3] [4] [5] [6] million-in-the-last-6-months/ [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [25] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] Σελίδα 67 από 94

68 [41] Roy Thomas Fielding, Architectural Styles and the Design of Network-based Software Architectures University of California - Irvine, ιαθέσιμο στην διεύθυνση: [42] %CF%81%CE%BC%CE%B1%CE%BA%CE%B5%CE%AF%CF%89%CE%BD/tabid/95/Default.aspx [43] [44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] Σελίδα 68 από 94

69 10. Ορολογία Αγγλικός όρος Abstract superclass Accelerator Active Active search radius Activity Ad- hoc app distribution Android Development Tools (ADT) Android Software Development Kit (Android SDK) Application Application marketplace Application Programming Interface (API) Application review Back button Back stack Backdoor Bandwidth Barometer Blinking icon Broadcast receiver Case insensitive Central Processing Unit (CPU) Class Client-Server Community manager Compass Components Constant Consumer market Content provider Controller CPU architecture Cross-platform Cross-platform mobile web applications frameworks Dalvik Virtual Machine (DVM) Dashboard Data Access Layer (DAL) Data Access Object (DAO) Data scraping Debugger Deployment Ελληνικός όρος Αφηρημένη υπερκλάση Επιταχυνσιόμετρο Ενεργό Ενεργή ακτίνα αναζήτησης ραστηριότητα Κατά περίπτωση διανομή εφαρμογής Εργαλεία Ανάπτυξης Λογισμικού για Android Πακέτο Ανάπτυξης Λογισμικού για Android Εφαρμογή Αγορά εφαρμογής ιεπαφή Προγραμματισμού Εφαρμογής Έλεγχος εφαρμογής Κουμπί «πίσω» Στοίβα Κερκόπορτα Εύρος ζώνης Βαρόμετρο Εικονίδιο που αναβοσβήνει έκτης καθολικών εκπομπών Χωρίς διάκριση πεζών και κεφαλαίων γραμμάτων Κεντρική Μονάδα Επεξεργασίας Κλάση (Μοντέλο) Εξυπηρετούμενου- Εξυπηρέτη ιαχειριστής κοινότητας Πυξίδα Συστατικό/ Μέρος Σταθερά Καταναλωτική αγορά Πάροχος περιεχομένου Ελεγκτής Αρχιτεκτονική επεξεργαστή ιαπλατφορμικό ιαπλατφορμικό πακέτο λογισμικού δημιουργίας κινητών εφαρμογών ιστού Εικονική Μηχανή Dalvik Κεντρικό ταμπλό Επίπεδο Πρόσβασης εδομένων Αντικείμενα Πρόσβασης εδομένων Περισυλλογή δεδομένων Εργαλείο διόρθωσης σφαλμάτων ιάθεση (εφαρμογής) Σελίδα 69 από 94

70 Αγγλικός όρος Ελληνικός όρος Design pattern Σχεδιαστικό μοτίβο Developer fee Τέλος προγραμματιστή Documentation Τεκμηρίωση Double tap ιπλό άγγιγμα E- mail client Αναγνώστης ηλεκτρονικού ταχυδρομείου Encapsulation Ενθυλάκωση Enumeration Απαρίθμηση Extensible Markup Language (XML) Γλώσσα σήμανσης δεδομένων Feature roadmap Χάρτης μελλοντικής λειτουργικότητας και χαρακτηριστικών Feedback Ανάδραση Fidelity Πιστότητα Focus Εστίαση Format ιάταξη/ μορφοποίηση Fragmentation Κατακερματισμός Framework Πλαίσιο Geoads Γεωγνωστικές/ γεωχωρικές διαφημίσεις Geocoding Γεωκωδικοποίηση Geodata Γεωχωρικά δεδομένα Geographic Information System (GIS) Γεωγραφικό Σύστημα Πληροφοριών GPS receiver έκτης GPS Graphical Processing Unit (GPU) Μονάδα Επεξεργασίας Γραφικών Grid Πλέγμα Gyroscope Γυροσκόπιο Hacker Χάκερ Information feedback Ανάδραση πληροφορίας Instance Στιγμιότυπο Integrated Development Environment Ολοκληρωμένο Περιβάλλον Ανάπτυξης (IDE) Intent Πρόθεση Intent filter Φίλτρο πρόθεσης Intermediate code Ενδιάμεσος κώδικας Internet Protocol (IP) Πρωτόκολλο ιαδικτύου ios Developer Toolset Εργαλεία Προγραμματιστή ios Java Virtual Machine (JVM) Εικονική Μηχανή Java JavaScript Object Notation (JSON) Γλώσσα σήμανσης δεδομένων Keyhole Markup Language (KML) Γλώσσα σήμανσης δεδομένων Layer Στρώμα Local advertising Τοπική διαφήμιση Local web application Τοπική εφαρμογή ιστού Location- aware Με επίγνωση της θέσης Long-running Μακράς διαρκείας Main activity Κύρια δραστηριότητα Mapping Ταίριασμα (αντικειμένων) Market leader Κυρίαρχος της αγοράς Σελίδα 70 από 94

71 Αγγλικός όρος Master- detail screen Menu option Mobile framework Mobile platform Modal dialog box Model Model-View-Controller (MVC) Monetization Multimedia Player Native Native wrapper Offline mode Open source Open/ Free data Package Paused Permission Pinch Popup balloon Porting Privilege-separated Process Project Proprietary Proximity sensor Real-time Real-time data Reference device Remote server Representational state transfer (REST) Responsive RESTFul Reverse geocoding Root Root directory Sandboxed Schema Schema definition Service Simple API for XML (SAX) Single codebase Smartphone Software framework Ελληνικός όρος Κύρια- δευτερεύουσα οθόνη Επιλογή του μενού Πλαίσιο ανάπτυξης κινητών εφαρμογών Πλατφόρμες κινητών συσκευών Υποχρεωτικό πλαίσιο διαλόγου Μοντέλο Ελεγκτής-Προβολή-Μοντέλο Πλάνο κερδοφορίας Συσκευή αναπαραγωγής πολυμέσων Εγγενής Εγγενές περιτύλιγμα Λειτουργία χωρίς σύνδεση Ανοικτού κώδικα Ανοικτά/ Ελεύθερα δεδομένα Πακέτο Παύση ικαίωμα Τσίμπημα Αναδυόμενο παράθυρο Η διαδικασία μεταφοράς μιας εφαρμογής σε άλλη πλατφόρμα Απομόνωση προνομίων ιεργασία Έργο Ιδιόκτητο Αισθητήρας εγγύτητας Σε πραγματικό χρόνο εδομένα πραγματικού χρόνου Συσκευή αναφοράς Απομακρυσμένο εξυπηρέτη Αρχιτεκτονική λογισμικού κατανεμημένων συστημάτων Αποκρίσιμη Τύπου REST Αντίστροφη γεωκωδικοποίηση Υπερχρήστης Κεντρικός κατάλογος Απομονωμένο Σχήμα Πρότυπο ορισμού σχήματος Υπηρεσία Τεχνολογία ανάγνωσης/ επεξεργασίας XML Ενιαίος πηγαίος κώδικας Έξυπνη κινητή συσκευή Πλαίσιο λογισμικού Σελίδα 71 από 94

72 Αγγλικός όρος Startup Company State Stopped Stream Swipe Tablet Tap Testing Testing lab Thread Tightly integrated User Interface (UI) Vendor-locking View Web Service Web technology Wi-Fi Wi-Fi Hotspots XML Path Language (XPath) XML Schema Definition (XSD) Β Σ Β Ελληνικός όρος Νεόφυτη Εταιρεία Κατάσταση Σταματημένο Ροή Κίνηση σάρωσης Ταμπλέτα Άγγιγμα ιαδικασία δοκιμής Εργαστήριο δοκιμών Νήμα Άρρηκτα συνδεδεμένο ιεπαφή Χρήστη έσμευση σε συγκεκριμένο προμηθευτή Προβολή Υπηρεσία Ιστού Τεχνολογία ιστού Ασύρματη σύνδεση Σημεία ασύρματης πρόσβασης στο ιαδίκτυο Γλώσσα ανάγνωσης/ επεξεργασίας XML Πρότυπο ορισμού σχήματος XML Βάση εδομένων Σύστημα ιαχείρισης Βάσης εδομένων Σελίδα 72 από 94

73 11. Παράρτημα Α - Οδηγίες εγκατάστασης και παραμετροποίησης περιβάλλοντος ανάπτυξης Android. Οι παρακάτω οδηγίες αφορούν την εγκατάσταση και παραμετροποίηση του περιβάλλοντος ανάπτυξης Android σε λειτουργικό σύστημα Windows 7 με τελικό σκοπό το «φόρτωμα» του πηγαίου κώδικα της εφαρμογής NearMe! Εγκατάσταση JDK 1. Κατεβάζουμε το Java Development Kit (JDK) v.7 (οποιαδήποτε έκδοση >= v.6 είναι κατάλληλη) από την επίσημη ιστοσελίδα [1] επιλέγοντας την έκδοση του λειτουργικού συστήματός μας, όπως φαίνεται στην ακόλουθη εικόνα. Αποθηκεύουμε το αρχείο εγκατάστασης σε κατάλογο της επιλογής μας. 2. Εκτελούμε το αρχείο που κατεβάσαμε. Στη διαδικασία της εγκατάστασης, αποδεχόμαστε τις προεπιλεγμένες ρυθμίσεις. Με την επιτυχή περάτωση της διαδικασίας, το JDK θα έχει εγκατασταθεί στη διαδρομή C:\Program Files\Java\jdk1.7.0_17\. 3. Στη συνέχεια, από το μενού των Windows, επιλέγουμε Control Panel System Advanced system settings. Στο παράθυρο που ανοίγει επιλέγουμε το κουμπί Environment Variables. Εντοπίζουμε την μεταβλητή συστήματος Path ή PATH από την λίστα των διαθέσιμων μεταβλητών όπως φαίνεται στην παρακάτω εικόνα. Σελίδα 73 από 94

74 και την τροποποιούμε ως ακολούθως: a. Χρησιμοποιώντας τη διαδρομή του βήματος 3, προσθέτουμε στο τέλος των ήδη υπαρχόντων στοιχείων του Path το ακόλουθο (θα συμπεριλάβουμε και τον φάκελο bin ): ;C:\Program Files\Java\jdk1.7.0_17\bin;. b. Όταν ολοκληρωθούν τα ανωτέρω, με τα παραπάνω, ανοίγουμε το μενού των Windows, και στο πλαίσιο όπου εμφανίζεται με αχνούς χαρακτήρες Search programs and files πληκτρολογούμε cmd και ελέγχουμε αν έχει γίνει επιτυχής εγκατάσταση της Java δίνοντας την εντολή java version όπως φαίνεται στην εικόνα που ακολουθεί. Το αποτέλεσμα της εκτέλεσης της εντολής πρέπει να είναι πολύ παρόμοιο με αυτό που εμφανίζεται στην εικόνα, διαφορετικά έχει προκύψει κάποιο σφάλμα στη διαδικασία και θα πρέπει να την επαναλάβουμε από την αρχή. Σελίδα 74 από 94

75 11.2. Εγκατάσταση Android SDK (ADT bundle) Έχοντας ολοκληρώσει την εγκατάσταση του JDK, συνεχίζουμε με την εγκατάσταση και παραμετροποίηση του περιβάλλοντος ανάπτυξης Android. Σε αυτό το σημείο, έχουμε δύο (2) επιλογές [2]: a. Να κάνουμε χρήση του ολοκληρωμένου περιβάλλοντος ανάπτυξης Android (ουσιαστικά περιλαμβάνει ειδική έκδοση Eclipse IDE με ενσωματωμένο Android SDK), του λεγόμενου ADT (Android Development Tools) bundle. b. Να χρησιμοποιήσουμε κάποιο υπάρχον IDE (Eclipse [3], Netbeans [4], IntelliJ IDEA Community Edition [5]) και εκεί να ενσωματώσουμε το Android SDK. Εμείς θα ακολουθήσουμε την προσέγγιση του έτοιμου ολοκληρωμένου περιβάλλοντος (επιλογή a), για λόγους ευκολίας). 1. Επιλέγουμε και κατεβάζουμε την ανάλογη έκδοση που αντιστοιχεί στο ΛΣ μας (αφότου συμβουλευτούμε τις επίσημες απαιτήσεις του λογισμικού, στην ενότητα SYSTEM REQUIREMENTS ), όπως φαίνεται στην ακόλουθη εικόνα. 2. Αποσυμπιέζουμε το αρχείο zip (κατά προτίμηση σε κάποιον κατάλογο ακριβώς κάτω από τον C:\) και μετονομάζουμε τον παραγόμενο φάκελο, δίνοντάς του ένα όνομα της μορφής adt-bundle-windows-x86_ Ανοίγουμε τον φάκελο adt-bundle-windows-x86_32 και εκτελούμε το πρόγραμμα SDK Manager, όπως αυτό φαίνεται στην ακόλουθη εικόνα. Το βήμα αυτό είναι απαραίτητο για να οριστούν κάποιες επιπρόσθετες μεταβλητές συστήματος που αφορούν το Android. 4. Παραμένοντας στον ίδιο φάκελο, ανοίγουμε τον φάκελο eclipse και εκτελούμε το πρόγραμμα eclipse. Αυτό ουσιαστικά είναι και το Eclipse IDE, εντός του οποίου γίνεται η ανάπτυξη της εφαρμογής Android. Στην παρακάτω εικόνα φαίνεται η αρχική εικόνα πριν το τελικό άνοιγμα της εφαρμογής. Σελίδα 75 από 94

76 Μόλις ανοίξει η εφαρμογή, θα μας ζητήσει να επιλέξουμε «χώρο εργασίας» (workspace). Καλό θα ήταν να αφήσουμε την προεπιλεγμένη τιμή (στην συγκεκριμένη περίπτωση C:\Users\cst04026\workspace ), όπως φαίνεται στην παρακάτω εικόνα. 5. Επιλέγουμε την επιλογή Android SDK Manager από το μενού Window, όπως φαίνεται στην παρακάτω εικόνα. Σελίδα 76 από 94

77 Η επιλογή Android SDK Manager θα μας βοηθήσει να επιλέξουμε και να εγκαταστήσουμε/ ενημερώσουμε την επιθυμητή έκδοση του Android SDK (συνήθως την πιο πρόσφατη) μαζί με επιπρόσθετες βιβλιοθήκες που ίσως χρειαστούμε (π.χ. χάρτες Google). Στην περίπτωσή μας, επειδή είναι «εξ αρχής εγκατάσταση» (clean installation), το Android SDK βρίσκεται ήδη στην τελευταία του έκδοση, επομένως δεν χρειάζεται κάποια αναβάθμιση. Ωστόσο θα χρειαστεί να εγκαταστήσουμε (κατ ελάχιστο) και το πακέτο Google APIs για την έκδοση SDK που έχουμε εγκατεστημένη, όπως φαίνεται στην παρακάτω εικόνα. Σελίδα 77 από 94

78 Επίσης από την ενότητα Extras, επιλέγουμε προς εγκατάσταση το πακέτο Google USB Driver όπως φαίνεται στην παρακάτω εικόνα. Το πακέτο αυτό χρειάζεται σε περίπτωση που θέλουμε να κάνουμε ανάπτυξη με πραγματική συσκευή και όχι εικονική. Περισσότερες λεπτομέρειες για το χαρακτηριστικό αυτό δίνονται στη συνέχεια. Επιλέγουμε να εγκατασταθούν τα επιλεγμένα πακέτα συμφωνώντας στις άδειες χρήσης. Για περισσότερες λεπτομέρειες επί την διαδικασία εγκατάστασης και παραμετροποίησης του ADT bundle, μπορείτε να ανατρέξετε στην τεκμηρίωση που περιλαμβάνεται στην επίσημη ιστοσελίδα [6]. 6. Επιλέγουμε την επιλογή Android Virtual Device Manager από το μενού Window, όπως φαίνεται στην παρακάτω εικόνα. Σελίδα 78 από 94

79 Η επιλογή Android Virtual Device Manager θα μας βοηθήσει να δημιουργήσουμε εικονικές συσκευές πάνω στις οποίες θα εκτελέσουμε την εφαρμογή μας και θα προσομοιώσουμε την λειτουργία της. Η επιλογή αυτή είναι ιδιαίτερα χρήσιμη όταν δεν έχουμε φυσικές συσκευές για να κάνουμε τις δοκιμές μας. Εμφανίζεται η παρακάτω οθόνη στην οποία μας δίνεται η δυνατότητα να φταίξουμε εικονικές συσκευές. Επιλέγουμε New από τις επιλογές της οθόνης. Συμπληρώνουμε τα επιθυμητά χαρακτηριστικά που θέλουμε να έχει η εικονική συσκευή, όπως ενδεικτικά φαίνεται στην παρακάτω εικόνα, και αποθηκεύουμε (save). Σελίδα 79 από 94

80 Στη συνέχεια, προχωράμε στην επόμενη ενότητα, προκειμένου να φορτώσουμε το project NearMe! στο τρέχον «περιβάλλον εργασίας» (workspace) Φόρτωμα πηγαίου κώδικα του προγράμματος NearMe! Ο πηγαίος κώδικας του προγράμματος NearMe! διατίθεται ως συμπιεσμένο αρχείο. Αποτελείται από δύο τμήματα: 1. το πρώτο κομμάτι είναι ο πηγαίος κώδικας της εφαρμογής (Eclipse Project). 2. το δεύτερο κομμάτι είναι μια βιβλιοθήκη ανοικτού κώδικα (android-mapviewballoons [7]) από άλλον δημιουργό (επίσης Eclipse Project). Η διαδικασία φορτώματας έχει ως ακολούθως: 1. Αποσυμπιέζουμε το αρχείο σε ένα σημείο του συστήματος αρχείων του ΛΣ μας (π.χ. C:\Android\Projects\nearme\ ). Σελίδα 80 από 94

81 2. Επιλέγουμε να φορτώσουμε (import) το Eclipse Project που αφορά την βιβλιοθήκη, όπως φαίνεται στην παρακάτω εικόνα. Εμφανίζεται το παράθυρο που φαίνεται στην παρακάτω εικόνα, στο οποίο επιλέγουμε το είδους της πηγής που επιθυμούμε (στην περίπτωσή μας επιλέγουμε Existing Projects into Workspace ): Σελίδα 81 από 94

82 Αφού πατήσουμε Next > Επιλέγουμε τον φάκελο που περιέχει το Eclipse Project. Σελίδα 82 από 94

83 Ενεργοποιούμε το πλαίσιο Copy projects into workspace μόνο εφόσον επιθυμούμε να αντιγράψουμε τα αρχεία του έργου στον «χώρο εργασίας» (workspace). Στην προκειμένη περίπτωση, η ενεργοποίηση του πλαισίου θα οδηγήσει στο να γίνει αντιγραφή από τον φάκελο \Android\Projects\ στον C:\Users\cst04026\workspace\. Αν δεν μας ενδιαφέρει να έχουμε τα αρχεία στον φάκελο του workspace, τότε δεν ενεργοποιούμε την παραπάνω επιλογή (αυτό δεν έχει κάποια επίπτωση στη λειτουργικότητα, είναι απλώς θέμα προτιμήσεων και οργάνωσης). Είναι σημαντικό ωστόσο και τα δύο projects που εισάγουμε (αυτό που μόλις περιγράφηκε και αυτό που περιγράφεται αμέσως μετά) να βρίσκονται στον ίδιο φάκελο (και μάλιστα στο ίδιο επίπεδο). εν κάνουμε ακόμα build: θα πρέπει πρώτα να εφαρμόσουμε την ίδια διαδικασία εισαγωγής (import) για το Eclipse Project που αφορά τον πηγαίο κώδικα της εφαρμογής NearMe!, όπως φαίνεται στην ακόλουθη εικόνα. Σελίδα 83 από 94

84 Τώρα είμαστε έτοιμοι να κάνουμε build. Πριν όμως κάνουμε build, επιβεβαιώνουμε για την ορθότητα των ρυθμίσεων των δύο έργων, όπως περιγράφεται στη συνέχεια (τα κάτωθι βήματα εκτελούνται και για τα δύο projects): 3. Ανοίγουμε τις ιδιότητες (Properties) του project, όπως φαίνεται στην παρακάτω εικόνα. Σελίδα 84 από 94

85 Στην καρτέλα Android βεβαιωνόμαστε ότι έχουμε επιλέξει ως Project Build Tag το Google APIs στην τελευταία του έκδοση. Επιπρόσθετα, για το project nearme, πρέπει να βλέπουμε ως Reference το project android-mapviewballoons. Σελίδα 85 από 94

86 Επιπρόσθετα, για το project android-mapviewballoons, πρέπει να βλέπουμε επιλεγμένη την επιλογή Is Library. Σελίδα 86 από 94

87 Στην καρτέλα Java Compiler βεβαιωνόμαστε ότι έχουμε επιλέξει ως Compiler Compliance Level την έκδοση 1.6. Σελίδα 87 από 94

88 Σελίδα 88 από 94

89 Εφόσον έχουμε ολοκληρώσει όλους τους παραπάνω ελέγχους, μπορούμε να προχωρήσουμε σε build. 4. Κάνουμε Clean και στα δυο projects. Η διαδικασία Clean φαίνεται στις παρακάτω εικόνες. Επιλέγουμε και τα δυο projects. Σελίδα 89 από 94

90 5. Κάνουμε Build και στα δύο projects σειριακά, με πρώτο το android-mapviewballoons. Η διαδικασία Build φαίνεται στην παρακάτω εικόνα. Σελίδα 90 από 94

91 Εφόσον η διαδικασία build πέτυχε χωρίς κάποιο λάθος, μπορούμε να τρέξουμε την εφαρμογή NearMe! είτε σε κάποια πραγματική συσκευή είτε σε κάποια εικονική συσκευή που δημιουργήσαμε στην προηγούμενη ενότητα, προκειμένου να το δούμε να λειτουργεί στην πράξη. 6. Φορτώνουμε την εφαρμογή σε συσκευή μέσω της επιλογής Run As Android Application όπως φαίνεται στην παρακάτω εικόνα. Σελίδα 91 από 94

92 Στη συνέχεια, επιλέγουμε την συσκευή που θέλουμε να εκτελέσουμε την εφαρμογή. Σε περίπτωση που θέλουμε να χρησιμοποιήσουμε φυσική συσκευή συνδεδεμένη με τον υπολογιστή, επιλέγουμε ως ακολούθως: Σελίδα 92 από 94

93 Στην περίπτωση που θέλουμε να χρησιμοποιήσουμε εικονική συσκευή, επιλέγουμε ως ακολούθως: Πλέον η εφαρμογή έχει φορτωθεί στην συσκευή και είναι έτοιμη προς χρήση. Σημείωση: Στο αρχείο {workspace}\nearme\res\layout\map.xml πρέπει να τοποθετηθεί το Google Maps API Key (v1) του τρέχοντος προγραμματιστή. Για περισσότερες πληροφορίες σχετικά με τη διαδικασία απόκτησης κλειδιού πρόσβασης API από την Google, ο ενδιαφερόμενος αναγνώστης παραπέμπεται στο [8]. Σελίδα 93 από 94

Ανάπτυξη Διεπαφών Χρήστη σε Λειτουργικά Συστήματα Κινητών Συσκευών

Ανάπτυξη Διεπαφών Χρήστη σε Λειτουργικά Συστήματα Κινητών Συσκευών Βιβλιογραφία: Ανάπτυξη Διεπαφών Χρήστη σε Λειτουργικά Συστήματα Κινητών Συσκευών Προγραμματισμός Android Ian Clifton. AndroidTM User Interface Design, Addison-Wesley, 2013 P. Deitel. H. Deitel, A. Deitel.

Διαβάστε περισσότερα

ANDROID Προγραμματισμός Εφαρμογών

ANDROID Προγραμματισμός Εφαρμογών ANDROID Προγραμματισμός Εφαρμογών Παναγιώτης Κρητιώτης ΑΜ 1607 Περιεχόμενα Εισαγωγή Βασικά Στοιχεία Χαρακτηριστικά Αρχιτεκτονική Εργαλεία Προγραμματισμού Eclipse IDE Android SDK - ADT Plugin Προσομοιωτής

Διαβάστε περισσότερα

Νεογεωγραφία και Χαρτογραφική Διαδικτυακή Απεικόνιση. Η χρήση Ελεύθερων Γεωγραφικών Δεδομένων και Λογισμικού Ανοιχτού Κώδικα σε Φορητές Συσκευές.

Νεογεωγραφία και Χαρτογραφική Διαδικτυακή Απεικόνιση. Η χρήση Ελεύθερων Γεωγραφικών Δεδομένων και Λογισμικού Ανοιχτού Κώδικα σε Φορητές Συσκευές. Νεογεωγραφία και Χαρτογραφική Διαδικτυακή Απεικόνιση. Η χρήση Ελεύθερων Γεωγραφικών Δεδομένων και Λογισμικού Ανοιχτού Κώδικα σε Φορητές Συσκευές. 13ο ΕΘΝΙΚΟ ΣΥΝΕΔΡΙΟ ΧΑΡΤΟΓΡΑΦΙΑΣ Η ΧΑΡΤΟΓΡΑΦΙΑ ΣΤΟ ΔΙΑΔΙΚΤΥΟ

Διαβάστε περισσότερα

Ανάπτυξη διαδικτυακής εφαρμογής σε περιβάλλον κινητών συσκευών με λειτουργικό σύστημα Android

Ανάπτυξη διαδικτυακής εφαρμογής σε περιβάλλον κινητών συσκευών με λειτουργικό σύστημα Android Ανάπτυξη διαδικτυακής εφαρμογής σε περιβάλλον κινητών συσκευών με λειτουργικό σύστημα Android Ιωάννης Γιαννόπουλος, ΑΜ: 0430 Γεώργιος Δούρος, ΑΜ: 0686 Επιβλέπων: Γεώργιος Ασημακόπουλος Σεπτέμβριος 2014

Διαβάστε περισσότερα

64.1% 18.8% 5.9% 5.2% 2.7%

64.1% 18.8% 5.9% 5.2% 2.7% Android (Google) 64.1% ios (Apple) 18.8% Symbian 5.9% BlackBerry (RIM) 5.2% Bada, Windows Phone 2.7% droid va lipse IDE σκευές που υποστηρίζουν droid, HTC handsets, msung, LG, Motorola, tables ww.android.com

Διαβάστε περισσότερα

economy Δρ. Πάνος Φιτσιλής, Καθηγητής ΤΕΙ Θεσσαλίας fitsilis@teilar.gr Πρόγραμμα Μεταπτυχιακών Σπουδών Διοίκηση και Διαχείριση Έργων

economy Δρ. Πάνος Φιτσιλής, Καθηγητής ΤΕΙ Θεσσαλίας fitsilis@teilar.gr Πρόγραμμα Μεταπτυχιακών Σπουδών Διοίκηση και Διαχείριση Έργων economy Δρ. Πάνος Φιτσιλής, Καθηγητής ΤΕΙ Θεσσαλίας fitsilis@teilar.gr 1 Διοίκηση και Διαχείριση Έργων Τι είναι τα apps H λέξη app είναι μια λέξη που έχει μπει στο λεξικό όλων μας Λογισμικό εφαρμογή Λειτουργεί

Διαβάστε περισσότερα

Digital Academy. Εισαγωγή στην ανάπτυξη Android Εφαρμογών

Digital Academy. Εισαγωγή στην ανάπτυξη Android Εφαρμογών Digital Academy Εισαγωγή στην ανάπτυξη Android Εφαρμογών Περιεχόμενα ΠΕΡΙΕΧΟΜΕΝΑ... 2 ΕΝΟΤΗΤΑ 1 ΠΡΩΤΗ ΓΝΩΡΙΜΙΑ ΜΕ ΤΟ ANDROID... 4 1.1 ΕΙΣΑΓΩΓΗ... 4 1.2 ΠΗΓΕΣ ΓΝΩΣΗΣ... 4 1.3 ΙΣΤΟΡΙΚΗ ΑΝΑΔΡΟΜΗ... 5 1.4

Διαβάστε περισσότερα

Python και Android. Νίκος Νοδαράκης. 17 Μαΐου 2010

Python και Android. Νίκος Νοδαράκης. 17 Μαΐου 2010 Python και Python και Νίκος Νοδαράκης 17 Μαΐου 2010 Python και Τι είναι το ; Περιγραφή του Ορισµός Το είναι µια στοίβα λογισµικού για ϕορητές συσκευές που περιλαµβάνει ένα λειτουργικό σύστηµα, middleware

Διαβάστε περισσότερα

Κατασκευή δικτυακής εφαρμογής στην αρχιτεκτονική ios iphone που υλοποιεί ένα παιχνίδι ερωτοαπαντήσεων

Κατασκευή δικτυακής εφαρμογής στην αρχιτεκτονική ios iphone που υλοποιεί ένα παιχνίδι ερωτοαπαντήσεων Πανεπιστήμιο Δυτικής Μακεδονίας Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Κατασκευή δικτυακής εφαρμογής στην αρχιτεκτονική ios iphone που υλοποιεί ένα παιχνίδι Παρτώνας Αλέξανδρος Επιβλέπων: Δρ.

Διαβάστε περισσότερα

Σύστημα Διαχείρισης, Ελέγχου και Παρακολούθησης Ασθενοφόρων και Περιστατικών

Σύστημα Διαχείρισης, Ελέγχου και Παρακολούθησης Ασθενοφόρων και Περιστατικών Σύστημα Διαχείρισης, Ελέγχου και Παρακολούθησης Ασθενοφόρων και Περιστατικών Η LINK Technologies Α.Ε. ιδρύθηκε το 2002 με στόχο να καταστεί πυρήνας καινοτομικών λύσεων Τηλεματικής αναβαθμίζοντας καθημερινά

Διαβάστε περισσότερα

Smartphones και πολυμέσα

Smartphones και πολυμέσα Smartphones και πολυμέσα Λογοθέτης Σωτήρης ΚΑΘΗΓΗΤΗΣ/ΣΥΜΒΟΥΛΟΣ: ΓΕΩΡΓΙΟΣ ΣΤΥΛΙΑΡΑΣ Θεσσαλονίκη, 1 Νοεμβρίου 2009 Περιεχόμενα Ορισμοί Smartphones - Πολυμέσα Ιστορική Αναδρομή Τελευταίας τεχνολογίας Smartphones

Διαβάστε περισσότερα

Εφαρμογές Υπολογιστών. Κεφάλαιο 4 Λογισμικό Συστήματος

Εφαρμογές Υπολογιστών. Κεφάλαιο 4 Λογισμικό Συστήματος Λογισμικό Συστήματος Λογισμικό 2 Λογισμικό Συστήματος Τα ειδικά εργαλεία χρησιμοποιούνται για την ανάπτυξη λογισμικού εφαρμογών και την εκτέλεση βοηθητικών εργασιών. Το λειτουργικό σύστημα (operating system)

Διαβάστε περισσότερα

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Δυναμική προσωποποιημένη ενημέρωση προσφορών Super Markets στη Θεσσαλονίκη

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Δυναμική προσωποποιημένη ενημέρωση προσφορών Super Markets στη Θεσσαλονίκη ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Δυναμική προσωποποιημένη ενημέρωση προσφορών Super Markets στη Θεσσαλονίκη Παπαδόπουλου Κυριάκου Αρ. Μητρώου: 093507 Επιβλέπων καθηγητής: Ηλιούδης Χρήστος Εισαγωγή - Σκοπός Εργασίας Καινοτόμες

Διαβάστε περισσότερα

Chania a place to visit

Chania a place to visit ΤΕΧΝΙΚΗ ΠΕΡΙΓΡΑΦΗ Εφαρμογή Δήμου Χανίων για Android και ios Chania a place to visit Η εφαρμογή για κινητά τηλέφωνα του Δήμου Χανίων θα αποτελεί μία ολοκληρωμένη υπηρεσία που θα παρέχει τη δυνατότητα στον

Διαβάστε περισσότερα

AΕΙ ΠΕΙΡΑΙΑ T.T. ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ T.E. ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ

AΕΙ ΠΕΙΡΑΙΑ T.T. ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ T.E. ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ AΕΙ ΠΕΙΡΑΙΑ T.T. ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ T.E. ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ Ανάπτυξη εφαρµογής Android µε χρήση NFC Κουσουρής Σπυρίδων Νικόλαος Εισηγητής:

Διαβάστε περισσότερα

Απαντήστε στις παρακάτω ερωτήσεις πολλαπλής επιλογής (μόνο μία ερώτηση είναι σωστή):

Απαντήστε στις παρακάτω ερωτήσεις πολλαπλής επιλογής (μόνο μία ερώτηση είναι σωστή): Απαντήστε στις παρακάτω ερωτήσεις πολλαπλής επιλογής (μόνο μία ερώτηση είναι σωστή): 1. Ο Παγκόσμιος Ιστός (world wide web): a. Ταυτίζεται με το Internet b. Είναι υπηρεσία διαχείρισης και πρόσβασης σε

Διαβάστε περισσότερα

Θέματα Ατομικής Διπλωματικής Εργασίας Ακαδημαϊκό Έτος 2017/2018. Γεωργία Καπιτσάκη (Επίκουρη Καθηγήτρια)

Θέματα Ατομικής Διπλωματικής Εργασίας Ακαδημαϊκό Έτος 2017/2018. Γεωργία Καπιτσάκη (Επίκουρη Καθηγήτρια) Θέματα Ατομικής Διπλωματικής Εργασίας Ακαδημαϊκό Έτος 2017/2018 Γεωργία Καπιτσάκη (Επίκουρη Καθηγήτρια) ΠΕΡΙΟΧΗ Α: ΕΦΑΡΜΟΓΕΣ ΜΕ ΑΙΣΘΗΤΗΡΕΣ ΓΙΑ ΕΠΙΓΝΩΣΗ ΣΥΓΚΕΙΜΕΝΟΥ Οι αισθητήρες μας δίνουν τη δυνατότητα

Διαβάστε περισσότερα

Θεσσαλονίκη Alert - Αναλυτική παρουσίαση εφαρμογής

Θεσσαλονίκη Alert - Αναλυτική παρουσίαση εφαρμογής Θεσσαλονίκη Alert - Αναλυτική παρουσίαση εφαρμογής Δεληγιαννίδης Θεόδωρος Περίληψη Η "Θεσσαλονίκη Alert" είναι μια εφαρμογή του τύπου crowdsourcing που αφορά το Δήμο Θεσσαλονίκης και τους πολίτες του.

Διαβάστε περισσότερα

ΠΡΟΛΟΓΟΣ. Σε ποιους απευθύνεται αυτό το βιβλίο... vi Διάρθρωση του βιβλίου... vi

ΠΡΟΛΟΓΟΣ. Σε ποιους απευθύνεται αυτό το βιβλίο... vi Διάρθρωση του βιβλίου... vi Πίνακας Περιεχομένων ΠΡΟΛΟΓΟΣ V Σε ποιους απευθύνεται αυτό το βιβλίο... vi Διάρθρωση του βιβλίου... vi 1η Ενότητα: Κινητός ιστός... vii 2η Ενότητα: Κινητές εφαρμογές στην πλατφόρμα Android... vii 3η Ενότητα:

Διαβάστε περισσότερα

Μηχανική Λογισμικού με Ανοιχτό Λογισμικό Δρ. Γεώργιος Κακαρόντζας Τμήμα Μηχανικών Πληροφορικής Τ.Ε. Α.Τ.Ε.Ι. Θεσσαλίας

Μηχανική Λογισμικού με Ανοιχτό Λογισμικό Δρ. Γεώργιος Κακαρόντζας Τμήμα Μηχανικών Πληροφορικής Τ.Ε. Α.Τ.Ε.Ι. Θεσσαλίας Μηχανική Λογισμικού με Ανοιχτό Λογισμικό Δρ. Γεώργιος Κακαρόντζας Τμήμα Μηχανικών Πληροφορικής Τ.Ε. Α.Τ.Ε.Ι. Θεσσαλίας 1 Ατζέντα Εισαγωγή Εργαλεία Ανοιχτού Λογισμικού για Μηχανικούς Λογισμικού Χρήση και

Διαβάστε περισσότερα

Αρχιτεκτονική Λογισμικού

Αρχιτεκτονική Λογισμικού Αρχιτεκτονική Λογισμικού περιεχόμενα παρουσίασης Τι είναι η αρχιτεκτονική λογισμικού Αρχιτεκτονική και απαιτήσεις Σενάρια ποιότητας Βήματα αρχιτεκτονικής σχεδίασης Αρχιτεκτονικά πρότυπα Διαστρωματωμένη

Διαβάστε περισσότερα

Λιόλιου Γεωργία. ιατµηµατικό Πρόγραµµα Μεταπτυχιακών Σπουδών στα Πληροφοριακά Συστήµατα

Λιόλιου Γεωργία. ιατµηµατικό Πρόγραµµα Μεταπτυχιακών Σπουδών στα Πληροφοριακά Συστήµατα ιατµηµατικό Πρόγραµµα Μεταπτυχιακών Σπουδών στα Πληροφοριακά Συστήµατα Λιόλιου Γεωργία ΕπιβλέπουσαΚαθηγήτρια: ΣατρατζέµηΜάγια, καθηγήτρια, τµ. ΕφαρµοσµένηςΠληροφορικής, ΠΑΜΑΚ Εισαγωγή Γενικά στοιχεία εφαρµογή

Διαβάστε περισσότερα

Διαχείριση Ειδοποιήσεων με Κινητές Συσκευές

Διαχείριση Ειδοποιήσεων με Κινητές Συσκευές Διαχείριση Ειδοποιήσεων με Κινητές Συσκευές Λαμπαδαρίδης Αντώνιος el04148@mail.ntua.gr Διπλωματική εργασία στο Εργαστήριο Συστημάτων Βάσεων Γνώσεων και Δεδομένων Επιβλέπων: Καθηγητής Τ. Σελλής Περίληψη

Διαβάστε περισσότερα

Ιστορική Αναδρομή Λειτουργικών Συστημάτων (ΛΣ) Εισαγωγή : ο πυρήνας (kernel) / ο φλοιός (shell) Β ΕΠΑΛ

Ιστορική Αναδρομή Λειτουργικών Συστημάτων (ΛΣ) Εισαγωγή : ο πυρήνας (kernel) / ο φλοιός (shell) Β ΕΠΑΛ Ιστορική Αναδρομή Λειτουργικών Συστημάτων (ΛΣ) Εισαγωγή : ο πυρήνας (kernel) / ο φλοιός (shell) Β ΕΠΑΛ http://leitourgika-systhmata-epal-b.ggia.info/ Σύγχρονο Λειτουργικό Σύστημα - ΛΣ Λειτουργικό Σύστημα:

Διαβάστε περισσότερα

Επικοινωνία Ανθρώπου- Υπολογιστή Σχεδίαση Αλληλεπίδρασης Ενότητα: 8 η

Επικοινωνία Ανθρώπου- Υπολογιστή Σχεδίαση Αλληλεπίδρασης Ενότητα: 8 η ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Επικοινωνία Ανθρώπου- Υπολογιστή Σχεδίαση Αλληλεπίδρασης Ενότητα: 8 η Δ.Πολίτης Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε

Διαβάστε περισσότερα

Πολυμέσα. παρέχουν ένα περιβάλλον πρόσβασης στα τμήματα, μέσω συνδέσεων με οποιονδήποτε τρόπο

Πολυμέσα. παρέχουν ένα περιβάλλον πρόσβασης στα τμήματα, μέσω συνδέσεων με οποιονδήποτε τρόπο Περιεχόμενα Ορισμοί Smartphone-Πολυμέσα Η εξέλιξη Τελευταίας τεχνολογίας Smartphones Χαρακτηριστικά των smartphones Λειτουργικά Συστήματα στα Smartphones Στάδια παραγωγής πολυμεσικής εφαρμογής Κατηγορίες

Διαβάστε περισσότερα

Διπλωματική Εργασία. Μουσικές Εφαρμογές σε Περιβάλλον Κινητών Συσκευών Android με Χαρακτηριστικά Εξατομίκευσης

Διπλωματική Εργασία. Μουσικές Εφαρμογές σε Περιβάλλον Κινητών Συσκευών Android με Χαρακτηριστικά Εξατομίκευσης ΠΜΣ Εφαρμοσμένης Πληροφορικής Πανεπιστήμιο Μακεδονίας Διπλωματική Εργασία Μουσικές Εφαρμογές σε Περιβάλλον Κινητών Συσκευών Android με Χαρακτηριστικά Εξατομίκευσης Ονοματεπώνυμο: Βλάχος Αθανάσιος Επιβλέπων

Διαβάστε περισσότερα

ΔΗΜΙΟΥΡΓΙΑ ΚΑΙ ΠΑΡΑΓΩΓΗ ΔΙΑΦΗΜΙΣΗΣ

ΔΗΜΙΟΥΡΓΙΑ ΚΑΙ ΠΑΡΑΓΩΓΗ ΔΙΑΦΗΜΙΣΗΣ ΔΗΜΙΟΥΡΓΙΑ ΚΑΙ ΠΑΡΑΓΩΓΗ ΔΙΑΦΗΜΙΣΗΣ Η διαφήμιση με μία μόνο λέξη χαρακτηρίζεται και ως «υπόσχεση», καθώς δίνει μια υπόσχεση στον υποψήφιο αγοραστή, για το προϊόν που διαφημίζει και αναφέρεται στην επίδραση

Διαβάστε περισσότερα

Λειτουργικά Συστήματα Ι. Καθηγήτρια Παπαδάκη Αναστασία

Λειτουργικά Συστήματα Ι. Καθηγήτρια Παπαδάκη Αναστασία Λειτουργικά Συστήματα Ι Καθηγήτρια Παπαδάκη Αναστασία 2013 1 Ηλεκτρονικός Υπολογιστής αποτελείται: 1. Από Υλικό Hardware (CPUs, RAM, Δίσκοι), & 2. Λογισμικό - Software Και μπορεί να εκτελέσει διάφορες

Διαβάστε περισσότερα

ΣΥΓΚΡΙΤΙΚΗ ΜΕΛΕΤΗ ΤΕΧΝΟΛΟΓΙΩΝ ΔΙΑΔΙΚΤΥΑΚΩΝ ΥΠΗΡΕΣΙΩΝ ΚΑΙ ΑΞΙΟΛΟΓΗΣΗ ΤΗΣ ΤΕΧΝΟΛΟΓΙΑΣ REST ΠΛΑΣΤΑΡΑΣ ΕΥΡΙΠΙΔΗΣ

ΣΥΓΚΡΙΤΙΚΗ ΜΕΛΕΤΗ ΤΕΧΝΟΛΟΓΙΩΝ ΔΙΑΔΙΚΤΥΑΚΩΝ ΥΠΗΡΕΣΙΩΝ ΚΑΙ ΑΞΙΟΛΟΓΗΣΗ ΤΗΣ ΤΕΧΝΟΛΟΓΙΑΣ REST ΠΛΑΣΤΑΡΑΣ ΕΥΡΙΠΙΔΗΣ ΣΥΓΚΡΙΤΙΚΗ ΜΕΛΕΤΗ ΤΕΧΝΟΛΟΓΙΩΝ ΔΙΑΔΙΚΤΥΑΚΩΝ ΥΠΗΡΕΣΙΩΝ ΚΑΙ ΑΞΙΟΛΟΓΗΣΗ ΤΗΣ ΤΕΧΝΟΛΟΓΙΑΣ REST ΠΛΑΣΤΑΡΑΣ ΕΥΡΙΠΙΔΗΣ ΘΕΣΣΑΛΟΝΙΚΗ, 2016 ΕΙΣΑΓΩΓΗ Μια διαδικτυακή υπηρεσία μπορεί να περιγραφεί απλά σαν μια οποιαδήποτε

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών 44 Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών Διδακτικοί στόχοι Σκοπός του κεφαλαίου είναι οι μαθητές να κατανοήσουν τα βήματα που ακολουθούνται κατά την ανάπτυξη μιας εφαρμογής.

Διαβάστε περισσότερα

Εισαγωγικές έννοιες. Ιωάννης Γ. Τσούλος 2014

Εισαγωγικές έννοιες. Ιωάννης Γ. Τσούλος 2014 Εισαγωγικές έννοιες Ιωάννης Γ. Τσούλος 2014 Διάγραμμα παρουσιάσεως 1. Κατηγορίες κινητών τηλεφώνων 2. Κατηγορίες έξυπνων κινητών τηλεφώνων 3. Προγραμματισμός κινητών συσκευών 4. Ξεκίνημα με το Eclipse

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 6. Περιβάλλοντα Ανάπτυξης Εφαρμογών. ΚΕΦΑΛΑΙΟ 6 Περιβάλλοντα Ανάπτυξης Εφαρμογών. Α Γενικού Λυκείου

ΚΕΦΑΛΑΙΟ 6. Περιβάλλοντα Ανάπτυξης Εφαρμογών. ΚΕΦΑΛΑΙΟ 6 Περιβάλλοντα Ανάπτυξης Εφαρμογών. Α Γενικού Λυκείου 49 Διδακτικές ενότητες 6.1 Γλώσσες και εργαλεία προγραμματισμού 6.2 Σύγχρονα προγραμματιστικά περιβάλλοντα Διδακτικοί στόχοι Σκοπός του κεφαλαίου είναι οι μαθητές να κατανοήσουν την ανάγκη ύπαρξης τόσο

Διαβάστε περισσότερα

Στρατηγικό Σχέδιο Για τη Βιώσιµη Ανάπτυξη της Θεσσαλονίκης (ΣΣΒΑΘ) 1 η Ενδιάµεση Έκθεση 3. ηµιουργία και Λειτουργία Web site

Στρατηγικό Σχέδιο Για τη Βιώσιµη Ανάπτυξη της Θεσσαλονίκης (ΣΣΒΑΘ) 1 η Ενδιάµεση Έκθεση 3. ηµιουργία και Λειτουργία Web site Στρατηγικό Σχέδιο Για τη Βιώσιµη Ανάπτυξη της Θεσσαλονίκης (ΣΣΒΑΘ) 1 η Ενδιάµεση Έκθεση 3. ηµιουργία και Λειτουργία Web site Θεσσαλονίκη 6/12/2001 Βασίλης Φούρκας, ΕΜΧΑ Η δηµιουργία και λειτουργία ενός

Διαβάστε περισσότερα

Ανάπτυξη εφαρµογών για κινητές συσκευές: Υποστήριξη φοιτητών στο τµήµα Πληροφορικής και Τηλεπικοινωνιών µε χρήση mobile web τεχνολογιών.

Ανάπτυξη εφαρµογών για κινητές συσκευές: Υποστήριξη φοιτητών στο τµήµα Πληροφορικής και Τηλεπικοινωνιών µε χρήση mobile web τεχνολογιών. ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟ ΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Ανάπτυξη εφαρµογών για κινητές συσκευές: Υποστήριξη φοιτητών στο τµήµα Πληροφορικής

Διαβάστε περισσότερα

ΕΝΙΑΙΟ ΠΛΑΙΣΙΟ ΠΡΟΓΡΑΜΜΑΤΟΣ ΣΠΟΥΔΩΝ

ΕΝΙΑΙΟ ΠΛΑΙΣΙΟ ΠΡΟΓΡΑΜΜΑΤΟΣ ΣΠΟΥΔΩΝ ΥΠΟΥΡΓΕΙΟ ΕΘΝΙΚΗΣ ΠΑΙΔΕΙΑΣ ΚΑΙ ΘΡΗΣΚΕΥΜΑΤΩΝ ΠΑΙΔΑΓΩΓΙΚΟ ΙΝΣΤΙΤΟΥΤΟ ΕΝΙΑΙΟ ΠΛΑΙΣΙΟ ΠΡΟΓΡΑΜΜΑΤΟΣ ΣΠΟΥΔΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΙΣΧΥΕΙ ΚΑΤΑ ΤΟ ΜΕΡΟΣ ΠΟΥ ΑΦΟΡΑ ΤΟ ΛΥΚΕΙΟ ΓΙΑ ΤΗΝ ΥΠΟΧΡΕΩΤΙΚΗ ΕΚΠΑΙΔΕΥΣΗ ΙΣΧΥΟΥΝ ΤΟ ΔΕΠΠΣ

Διαβάστε περισσότερα

Internet Business Hellas

Internet Business Hellas Internet Business Hellas Περιεχόμενα Εισαγωγή email marketing IBNEWSLETTER Χαρακτηριστικά Πλεονεκτήματα Επικοινωνία Εισαγωγή email marketing «Το μάρκετινγκ μέσω ηλεκτρονικού ταχυδρομείου συνίσταται στην

Διαβάστε περισσότερα

ΕΡΓΟ: ΔΙΕΥΚΡΙΝΙΣΕΙΣ ΥΣΕ-ΠΛΟ-2. Ημερομηνία δημοσίευσης διευκρινίσεων: 19 Δεκεμβρίου 2011

ΕΡΓΟ: ΔΙΕΥΚΡΙΝΙΣΕΙΣ ΥΣΕ-ΠΛΟ-2. Ημερομηνία δημοσίευσης διευκρινίσεων: 19 Δεκεμβρίου 2011 ΕΡΓΟ: «ΠΟΛΙΤΙΣΤΙΚΟΣ ΠΛΟΗΓΟΣ ΤΗΣ ΑΘΗΝΑΣ ΣΕ ΣΥΣΤΗΜΑΤΑ GPS ΚΑΙ ΚΙΝΗΤΑ ΤΗΛΕΦΩΝΑ» ΔΙΕΥΚΡΙΝΙΣΕΙΣ ΥΣΕ-ΠΛΟ-2 Ημερομηνία δημοσίευσης διευκρινίσεων: 19 Δεκεμβρίου 2011 Σύμφωνα με το άρθρο 9.3. της προκήρυξης του

Διαβάστε περισσότερα

Σύντομος οδηγός χρήσης Vodafone Mobile Wi-Fi R209-Z

Σύντομος οδηγός χρήσης Vodafone Mobile Wi-Fi R209-Z Σύντομος οδηγός χρήσης Vodafone Mobile Wi-Fi R209-Z Καλώς ήρθατε στον κόσμο των κινητών επικοινωνιών 1 Καλώς ήρθατε 2 Επισκόπηση συσκευής 3 Γρήγορο ξεκίνημα 5 Εφαρμογή Mobile Wi-Fi Web 6 Επισκόπηση εφαρμογής

Διαβάστε περισσότερα

Αντικειμενοστρεφής Προγραμματισμός

Αντικειμενοστρεφής Προγραμματισμός ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Αντικειμενοστρεφής Προγραμματισμός Ενότητα 1: Εισαγωγή Γρηγόρης Τσουμάκας, Επικ. Καθηγητής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται

Διαβάστε περισσότερα

Εισαγωγή στις Αρχές της Επιστήμης των ΗΥ

Εισαγωγή στις Αρχές της Επιστήμης των ΗΥ Εισαγωγή στις Αρχές της Επιστήμης των ΗΥ 2.3.1.1. Παπαγιάννη Νάσια Ηλεκτρολόγος Μηχανικός και Μηχανικός Υπολογιστών ΕΜΠ 1 περιλαμβάνει: Η έννοια του προγράμματος Επίλυση προβλήματος 1. Ακριβή προσδιορισμό

Διαβάστε περισσότερα

Σύντομος οδηγός χρήσης Vodafone Mobile Wi-Fi R207

Σύντομος οδηγός χρήσης Vodafone Mobile Wi-Fi R207 Σύντομος οδηγός χρήσης Vodafone Mobile Wi-Fi R207 Καλώς ήρθατε στον κόσμο των κινητών επικοινωνιών 1 Καλώς ήρθατε 2 Επισκόπηση συσκευής 3 Γρήγορο ξεκίνημα 5 Εφαρμογή Mobile Wi-Fi Web 6 Επισκόπηση εφαρμογής

Διαβάστε περισσότερα

Λειτουργικά. Τεχνολογικό Εκπαιδευτικό Ίδρυμα Δυτικής Μακεδονίας Σιώζιος Κων/νος - Πληροφορική Ι

Λειτουργικά. Τεχνολογικό Εκπαιδευτικό Ίδρυμα Δυτικής Μακεδονίας Σιώζιος Κων/νος - Πληροφορική Ι Λειτουργικά Συστήματα 1 Λογισμικό του Υπολογιστή Για να λειτουργήσει ένας Η/Υ εκτός από το υλικό του, είναι απαραίτητο και το λογισμικό Το σύνολο των προγραμμάτων που συντονίζουν τις λειτουργίες του υλικού

Διαβάστε περισσότερα

Σύντομος οδηγός χρήσης Vodafone Mobile Wi-Fi R216-Z

Σύντομος οδηγός χρήσης Vodafone Mobile Wi-Fi R216-Z Σύντομος οδηγός χρήσης Vodafone Mobile Wi-Fi R216-Z Καλώς ήρθατε στον κόσμο των κινητών επικοινωνιών 1 Καλώς ήρθατε 2 Επισκόπηση συσκευής 3 Γρήγορο ξεκίνημα 5 Εφαρμογή Mobile Wi-Fi Web 6 Επισκόπηση εφαρμογής

Διαβάστε περισσότερα

Σχεδιαστικά Προγράμματα Επίπλου

Σχεδιαστικά Προγράμματα Επίπλου Σχεδιαστικά Προγράμματα Επίπλου Καθηγήτρια ΦΕΡΦΥΡΗ ΣΩΤΗΡΙΑ Τμήμα ΣΧΕΔΙΑΣΜΟΥ & ΤΕΧΝΟΛΟΓΙΑΣ ΞΥΛΟΥ - ΕΠΙΠΛΟΥ Σχεδιαστικά Προγράμματα Επίπλου Η σχεδίαση με τον παραδοσιακό τρόπο απαιτεί αυξημένο χρόνο, ενώ

Διαβάστε περισσότερα

Κοιτάζοντας Πιο Λεπτομερώς. Ανδρεάκης Σωτήρης Καραμολέγκος Χρήστος Καλαματιανός Βασίλης

Κοιτάζοντας Πιο Λεπτομερώς. Ανδρεάκης Σωτήρης Καραμολέγκος Χρήστος Καλαματιανός Βασίλης Κοιτάζοντας Πιο Λεπτομερώς Ανδρεάκης Σωτήρης Καραμολέγκος Χρήστος Καλαματιανός Βασίλης Στην έρευνα που κάναμε ασχοληθήκαμε με την λεπτομερή λειτουργία των κινητών τηλεφώνων και πως αυτά μπορούν να επηρεάσουν

Διαβάστε περισσότερα

Εισαγωγή 6. Tα πολλά πρόσωπα των απειλών για το PC 8. Οι βασικές ρυθμίσεις ασφαλείας στα Windows 18. Προστασία από το Malware με το Avast Antivirus 34

Εισαγωγή 6. Tα πολλά πρόσωπα των απειλών για το PC 8. Οι βασικές ρυθμίσεις ασφαλείας στα Windows 18. Προστασία από το Malware με το Avast Antivirus 34 περιεχόμενα Εισαγωγή 6 Tα πολλά πρόσωπα των απειλών για το PC 8 Οι βασικές ρυθμίσεις ασφαλείας στα Windows 18 Προστασία από το Malware με το Avast Antivirus 34 Γονικός έλεγχος σε PC και tablet 44 Παρακολούθηση

Διαβάστε περισσότερα

Ολοκληρωμένο σύστημα διαχείρισης παρουσιών στο Τ.Ε.Ι. Σερρών

Ολοκληρωμένο σύστημα διαχείρισης παρουσιών στο Τ.Ε.Ι. Σερρών Παρουσίαση πτυχιακής εργασίας Ολοκληρωμένο σύστημα διαχείρισης παρουσιών στο Τ.Ε.Ι. Σερρών Επιβλέπων Καθηγητής: Αθανάσιος Πανταζόπουλος Φοιτητής: Στράτος Παντατζόγλου Περιγραφή Σκοπός της πτυχιακής εργασίας

Διαβάστε περισσότερα

12/5/18. συστημάτων. Το λογισµικό συστηµάτων. Κεφάλαιο 5

12/5/18. συστημάτων. Το λογισµικό συστηµάτων. Κεφάλαιο 5 A. EVANS, K. MARTIN, M. A. POATSY Εισαγωγή στην πληροφορική Θεωρία και πράξη 2 η έκδοση Κεφάλαιο 5 Λογισμικό συστημάτων: Το λειτουργικό σύστημα, τα βοηθητικά προγράμματα και η διαχείριση αρχείων Τα βασικά

Διαβάστε περισσότερα

Τεχνική υποστήριξη λογισμικού HP

Τεχνική υποστήριξη λογισμικού HP Τεχνική υποστήριξη λογισμικού HP Τεχνολογικές υπηρεσίες HP βάσει συμβολαίου Τεχνικά δεδομένα Η τεχνική υποστήριξη λογισμικού HP παρέχει ολοκληρωμένες υπηρεσίες απομακρυσμένης υποστήριξης για προϊόντα λογισμικού

Διαβάστε περισσότερα

ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ 1 ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΥΛΟΠΟΙΗΣΗ ΑNDROID ΕΦΑΡΜΟΓΗΣ ΑΠΟΣΤΟΛΗΣ ΣΥΝΤΟΜΩΝ ΜΗΝΥΜΑΤΩΝ ΜΕΣΩ ΤΗΣ OMNIVOICE ΤΣΙΑΛΟΣ ΔΗΜΗΤΡΙΟΣ Α.Μ.: 9883 ΕΠΙΒΛΕΠΩΝ ΚΑΘΗΓΗΤΗΣ: Ράπτης Βασίλειος 2 ΕΥΧΑΡΙΣΤΙΕΣ

Διαβάστε περισσότερα

Όλες οι υπηρεσίες είναι διαθέσιμες μέσω διαδικτύου.

Όλες οι υπηρεσίες είναι διαθέσιμες μέσω διαδικτύου. ΚΕΦΑΛΑΙΟ 13 Όλες οι υπηρεσίες είναι διαθέσιμες μέσω διαδικτύου. Οι υπηρεσίες νέφους παρέχονται με τέτοιο τρόπο ώστε ο τελικός χρήστης δεν μπορεί να διακρίνει τεχνικές λεπτομέρειες. Η χρηστικότητα, η διαθεσιμότητα

Διαβάστε περισσότερα

Κεφάλαιο 13: : Εφαρμογές νέφους. Καραμαούνας Π. 1

Κεφάλαιο 13: : Εφαρμογές νέφους. Καραμαούνας Π. 1 Κεφάλαιο 13: : Εφαρμογές νέφους Καραμαούνας Π. 1 13.1 Eισαγωγή στις εφαρμογές νέφους Βασικά χαρακτηριστικά: Εξυπηρέτηση κατ απαίτηση: άμεσα και χωρίς καθυστέρηση Ευρεία πρόσβαση στο δίκτυο: προσβάσιμες

Διαβάστε περισσότερα

Π Τ Υ Χ Ι Α Κ Η Ε Ρ Γ Α Σ Ι Α

Π Τ Υ Χ Ι Α Κ Η Ε Ρ Γ Α Σ Ι Α ΑΝΩΤΑΤΟ ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΠΕΙΡΑΙΑ ΤΜΗΜΑ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΤΟΜΕΑΣ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ Η/Υ, ΠΛΗΡΟΦΟΡΙΚΗΣ & ΔΙΚΤΥΩΝ Εργ. Τεχνολογίας Λογισμικού & Υπηρεσιών S 2 E Lab Π Τ Υ Χ Ι

Διαβάστε περισσότερα

Κεφάλαιο 4: Λογισμικό Συστήματος

Κεφάλαιο 4: Λογισμικό Συστήματος Κεφάλαιο 4: Λογισμικό Συστήματος Ερωτήσεις 1. Να αναφέρετε συνοπτικά τις κατηγορίες στις οποίες διακρίνεται το λογισμικό συστήματος. Σε ποια ευρύτερη κατηγορία εντάσσεται αυτό; Το λογισμικό συστήματος

Διαβάστε περισσότερα

Σχεδιάζοντας Εφαρμογές για το Διαδίκτυο

Σχεδιάζοντας Εφαρμογές για το Διαδίκτυο FrontPage 2003 Πρακτικός Οδηγός Χρήσης Το FrontPage είναι ένα πρόγραμμα δημιουργίας ιστοσελίδων και δικτυακών τόπων που επιτρέπει το σχεδιασμό ιστοσελίδων μέσα από γραφικό περιβάλλον αλλά και την ταυτόχρονη

Διαβάστε περισσότερα

Cloud Computing with Google and Microsoft. Despoina Trikomitou Andreas Diavastos Class: EPL425

Cloud Computing with Google and Microsoft. Despoina Trikomitou Andreas Diavastos Class: EPL425 Cloud Computing with Google and Microsoft Despoina Trikomitou Andreas Diavastos Class: EPL425 Σχεδιάγραμμα Εισαγωγή Τεχνολογίες Cloud Computing Περιγραφή Εργασίας Επιτεύγματα Εργασίας Συμπεράσματα Cloud

Διαβάστε περισσότερα

Περίληψη ιπλωµατικής Εργασίας

Περίληψη ιπλωµατικής Εργασίας Περίληψη ιπλωµατικής Εργασίας Θέµα: Πρότυπη Εφαρµογή ιαλειτουργικότητας για Φορητές Συσκευές Όνοµα: Κωνσταντίνος Χρηστίδης Επιβλέπων: Ιωάννης Βασιλείου Συν-επιβλέπων: Σπύρος Αθανασίου 1. Αντικείµενο Αντικείµενο

Διαβάστε περισσότερα

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ Εξαγωγή γεωγραφικής πληροφορίας από δεδομένα παρεχόμενα από χρήστες του

Διαβάστε περισσότερα

Βελτιωμένη Εφαρμογή. Νέες δυνατότητες. Νέα Ιστοσελίδα

Βελτιωμένη Εφαρμογή. Νέες δυνατότητες. Νέα Ιστοσελίδα Βελτιωμένη Εφαρμογή Νέες δυνατότητες Νέα Ιστοσελίδα ΑΝΩΤΑΤΟ ΣΥΜΒΟΥΛΙΟ ΕΠΙΛΟΓΗΣ ΠΡΟΣΩΠΙΚΟΥ WWW.ASEP.GR 1 ΦΟΡΕΙΣ Α.Σ.Ε.Π. ΥΠΟΨΗΦΙΟΙ ΑΝΩΤΑΤΟ ΣΥΜΒΟΥΛΙΟ ΕΠΙΛΟΓΗΣ ΠΡΟΣΩΠΙΚΟΥ WWW.ASEP.GR 2 Φάση Α: Α: Μελέτη Εφαρμογής

Διαβάστε περισσότερα

Διεθνής έρευνα για την εξάπλωση των Smartphones και Tablets

Διεθνής έρευνα για την εξάπλωση των Smartphones και Tablets Διαγραφή από τη λίστα Σε αυτό το τεύχος: Φεβρουάριος 2014 Mobile e-commerce από την Altec Software Mobile e-commerce από την Altec Software Διεθνής έρευνα για την εξάπλωση των Smartphones και Tablets Ετήσια

Διαβάστε περισσότερα

Περιεχόμενα. Τεχνικό εγχειρίδιο χρήσης IBNEWSLETTER

Περιεχόμενα. Τεχνικό εγχειρίδιο χρήσης IBNEWSLETTER Περιεχόμενα ΣΤΟΙΧΕΙΑ ΕΠΙΚΟΙΝΩΝΙΑΣ... 2 Τμήμα Υποστήριξης (Help Desk and Client Support)... 2 ΕΙΣΑΓΩΓΗ... 3 Εισαγωγή Email marketing... 3 Σχετικά με το IBNEWSLETTER... 3 Μεθοδολογία... 4 Χαρακτηριστικά...

Διαβάστε περισσότερα

Speed-0 WMP: Web and Mobile Platform Software Requirements Specification

Speed-0 WMP: Web and Mobile Platform Software Requirements Specification Speed-0 Web and Mobile Platform Speed-0 WMP: Web and Mobile Platform Software Requirements Specification Version Revision History Date Version Description People 5/4/2012 Αρχικές Προδιαγραφές

Διαβάστε περισσότερα

Οδηγός ρυθμίσεων Wi-Fi

Οδηγός ρυθμίσεων Wi-Fi Οδηγός ρυθμίσεων Wi-Fi Συνδέσεις Wi-Fi με τον Εκτυπωτή Σύνδεση με έναν υπολογιστή μέσω δρομολογητή Wi-Fi Σύνδεση με ένα υπολογιστή απευθείας Σύνδεση με μια έξυπνη συσκευή μέσω δρομολογητή Wi-Fi Σύνδεση

Διαβάστε περισσότερα

Ενότητα 2. Πηγές Λογισμικού. Πληροφοριακά Συστήματα Διοίκησης ΙI Νίκος Καρακαπιλίδης 2-1

Ενότητα 2. Πηγές Λογισμικού. Πληροφοριακά Συστήματα Διοίκησης ΙI Νίκος Καρακαπιλίδης 2-1 Ενότητα 2 Πηγές Λογισμικού Πληροφοριακά Συστήματα Διοίκησης ΙI Νίκος Καρακαπιλίδης 2-1 Μαθησιακοί στόχοι Εξοικείωση με εναλλακτικές πηγές λογισμικού Κατανόηση του τρόπου αξιολόγησης έτοιμου λογισμικού

Διαβάστε περισσότερα

Αναζήτηση στον Ιστό. Πληκτρολόγηση του URL: στο πλαίσιο αναζήτησης του Mozilla Firefox. Enter ή κλικ στο Αναζήτηση

Αναζήτηση στον Ιστό. Πληκτρολόγηση του URL:  στο πλαίσιο αναζήτησης του Mozilla Firefox. Enter ή κλικ στο Αναζήτηση Αναζήτηση στον Ιστό Χρήση μιας μηχανής αναζήτησης Επιλογή συγκεκριμένης μηχανής αναζήτησης Είναι συχνό το φαινόμενο να θέλει ο χρήστης να εντοπίσει πληροφορίες στο διαδίκτυο και να μην ξέρει που να κοιτάξει.

Διαβάστε περισσότερα

Εισαγωγή στην εφαρμογή Βασική Σελίδα (Activity) Αναζήτηση Πελάτη... 6 Προβολή Πελάτη... 7 Επεξεργασία Πελάτη... 10

Εισαγωγή στην εφαρμογή Βασική Σελίδα (Activity) Αναζήτηση Πελάτη... 6 Προβολή Πελάτη... 7 Επεξεργασία Πελάτη... 10 Περιεχόμενα Εισαγωγή στην εφαρμογή... 2 Βασική Σελίδα (Activity)... 3 Ρυθμίσεις... 3 Πελάτες... 6 Αναζήτηση Πελάτη... 6 Προβολή Πελάτη... 7 Επεξεργασία Πελάτη... 10 Αποθήκη... 11 Αναζήτηση προϊόντος...

Διαβάστε περισσότερα

Πληροφορική 2. Τεχνολογία Λογισμικού

Πληροφορική 2. Τεχνολογία Λογισμικού Πληροφορική 2 Τεχνολογία Λογισμικού 1 2 Κρίση Λογισμικού (1968) Στην δεκαετία του 1970 παρατηρήθηκαν μαζικά: Μεγάλες καθυστερήσεις στην ολοκλήρωση κατασκευής λογισμικών Μεγαλύτερα κόστη ανάπτυξης λογισμικού

Διαβάστε περισσότερα

ΓΡΑΦΕΙΟ ΤΗΛΕΔΙΑΣΚΕΨΗΣ ΚΑΙ ΠΟΛΥΜΕΣΩΝ

ΓΡΑΦΕΙΟ ΤΗΛΕΔΙΑΣΚΕΨΗΣ ΚΑΙ ΠΟΛΥΜΕΣΩΝ ΓΡΑΦΕΙΟ ΤΗΛΕΔΙΑΣΚΕΨΗΣ ΚΑΙ ΠΟΛΥΜΕΣΩΝ ΤΟΜΕΑΣ ΔΙΚΤΥΩΝ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΥΠΗΡΕΣΙΑ ΠΛΗΡΟΦΟΡΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΥΠΗΡΕΣΙΑ ΤΗΛΕΔΙΑΣΚΕΨΕΩΝ epresence Οδηγός συμμετοχής σε τηλεδιάσκεψη Τελευταία ημερομηνία αναθεώρησης:

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 10. Υπηρεσίες και εφαρμογές Διαδικτύου. ΚΕΦΑΛΑΙΟ 10 Υπηρεσίες και εφαρμογές Διαδικτύου. Α Γενικού Λυκείου

ΚΕΦΑΛΑΙΟ 10. Υπηρεσίες και εφαρμογές Διαδικτύου. ΚΕΦΑΛΑΙΟ 10 Υπηρεσίες και εφαρμογές Διαδικτύου. Α Γενικού Λυκείου Α Γενικού Λυκείου 87 Διδακτικές ενότητες 10.1 Υπηρεσίες Διαδικτύου 10.2 Ο παγκόσμιος ιστός, υπηρεσίες και εφαρμογές Διαδικτύου Διδακτικοί στόχοι Σκοπός του κεφαλαίου είναι οι μαθητές να μπορούν να διακρίνουν

Διαβάστε περισσότερα

Τμήμα Πληροφορικής & Επικοινωνιών ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ. Εφαρμογή για το λειτουργικό σύστημα Android

Τμήμα Πληροφορικής & Επικοινωνιών ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ. Εφαρμογή για το λειτουργικό σύστημα Android ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ Τμήμα Πληροφορικής & Επικοινωνιών Τομέας Αρχιτεκτονικής Υπολογιστών & Βιομηχανικών Εφαρμογών ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Εφαρμογή για το λειτουργικό σύστημα Android Σπουδαστές: Γεωργίου

Διαβάστε περισσότερα

Γεωπροσδιορισμός σε κινητές συσκευές και αξιοποίησή τους (Geolocation) ΓΤΠ61 Κοντάκης Σπυριδάκης

Γεωπροσδιορισμός σε κινητές συσκευές και αξιοποίησή τους (Geolocation) ΓΤΠ61 Κοντάκης Σπυριδάκης Γεωπροσδιορισμός σε κινητές συσκευές και αξιοποίησή τους (Geolocation) ΓΤΠ61 Κοντάκης Σπυριδάκης 2 Geolocation Γεωπροσδιορισμός ή γεωεντοπισμος (Geolocation) είναι ο γεωγραφικός προσδιορισμός ενός αντικειμένου

Διαβάστε περισσότερα

Σαχπατζίδης Αβραάμ Καθηγητής Πληροφορικής Π.Ε 20

Σαχπατζίδης Αβραάμ Καθηγητής Πληροφορικής Π.Ε 20 Σαχπατζίδης Αβραάμ Καθηγητής Πληροφορικής Π.Ε 20 Master of Arts (M.A) in "Gender, New Forms of Education, New Forms of Employment and New Technologies in the Information Age". Top???????????? μ?????????????

Διαβάστε περισσότερα

16PROC

16PROC ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΝΟΜΟΣ ΗΡΑΚΛΕΙΟΥ ΔΗΜΟΣ ΜΑΛΕΒΙΖΙΟΥ Tμήμα ΤΠΕ & Διαφάνειας Πληροφορίες : Μαυροκυουκουλάκη Ελένη ΠΡΟΣ: ΑΔΑΜ: Γάζι, 03/10/2016 Αρ. Πρωτ. : 17891 ERGOMEC PRIVATE COMPANY ERGOMEC P.C. Σιδηρόκαστρο

Διαβάστε περισσότερα

Δομή παρουσίασης. Σχεδιασμός και υλοποίηση συστήματος παρακολούθησης και ελέγχου πωλητών και δημιουργία εφαρμογής σε έξυπνο κινητό

Δομή παρουσίασης. Σχεδιασμός και υλοποίηση συστήματος παρακολούθησης και ελέγχου πωλητών και δημιουργία εφαρμογής σε έξυπνο κινητό ΣχεδιασμοΣ και υλοποιηση συστηματοσ παρακολουθησησ και ελεγχου πωλητων και δημιουργια εφαρμογησ σε εξυπνο κινητο Επιβλέπων: Δρ. Μηνάς Δασυγένης Καψάλης Αθανάσιος 16 Οκτωβρίου 2013 Δομή παρουσίασης 1. Εισαγωγή

Διαβάστε περισσότερα

Αξιοποίηση της Τεχνολογίας των Εικονικών Μηχανών στην Επαγγελματική Εκπαίδευση και την Κατάρτιση Πληροφορικής. Βασιλάκης Βασίλειος Τζανάκης Δημήτριος

Αξιοποίηση της Τεχνολογίας των Εικονικών Μηχανών στην Επαγγελματική Εκπαίδευση και την Κατάρτιση Πληροφορικής. Βασιλάκης Βασίλειος Τζανάκης Δημήτριος Αξιοποίηση της Τεχνολογίας των Εικονικών Μηχανών στην Επαγγελματική Εκπαίδευση και την Κατάρτιση Πληροφορικής Βασιλάκης Βασίλειος Τζανάκης Δημήτριος Εισαγωγή Σκοπός Να παρουσιαστούν προτάσεις αξιοποίησης

Διαβάστε περισσότερα

ΨΗΦΙΑΚΗ ΑΛΛΗΛΕΓΓΥΗ ΟΔΗΓΟΣ

ΨΗΦΙΑΚΗ ΑΛΛΗΛΕΓΓΥΗ ΟΔΗΓΟΣ ΨΗΦΙΑΚΗ ΑΛΛΗΛΕΓΓΥΗ ΟΔΗΓΟΣ Πίνακας Περιεχομένων Ενεργοποίηση και Αρχικοποίηση Συσκευής... 4 1 Περιεχόμενα συσκευασίας ipad... 5 2 Εξοικείωση με την συσκευή... 6 3 Αρχικοποίηση και ρυθμίσεις ipad... 7 4

Διαβάστε περισσότερα

ΠΑΡΑΡΤΗΜΑ ΓΡΕΒΕΝΩΝ ΤΜΗΜΑ ΕΠΙΧΕΙΡΗΣΙΑΚΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΠΑΡΑΡΤΗΜΑ ΓΡΕΒΕΝΩΝ ΤΜΗΜΑ ΕΠΙΧΕΙΡΗΣΙΑΚΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΡΑΡΤΗΜΑ ΓΡΕΒΕΝΩΝ ΤΜΗΜΑ ΕΠΙΧΕΙΡΗΣΙΑΚΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Θέμα : ΥΛΟΠΟΙΗΣΗ ΞΕΝΟΓΛΩΣΣΗΣ ΕΚΠΑΙΔΕΥΤΙΚΗΣ ΕΦΑΡΜΟΓΗΣ ΣΕ ΠΛΑΤΦΟΡΜΑ ANDROID Όνοματεπώνυμο : Στέκας Ιγνάτιος Επιβλέπων : Σωτήριος Κοντογιάννης Ημερομηνία

Διαβάστε περισσότερα

Λειτουργικά Συστήματα Η/Υ

Λειτουργικά Συστήματα Η/Υ Λειτουργικά Συστήματα Η/Υ Κεφάλαιο 4 «Αρχιτεκτονικές ΛΣ» Διδάσκων: Δ Λιαροκάπης Διαφάνειες: Π. Χατζηδούκας 1 1. Μονολιθικά συστήματα Αρχιτεκτονικές ΛΣ 2. Στρωματοποιημένη αρχιτεκτονική 3. Αρχιτεκτονική

Διαβάστε περισσότερα

Οδηγός Χρήσης Εφαρμογής EG Mobile

Οδηγός Χρήσης Εφαρμογής EG Mobile Οδηγός Χρήσης Εφαρμογής EG Mobile Περιεχόμενα Αρχική Οθόνη... 2 Προτιμήσεις Χρήστη... 4 Επιλογή Ενότητας... 6 Λίστα Αντικειμένων... 8 Πληροφορίες Αντικειμένου... 10 Αντικείμενο στο Χάρτη... 12 Χάρτης...

Διαβάστε περισσότερα

Ημερομηνία Παράδοσης: 4/4/2013

Ημερομηνία Παράδοσης: 4/4/2013 Δράση 9.14 / Υπηρεσία εντοπισμού λογοκλοπής Κυρίως Παραδοτέο / Σχεδιασμός και ανάπτυξη λογισμικού (λογοκλοπής) και βάσης δεδομένων (αποθετηρίου) Επιμέρους Παραδοτέο 9.14.1.4 / Πληροφοριακό σύστημα υπηρεσίας

Διαβάστε περισσότερα

Συγκεντρωτικό Παράρτημα

Συγκεντρωτικό Παράρτημα Αρχική σελίδα -> Βρείτε το. Δεν λειτουργούν τα links Αποπροσανατολισμός, δυσλειτουργία δικτυακού τόπου Να διορθωθούν τα links Έγινε έλεγχος και διόρθωση όλων των συνδέσμων Ενότητα βιβλιοθήκη: η διαδρομή

Διαβάστε περισσότερα

Αρχιτεκτονική Υπολογιστών

Αρχιτεκτονική Υπολογιστών Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Αρχιτεκτονική Υπολογιστών Ενότητα 13: (Μέρος Β ) Λειτουργικό Σύστημα Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής

Διαβάστε περισσότερα

ΟΙΚΟΝΟΜΙΚΗ ΠΡΟΣΦΟΡΑ ΣΧΕ ΙΑΣΗΣ ΚΑΙ ΚΑΤΑΣΚΕΥΗΣ web εφαρµογής - ηλεκτρονικού κατατήµατος για έξυπνα κινητά

ΟΙΚΟΝΟΜΙΚΗ ΠΡΟΣΦΟΡΑ ΣΧΕ ΙΑΣΗΣ ΚΑΙ ΚΑΤΑΣΚΕΥΗΣ web εφαρµογής - ηλεκτρονικού κατατήµατος για έξυπνα κινητά ΟΙΚΟΝΟΜΙΚΗ ΠΡΟΣΦΟΡΑ ΣΧΕ ΙΑΣΗΣ ΚΑΙ ΚΑΤΑΣΚΕΥΗΣ web εφαρµογής - ηλεκτρονικού κατατήµατος για έξυπνα κινητά Για την STUDIO KOSTA BODA ILLUM Χανίων Πέµπτη, 9 Φεβρουαρίου 2012 Για την εταιρεία ACTS : Παπαγεωργίου

Διαβάστε περισσότερα

Κεφάλαιο 3.1: Λειτουργικά Συστήματα. Επιστήμη ΗΥ Κεφ. 3.1 Καραμαούνας Πολύκαρπος

Κεφάλαιο 3.1: Λειτουργικά Συστήματα. Επιστήμη ΗΥ Κεφ. 3.1 Καραμαούνας Πολύκαρπος Κεφάλαιο 3.1: Λειτουργικά Συστήματα 1 3.1.1 Λογισμικό και Υπολογιστικό Σύστημα Ένα σύγχρονο υπολογιστικό σύστημα αποτελείται από: το υλικό: τα ηλεκτρονικά μέρη του υπολογιστή και το λογισμικό: το σύνολο

Διαβάστε περισσότερα

Τ.Ε.Ι. Δυτικής Ελλάδας Τμήμα Διοίκησης Επιχειρήσεων Μεσολόγγι. 7 η Διάλεξη. Μάθημα: Τεχνολογίες Διαδικτύου

Τ.Ε.Ι. Δυτικής Ελλάδας Τμήμα Διοίκησης Επιχειρήσεων Μεσολόγγι. 7 η Διάλεξη. Μάθημα: Τεχνολογίες Διαδικτύου Τ.Ε.Ι. Δυτικής Ελλάδας Τμήμα Διοίκησης Επιχειρήσεων Μεσολόγγι 7 η Διάλεξη Μάθημα: Τεχνολογίες Διαδικτύου Περιεχόμενα 7 η διάλεξη Δικτυακή ουδετερότητα (net neutrality) Κινητός παγκόσμιος ιστός (mobile

Διαβάστε περισσότερα

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ Π ΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ Π ΕΡΙΒΑΛΛΟΝ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ Π ΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ Π ΕΡΙΒΑΛΛΟΝ ΥΠΟΥΡΓΕΙΟ ΕΘΝΙΚΗΣ ΠΑΙΔΕΙΑΣ ΚΑΙ ΘΡΗΣΚΕΥΜΑΤΩΝ ΠΑΙΔΑΓΩΓΙΚΟ ΙΝΣΤΙΤΟΥΤΟ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ Π ΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ Π ΕΡΙΒΑΛΛΟΝ Κ Υ Κ Λ Ο Υ Π Λ Η Ρ Ο Φ Ο Ρ Ι Κ Η Σ Κ Α Ι Υ Π Η Ρ Ε Σ Ι Ω Ν Τ Ε Χ Ν Ο Λ Ο Γ Ι Κ Η

Διαβάστε περισσότερα

Εισαγωγή στη Σχεδίαση Λογισμικού

Εισαγωγή στη Σχεδίαση Λογισμικού Εισαγωγή στη Σχεδίαση Λογισμικού περιεχόμενα παρουσίασης Τι είναι η σχεδίαση λογισμικού Έννοιες σχεδίασης Δραστηριότητες σχεδίασης Σχεδίαση και υποδείγματα ανάπτυξης λογισμικού σχεδίαση Η σχεδίαση του

Διαβάστε περισσότερα

ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΤΗ JustAlert SPOTIT. Οδηγίες για την εγκατάσταση της εφαρμογής στο κινητό σας

ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΤΗ JustAlert SPOTIT. Οδηγίες για την εγκατάσταση της εφαρμογής στο κινητό σας ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΤΗ JustAlert SPOTIT Συγχαρητήρια για την επιλογή σας να προμηθευτείτε την υπηρεσία JustAlert SPOTIT Μετά την ενεργοποίηση της υπηρεσίας, θα έχετε δωρεάν πρόσβαση στην προσωπική σας σελίδα

Διαβάστε περισσότερα

Θέματα Ατομικής Διπλωματικής Εργασίας - DRAFT Ακαδημαϊκό Έτος 2015/2016. Γεωργία Καπιτσάκη (Λέκτορας)

Θέματα Ατομικής Διπλωματικής Εργασίας - DRAFT Ακαδημαϊκό Έτος 2015/2016. Γεωργία Καπιτσάκη (Λέκτορας) Θέματα Ατομικής Διπλωματικής Εργασίας - DRAFT Ακαδημαϊκό Έτος 2015/2016 Γεωργία Καπιτσάκη (Λέκτορας) ΠΕΡΙΟΧΗ Α: ΕΦΑΡΜΟΓΕΣ ΜΕ ΑΙΣΘΗΤΗΡΕΣ ΓΙΑ ΕΠΙΓΝΩΣΗ ΣΥΓΚΕΙΜΕΝΟΥ Οι αισθητήρες μας δίνουν τη δυνατότητα συλλογής

Διαβάστε περισσότερα

ΕΓΧΕΙΡΙΔΙΟ ΜΑΘΗΤΗ. της Πλατφόρμας Τηλεκατάρτισης

ΕΓΧΕΙΡΙΔΙΟ ΜΑΘΗΤΗ. της Πλατφόρμας Τηλεκατάρτισης ΕΓΧΕΙΡΙΔΙΟ ΜΑΘΗΤΗ της Πλατφόρμας Τηλεκατάρτισης ΠΕΡΙΕΧΟΜΕΝΑ 1. Εισαγωγή...2 2. Αρχική σελίδα, Εισαγωγή & Περιβάλλον Συστήματος...3 2.1. Αρχική σελίδα εισαγωγής...3 2.2. Εισαγωγή στην Πλατφόρμα Τηλε-κατάρτισης...4

Διαβάστε περισσότερα

Υποδομή ΤΠ: Υλικό και λογισμικό

Υποδομή ΤΠ: Υλικό και λογισμικό Κεφάλαιο 5 Υποδομή ΤΠ: Υλικό και λογισμικό 5.1 ΜΑΘΗΣΙΑΚΟΙ ΣΤΟΧΟΙ Ποια είναι τα στοιχεία της υποδομής τεχνολογίας πληροφοριών (ΤΠ); Ποιες είναι οι βασικές τεχνολογίες υλικού υπολογιστών, αποθήκευσης δεδομένων,

Διαβάστε περισσότερα

Ερωτήσεις- Απαντήσεις Πολυμέσα Απο το Βιβλίο Εφαρμογές Η/Υ Α,Β,Γ Λυκείου

Ερωτήσεις- Απαντήσεις Πολυμέσα Απο το Βιβλίο Εφαρμογές Η/Υ Α,Β,Γ Λυκείου Ερωτήσεις- Απαντήσεις Πολυμέσα Απο το Βιβλίο Εφαρμογές Η/Υ Α,Β,Γ Λυκείου 1. Τι ονομάζουμε κόμβο και τι σύνδεσμο σε μια μη γραμμικά διαρθρωμένη ύλη; Με την έννοια σύνδεσμος (link) σε μια μη γραμμικά διαρθρωμένη

Διαβάστε περισσότερα

Ανάπτυξη & Σχεδίαση Λογισμικού (ΗΥ420)

Ανάπτυξη & Σχεδίαση Λογισμικού (ΗΥ420) Ανάπτυξη & Σχεδίαση Λογισμικού (ΗΥ420) Διάλεξη 8: Σχεδίαση Συστήματος Σχεδίαση Συστήματος 2 Διεργασία μετατροπής του προβλήματος σε λύση. Από το Τί στο Πώς. Σχέδιο: Λεπτομερής περιγραφή της λύσης. Λύση:

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ - Π.Μ.Σ. ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ - Π.Μ.Σ. ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ > ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ - Π.Μ.Σ. ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΟΡΙΣΜΟΣ: Το Cloud Computing είναι η ονοµασία της τεχνολογίας η οποία επιτρέπει στους χρήστες να

Διαβάστε περισσότερα

Λειτουργικά Συστήματα. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα

Λειτουργικά Συστήματα. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα Λειτουργικά Συστήματα Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα Στέργιος Παλαμάς, Υλικό Μαθήματος «Λειτουργικά Συστήματα», 2015-2016 Κεφάλαιο 1: Βασικές Έννοιες Λειτουργικών Συστημάτων

Διαβάστε περισσότερα

Τεχνολογία Λογισμικού & Πνευματική Ιδιοκτησία. ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

Τεχνολογία Λογισμικού & Πνευματική Ιδιοκτησία. ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική Τεχνολογία Λογισμικού & Πνευματική Ιδιοκτησία ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική Κύκλος ζωής λογισμικού source: Forouzan, Mosharraf Τροποποιήσεις διόρθωση σφαλμάτων, αλλαγή απαιτήσεων χρήστη,...

Διαβάστε περισσότερα

Υπολογιστική Νέφους Cloud computing

Υπολογιστική Νέφους Cloud computing Υπολογιστική Νέφους Cloud computing Χρ. Ηλιούδης Clouds Cloud computing??? Διείσδυση του Cloud Ορισμός - χαρακτηριστικά Ο όρος cloud έχει τις ρίζες στου στην αρχή του internet όπου συνήθιζαν να το αναπαριστούν

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΣΧΕΔΙΑΣΗΣ ΠΡΟΪΟΝΤΩΝ ΚΑΙ ΣΥΣΤΗΜΑΤΩΝ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΣΧΕΔΙΑΣΗΣ ΠΡΟΪΟΝΤΩΝ ΚΑΙ ΣΥΣΤΗΜΑΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΣΧΕΔΙΑΣΗΣ ΠΡΟΪΟΝΤΩΝ ΚΑΙ ΣΥΣΤΗΜΑΤΩΝ Σχεδίαση Διεπαφής Χρήστη (user interface) για Διαδραστική Εφαρμογή Αναζήτησης Πλοίων σε Τοπική Εμβέλεια, για Κινητές Συσκευές με

Διαβάστε περισσότερα