ΠΣΤΧΙΑΚΗ ΕΡΓΑΙΑ. Εφαρμογή Android για διαχείριςη ηλεκτρονικοφ καταςτήματοσ. Αρ. Μητρώου: 09/3499

Σχετικά έγγραφα
ΑΛΛΑΓΗ ΟΝΟΜΑΣΟ ΚΑΙ ΟΜΑΔΑ ΕΡΓΑΙΑ, ΚΟΙΝΟΥΡΗΣΟΙ ΦΑΚΕΛΟΙ ΚΑΙ ΕΚΣΤΠΩΣΕ ΣΑ WINDOWS XP

ΡΤΘΜΙΕΙ ΔΙΚΣΤΟΤ ΣΑ WINDOWS

Οργάνωση και Δομή Παρουσιάσεων

Κεθάλαιο 1. Ενόηηηα 2 Πλάνο Μάρκεηινγκ. Εξγαιεία Μάξθεηηλγθ. Dr. Andrea Grimm Dr. Astin Malschinger

Η αξρή ζύλδεζεο Client-Server

Απνηειέζκαηα Εξσηεκαηνινγίνπ 2o ηεηξάκελν

TOOLBOOK (μάθημα 2) Δεκηνπξγία βηβιίνπ θαη ζειίδσλ ΠΡΟΑΡΜΟΓΗ: ΒΑΛΚΑΝΙΩΣΗ ΔΗΜ. ΕΚΠΑΙΔΕΤΣΙΚΟ ΠΕ19 1 TOOLBOOK ΜΑΘΗΜΑ 2

Ανάπτυξη εφαρμογής ηλεκτρονικού πίνακα ανακοινώσεων για φορητή συσκευή

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

Α Ο Κ Η Α Μ Α Ζ Η Η Ρ Η ( S E A R C H )

1. Οδηγίερ εγκαηάζηαζηρ και σπήζηρ έξςπνυν καπηών και τηθιακών πιζηοποιηηικών με σπήζη ηος λογιζμικού Μοzilla Thunderbird


ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ. Οξηδόληηα θαη θαηαθόξπθε κεηαηόπηζε παξαβνιήο

Οδηγίες τρήζης για λειηοσργία μεηαθοράς καναλιών ζε υηθιακό δέκηη OST-7060 HD

ΦΤΛΛΟ ΔΡΓΑΙΑ 1 Βαζηθέο Έλλνηεο & Καηεγνξίεο Γηθηύσλ Τπνινγηζηώλ

Case Study. Παξαθάηω παξνπζηάδνπκε βήκα - βήκα κε screenshots έλα παξάδεηγκα ππνβνιήο κηαο εξγαζίαο θαη ηελ παξαγωγή ηνπ Originality Report.

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

Κευάλαιο 8 Μονοπωλιακή Συμπεριφορά- Πολλαπλή Τιμολόγηση

Ενδεικτικά Θέματα Στατιστικής ΙΙ

Hellas online Προεπιλεγμένες ρσθμίσεις για FritzBox Fon WLAN 7140 (Annex B) FritzBox Fon WLAN Annex B ( )

Ζαχαρίας Μ. Κοντοπόδης Εργαστήριο Λειτουργικών Συστημάτων ΙΙ

Άσκηση 1 - Μοπυοποίηση Κειμένου

Αζκήζεις ζτ.βιβλίοσ ζελίδας 13 14

Βάσεις Δεδομέμωμ. Εξγαζηήξην V. Τκήκα Πιεξνθνξηθήο ΑΠΘ

Γοκή επαλάιευες Δληοιές Όζο & Μέτρης_όηοσ

H ΜΑΓΕΙΑ ΤΩΝ ΑΡΙΘΜΩΝ

Σημεία Ασύπματηρ Ππόσβασηρ (Hot-Spots)

ΒΗΜΑ 2. Εηζάγεηε ηνλ Κωδηθό Πξόζβαζεο πνπ ιακβάλεηε κε SMS & δειώλεηε επηζπκεηό Όλνκα Πξόζβαζεο (Username) θαη ην ζαο

Ηλεκηπονικά Απσεία και Διεπαθέρ

Να ζρεδηάζεηο ηξόπνπο ζύλδεζεο κηαο κπαηαξίαο θαη ελόο ιακπηήξα ώζηε ν ιακπηήξαο λα θσηνβνιεί.

Α. Εηζαγσγή ηεο έλλνηαο ηεο ηξηγσλνκεηξηθήο εμίζσζεο κε αξρηθό παξάδεηγκα ηελ εκx = 2

ΕΝΤΟΛΕΣ WINDOWS ΚΑΙ UNIX

Διαδικαζία μεηαθοράς δεδομένων Εκκαθαριζηικής για ηο Eιδικό ζημείωμα περαίωζης Φ.Π.Α

ΑΞΙΟΘΕΑΣΑ ΣΟΤ ΥΩΡΙΟΤ ΜΑ

ΕΓΧΕΙΡΙΔΙΟ ΕΚΔΟΗ 8.0.0

Διαηιμήζεις για Αιολικά Πάρκα. Κώδικες 28, 78 και 84

ΘΔΚΑ ΡΖΠ ΑΛΑΓΛΩΟΗΠΖΠ

Αιγόξηζκνη Γνκή επηινγήο. Πνιιαπιή Δπηινγή Δκθωιεπκέλεο Δπηινγέο. Δηζαγωγή ζηηο Αξρέο ηεο Δπηζηήκεο ηωλ Η/Υ. introcsprinciples.wordpress.

Διατείριση Φσσικών Καταστρουών: ACTIVE LANDSLIDE INVENTORY MAPPING AND SUSCEPTIBILITY ZONING

ΔΡΓΑΙΑ 1. Γιαδικησακά πληροθοριακά σζηήμαηα. Ομάδα Δργαζίας: Μεηαπηστιακοί Φοιηηηές. ηέθανος Κονηοβάς ΑΔΜ :283. Πάζτος Βαζίλειος ΑΔΜ :288

Απαντήσεις θέματος 2. Παξαθάησ αθνινπζεί αλαιπηηθή επίιπζε ησλ εξσηεκάησλ.

ΑΠΑΝΤΗΣΔΙΣ ΓΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ II ΔΠΑΛ

ΣΕΙ ΙΟΝΙΩΝ ΝΗΩΝ ΣΜΗΜΑ: ΣΕΥΝΟΛΟΓΙΑ ΠΛΗΡΟΦΟΡΙΚΗ ΚΑΙ ΣΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΥΕΙΜΕΡΙΝΟ ΕΞΑΜΗΝΟ Ρέππα Μαξγαξίηα

ΦΥΣΙΚΗ ΤΩΝ ΡΕΥΣΤΩΝ. G. Mitsou

Παιχνίδι γλωζζικής καηανόηζης με ζχήμαηα!

Παλεπηζηήκην Θεζζαιίαο. Πνιπηερληθή Σρνιή. Τκήκα Μεραληθώλ Η/Υ, Τειεπηθνηλσληώλ & Δηθηύσλ. [ ]

ΑΓΩΜΘΡΘΙΞΘ ΤΩΠΞΘ ΡΘΡ ΛΘΙΠΕΡ ΗΚΘΙΘΕΡ ΛΘΤΑΗΚΘΔΗΡ Τ.

Αποδελτίωςη Πολιτιςτικών Γεγονότων και Εφαρμογή Android για την Προβολή τουσ

ΓΗΑΓΩΝΗΣΜΑ ΣΤΑ ΜΑΘΖΜΑΤΗΚΑ. Ύλη: Μιγαδικοί-Σσναρηήζεις-Παράγωγοι Θεη.-Τετν. Καη Εήηημα 1 ο :

ύζηεκα Ωξνκέηξεζεο Πξνζσπηθνύ (Έθδνζε 2) ΤΠΗΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΩΝ ΤΣΗΜΑΣΩΝ

x-1 x (x-1) x 5x 2. Να απινπνηεζνύλ ηα θιάζκαηα, έηζη ώζηε λα κελ ππάξρνπλ ξηδηθά ζηνπο 22, 55, 15, 42, 93, 10 5, 12

Αζθήζεηο 5 νπ θεθαιαίνπ Crash course Step by step training. Dipl.Biol.cand.med. Stylianos Kalaitzis

Μορθές Κακόβοσλοσ Κώδικα (Malicious Code)

Σρήκα Α. Γξάθνπκε ηα ζηνηρεία ηνπ Πξνκεζεπηή θαη παηάκε Δηζαγσγή. Σρήκα Β1

ΑΝΤΗΛΙΑΚΑ. Η Μηκή ζθέθηεθε έλαλ ηξόπν, γηα λα ζπγθξίλεη κεξηθά δηαθνξεηηθά αληειηαθά πξντόληα. Απηή θαη ν Νηίλνο ζπλέιεμαλ ηα αθόινπζα πιηθά:

Γηπισκαηηθή Δξγαζία ΤΓΚΡΙΣΙΚΗ ΜΔΛΔΣΗ ΣΩΝ ΣΔΥΝΟΛΟΓΙΩΝ ΚΑΣΑΚΔΤΗ ΜΙΚΡΟΔΦΑΡΜΟΓΩΝ(APPS) ΓΙΑ ΚΙΝΗΣΑ- MIT APP INVENTOR ΚΑΙ ΔΓΓΔΝΩΝ

CytaInfo+ έλα application γηα ηε Cyta.

B-Δέλδξα. Τα B-δέλδξα ρξεζηκνπνηνύληαη γηα ηε αλαπαξάζηαζε πνιύ κεγάισλ ιεμηθώλ πνπ είλαη απνζεθεπκέλα ζην δίζθν.

ΗΛΕΚΤΡΟΝΙΚΗ ΜΝΗΜΗ ΚΑΙ ΜΙΚΡΟΕΛΕΓΚΤΕΣ

Δπηιέγνληαο ην «Πξνεπηινγή» θάζε θνξά πνπ ζα ζπλδέεζηε ζηελ εθαξκνγή ζα βξίζθεζηε ζηε λέα ρξήζε.

ΟΣΑ Επηρεηξεζηαθή Ννεκνζύλε. Ελόηεηα: Ad1.2.2 «Ση θξύβεηαη» πίζω από κηα Επηρεηξεζηαθή Αλαθνξά (report): XML & XSD γηα αξράξηνπο

ΛΙΜΝΗ ΤΣΑΝΤ. Σρήκα 1. Σρήκα 2

Δξγαζηεξηαθή άζθεζε 03. Σηεξενγξαθηθή πξνβνιή ζην δίθηπν Wulf

ΔΙΑΓΩΝΙΣΜΑ ΣΤΗ ΦΥΣΙΚΗ. Ύλη: Εσθύγραμμη Κίνηζη

ΜΗΧΑΝΟΛΟΓΙΚΟ ΣΧΔΓΙΟ ΙΙ

ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ 4 ΣΥΝΔΥΑΣΤΙΚΑ ΚΥΚΛΩΜΑΤΑ

Οη πην γλσζηέο κνξθέο Pervasive παηρληδηώλ είλαη ηα Location Based Games, Augmented Reality Games θαη Mixed Reality Games.

5 η Δργαζηηριακή Άζκηζη Κσκλώμαηα Γσαδικού Αθροιζηή/Αθαιρέηη

Constructors and Destructors in C++

ΠΑΝΔΛΛΑΓΗΚΔ ΔΞΔΣΑΔΗ Γ ΣΑΞΖ ΖΜΔΡΖΗΟΤ ΓΔΝΗΚΟΤ ΛΤΚΔΗΟΤ ΚΑΗ ΔΠΑΛ ΣΔΣΑΡΣΖ 25 ΜΑΨΟΤ 2016 ΔΞΔΣΑΕΟΜΔΝΟ ΜΑΘΖΜΑ: ΑΡΥΔ ΟΗΚΟΝΟΜΗΚΖ ΘΔΧΡΗΑ ΠΡΟΑΝΑΣΟΛΗΜΟΤ - ΔΠΗΛΟΓΖ

Σν ιεηηνπξγηθό ζύζηεκα Android θαη ε πινπνίεζε εθαξκνγήο κε ην Google SDK

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΣΙΑ ΝΟΜΟ ΙΨΑΝΝΙΝΨΝ ΔΗΜΟ ΙΨΑΝΝΙΣΨΝ

ΚΕΦ. 2.3 ΑΠΟΛΤΣΗ ΣΘΜΗ ΠΡΑΓΜΑΣΘΚΟΤ ΑΡΘΘΜΟΤ

Μονοψϊνιο. Αγνξά κε ιίγνπο αγνξαζηέο. Δύναμη μονοψωνίος Η ηθαλόηεηα πνπ έρεη ν αγνξαζηήο λα επεξεάζεη ηελ ηηκή ηνπ αγαζνύ.

Επγαστήπιο (28/11/12) «Εισαγωγή στην Πληπουοπική και Ππογπαμματισμόρ Η/Υ»

1 η Εργαζηηριακή Άζκηζη Ειζαγωγή

ΥΡΙΣΟΤΓΔΝΝΙΑΣΙΚΔ ΚΑΣΑΚΔΤΔ

Έκδοζη /10/2014. Νέα λειηοσργικόηηηα - Βεληιώζεις

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΕΣΑΙΡΕΙΑ ΜΑΘΗΜΑΣΙΚΗ ΚΤΣΑΛΟΓΡΟΜΙΑ 2007 ΓΙΑ ΣΟ ΓΤΜΝΑΙΟ Παπασκευή 26 Ιανουαπίου 2007 Σάξη: Α Γυμνασίου ΥΟΛΕΙΟ..

7. ΚΑΤΑΧΩΡΗΤΕΣ ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ. 3. Έλαο θαηαρσξεηήο SISO ησλ 4 bits έρεη: α) Μία είζνδν, β) Δύν εηζόδνπο, γ) Σέζζεξεηο εηζόδνπο.

Τηλζφωνο: Ε-mail: Ώρες διδασκαλίας: 16:00 19:15 μμ

Εςθςή ζςζηήμαηα επισειπήζεων και αξιολόγηζη

Η/Υ A ΤΑΞΕΩΣ ΑΕ Συστήματα Αρίθμησης. Υποπλοίαρχος Ν. Πετράκος ΠΝ

Καθαβηάο Αγ. Δεκήηξηνο - Αζήλα Τει Φαμ

Εγκατάσταση του πακέτου XAMPP. Β Τεχνική Σχολή Λεμεςοφ Σχολική χρονιά Άριςτοσ Παςιάσ

iii. iv. γηα ηελ νπνία ηζρύνπλ: f (1) 2 θαη

ΔΦΑΡΜΟΜΔΝΑ ΜΑΘΗΜΑΣΙΚΑ ΣΗ ΧΗΜΔΙΑ Ι ΘΔΜΑΣΑ Α επηέκβξηνο Να ππνινγηζηνύλ νη κεξηθέο παξάγσγνη πξώηεο ηάμεο ηεο ζπλάξηεζεο f(x,y) =

Πολυεπίπεδα/Διασυμδεδεμέμα Δίκτυα

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΕΣΑΙΡΕΙΑ ΜΑΘΗΜΑΣΙΚΗ ΚΤΣΑΛΟΓΡΟΜΙΑ 2007 ΓΙΑ ΣΟ ΓΤΜΝΑΙΟ Παπασκευή 26 Ιανουαπίου 2007 Σάξη: Α Γυμνασίου ΥΟΛΕΙΟ..

ΠΣΤΧΙΑΚΗ ΕΡΓΑΙΑ. υγγραφι οδθγοφ καταςκευισ ενόσ Joomla Component και ανάπτυξθ εφαρμογισ για τθν ενοικίαςθ δωματίων βαςιςμζνθ ςε αυτό.

ΠΣΤΥΙΑΚΗ ΕΡΓΑΙΑ. Αλάπηπμε Dedicated App γηα Mobile πζθεπή Windows Phone κε ρξήζε Web Services

ΔΓΤ Μεηαπηπρηαθφ Πξφγξακκα «Γηνίθεζε Τπεξεζηψλ Τγείαο»

A. Αιιάδνληαο ηε θνξά ηνπ ξεύκαηνο πνπ δηαξξέεη ηνλ αγωγό.

6 η Εργαζηηριακή Άζκηζη Επαλήθεσζη Λειηοσργίας Βαζικών Φλιπ-Φλοπ

ΑΣΚΗΣΔΙΣ ΦΥΣΙΚΗΣ ΚΑΤΑΣΤΑΣΗΣ ΣΤΟ ΓΗΠΔΓΟ

Γηπισκαηηθή Δξγαζία ηνπ θνηηεηή ηνπ Τκήκαηνο Ηιεθηξνιφγσλ Μεραληθψλ θαη Τερλνινγίαο Υπνινγηζηψλ ηεο Πνιπηερληθήο Σρνιήο ηνπ Παλεπηζηεκίνπ Παηξψλ

Οδηγίες Ασφρματης Πρόσβασης (Wi-Fi) στο Διαδίκτυο

Άμεσοι Αλγόριθμοι: Προσπέλαση Λίστας (list access)

ΜΑΘΗΜΑΣΑ ΦΩΣΟΓΡΑΦΙΑ. Ειζαγωγή ζηη Φωηογραθία. Χριζηάκης Σαζεΐδης EFIAP

Transcript:

ΠΣΤΧΙΑΚΗ ΕΡΓΑΙΑ Εφαρμογή Android για διαχείριςη ηλεκτρονικοφ καταςτήματοσ Σου φοιτητή Δημητρίοσ Αμοστζίδη Επιβλζπων καθηγητήσ Εσκλείδης Κεραμόποσλος Αρ. Μητρώου: 09/3499 Θεςςαλονίκη 2014

Πεπίλητη Ο θχξηνο ζηφρνο ηεο παξνχζαο πηπρηαθήο εξγαζίαο είλαη ε παξνπζίαζε θαη ε αλάπηπμε κηαο εθαξκνγήο ζε πεξηβάιινλ Android. Ζ εθαξκνγή δίλεη ηε δπλαηφηεηα ζηνλ θάηνρν θηλεηνχ ηειεθψλνπ κε ιεηηνπξγηθφ ζχζηεκα Android λα δηαρεηξηζηεί έλα ειεθηξνληθφ θαηάζηεκα (e-shop). Ο ρξήζηεο ζα κπνξεί λα επεμεξγαζηεί ην πεξηερφκελν ηνπ θαηαζηήκαηνο, λα επηιέμεη ηα πξντφληα πνπ ζέιεη λα εκθαλίδνληαη, θαζψο θαη λα πξνζζέζεη λέα πξντφληα. Υξήζηεο ηεο εθαξκνγήο κπνξεί λα ραξαθηεξηζηεί ν θαηαζηεκαηάξρεο ή νη ππάιιεινη ελφο θαηαζηήκαηνο. Σα κέξε ζηα νπνία ρσξίδεηαη ε πηπρηαθή εξγαζία είλαη δχν. Σν πξψην πεξηιακβάλεη πιεξνθνξίεο ζρεηηθά κε ην ιεηηνπξγηθφ ζχζηεκα Android, θαζψο θαη γηα ην ινγηζκηθφ Eclipse IDE, ηελ πιαηθφξκα ζηελ νπνία πινπνηήζεθε ε εξγαζία. Σν δεχηεξν κέξνο πεξηιακβάλεη ηελ πεξηγξαθή ηεο δηαδηθαζίαο πξαγκαηνπνίεζεο ηεο εθαξκνγήο. ειίδα 2 απφ 85

Abstract The main object of this thesis is the presentation and development of an application in Android environment. The application helps the owner of a mobile phone with Android operating system, manage an online store (e-shop). The user will be able to edit the contents of the store, choose the products which he wants to be shown and add new ones. The user of the application can be an online shop owner or his employees. The parts to which the thesis is divided are two. The first one includes information on the Android operating system and the software Eclipse IDE, which is the platform that was used to create the project. The second part includes the description of the process followed to create the application. ειίδα 3 απφ 85

Πεπιεσόμενα Πεξίιεςε... 2 Abstract... 3 Δηζαγσγή... 8 1. Android... 9 1.1. Δηζαγσγή ζην Android... 9 1.2. Ηζηνξηθή Αλαδξνκή... 10 1.2.1. Android 1.0 θαη 1.1... 11 1.2.2. Android 1.5 Cupcake... 12 1.2.3. Android 1.6 Donut... 13 1.2.4. Android 2.0, 2.0.1 θαη 2.1 Éclair... 14 1.2.5. Android 2.2 Froyo... 15 1.2.6. Android 2.3 Gingerbread... 16 1.2.7. Android 3.0 Honeycomb... 16 1.2.8. Android 4.0 Ice Cream Sandwich... 17 1.2.9. Android 4.1, 4.2 θαη 4.3 Jelly Bean... 18 1.2.10. Android 4.4 KitKat... 19 1.2.11. Android 5.0 Lollipop... 20 1.3. Δπίινγνο... 21 2. Πξνγξακκαηηζκφο θαη αλάπηπμε εθαξκνγψλ ζε πεξηβάιινλ Android... 22 2.1. Δηζαγσγή... 22 2.2. Πεξηβάιινληα αλάπηπμεο εθαξκνγψλ... 22 2.2.1. IntelliJ IDE... 22 2.2.2. Eclipse IDE... 24 2.2.3. Android Studio... 25 2.3. Σα ζπζηαηηθά κέξε κηαο Android εθαξκνγήο... 26 2.4. Πεξηβάιινλ αλάπηπμεο κηαο εθαξκνγήο Android θαη δνκηθά ζηνηρεία ελφο project... 29 2.4.1. Πιαηθφξκα Eclipse... 29 2.4.1.1. Γνκή ελφο Project ζην Eclipse... 29 2.4.1.2. Δμνκνησηήο... 32 ειίδα 4 απφ 85

2.5. Δπίινγνο... 33 3. Αξρηηεθηνληθή θαη ηερλνινγίεο πνπ ρξεζηκνπνηήζεθαλ... 34 3.1. Δηζαγσγή... 34 3.2. Γιψζζεο πξνγξακκαηηζκνχ... 34 3.2.1. Java... 34 3.2.2. PHP... 35 3.2.3. MySQL... 37 3.2.4. XML... 38 3.3. Σερλνινγίεο πνπ ρξεζηκνπνηήζεθαλ... 40 3.3.1. JSON... 40 3.3.2. GCM... 42 3.4. Πξνγξακκαηηζηηθά πεξηβάιινληα... 44 3.4.1. Eclipse... 44 3.4.2. Aptana... 44 3.4.3. phpmyadmin... 45 3.5. Άιια πξνγξάκκαηα... 47 3.5.1. Filezilla... 47 3.5.2. Photoshop... 47 3.6. Δπίινγνο... 48 4. Δθαξκνγή e-shop manager... 49 4.1. Δηζαγσγή... 49 4.2. Αλάιπζε ηεο ιεηηνπξγηθφηεηαο ηεο εθαξκνγήο... 49 4.2.1. Οζφλε ζχλδεζεο... 49 4.2.2. Κεληξηθή Οζφλε... 50 4.2.3. Αξρηθή Οζφλε... 50 4.2.3.1. Slider... 51 4.2.3.1.1. Οζφλε δηαρείξηζεο Slider... 52 4.2.3.2. Καηεγνξίεο... 53 4.2.4. Οζφλε Παξαγγειηψλ... 54 4.2.4.1. Οζφλε ιεπηνκεξεηψλ παξαγγειίαο... 55 4.2.5. Οζφλε θαηεγνξηψλ πξντφλησλ... 57 ειίδα 5 απφ 85

4.2.5.1. Οζφλε επεμεξγαζίαο θαηεγνξίαο... 58 4.2.5.2. Οζφλε πξνζζήθεο λέαο θαηεγνξίαο... 60 4.2.6. Οζφλε θαηαζθεπαζηψλ... 61 4.2.6.1. Οζφλε επεμεξγαζίαο θαηαζθεπαζηή... 62 4.2.6.2. Οζφλε πξνζζήθεο λένπ θαηαζθεπαζηή... 63 4.2.7. Οζφλε πξντφλησλ... 64 4.2.7.1. Οζφλε επεμεξγαζίαο πξντφληνο... 65 4.2.7.2. Οζφλε επεμεξγαζίαο θσηνγξαθηψλ ελφο πξντφληνο... 67 4.2.8. Οζφλε Πειαηψλ... 67 4.2.8.1. Οζφλε πξνβνιήο ζηνηρείσλ πειάηε... 68 4.2.9. Δπηινγή απνζχλδεζεο... 69 4.2.10. Οζφλε ξπζκίζεσλ... 70 4.3. Αλάιπζε ησλ ζπζηαηηθψλ ζηνηρείσλ ηεο εθαξκνγήο... 70 4.3.1. Μπάξα ελεξγεηψλ (ActionΒar)... 70 4.3.1.1. Παξαδείγκαηα... 72 4.3.1.1.1. Παξάδεηγκα XML layout... 72 4.3.1.1.2. Παξάδεηγκα Java... 74 4.3.2. DrawerLayout... 74 4.3.3. Παξαδείγκαηα... 75 4.3.3.1. Παξάδεηγκα XML αξρείνπ... 75 4.3.3.2. Παξάδεηγκα Java... 76 4.3.4. Toast... 77 4.3.4.1. Παξάδεηγκα Java... 78 4.4. Δμσηεξηθή βάζε... 79 4.5. Δπίινγνο... 82 5.πκπεξάζκαηα... 83 6.Βηβιηνγξαθία... 84 ειίδα 6 απφ 85

Δςπεηήπιο Σσημάηυν και Πινάκυν Δηθφλα 1: Δηθφλα Παγθνζκίσο νη πσιήζεηο smartphones (27-05-2012)... 9 Δηθφλα 2: Σν ινγφηππν ηνπ Android... 10 Δηθφλα 3: Σα ινγφηππα ησλ δηάθνξσλ εθδφζεσλ Android... 11 Δηθφλα 4: Σν πεξηβάιινλ ηνπ IntelliJ IDE... 24 Δηθφλα 5: Σν πεξηβάιινλ ηνπ Eclipse IDE... 25 Δηθφλα 6: Σν πεξηβάιινλ ηνπ Android Studio... 26 Δηθφλα 7: Γνκή ελφο project ζην Eclipse... 29 Δηθφλα 8: Αλαιπηηθφηεξε δνκή ησλ θαθέισλ θαη ησλ αξρείσλ ζην πεξηβάιινλ Eclipse... 30 Δηθφλα 9: Δμνηκνησηήο ηνπ ADT Plug - in... 32 Δηθφλα 10: Σξφπνο ιεηηνπξγίαο ηεο PHP... 36 Δηθφλα 11: Σξφπνο ιεηηνπξγίαο GCM... 43 Δηθφλα 12: Σν πεξηβάιινλ ηνπ Aptana... 45 Δηθφλα 13: Ζ αλαπαξάζηαζε κηαο βάζεο κέζα ζην εξγαιείν phpmyadmin... 46 Δηθφλα 14: Σν πεξηβάιινλ ηνπ Photoshop... 48 Δηθφλα 15: Οζφλε ζχλδεζεο... 49 Δηθφλα 16: Μελνχ θεληξηθήο νζφλεο... 50 Δηθφλα 17: Αξρηθή νζφλε... 51 Δηθφλα 18: Οζφλε δηαρείξηζεο Slider... 53 Δηθφλα 19: Οζφλε παξαγγειηψλ... 55 Δηθφλα 20: Οζφλε ιεπηνκεξεηψλ παξαγγειίαο... 57 Δηθφλα 21: Οζφλε θαηεγνξηψλ... 58 Δηθφλα 22: Οζφλε επεμεξγαζίαο θαηεγνξίαο... 59 Δηθφλα 23: Οζφλε πξνζζήθεο λέαο θαηεγνξίαο... 61 Δηθφλα 24: Οζφλε θαηαζθεπαζηψλ... 62 Δηθφλα 25: Οζφλε επεμεξγαζίαο θαηαζθεπαζηή... 63 Δηθφλα 26: Οζφλε πξνζζήθεο λένπ θαηαζθεπαζηή... 64 Δηθφλα 27: Οζφλε πξντφλησλ... 65 Δηθφλα 28: Οζφλε επεμεξγαζίαο πξντφληνο... 66 Δηθφλα 29: Οζφλε επεμεξγαζίαο θσηνγξαθηψλ ελφο πξντφληνο... 67 Δηθφλα 30: Οζφλε πειαηψλ... 68 Δηθφλα 31: Οζφλε πξνβνιήο ζηνηρείσλ πειάηε... 69 Δηθφλα 32: Οζφλε ξπζκίζεσλ... 70 Δηθφλα 33: Σν θνηλφ πξφηππν γηα φιεο ηηο εθαξκνγέο... 71 Δηθφλα 34: ActionBar εθαξκνγήο... 71 Δηθφλα 35: DrawerLayout... 75 Δηθφλα 36: Μήλπκα ελεκέξσζεο ρξήζηε (Toast)... 78 Δηθφλα 37: Δμσηεξηθή βάζε εθαξκνγήο... 80 ειίδα 7 απφ 85

Δηζαγσγή Ζ εξγαζία απηή πξαγκαηνπνηήζεθε κε ζθνπφ ηελ δεκηνπξγία κηαο εθαξκνγήο γηα ηε δηεπθφιπλζε ησλ ηδηνθηεηψλ ειεθηξνληθψλ θαηαζηεκάησλ. Μέζσ ηνπ έμππλνπ ηειεθψλνπ ηνπο νη ηδηνθηήηεο ζα έρνπλ ηε δπλαηφηεηα λα δηαρεηξηζηνχλ ην ειεθηξνληθφ ηνπο θαηάζηεκα απφ νπνηνδήπνηε ζεκείν, κε ηελ πξνυπφζεζε λα έρνπλ πξφζβαζε ζην ίληεξλεη. ην πξψην θεθάιαην αλαθέξνληαη ηα ραξαθηεξηζηηθά ηνπ ιεηηνπξγηθνχ ζπζηήκαηνο Android, γίλεηαη κηα ηζηνξηθή αλαδξνκή θαη ζηε ζπλέρεηα πεξηγξάθνληαη νη δηαθνξεηηθέο εθδφζεηο πνπ έρνπλ αλαπηπρζεί σο ζήκεξα. ην επφκελν θεθάιαην πεξηγξάθνληαη ηα ραξαθηεξηζηηθά θαη ε δνκή ηεο πιαηθφξκαο πνπ ρξεζηκνπνηήζεθε γηα ηελ πινπνίεζε ηεο εθαξκνγήο θαη έπεηηα αλαιχνληαη ηα πεξηερφκελα κηαο εθαξκνγήο Android. ην ηειεπηαίν θεθάιαην αλαιχνληαη ηα πεξηερφκελα ηεο εθαξκνγήο. ειίδα 8 απφ 85

1. Android 1.1. Διζαγυγή ζηο Android Σν Android είλαη έλα ιεηηνπξγηθφ ζχζηεκα πνπ ελζσκαηψλεηαη ζε ζπζθεπέο θηλεηήο ηειεθσλίαο, νη νπνίεο δηαζέηνπλ νζφλε αθήο θαη ηξέρνπλ ηνλ ππξήλα (kernel) ηνπ ιεηηνπξγηθνχ Linux. Σν ιεηηνπξγηθφ απηφ ζχζηεκα επηηξέπεη ζηνπο θαηαζθεπαζηέο ινγηζκηθνχ λα ζπλζέηνπλ θψδηθα κε ηε ρξήζε ηεο γιψζζαο πξνγξακκαηηζκνχ Java, ειέγρνληαο ηε ζπζθεπή κέζσ βηβιηνζεθψλ ινγηζκηθνχ ηεο Google. Ζ LG, Samsung, HTC, Sony Ericsson, Motorola, είλαη κεξηθέο απφ ηηο εηαηξίεο πνπ ρξεζηκνπνηνχλ ην ιεηηνπξγηθφ Android γηα ηα smartphones ηνπο. χκθσλα κε έξεπλεο, ηα θηλεηά κε ινγηζκηθφ android θαηαιακβάλνπλ ην κεγαιχηεξν πνζνζηφ πσιήζεσλ παγθνζκίσο. Πνζνζηφ πνπ μεπεξλά θαηά πνιχ ηηο ππφινηπεο πσιήζεηο θαη πνπ νινέλα θαη απμάλεηαη. [6] Δικόνα 1: Δικόνα Παγκοζμίυρ οι πυλήζειρ smartphones (27-05-2012) ειίδα 9 απφ 85

1.2. Ιζηοπική Αναδπομή Σν ιεηηνπξγηθφ ζχζηεκα Android αξρηθά αλαπηχρζεθε απφ ηελ Android Inc., ε νπνία ηδξχζεθε ζην Palo Alto ηεο California ηνλ Οθηψβξε ηνπ 2003. ηε ζπλέρεηα ην αγφξαζε ε Google θαη έπεηηα ε Open Handset Alliance (OHA), κηα θνηλνπξαμία 65 εηαηξεηψλ πνπ ζπκκεηέρνπλ ζηνλ ρψξν ησλ θηλεηψλ πνπ είλαη ππνζηεξηθηέο ησλ αλνηθηψλ πξνηχπσλ. Δίλαη "αλνηρηνχ θψδηθα" ψζηε νη πξνγξακκαηηζηέο λα έρνπλ ηε δπλαηφηεηα λα παξάγνπλ θψδηθα ζε γιψζζα Java, ειέγρνληαο ηε ζπζθεπή κέζσ ησλ βηβιηνζεθψλ ηεο Java. Σν ινγφηππν ηνπ ιεηηνπξγηθνχ ζπζηήκαηνο Android πνπ ζρεδηάζηεθε απφ ηελ γξαθίζηξηα Irina Block, είλαη έλα ξνκπφη πξάζηλνπ ρξψκαηνο ( Δηθφλα 2 ). [7] Δικόνα 2: Το λογόηςπο ηος Android Οη δηαθνξεηηθέο εθδφζεηο επηδνξπίσλ θαη αθνινπζνχλ αιθαβεηηθή ζεηξά. [12] ηνπ ινγηζκηθνχ θέξνπλ νλνκαζίεο δηαθφξσλ γιπθψλ ειίδα 10 απφ 85

Δικόνα 3: Τα λογόηςπα ηυν διάθοπυν εκδόζευν Android 1.2.1. Android 1.0 και 1.1 Ζ πξψηε έθδνζε θπθινθφξεζε ην επηέκβξην ηνπ 2008, καδί κε ηε ζπζθεπή, «Hero HTC». Σφζν ην ιεηηνπξγηθφ ζχζηεκα φζν θαη ε ζπζθεπή HTC έιαβαλ ζεηηθέο θξηηηθέο. Οη εθαξκνγέο Ζκεξνιφγην, Email, Gmail, IM, Market, Ρπζκίζεηο, Voice Dialer θαη YouTube ήηαλ φιεο θαηλνχξηεο. Ζ πην ζεκαληηθή αιιαγή ζηελ έθδνζε 1.0 ήηαλ ε εκθάληζε ηνπ Google store, ην νπνίν νλνκαδφηαλ "Android Market Beta". Σν δηάζηεκα εθείλν ην Android Market πξνζέθεξε κφλν εθαξκνγέο θαη παηρλίδηα θαη νη πξνγξακκαηηζηέο δελ κπνξνχζαλ λα ηα δηαζέζνπλ ζηνπο ρξήζηεο έλαληη πιεξσκήο αιιά κφλν δσξεάλ. Σέζζεξηο κήλεο κεηά ηελ έθδνζε 1.0, ηνλ Φεβξνπάξην ηνπ 2009 ην Android απέθηεζε ηελ πξψηε ηνπ ελεκέξσζε ζε Android 1.1. ε απηφ ην ζηάδην, ε Google δελ είρε αθφκε μεθηλήζεη λα δίλεη νλνκαζίεο γιπθψλ επηδνξπίσλ ζηηο εθδφζεηο ησλ ιεηηνπξγηθψλ ηεο. ειίδα 11 απφ 85

1.2.2. Android 1.5 Cupcake Ζ έθδνζε 1.5 θπθινθφξεζε ηνλ Απξίιην ηνπ 2009, ζρεδφλ ηξεηο κήλεο κεηά ηελ πξψηε θπθινθνξία ηεο έθδνζεο 1.1. Απηή ήηαλ ε πξψηε ζεκαληηθή αλαβάζκηζε ηνπ Android, πξναλαγγέιινληαο ηελ έλαξμε ηεο "ζεηξάο dessert". Με ηελ νλνκαζία Cupcake ε λέα αλαβάζκηζε έθεξε λέα ραξαθηεξηζηηθά, φπσο ην αλέβαζκα βίληεν, ε πξφβιεςε ηνπ θεηκέλνπ θαη αζχξκαηε κεηάδνζε κνπζηθήο. Σν πην ζεκαληηθφ πξφζζεην ζηελ έθδνζε Cupcake ήηαλ ην πιεθηξνιφγην νζφλεο. Ο ρξήζηεο κπνξνχζε λα θάλεη ελαιιαγή θεηκέλνπ απφ θεθαιαία ζε πεδά γξάκκαηα, αλάινγα κε ην εάλ ην caps lock ήηαλ ελεξγνπνηεκέλν ή φρη. Σν πιεθηξνιφγην κπνξνχζε επίζεο λα αιιάμεη ζε αξηζκνχο θαη εηδηθνχο ραξαθηήξεο θαη θξαηψληαο παηεκέλν θάπνην πιήθηξν έδηλε πεξηζζφηεξεο επηινγέο. Έλα άιιν ραξαθηεξηζηηθφ ηνπ Cupcake ήηαλ ηα third-party widgets. Σν widget ηνπ εκεξνινγίνπ κπνξνχζε λα δείρλεη κφλν έλα ζπκβάλ αλά εκέξα θαη παηψληαο πάλσ ηνπ άλνηγε ην εκεξνιφγην. Γελ έδηλε ζηνλ ρξήζηε ηε δπλαηφηεηα λα επηιέμεη είδνο εκεξνινγίνπ γηα πξνβνιή θαη δελ ππήξρε δπλαηφηεηα αιιαγήο κεγέζνπο. ηελ έθδνζε απηή πξνζηέζεθε επίζεο ε εγγξαθή βίληεν. Ζ εγγξαθή βίληεν θαη ε θάκεξα ήηαλ ε ίδηα εθαξκνγή θαη ν ρξήζηεο κπνξνχζε λα κεηαθέξεηαη απφ ην έλα ζην άιιν κέζσ κηαο επηινγήο ζην κελνχ κε φλνκα "Αιιαγή ζε θάκεξα" θαη "Αιιαγή ζε εγγξαθή βίληεν". Δθηφο απφ ην λέν απηφ ραξαθηεξηζηηθφ ζηελ θάκεξα έγηλαλ αιιαγέο θαη ζηελ Γηεπηθάλεηα Υξήζηε. ην πάλσ αξηζηεξφ κέξνο ηεο νζφλεο βξηζθφηαλ κηα κηθξνγξαθία ε νπνία εκθάληδε ηελ ηειεπηαία θσηνγξαθία πνπ ηξαβήρηεθε. Όηαλ ν ρξήζηεο παηνχζε πάλσ άλνηγαλ ηα αξρεία θσηνγξαθηψλ ζηε πιινγή. Μία αθφκε πξνζζήθε ήηαλ ε ηθαλφηεηα αληηγξαθήο θεηκέλνπ απφ θάπνηα ηζηνζειίδα, θάηη ην νπνίν δελ ππήξρε πξηλ, αθνχ ππήξρε κφλν ε δπλαηφηεηα αληηγξαθήο θεηκέλνπ απφ input box. Δπηιέγνληαο "αληηγξαθή θεηκέλνπ" απφ ην κελνχ, ελεξγνπνηνχζε ηε ειίδα 12 απφ 85

δηαδηθαζία καξθαξίζκαηνο κε highlight θαη ζέξλνληαο ην δάρηπιφ πάλσ ζην θείκελν κηαο ζειίδαο web κάξθαξε ην επηιεγκέλν πεξηερφκελν. Δπηπιένλ, δφζεθε ε δπλαηφηεηα ηνπ αλεβάζκαηνο βίληεν ζην YouTube. Σν αλέβαζκα κπνξνχζε λα επηηεπρζεί είηε επηιέγνληαο κέζα απφ ηε πιινγή είηε αλνίγνληαο έλα βίληεν απεπζείαο απφ ηελ εθαξκνγή ηνπ YouTube, φπνπ ν ρξήζηεο κπνξνχζε λα επηιέμεη ην φλνκα ηνπ ηίηινπ, ηηο εηηθέηεο θαη ηα δηθαηψκαηα πξφζβαζεο. Παξφκνηα ήηαλ θαη ε δηαδηθαζία αλεβάζκαηνο θσηνγξαθηψλ ζην Picasa, ηε ζειίδα ηεο Google γηα θσηνγξαθίεο. 1.2.3. Android 1.6 Donut Πέληε κήλεο κεηά ην Cupcake, ηνλ επηέκβξην ηνπ 2009 βγήθε ε έθδνζε Donut 1.6. Ζ έθδνζε απηή ήξζε κε ζεκαληηθέο αλαβαζκίζεηο. Παξά ηηο πνιιέο αλαβαζκίζεηο, ε Google αθφκε πξνζπαζνχζε λα πξνζζέζεη βαζηθή ιεηηνπξγηθφηεηα ζην Android. Ζ έθδνζε Donut έθεξε ππνζηήξημε νζνλψλ δηαθνξεηηθνχ κεγέζνπο. Ζ κεγαιχηεξε δηαθνξά ζην Market ήηαλ ε πξφζζεζε θσηνγξαθηψλ πεξηγξαθήο ηεο θάζε εθαξκνγήο. Οη ρξήζηεο είραλ πιένλ ηε δπλαηφηεηα λα δνπλ πσο θαηλφηαλ ε θάζε εθαξκνγή, πξηλ ηελ εγθαηαζηήζνπλ ζην θηλεηφ ηνπο. Ζ κνλαδηθή δπλαηφηεηα πνπ είραλ ζηηο πξνεγνχκελεο εθδφζεηο ήηαλ λα δνπλ κηα ζχληνκε πεξηγξαθή θαη ηηο θξηηηθέο ησλ άιισλ ρξεζηψλ. Μεηά ηελ επηινγή θαηεγνξίαο, ζην πάλσ κέξνο ηεο νζφλεο εκθαλίδνληαλ λέεο επηινγέο πινήγεζεο, φπνπ ν ρξήζηεο έβιεπε ηηο "Κνξπθαίεο επί πιεξσκή", "Κνξπθαίεο δσξεάλ" θαη "Νέεο" εθαξκνγέο κέζα ζηελ θαηεγνξία πνπ είρε επηιέμεη. Δπηπιένλ, ε έθδνζε απηή ήηαλ ε πξψηε έθδνζε πνπ έδσζε έκθαζε ζηελ ρξήζε ηεο κπαηαξίαο. Μέζα ζηελ επηινγή "ρεηηθά κε ην ηειέθσλν" βξηζθφηαλ ε επηινγή "Υξήζε κπαηαξίαο", ε νπνία έδεηρλε ηε ρξήζε ηεο κπαηαξίαο αλά εθαξκνγή θαη αλά ιεηηνπξγία. ειίδα 13 απφ 85

Ζ έθδνζε Android 1.6 ήηαλ ε πξψηε έθδνζε πνπ ππνζηήξηδε κεραλέο θεηκέλνπ-ζειφγν (text-to-speech), θάηη πνπ ζεκαίλεη πσο ην ιεηηνπξγηθφ ζχζηεκα θαη νη εθαξκνγέο είραλ ηελ δπλαηφηεηα λα απαληνχλ ζηνπο ρξήζηεο κε ξνκπνηηθή θσλή. Οη ρξήζηεο κπνξνχζαλ λα επηιέμνπλ γιψζζα, ξπζκφ νκηιίαο θαη λα εγθαηαζηήζνπλ ηα θσλεηηθά δεδνκέλα απφ ην Android Market. Μηα αθφκε πξνζζήθε ήηαλ ε χπαξμε ελφο λένπ widget πνπ νλνκαδφηαλ "Power Control", ην νπνίν είρε δηαθφπηεο γηα ραξαθηεξηζηηθά πνπ ρξεζηκνπνηνχληαη ζπρλά, φπσο ην Bluetooth, ην GPS, ην WiFi, ν ζπγρξνληζκφο κε ηνπο εμππεξεηεηέο ηηο Google θαη ε θσηεηλφηεηα. Σν απνθνξχθσκα ηεο λέαο απηήο έθδνζεο ήηαλ ην Google Maps θαη ε ελίζρπζε ησλ δπλαηνηήησλ θσηνγξαθίαο θαη βίληεν. 1.2.4. Android 2.0, 2.0.1 και 2.1 Éclair Ζ έθδνζε 2.0 θπθινθφξεζε ηνλ Οθηψβξην ηνπ 2009, αθνινπζνχκελε απφ ηελ έθδνζε 2.0.1 ηνλ Γεθέκβξην ηνπ 2009, θαη ηελ 2.1 ηνλ Ηαλνπάξην ηνπ 2010. Ζ αλαβάζκηζε απηή είρε ζεκαληηθέο βειηηψζεηο. Έλα απφ ηα πξψηα πξάγκαηα πνπ παξνπζηάζηεθαλ ζηελ έθδνζε 2.0 ήηαλ ε θαηλνχξηα νζφλε θιεηδψκαηνο. Ζ Αpple είρε θαηνρπξψζεη ην μεθιείδσκα ηνπ θηλεηνχ κε ην ζχξζηκν ηνπ δαρηχινπ, έηζη ε Google ρξεζηκνπνίεζε ην μεθιείδσκα κε ρεηξνλνκία ζε κνξθή ηφμνπ, θάηη πνπ ήηαλ πην θνληά ζηε θπζηθή θίλεζε ηνπ αληίρεηξα. Σνπνζεηψληαο ην δάρηπιν ζην εηθνλίδην ηεο θιεηδαξηάο θαη ζχξνληάο ην πξνο ηα δεμηά μεθιείδσλε ηε ζπζθεπή, ελψ πξνο ηα αξηζηεξά ελεξγνπνηνχζε ηελ αζφξπβε ιεηηνπξγία. Έλα αθφκε λέν ραξαθηεξηζηηθφ ηεο νζφλεο ήηαλ ε ππνζηήξημε multi-touch. Ζ Google εθκεηαιιεχηεθε απηή ηελ επθαηξία γηα λα ζρεδηάζεη απφ ηελ αξρή ηα εηθνλίδηα, κεηαηξέπνληάο ζρεδφλ θάζε έλα απφ απηά, ζε λέν κε πην ζνβαξφ ζηπι. Δθηφο απφ ηνλ επαλαζρεδηαζκφ, ην κεγαιχηεξν ραξαθηεξηζηηθφ ηεο έθδνζεο 2.0 ήηαλ ε πινήγεζε ζηνπο ράξηεο ηεο Google. Ζ Google πξφζζεζε ζηνπο ράξηεο ηε ειίδα 14 απφ 85

δπλαηφηεηα πινήγεζεο, κε ηελ πξφζζεζε θσλήο ε νπνία δηάβαδε δπλαηά ηα νλφκαηα ησλ δξφκσλ φπσο θαη έλα θαλνληθφ GPS. Σέινο ζηελ έθδνζε απηή πξνζηέζεθαλ ζηελ νζφλε ηα θνπκπηά πνπ ρξεηάδνληαη γηα ηελ απνδνρή θαη ην θιείζηκν κηαο θιήζεο, θάηη ην νπνίν έθαλε ηα θνπκπηά ηνπ θηλεηνχ κε αλαγθαία. Ζ έθδνζε 2.1 δελ είρε κεγάιεο αιιαγέο θαη γηα ην ιφγν απηφ θξάηεζε ην φλνκα "Éclair". Έλα απφ ηα ζεκαληηθφηεξα ραξαθηεξηζηηθά ηεο έθδνζεο 2.1 ήηαλ νη "Εσληαλέο ηαπεηζαξίεο", δειαδή θηλνχκελεο δηαδξαζηηθέο εηθφλεο πνπ κπνξνχζαλ λα νξηζηνχλ σο ηαπεηζαξία. Σα widgets ζηελ έθδνζε 2.1 ζρεδηάζηεθαλ μαλά, κε αιιαγή ρξψκαηνο ζρεδφλ ζε φια θαη θαιχηεξε εθκεηάιιεπζε ηνπ δηαζέζηκνπ ρψξνπ. 1.2.5. Android 2.2 Froyo Ζ νλνκαζία ηεο έθδνζεο απηήο, ε νπνία θπθινθφξεζε ηνλ Μάην ηνπ 2010, ήηαλ ζπληφκεπζε γηα ην "Frozen Yoghurt". Έθεξε βειηησκέλε ηαρχηεηα ζην android, κε ηελ ππνζηήξημε πςειήο επθξίλεηαο ζε αλαιχζεηο νζφλεο θαη Adobe Flash 10.1, επηηξέπνληαο ζηνπο ρξήζηεο λα βιέπνπλ ξνή βίληεν ζην θηλεηνχ ηνπο κέζσ browsers. Πξνζηέζεθε θαη ππνζηήξημε γηα Wi-Fi hotspot ζπλδεζηκφηεηα. Ζ κεγαιχηεξε αιιαγή φζνλ αθνξά ζηελ εκθάληζε ζηελ έθδνζε απηή, ήηαλ ην θάησ κέξνο ηεο αξρηθήο νζφλεο, φπνπ ζηα αξηζηεξά θαη ζηα δεμηά πξνζηέζεθαλ ηα εηθνλίδηα ηνπ ηειεθψλνπ θαη ηνπ θπιινκεηξεηή. Δπηπιένλ, πξνζηέζεθαλ πεξηζζφηεξεο δπλαηφηεηεο θαηεβάζκαηνο γηα ην Android Market. Οη ρξήζηεο είραλ πιένλ ηε δπλαηφηεηα λα αλαβαζκίζνπλ φιεο ηηο εθαξκνγέο κε ηελ επηινγή "Αλαβάζκηζε φισλ" θαη λα αλαβαζκίδνπλ απηφκαηα ηηο εθαξκνγέο. Σέινο, πξνζηέζεθε ε δπλαηφηεηα κεηαθίλεζεο ησλ εθαξκνγψλ ζηελ θάξηα SD, θάηη ην νπνίν ήηαλ αλαγθαίν αθνχ ην δηάζηεκα εθείλν ηα θηλεηά είραλ πνιχ κηθξή κλήκε. ειίδα 15 απφ 85

1.2.6. Android 2.3 Gingerbread Απηή ε έθδνζε έθαλε ην ληεκπνχην ηεο ην Γεθέκβξην ηνπ 2010. Σν βαζηθφ ραξαθηεξηζηηθφ πνπ έγηλε δηαζέζηκν κε ηελ έθδνζε Gingerbread ήηαλ ην (NFC), επηηξέπνληαο ζηνπο ρξήζηεο λα εθηεινχλ δηάθνξα, φπσο πιεξσκέο κέζσ θηλεηνχ ηειεθψλνπ θαη ηελ αληαιιαγή δεδνκέλσλ κέζσ απηψλ πεξλψληαο ηα θηλεηά ηνπο ηειέθσλα πάλσ απφ κηα εηηθέηα. Πξνζέζεζε επίζεο ηελ ππνζηήξημε γηα πεξηζζφηεξεο απφ κία θάκεξεο θαη δηάθνξνπο άιινπο αηζζεηήξεο. Ζ έθδνζε 2.3 έδσζε κεγαιχηεξε βάζε ζηελ εκθάληζε. Σα εηθνλίδηα άιιαμαλ ζε γθξη θαη πξάζηλν ρξψκα θαη φια είραλ έλα πην κνληέξλν ζηπι ιφγσ ηνπ ζρεδηαζκνχ ησλ εηθνληδίσλ θαη ηεο κεγαιχηεξεο αλάιπζεο. Ζ έθδνζε Gingerbread είλαη ε παιαηφηεξε έθδνζε Android πνπ ππνζηεξίδεηαη αθφκε απφ ηελ Google. Απηφ ζπκβαίλεη θαζψο ππάξρεη κεγάινο αξηζκφο ρξεζηψλ πνπ ρξεζηκνπνηνχλ αθφκε απηή ηελ έθδνζε, αθνχ έρεη ρακειέο απαηηήζεηο ζπζηήκαηνο, θάηη πνπ ην θάλεη ηελ πξψηε επηινγή γηα θζελά, αξγά θηλεηά. 1.2.7. Android 3.0 Honeycomb Ζ έθδνζε Honeycomb θπθινθφξεζε ηνλ Φεβξνπάξην ηνπ 2011 θαη αθνινχζεζε γξήγνξα ε 3.1 θαη 3.2 θαηά ηε δηάξθεηα ηνπ ίδηνπ έηνπο. Απηή ε έθδνζε είρε βειηηζηνπνηεζεί γηα ηακπιέηεο (tablets). ηελ έθδνζε 3.0 έγηλε ε αιιαγή ηεο εκθάληζεο ησλ εθαξκνγψλ απφ θάζεηε ζε νξηδφληηα θαη επέηξεςε ζηνπο ρξήζηεο λα θνξηψλνπλ ηα αξρεία πνιπκέζσλ απεπζείαο απφ κηα θάξηα SD. Ζ έθδνζε 3.1 θπθινθφξεζε ηξεηο κήλεο κεηά ηελ πξψηε θαη έθεξε αξθεηέο βειηηψζεηο. Σα widgets είραλ πιένλ ηε δπλαηφηεηα αιιαγήο κεγέζνπο. Δπίζεο πξνζηέζεθε ππνζηήξημε γηα πιεθηξνιφγην, πνληίθη θαη άιιεο ζπζθεπέο εηζφδνπ πνπ ρξεζηκνπνηνχλ USB θαη Bluetooth. ειίδα 16 απφ 85

Ζ έθδνζε 3.2 βγήθε δχν κήλεο κεηά ηελ 3.1, πξνζζέηνληαο ππνζηήξημε γηα ηακπιέηεο κηθξφηεξνπ κεγέζνπο (7-8 ίληζεο) θαη δίλνληαο ζηνπο ρξήζηεο ηελ επηινγή λα επηκεθχλνπλ ή λα κηθξχλνπλ ηηο εθαξκνγέο γηα λα εθαξκφζνπλ ζηελ νζφλε. 1.2.8. Android 4.0 Ice Cream Sandwich Ζ έθδνζε Ice Cream Sandwich θπθινθφξεζε ηνλ Οθηψβξην ηνπ 2011 θαη απνηέιεζε κηα πνιχ ζεκαληηθή αλαβάζκηζε ηνπ Android UI, επηηξέπνληαο ηελ ελίζρπζε κελνχ επηθνηλσλίαο, ηε βειηίσζε ζηε δηάηαμε ηνπ πιεθηξνινγίνπ θαη NFC δπλαηφηεηεο. ηελ έθδνζε 4.0 άιιαμε ε νζφλε θιεηδψκαηνο. ηε κέζε ηεο νζφλεο βξηζθφηαλ έλαο θχθινο έμσ απφ απηφλ ην εηθνλίδην ηεο θιεηδαξηάο. Οη ρξήζηεο κπνξνχζαλ λα μεθιεηδψζνπλ ην ηειέθσλν, πηάλνληαο ηνλ θχθιν θαη ζπξψρλνληάο ηνλ πξνο ηελ θιεηδαξηά. Δθηφο απφ απηφ ην εηθνλίδην πξνζηέζεθε θαη ην εηθνλίδην ηεο θάκεξαο, ην νπνίν έθαλε πην εχθνιε ηελ πξφζβαζε ζηελ θάκεξα, θαζψο δελ ήηαλ αλαγθαίν λα μεθιεηδψζεη ην θηλεηφ γηα λα αλνίμεη ε εθαξκνγή. Έλαο παξφκνηνο ζρεδηαζκφο ρξεζηκνπνηήζεθε θαη γηα ηηο θιήζεηο. Δθηφο φκσο απφ ηα εηθνλίδηα απνδνρήο θαη απφξξηςεο ηεο θιήζεο, ππήξρε θαη έλα ηξίην εηθνλίδην, παηψληαο ην νπνίν νη ρξήζηεο κπνξνχζαλ λα ζηείινπλ έλα πξνθαζνξηζκέλν κήλπκα φπσο "Γελ κπνξψ λα κηιήζσ απηή ηε ζηηγκή, ζα ζαο θαιέζσ αξγφηεξα". Δπίζεο, ελψ ζηελ έθδνζε Honeycomb νη ρξήζηεο κπνξνχζαλ λα θιείζνπλ κηα εηδνπνίεζε παηψληαο ην "Υ" ηεο εηδνπνίεζεο, ζηελ έθδνζε Ice Cream ε δηαδηθαζία απηή έγηλε πην εχθνιε. Με έλα απιφ ζχξζηκν ηεο εηδνπνίεζεο ζηα αξηζηεξά ή ζηα δεμηά ε εηδνπνίεζε ζβελφηαλ. Οη θάθεινη ζηελ έθδνζε απηή ήηαλ πην εχθνιν λα δεκηνπξγεζνχλ. Πιένλ ζχξνληαο ην εηθνλίδην κηαο εθαξκνγήο πάλσ ζην εηθνλίδην κηαο άιιεο δεκηνπξγνχζε έλαλ θάθειν πνπ πεξηείρε ηηο δχν απηέο εθαξκνγέο. Ο θάθεινο απηφο αληί γηα ην κπεδ ρξψκα πνπ ρξεζηκνπνηνχζαλ νη παιαηφηεξεο εθδφζεηο, σο εηθνλίδην είρε ηηο κηθξνγξαθίεο ησλ εθαξκνγψλ πνπ πεξηείρε. ειίδα 17 απφ 85

Δπίζεο, ε Υξήζε Γεδνκέλσλ επέηξεςε ζηνπο ρξήζηεο λα δηαρεηξίδνληαη θαιχηεξα ηελ ρξήζε ησλ δεδνκέλσλ ηνπο. Παξνπζηαδφηαλ ζε απηνχο έλα ζρεδηάγξακκα ηεο ρξήζεο ησλ δεδνκέλσλ γηα ηνλ ηξέρνληα κήλα θαη είραλ ηε δπλαηφηεηα λα πξνζζέζνπλ έλα θαηψθιη πνπ ζα ηνπο πξνεηδνπνηνχζε γηα ηελ θαηαλάισζε ησλ δεδνκέλσλ. Δπηπιένλ, ε έθδνζε 4.0 έδσζε ηε δπλαηφηεηα απελεξγνπνίεζεο εθαξκνγψλ πνπ δελ κπνξνχζαλ λα δηαγξαθνχλ, θάηη πνπ ζεκαίλεη πσο νη εθαξκνγέο δελ εκθαλίδνληαλ ζην κελνχ θαη δελ κπνξνχζαλ λα ηξέμνπλ. Μηα αθφκε αιιαγή ήηαλ ε ζπγρψλεπζε ησλ ππεξεζηψλ Android Market, Google Music θαη Google Bookstore θαη ηελ θηινμελία ηνπο θάησ απφ ηελ ίδηα ζηέγε. ηηο 6 Μαξηίνπ 2012 ην Android Market έγηλε Google Play Store, ην Google Books έγηλε Google Play Books, ην Google Music έγηλε Google Play Music θαη ην Android Market Movies έγηλε Google Play Movies & TV. 1.2.9. Android 4.1, 4.2 και 4.3 Jelly Bean Ζ ηειεπηαία κεγάιε αλαβάζκηζε ηνπ Android θπθινθφξεζε ηνλ Ηνχιην ηνπ 2012. Αθφκε πην φκνξθν ην Android UI, αιιά θαη εμεδεηεκέλν ινγηζκηθφ, επηηξέπνληαο ζηηο Android ζπζθεπέο λα ηξέμνπλ πην γξήγνξα. Οη 4.x εθδφζεηο επέηξεςαλ ζηνπο πξνγξακκαηηζηέο λα δεκηνπξγήζνπλ εθαξκνγέο κε πνηφηεηα, επηβεβαηψλνληαο ηε ζέζε ηεο σο ην ιεηηνπξγηθφ ζχζηεκα πνπ πξνηηκνχλ νη ρξήζηεο. Σν ζεκαληηθφηεξν ραξαθηεξηζηηθφ πνπ πξνζηέζεθε ζηελ έθδνζε απηή αιιά θαη γεληθφηεξα ζην Android ήηαλ ε λέα έθδνζε ηεο εθαξκνγήο ηεο αλαδήηεζεο Google. Σν "Google Now" έθαλε γηα πξψηε θνξά ηελ εκθάληζε ηνπ, ν πξνζσπηθφο βνεζφο γηα φια ηα ελδηαθέξνληά ησλ ρξεζηψλ. Κάησ απφ ηελ αλαδήηεζε εκθαλίδνληαλ δηάθνξεο θαξηέιεο νη νπνίεο εκθάληδαλ απνηειέζκαηα αλαδεηήζεσλ γηα ηηο νπνίεο ην Google πίζηεπε πσο ν ρξήζηεο ελδηαθεξφηαλ. Απηά ηα απνηειέζκαηα εκθάληδαλ είηε πιεξνθνξίεο κε βάζε ζρεηηθέο αλαδεηήζεηο πνπ είρε θάλεη ν ρξήζηεο, είηε πιεξνθνξίεο γηα ηνλ θαηξφ ζηελ πεξηνρή ή ηελ ψξα ζην ζπίηη ελψ ν ρξήζηεο ηαμίδεπε. ειίδα 18 απφ 85

Σνλ Ννέκβξην ηνπ 2012 θπθινθφξεζε ε έθδνζε 4.2 ε νπνία επίζεο νλνκαδφηαλ "Jelly Bean", δίλνληαο έκθαζε ζηε ζρεηηθά κηθξή πνζφηεηα αιιαγψλ πνπ πξαγκαηνπνηήζεθαλ. Έλα απφ ηα ζεκαληηθφηεξα λέα ραξαθηεξηζηηθά ηεο έθδνζεο 4.2 ήηαλ ην πιαίζην κε ηηο γξήγνξεο ξπζκίζεηο. Έλα λέν εηθνλίδην πξνζηέζεθε ζηελ πάλσ δεμηά γσλία ηνπ πιαηζίνπ ησλ εηδνπνηήζεσλ ην νπνίν κπνξνχζε λα ελαιιάζζεηαη αλάκεζα ζηελ νζφλε ησλ εηδνπνηήζεσλ θαη ηελ νζφλε ησλ γξήγνξσλ ξπζκίζεσλ. Μέζσ ησλ ξπζκίζεσλ απηψλ ήηαλ επθνιφηεξε ε πξφζβαζε ζηελ θσηεηλφηεηα νζφλεο, ζηηο ζπλδέζεηο δηθηχνπ θαη ζηελ ρξήζε δεδνκέλσλ θαη κπαηαξίαο. ηελ έθδνζε απηή έθαλε ηελ εκθάληζή ηνπ πξψηε θνξά θαη έλα λέν είδνο πιεθηξνινγίνπ νζφλεο, κε ην νπνίν ήηαλ δπλαηή ε πιεθηξνιφγεζε ιέμεσλ πεξλψληαο ην δάρηπιν πάλσ απφ θάζε γξάκκα θξαηψληαο ην πάλσ ζηελ νζφλε θαη φρη παηψληαο θάζε γξάκκα μερσξηζηά. ηα ηέιε Ηνπιίνπ ηνπ 2013, θπθινθφξεζε ε έθδνζε 4.3 κε ην ίδην φλνκα. Ζ έθδνζε απηή ήηαλ κηα έθδνζε κε κεδακηλέο αιιαγέο. Οη εθαξκνγέο πιένλ κπνξνχζαλ λα αλαβαζκίδνληαη κέζσ ηνπ Play Store θαη αθνχ θπθινθφξεζαλ αλαβαζκίζεηο γηα ηηο εθαξκνγέο Gmail, Maps, Books, Music, Hangouts, Keep, θαη Play Games ε ζην δηάζηεκα αλάκεζα ζηελ έθδνζε 4.2 θαη ηελ 4.3 ε ηειεπηαία έθδνζε δελ είρε θάπνηα ζεκαληηθή αιιαγή. Αληηζέησο, εάλ δελ είραλ βγεη μερσξηζηά νη λέεο εθδφζεηο ησλ εθαξκνγψλ απηψλ αιιά θπθινθνξνχζαλ φιεο, καδί κε ηελ αλαβάζκηζε ηνπ ινγηζκηθνχ, ε έθδνζε 4.3 ζα ήηαλ ε κεγαιχηεξε έθδνζε πνπ ζα είρε θπθινθνξήζεη. 1.2.10. Android 4.4 KitKat Ζ έθδνζε KitKat θπθινθφξεζε ηνλ Οθηψβξην ηνπ 2013 θαη είρε πνιιέο θαη ζεκαληηθέο βειηηψζεηο. Σν UI θαη UX έρνπλ αιιάμεη θαη έρνπλ βειηησζεί ζηα ζεκεία. Απηφ ζεκαίλεη φηη ηα γξαθηθά είλαη ιίγν δηαθνξεηηθά θαη ε εκπεηξία ρξήζεο ηνπ Android KitKat θαιχηεξε απφ πνηέ. εκαληηθή αιιαγή είλαη ε απψιεηα ησλ notification bar θαη control bar, ηα νπνία είλαη πιένλ δηάθαλα. ειίδα 19 απφ 85

Ζ Google ζηελ έθδνζε απηή πξνζπάζεζε λα επηθεληξσζεί ζηελ ρακειφηεξε ρξήζε κλήκεο ζε φιν ην ινγηζκηθφ θηάλνληαο κέρξη θαη 340MB ρξήζεο ηεο κλήκεο RAM. Δπηπιένλ, πξνζηέζεθε έλα λέν ραξαθηεξηζηηθφ θσλεηηθψλ εληνιψλ ζηελ αξρηθή νζφλε. Κάζε θνξά πνπ ε θεληξηθή νζφλε ήηαλ αλνηρηή, ν ρξήζηεο ιέγνληαο "OK Google" κπνξνχζε λα πξαγκαηνπνηήζεη δηάθνξεο ελέξγεηεο, φπσο αλαδήηεζε, πξαγκαηνπνίεζε θιήζεο, απνζηνιή κελχκαηνο, νξηζκφο μππλεηεξηνχ θιπ. 1.2.11. Android 5.0 Lollipop Σν Material Design, ε λέα θηινζνθία ηεο Google ζην ζρεδηαζκφ Android θαη Chrome, θπξηαξρεί ζην λέν Android Lollipop, κε ηελ πιαηθφξκα λα έρεη πιένλ θαζαξφηεξν ζρεδηαζκφ, κε αξθεηέο νπηηθέο αιιαγέο, αλαλεσκέλν multi-tasking menu θαη αξθεηνχο λένπο ηξφπνπο αιιειεπίδξαζεο αλάκεζα ζε ζπζθεπή θαη ρξήζηε κέζσ θσλεηηθψλ εληνιψλ. Αιιαγέο ππάξρνπλ ζηα notifications (φπνπ, κεηαμχ άιισλ, πιένλ νη ρξήζηεο κπνξνχλ λα ιακβάλνπλ εηδνπνηήζεηο κφλν απφ επηιεγκέλα άηνκα αιιά θαη λα ηα βιέπνπλ ζην lockscreen ηεο ζπζθεπήο ηνπο) ελψ ην battery saver mode επεθηείλεη ηε δσή ηεο κπαηαξίαο γηα έσο 90 ιεπηά, ππνζηήξημε πνιιαπιψλ ινγαξηαζκψλ ρξεζηψλ, guest user modes θαη λένη ηξφπνη λα έρεη θάζε ρξήζηεο αζθαιή πξφζβαζε ζηε ζπζθεπή ηνπ ζε πεξηβάιινληα πνπ εκπηζηεχεηαη. Δπηπξφζζεηα κε ηηο νπηηθέο αιιαγέο θαη ηα άιια λέα ραξαθηεξηζηηθά, ην Lollipop θέξλεη 5.000 λέα APIs γηα ηνπο developers, ελψ επηηξέπεη ηε ζπλεξγαζία πνιιψλ δηαθνξεηηθψλ ζπζθεπψλ Android. Πξφθεηηαη γηα έλα πνιχ κεγάιν release γηα ηε Google, πνπ απνηειεί ην πξψην βήκα πξνο ην κέιινλ ηνπ ιεηηνπξγηθνχ Android σο κία πιαηθφξκα πνπ δε ζα αθνξά κφλν smartphones θαη tablets. ειίδα 20 απφ 85

1.3. Δπίλογορ Ζ αγνξά θηλεηψλ ζπζθεπψλ ήηαλ ηειείσο δηαθνξεηηθή κέρξη ην Android λα θάλεη γηα πξψηε θνξά ηελ εκθάληζή ηνπ. Πιένλ θπθινθνξνχλ ζηελ αγνξά πεξηζζφηεξεο απφ έλα δηζεθαηνκκχξην ζπζθεπέο smartphone θαη tablet. Απηή ε αθκή ηνπ Android ψζεζε φιν θαη πεξηζζφηεξνπο πξνγξακκαηηζηέο λα αζρνιεζνχλ κε ηνλ πξνγξακκαηηζκφ εθαξκνγψλ θηλεηψλ ζπζθεπψλ. Γηα ηε δηεπθφιπλζε ησλ πξνγξακκαηηζηψλ, ηα ήδε ππάξρνληα πεξηβάιινληα αλάπηπμεο εθαξκνγψλ πξνζάξκνζαλ ην πεξηερφκελφ ηνπο, έηζη ψζηε ε δηαδηθαζία ηνπ πξνγξακκαηηζκνχ λα γίλεη επθνιφηεξε θαη πην γξήγνξε. ειίδα 21 απφ 85

2. Ππογπαμμαηιζμόρ και ανάπηςξη εθαπμογών ζε πεπιβάλλον Android 2.1. Διζαγυγή Όηαλ ην Android έθαλε ηελ εκθάληζή ηνπ δελ ππήξρε θάπνην πεξηβάιινλ, ην νπνίν λα έρεη ζρεδηαζηεί απνθιεηζηηθά γηα ηνλ πξνγξακκαηηζκφ εθαξκνγψλ θηλεηψλ ζπζθεπψλ. Γηα ην ιφγν απηφ ε Google αλέπηπμε ηε βηβιηνζήθε Android SDK ( Software Development Kit). Ζ βηβιηνζήθε Android SDK είλαη γξακκέλε ζε γιψζζα Java. Ζ Google επέιεμε λα ρξεζηκνπνηήζεη ηε γιψζζα απηή, θαζψο ήηαλ ε πην δηαδεδνκέλε γιψζζα πξνγξακκαηηζκνχ θαη ήηαλ κηα γιψζζα αλνηρηνχ θψδηθα. ηφρεπε ινηπφλ ζηελ απφθηεζε κεγάινπ θνηλνχ πξνγξακκαηηζηψλ. Ζ βηβιηνζήθε απηή παξέρεη εξγαιεία πνπ ρξεηάδνληαη ζηελ αλάπηπμε εθαξκνγψλ Android, φπσο εμνκνησηέο, κεηαγιψηηηζε πεγαίνπ θψδηθα θ.α. [32] Μέρξη θαη ζήκεξα έρνπλ ρξεζηκνπνηεζεί δηάθνξα πεξηβάιινληα γηα ηελ αλάπηπμε εθαξκνγψλ θηλεηψλ ζπζθεπψλ, ηα νπνία ελζσκαηψλνπλ ηελ βηβιηνζήθε Android SDK. Σα πην γλσζηά απφ απηά είλαη ηα: IntelliJ IDE Eclipse IDE Android Studio 2.2. Πεπιβάλλονηα ανάπηςξηρ εθαπμογών 2.2.1. IntelliJ IDE Ζ πξψηε έθδνζε ηνπ Intellij IDE αλαπηχρζεθε απφ ηνπο JetBrains. Κπθινθφξεζε ηνλ Ηαλνπάξην ηνπ 2001 θαη απνηέιεζε έλα απφ ηα πξψηα νινθιεξσκέλα πεξηβάιινληα αλάπηπμεο θπξίσο ζε Java. Δθηφο ηεο Java παξέρεη ππνζηήξημε θαη γηα άιιεο γιψζζεο πξνγξακκαηηζκνχ, φπσο: JavaScript ειίδα 22 απφ 85

HTML/XHTML/CSS XML/XSL Ruby Python SQL Απηή ηε ζηηγκή ε ηξέρνπζα έθδνζε ηεο πιαηθφξκαο είλαη ε 13.1.5 ε νπνία θπθινθφξεζε ηνλ επηέκβξην ηνπ 2014. Μπνξεί λα ηξέμεη ζε ιεηηνπξγηθά ζπζηήκαηα OS X, Linux θαη Windows θαη ππνζηεξίδεη πνιιέο ηερλνινγίεο θαη frameworks, φπσο: Android Ajax Hibernate Ruby on Rails Spring Web services Σν πεξηβάιινλ απηφ πεξηέρεη ιεηηνπξγίεο πνπ δηεπθνιχλνπλ ηε δνπιεηά ησλ πξνγξακκαηηζηψλ. Ζ ζεκαληηθφηεξε ππεξεζία είλαη ν αλαπηπγκέλνο θεηκελνγξάθνο, ν νπνίνο παξέρεη ππεξεζίεο φπσο ε απηφκαηε παξαγσγή θψδηθα, ε αλάιπζε θψδηθα θαηά ηελ πιεθηξνιφγεζε, ν έιεγρνο ιαζψλ θαη παξαιήςεσλ θαηά ηελ πιεθηξνιφγεζε θ.α. [33] Ζ αλάπηπμε εθαξκνγψλ Android κπνξεί λα πξαγκαηνπνηεζεί έρνληαο θαηεβάζεη ην Android SDK. Πξέπεη λα γίλεη εηζαγσγή ηεο βηβιηνζήθεο ζηελ πιαηθφξκα θαη ζηε ζπλέρεηα ν πξνγξακκαηηζηήο είλαη έηνηκνο λα ρξεζηκνπνηήζεη ην πεξηβάιινλ ηνπ IntelliJ. ειίδα 23 απφ 85

Δικόνα 4: Το πεπιβάλλον ηος IntelliJ IDE 2.2.2. Eclipse IDE Σν Eclipse απνηειεί έλα νινθιεξσκέλν πεξηβάιινλ αλάπηπμεο (integrated development environment, IDE) θαη κηα επξχηαηα δηαδεδνκέλε πιαηθφξκα αλάπηπμεο εθαξκνγψλ. Αλαπηχρζεθε αξρηθά απφ ηελ IBM αιιά απνηειεί πιένλ έξγν αλνηθηνχ θψδηθα θαη ππνζηεξίδεηαη απφ δεθάδεο εηαηξείεο. Υξεζηκνπνηείηαη θπξίσο γηα αλάπηπμε εθαξκνγψλ ζε γιψζζα Java αιιά κπνξεί λα ρξεζηκνπνηεζεί γηα αξθεηέο γιψζζεο πξνγξακκαηηζκνχ, ζπκπεξηιακβαλνκέλσλ ησλ: C C++ Java Perl Php Python ειίδα 24 απφ 85

ην εξγαιείν απηφ πξέπεη λα ελζσκαησζεί ην Android SDK, ψζηε λα είλαη δπλαηή ε αλάπηπμε εθαξκνγψλ γηα θηλεηέο ζπζθεπέο ζηελ ελ ιφγσ πιαηθφξκα. [15][16] Δικόνα 5: Το πεπιβάλλον ηος Eclipse IDE 2.2.3. Android Studio Σν Android Studio απνηειεί έλα λέν πεξηβάιινλ αλάπηπμεο εθαξκνγψλ Android πνπ βαζίδεηαη ζην πεξηβάιινλ IntelliJ IDE. Ζ θπθινθνξία ηνπ αλαθνηλψζεθε ζηηο 16 Μαίνπ 2013 ζην ζπλέδξην Google I/O πνπ νξγαλψλεη θάζε ρξφλν ε Google. Παξέρεη ζηνπο πξνγξακκαηηζηέο θαηλνχξηα ραξαθηεξηζηηθά θαη βειηηψζεηο απφ ην Eclipse ADT πνπ έσο ηψξα ήηαλ ην πξνηεηλφκελν πεξηβάιινλ απφ ηε Google. Μαδί κε ηηο δπλαηφηεηεο ηνπ IntelliJ, ην Android Studio πξνζθέξεη αξθεηέο αθφκε. Κάπνηεο απφ απηέο ηηο δπλαηφηεηεο είλαη νη εμήο: ειίδα 25 απφ 85

Πινχζην επεμεξγαζηή θεηκέλνπ κε ππνζηήξημε επεμεξγαζίαο ζεκάησλ Δλζσκαησκέλε ππνζηήξημε γηα ηελ Cloud πιαηθφξκα ηεο Google Γηεπξπκέλε ππνζηήξημε πξνηχπσλ γηα ηηο ππεξεζίεο ηεο Google θαη γηα δηάθνξνπο ηχπνπο ζπζθεπψλ Σν Android Studio κέρξη ζηηγκήο βξίζθεηαη ζε πηινηηθή κνξθή (Beta). Όηαλ ηειεηνπνηεζεί ε ηξέρνπζα έθδνζε, ζα απνηειέζεη ην επίζεκν νινθιεξσκέλν πεξηβάιινλ αλάπηπμεο εθαξκνγψλ Android. [30][31] Δικόνα 6: Το πεπιβάλλον ηος Android Studio 2.3. Τα ζςζηαηικά μέπη μιαρ Android εθαπμογήρ Με ηνλ φξν απηφ ραξαθηεξίδνληαη ηα απαξαίηεηα δνκηθά ζηνηρεία κηαο εθαξκνγήο, ηα νπνία απνηεινχλ έλα κέζν πξφζβαζεο ηνπ ιεηηνπξγηθνχ ζπζηήκαηνο ζηελ εθαξκνγή καο. ειίδα 26 απφ 85

Δπηιέγνληαο έλα νινθιεξσκέλν πεξηβάιινλ αλάπηπμεο Android εθαξκνγψλ θαη ελζσκαηψλνληαο ηε βηβιηνζήθε Android SDK, παξέρνληαη ζηνπο πξνγξακκαηηζηέο ηα απαξαίηεηα απηά δνκηθά ζηνηρεία, ηα νπνία είλαη: Γπαζηηπιόηηηερ (Activities): Έλα Activity απνηειεί ην βαζηθφηεξν ζεκείν ελφο User Interface. Κάζε εθαξκνγή απνηειείηαη απφ έλα ηνπιάρηζηνλ Activity ή πεξηζζφηεξα εάλ ρξεζηκνπνηεί πεξηζζφηεξεο απφ κία νζφλεο δηάδξαζεο.δίλαη δειαδή ην γξαθηθφ πεξηβάιινλ ην νπνίν βιέπεη ν ρξήζηεο. Θπαύζμαηα (Fragments): Έλα Fragment αληηπξνζσπεχεη κηα ζπκπεξηθνξά ή έλα ηκήκα ηεο δηεπαθήο ρξήζηε ζε κηα δξαζηεξηφηεηα. Μπνξνχκε λα ζπλδπάζνπκε πνιιά Fragments ζε κηα εληαία δξαζηεξηφηεηα γηα ηελ θαηαζθεπή ελφο πνιχηκεκαηηθνχ UI ή λα επαλαρξεζηκνπνηήζνπκε έλα θνκκάηη ζε πνιιαπιέο δξαζηεξηφηεηεο. Μπνξνχκε λα ζθεθηνχκε έλα Fragment σο έλα αξζξσηφ ηκήκα κηαο δξαζηεξηφηεηαο, ην νπνίν έρεη ην δηθφ ηνπ θχθιν δσήο, ιακβάλεη ηα δηθά ηνπ γεγνλφηα εηζφδνπ θαη ην νπνίν κπνξνχκε λα πξνζζέζνπκε ή λα αθαηξέζνπκε ελψ ε δξαζηεξηφηεηα εθηειείηαη. Σηοισεία διαλόγος (Toasts and dialogs): Σα πιαίζηα δηαιφγνπ είλαη έλα θνηλφ ζηνηρείν UI ζε δηάθνξνπο ηχπνπο εθαξκνγψλ desktop, web ή mobile. Υξεζηκνπνηείηαη γηα λα βνεζήζεη ηνπο ρξήζηεο λα απαληήζνπλ ζε εξσηήζεηο, λα θάλνπλ επηινγέο, λα επηβεβαηψζνπλ ελέξγεηεο θαη εκθαλίδνπλ κελχκαηα πξνεηδνπνίεζεο ή ζθαικάησλ. Σα παξάζπξα δηαιφγνπ ζην Android είλαη κεξηθψο δηαθαλή ζηνηρεία UI πνπ επηζθηάδνπλ κεξηθψο ην γξαθηθφ πεξηβάιινλ απφ ην νπνίν θιήζεθαλ. Πποθέζειρ (Intents): Σα Intents είλαη απφ ηα ζεκαληηθφηεξα ζπζηαηηθά ηεο πιαηθφξκαο θαη πεξηγξάθνπλ έλα κήλπκα ζπζηήκαηνο, φπσο έλα ζπκβάλ πνπ πξνθιήζεθε απφ κηα εθαξκνγή κεηά απφ ρεηξηζκφ ηνπ ρξήζηε, κηα αιιαγή ζηελ θαηάζηαζε κηαο hardware ζπζθεπήο θ.α. Σα κελχκαηα απηά παξάγνληαη θαη "θπθινθνξνχλ" ζην ζχζηεκα θαζ' φιε ηε δηάξθεηα ιεηηνπξγίαο ηεο ζπζθεπήο θαη ελεκεξψλνπλ ηηο εθαξκνγέο γηα θάζε είδνπο αιιαγή. ειίδα 27 απφ 85

Υπηπεζίερ (Services): Μηα ππεξεζία κπνξεί λα ιεηηνπξγεί ζην παξαζθήλην αθφκε θαη φηαλ ν ρξήζηεο βξίζθεηαη ζε κηα δηαθνξεηηθή εθαξκνγή. Πάποσοι Πεπιεσομένος (Content Providers): Οη Content Providers απνηεινχλ ηνλ πξνηηκφηεξν ηξφπν δηακνηξαζκνχ δεδνκέλσλ. Δίλαη έλα κέζν κφληκεο απνζήθεπζεο θαη ζπλήζσο αιιειεπηδξνχλ κε SQL βάζεηο δεδνκέλσλ. Γιεπγαζίερ και νήμαηα (Processes and Threads): Κάζε εθαξκνγή ηξέρεη ζηε δηθή ηεο δηαδηθαζία θαη φια ηα ζηνηρεία ηεο ηξέρνπλ ζηελ δηαδηθαζία απηή. Σν Android έρεη ηε δπλαηφηεηα λα θιείζεη κηα δηαδηθαζία, φηαλ ε κλήκε είλαη ρακειή θαη πξέπεη λα εμππεξεηεζνχλ άιιεο δηαδηθαζίεο πνπ έρνπλ πξνηεξαηφηεηα. Γηα ηελ απνθπγή νπνηαζδήπνηε δηαθνπήο ηεο εθαξκνγήο ζα πξέπεη ε δξαζηεξηφηεηα λα γίλεη ζε λέν λήκα (thread) γηα λα κελ ππάξρεη επηβξάδπλζε ζηε δηεπαθή ηνπ ρξήζηε. Γικαιώμαηα (Permisions): Γηα ηελ πξνζηαζία ησλ δεδνκέλσλ ησλ ρξεζηψλ θαη ησλ ραξαθηεξηζηηθψλ ησλ ζπζθεπψλ, κηα εθαξκνγή δελ έρεη δηθαηψκαηα ψζηε λα κπνξεί λα έρεη πξφζβαζε ζε απηά απφ πξνεπηινγή. Γηα λα απνθηήζεη πξφζβαζε ζηα ραξαθηεξηζηηθά απηά πξέπεη λα ζπκπεξηιεθζνχλ ζην αξρείν AndroidManifest.xml κία ή πεξηζζφηεξεο εηηθέηεο <uses-permision> πνπ λα πεξηγξάθνπλ ηα δηθαηψκαηα πνπ ρξεηάδεηαη ε εθαξκνγή. [9] Μεξηθά παξαδείγκαηα δηθαησκάησλ, ηα νπνία ζπκπεξηιακβάλνληαη ζην αξρείν AndroidManifest είλαη ηα εμήο: <uses-permission android:name="android.permission.internet" /> <uses-permission android:name="android.permission.access_network_state" /> <uses-permission android:name="android.permission.read_external_storage" /> <uses-permission android:name="android.permission.wake_lock" /> ειίδα 28 απφ 85

2.4. Πεπιβάλλον ανάπηςξηρ μιαρ εθαπμογήρ Android και δομικά ζηοισεία ενόρ project 2.4.1. Πλαηθόπμα Eclipse Ζ πιαηθφξκα πνπ ρξεζηκνπνηήζεθε γηα ηελ αλάπηπμε θαη απνζθαικάησζε ηεο εθαξκνγήο είλαη ην πεξηβάιινλ Eclipse. θαη γηα ηελ νινθιήξσζή ηεο εθαξκνγήο ρξεζηκνπνηήζεθαλ επίζεο ηα εξγαιεία ηεο Google γηα αλάπηπμε εθαξκνγψλ (Android Development Σνols Plug-in). 2.4.1.1. Γομή ενόρ Project ζηο Eclipse Αθνχ δεκηνπξγεζεί έλα λέν project ζηελ πιαηθφξκα Eclipse, ε δνκή ηνπ έρεη ηε κνξθή πνπ θαίλεηαη ζηελ εηθφλα 7. Δικόνα 7: Γομή ενόρ project ζηο Eclipse ειίδα 29 απφ 85

ηα αξηζηεξά βξίζθνληαη νη θάθεινη κε ην πεξηερφκελν ηεο εθαξκνγήο, ελψ ζηα δεμηά βξίζθεηαη ν text editor φπνπ αλνίγνπλ ηα αξρεία γηα επεμεξγαζία. ην θάησ κέξνο βξίζθνληαη άιια ρξήζηκα εξγαιεία φπσο γηα παξάδεηγκα ε θαξηέια Log Cat, φπνπ ζπιιέγνληαη εληνπίδνληαη θαη πξνβάιινληαη ηα ζθάικαηα ζηελ έμνδν ηνπ ζπζηήκαηνο. ην Android ηα αξρεία ηεο εθαξκνγήο πξέπεη λα βξίζθνληαη ζε ζπγθεθξηκέλεο ζέζεηο κέζα ζην project. Όηαλ ηξέρεη ε εθαξκνγή ζα πξέπεη λα βξίζθνληαη φια ηα αξρεία ζηε ζέζε ηνπο, δηαθνξεηηθά ε εθαξκνγή δε ζα ιεηηνπξγήζεη ζσζηά. ηα αξρεία ηεο εθαξκνγήο πεξηιακβάλνληαη αξρεία XML θαη θψδηθαο Java. Μηα πην αλαιπηηθή απεηθφληζε ηεο δνκήο ηνπ εζσηεξηθνχ ελφο project απνηειεί ε εηθφλα 8. [10][11] Δικόνα 8: Αναλςηικόηεπη δομή ηυν θακέλυν και ηυν απσείυν ζηο πεπιβάλλον Eclipse ειίδα 30 απφ 85

Φάκελορ src: Ο θάθεινο απηφο πεξηέρεη φια ηα αξρεία ζηα νπνία εθηεινχκε θψδηθα ζε Java. Απηά κπνξεί λα είλαη απιέο δεισκέλεο θιάζεηο ή νιφθιεξεο ιεηηνπξγίεο. Φάκελορ gen: απηφκαηα. ηνλ θάθειν απηφ πεξηέρνληαη πφξνη, νη νπνίνη δεκηνπξγήζεθαλ Φάκελορ assets: Ο θάθεινο απηφο απνηειεί κηα απζαίξεηε ζπιινγή απφ αξρεία θαη θαθέινπο. Φάκελορ libs: ηνλ θάθειν απηφ βξίζθνληαη νη βηβιηνζήθεο νη νπνίεο πεξηέρνπλ έλα ζχλνιν αξρείσλ JAR. Φάκελορ res: Ο θάθεινο απηφο πεξηέρεη ηνπο πφξνπο ηηο εθαξκνγήο. Απνηειεί θάθειν γνλέα ησλ drawable, anim, layout, menu, value, xml θαη raw Φάκελορ drawable [h/l/m]dpi: ηνλ θάθειν βξίζθνληαη νη εηθφλεο πνπ ρξεζηκνπνηνχληαη ζηελ εθαξκνγή. Φάκελορ layout: ε απηφλ ηνλ θάθειν βξίζθνληαη ηα αξρεία πνπ θαζνξίδνπλ ηελ φςε θαη ηα γξαθηθά ηεο εθαξκνγήο. Φάκελορ values: Ο θάθεινο απηφο πεξηέρεη πφξνπο πνπ ρξεζηκνπνηεί ε εθαξκνγή, φπσο strings ή ρξψκαηα. Φάκελορ menu: ηνλ θάθειν απηφ βξίζθνληαη αξρεία XML πνπ πεξηγξάθνπλ ηα κελνχ ηεο εθαξκνγήο. Απσείο AndroidManifest: Σν αξρείν απηφ είλαη έλα αξρείν XML. ε απηφ νξίδνληαη ηα activities content providers, services θαη intent recievers ηεο εθαξκνγήο. Αθφκε, νξίδνληαη νη άδεηεο πνπ απαηηνχληαη απφ ηελ εθάζηνηε εθαξκνγή. [8] ειίδα 31 απφ 85

2.4.1.2. Δξομοιυηήρ Ζ πιαηθφξκα Eclipse δίλεη ηε δπλαηφηεηα ηεο ρξήζεο ελφο εμνκνησηή κηαο εηθνληθήο θηλεηήο ζπζθεπήο, ψζηε ε δηαδηθαζία αλάπηπμε κηαο εθαξκνγήο λα γίλεηαη επθνιφηεξε. Ο εμνκνησηήο απηφο παξέρεηαη απφ ην ADT Plug-in ηνπ Eclipse θαη πξνζθέξεη πνιιέο δπλαηφηεηεο. Πξηλ ηξέμεη ηελ εθαξκνγή ηνπ ζηνλ εμνκνησηή ν πξνγξακκαηηζηήο κπνξεί λα επηιέμεη ζε πνηα έθδνζε Android ζα εκθαληζηνχλ ηα απνηειέζκαηα θαη έηζη ηνπ δίλεηαη ε δπλαηφηεηα λα αλαθαιχςεη πηζαλά πξνβιήκαηα ζηηο δηάθνξεο εθδφζεηο. Δικόνα 9: Δξοιμοιυηήρ ηος ADT Plug - in Αθνχ αλνίμεη ε εθαξκνγή ζηνλ εμνκνησηή, παξέρνληαη ζηνλ πξνγξακκαηηζηή αξθεηέο δπλαηφηεηεο. Γηα παξάδεηγκα έρεη πξφζβαζε ζην ίληεξλεη, παξέρνληαη δηάθνξα πιήθηξα πνπ βνεζνχλ ζηελ πινήγεζε ζηηο δηάθνξεο νζφλεο ηεο εθαξκνγήο, κπνξεί λα αλαπαξάγεη ήρνπο θαη βίληεν, λα απνζεθεχεη δεδνκέλα, λα δέρεηαη εηδνπνηήζεηο θ.α. [34][35] ειίδα 32 απφ 85

2.5. Δπίλογορ Όια ηα παξαπάλσ απνηεινχλ ηα ζεκέιηα γηα ηελ αλάπηπμε κηαο εθαξκνγήο Android. Παξ φια απηά ε πιεηνςεθία ησλ εθαξκνγψλ αιιειεπηδξά κε δηαθνκηζηέο (Servers). Έηζη γίλεηαη αλαγθαία ε ρξήζε άιισλ γισζζψλ θαη ηερλνινγηψλ. ην επφκελν θεθάιαην αλαιχνληαη νη γιψζζεο θαη νη ηερλνινγίεο πνπ ρξεζηκνπνηήζεθαλ ζηελ δηεθπεξαίσζε ηεο παξνχζαο πηπρηαθήο εξγαζίαο. ειίδα 33 απφ 85

3. Απσιηεκηονική και ηεσνολογίερ πος σπηζιμοποιήθηκαν 3.1. Διζαγυγή ε απηφ ην θεθάιαην ζα πεξηγξαθνχλ νη γιψζζεο θαη νη ηερλνινγίεο πνπ ρξεζηκνπνηήζεθαλ θαη ζα παξνπζηαζηνχλ παξαδείγκαηα, ηα νπνία απνηεινχλ θνκκάηη ηεο εθαξκνγήο πνπ πινπνηήζεθε. Αθφκε ζα αλαθεξζνχλ ηα πξνγξακκαηηζηηθά πεξηβάιινληα πνπ βνήζεζαλ ζηελ εθπφλεζε ηεο πηπρηαθήο εξγαζίαο. 3.2. Γλώζζερ ππογπαμμαηιζμού 3.2.1. Java Οη εθαξκνγέο ζην Android γξάθνληαη ζηε γιψζζα πξνγξακκαηηζκνχ Java, φπσο αλαθέξζεθε ζε πξνεγνχκελν θεθάιαην. Ζ Java είλαη κηα αληηθεηκελνζηξεθήο γιψζζα πξνγξακκαηηζκνχ πνπ μεθίλεζε ηνλ Ηνχλην ηνπ 1991 σο έλα έξγν πνπ νλνκαδφηαλ "Oak", απφ κία κηθξή νκάδα κεραληθψλ ηεο Sun Microsystems. Ζ νκάδα απηή νλνκαδφηαλ "Πξάζηλε Οκάδα" κε επηθεθαιήο ηεο νκάδαο απηήο ηνλ James Gosling. Σα ππφινηπα κέιε ηεο νκάδαο ήηαλ νη Mike Sheridan θαη Patrick Naughton. Ο ζηφρνο ήηαλ ε αλάπηπμε κίαο γιψζζαο πνπ ζα ήηαλ αλεμάξηεηε πιαηθφξκαο, δειαδή εχθνια ζα «έπαηδε» παληνχ. Ζ Java έκνηαδε κε ηελ C γιψζζα - ζαλ ζπκβνιηζκφο, αιιά κε κεγαιχηεξε νκνηνκνξθία θαη απιφηεηα απφ ηελ C / C ++. Ζ πξψηε επίζεκε θπθινθνξία ηεο Java 1.0 έγηλε ην 1995 απφ ηελ Sun Microsystems. Έλα απφ ηα βαζηθά πιενλεθηήκαηα ηεο Java έλαληη ησλ πεξηζζφηεξσλ άιισλ γισζζψλ είλαη ε αλεμαξηεζία ηνπ ιεηηνπξγηθνχ ζπζηήκαηνο θαη πιαηθφξκαο. Σα πξνγξάκκαηα πνπ είλαη γξακκέλα ζε Java ηξέρνπλε αθξηβψο ην ίδην ζε Windows, Linux, Unix θαη Macintosh (ζχληνκα ζα ηξέρνπλ θαη ζε Playstation θαζψο θαη ζε άιιεο θνλζφιεο παηρληδηψλ) ρσξίο λα ρξεηαζηεί λα μαλαγίλεη κεηαγιψηηηζε (compiling) ή λα αιιάμεη ν πεγαίνο θψδηθαο γηα θάζε δηαθνξεηηθφ ιεηηνπξγηθφ ζχζηεκα. Γηα λα επηηεπρζεί φκσο απηφ ρξεηαδφηαλ θάπνηνο ηξφπνο έηζη ψζηε ηα πξνγξάκκαηα γξακκέλα ζε Java λα κπνξνχλ λα είλαη «θαηαλνεηά» απφ θάζε ππνινγηζηή αλεμάξηεηα ηνπ είδνπο ειίδα 34 απφ 85

επεμεξγαζηή (Intel x86, IBM, Sun SPARC, Motorola) αιιά θαη ιεηηνπξγηθνχ ζπζηήκαηνο (Windows, Unix, Linux, BSD, MacOS). Ο ιφγνο είλαη φηη θάζε θεληξηθή κνλάδα επεμεξγαζίαο θαηαλνεί δηαθνξεηηθφ θψδηθα κεραλήο. Ο ζπκβνιηθφο θψδηθαο (assembly) πνπ κεηαθξάδεηαη θαη εθηειείηαη ζε Windows είλαη δηαθνξεηηθφο απφ απηφλ πνπ κεηαθξάδεηαη θαη εθηειείηαη ζε έλαλ ππνινγηζηή Macintosh. Ζ ιχζε δφζεθε κε ηελ αλάπηπμε ηεο Δηθνληθήο Mεραλήο (Virtual Machine ή VM ή ΔΜ ζηα ειιεληθά). [28] Γηα λα γξάςεη θάπνηνο θψδηθα Java δε ρξεηάδεηαη ηίπνηα άιιν παξά έλαλ επεμεξγαζηή θεηκέλνπ, φπσο ην εκεησκαηάξην (Notepad) ησλ Windows ή ν vi (γλσζηφο ζην ρψξν ηνπ Unix). Παξφια απηά, έλα νινθιεξσκέλν πεξηβάιινλ αλάπηπμεο (IDE) βνεζάεη πνιχ, ηδηαίηεξα ζηνλ εληνπηζκφ ζθαικάησλ (debugging). Τπάξρνπλ αξθεηά δηαζέζηκα, ελψ πνιιά απφ απηά έξρνληαη δσξεάλ. [29] 3.2.2. PHP H PHP (Hypertext Preprocessor) απνηειεί κηα επξέσο ρξεζηκνπνηνχκελε γιψζζα πξνγξακκαηηζκνχ γεληθνχ ζθνπνχ (general - purpose), ε νπνία κπνξεί λα ρξεζηκνπνηεζεί γηα αλάπηπμε ηζηνζειίδσλ θαη κπνξεί λα ελζσκαησζεί ζε HTML θψδηθα. πλήζσο ρξεζηκνπνηείηαη γηα ηε ζπγγξαθή θψδηθα απφ ηελ πιεπξά ηνπ δηαθνκηζηή. Μπνξεί λα αλαπηπρζεί ζηνπο πεξηζζφηεξνπο web servers, λα ηξέμεη ζρεδφλ ζε θάζε ιεηηνπξγηθφ ζχζηεκα θαη πιαηθφξκα θαη λα ρξεζηκνπνηεζεί κε ηα πεξηζζφηεξα ζπζηήκαηα δηαρείξηζεο βάζεσλ δεδνκέλσλ (DBMS). ε αληίζεζε κε ηηο απιέο HTML ζειίδεο νη νπνίεο απνζηέιινληαη άκεζα ζε έλαλ πειάηε, κία ζειίδα PHP πξψηα κεηαγισηηίδεηαη ζην web server θαη ζηε ζπλέρεηα απνζηέιιεηαη. Απηφ γίλεηαη κε ζθνπφ λα κελ επεξεαζηνχλ ηα HTML ζηνηρεία ζηνλ πεγαίν θψδηθα αιιά λα κεηαγισηηηζηεί κφλν ην πεξηερφκελν πνπ είλαη γξακκέλν ζε PHP. Ζ PHP απνηειεί έλα ρξήζηκν εξγαιείν γηα ηελ πξαγκαηνπνίεζε ηεο επηθνηλσλίαο αλάκεζα ζηνλ ρξήζηε θαη ζηνλ δηαθνκηζηή. πλήζσο επηιέγεηαη γηα ην απιφ θαη θαηαλνεηφ ζπληαθηηθφ ηεο, γηα ηνλ κεγάιν αξηζκφ δηαζέζηκσλ παξαδεηγκάησλ, ειίδα 35 απφ 85

βνεζεκάησλ θαη βηβιηνζεθψλ πνπ παξέρνπλ ιεηηνπξγηθφηεηα θαη ηέινο γηα ηελ επθνιία ζηελ εγθαηάζηαζή ηεο θαη ζηε δηαρείξηζε ησλ βάζεσλ δεδνκέλσλ. [1][17][18] Δικόνα 10: Τπόπορ λειηοςπγίαρ ηηρ PHP Κάπνηα απφ ηα βαζηθά πιενλεθηήκαηα ηεο PHP έλαληη άιισλ γισζζψλ, φπσο ε Perl, ην Microsoft ASP.NET, ην Ruby θ.α. είλαη : Ζ πςειή απφδνζε Ζ θιηκάθσζε Οη δηαζπλδέζεηο κε πνιιά δηαθνξεηηθά ζπζηήκαηα βάζεσλ δεδνκέλσλ Οη ελζσκαησκέλεο βηβιηνζήθεο γηα πνιιέο ζπλεζηζκέλεο Web δηαδηθαζίεο Σν ρακειφ θφζηνο Ζ επθνιία κάζεζεο θαη ρξήζεο Ζ δπλαηή αληηθεηκελνζηξαθή ππνζηήξημε Ζ κεηαθεξζηκφηεηα ειίδα 36 απφ 85

3.2.3. MySQL Ζ MySQL απνηειεί έλα δπλαηφ θαη γξήγνξν, επξέσο δηαδεδνκέλν, αλνηρηνχ θψδηθα ζχζηεκα δηαρείξηζεο ζρεζηαθψλ βάζεσλ δεδνκέλσλ. Μπνξεί λα ρξεζηκνπνηεζεί δσξεάλ κε άδεηα αλνηρηνχ ινγηζκηθνχ (open source license), αθνχ ν ρξήζηεο έρεη ζπκθσλήζεη κε ηνπο φξνπο ηεο άδεηαο. ηελ MySQL ηα δεδνκέλα απνζεθεχνληαη ζε πίλαθεο πνπ ν θαζέλαο απνηειεί κηα ζπιινγή δεδνκέλσλ πνπ ζρεηίδνληαη κεηαμχ ηνπο. ε απηή ηε βάζε δεδνκέλσλ δίλεηαη ε δπλαηφηεηα ζηνλ πξνγξακκαηηζηή λα απνζεθεχεη, λα αλαδεηά, λα ηαμηλνκεί θαη λα αλαθαιεί δεδνκέλα. πλήζσο ε MySQL ρξεζηκνπνηείηαη γηα λα δερηεί εξσηήκαηα (queries) βάζεσλ δεδνκέλσλ θαη λα επηζηξέςεη κε ηαρχηεηα ηα απνηειέζκαηα. Ο δηαθνκηζηήο ηεο MySQL ειέγρεη ηελ πξφζβαζε ζηα δεδνκέλα, έηζη ψζηε λα δίλεηαη ε δπλαηφηεηα ζε πνιινχο ρξήζηεο λα δνπιεχνπλ ηαπηφρξνλα ζηελ βάζε θαη λα έρνπλ γξήγνξε πξφζβαζε ζηα δεδνκέλα, εθφζνλ φκσο είλαη πηζηνπνηεκέλνη. Ζ MySQL ρξεζηκνπνηεί ηελ SQL (Structured Query Language) ε νπνία είλαη κηα γιψζζα πνπ ρξεζηκνπνηεί εξσηήκαηα γηα βάζεηο δεδνκέλσλ. Σα πιενλεθηήκαηα ηεο ρξήζεο ηεο MySQL είλαη ηα εμήο: Υακειφ θφζηνο Τςειή απφδνζε Δχθνιε εθκάζεζε θαη δηακφξθσζε Μεηαθεξζηκφηεηα Γηαζεζηκφηεηα ηνπ θψδηθα πξνέιεπζεο Γηαζεζηκφηεηα ππνζηήξημεο ειίδα 37 απφ 85

3.2.4. XML H XML (extensible Markup Language) είλαη κηα γιψζζα ε νπνία πεξηέρεη θαλφλεο γηα ηελ ειεθηξνληθή θσδηθνπνίεζε θεηκέλσλ. ε αληίζεζε κε ηελ HTML ε νπνία είλαη κηα ζεκεηαθή γιψζζα, ε XML είλαη κηα γιψζζα πνπ πξνζδηνξίδεη κηα ζεκεηαθή γιψζζα. Ζ ζεκεηαθή απηή γιψζζα πεξηέρεη ζηνηρεία κέζα ζε εηηθέηεο (tags). Π.ρ. <Name>Νίθνο</Name> Ζ XML ρξεζηκνπνηείηαη θπξίσο ζην δηαδίθηπν αλαπαξηζηψληαο απζαίξεηεο δνκέο δεδνκέλσλ. Με ιίγα ιφγηα κε ηελ ρξήζε ηεο XML νη πξνγξακκαηηζηέο έρνπλ ηε δπλαηφηεηα λα πξνζδηνξίζνπλ πιεξνθνξίεο γηα ηελ αληαιιαγή ειεθηξνληθψλ δεδνκέλσλ, γηα αξρεία πνπ παξάγνληαη απφ δηαθνκηζηέο web θιπ. [19][21] ηηο εθαξκνγέο Android, ε XML ρξεζηκνπνηείηαη γηα ηελ αλαπαξάζηαζε νζνλψλ. Σα αξρεία XML πεξηγξάθνπλ ην UI κε ην νπνίν αιιειεπηδξά ν ρξήζηεο. Παξαθάησ παξνπζηάδεηαη έλα παξάδεηγκα ηεο κνξθήο ελφο XML αξρείνπ πνπ πεξηέρεηαη ζηελ εθαξκνγή.[20] <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width= "match_parent" android:layout_height="match_parent" android:orientation="vertical" > <LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <RelativeLayout android:layout_width= "fill_parent" android:layout_height="fill_parent" android:layout_margin="10dp" ειίδα 38 απφ 85

android:background="#ffffff" > <ListView android:id="@+id/listviewbrands" android:layout_width= "fill_parent" android:layout_height="fill_parent" android:cachecolorhint="@android:color/transparent" android:dividerheight="0dp" android:divider="@android:color/transparent" android:listselector="@android:color/transparent" /> <com.ptixiaki.mshop.widgets.mstextview android:id="@+id/textviewempty" android:layout_width="wrap_content" android:layout_height= "wrap_content" android:layout_centerinparent="true" android:layout_margin="20dp" android:gravity="center" android:text=" Δεν σπάρτοσν κατασκεσαστές " android:textcolor="@color/letter_color" android:textsize="20sp" android:visibility="gone" /> <ProgressBar android:id="@+id/progressbar" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerinparent="true" android:background="#e8e8e8" /> </RelativeLayout > </LinearLayout> </RelativeLayout> ειίδα 39 απφ 85

Σα πιενλεθηήκαηα ηεο XML ζπγθξηηηθά κε άιιεο κνξθέο κεηάδνζεο δεδνκέλσλ είλαη ηα εμήο: Γπλαηφηεηα δεκηνπξγίαο θαη πξνζπέιαζεο XML αξρείσλ απφ νπνηαδήπνηε γιψζζα πξνγξακκαηηζκνχ Γηεπθφιπλζε ηεο ιεθηηθήο αλάιπζεο ησλ δεδνκέλσλ (parsing) Δπεθηαζηκφηεηα θαη αλεμαξηεζία απφ πιαηθφξκεο Γπλαηφηεηα αλάγλσζεο ησλ αξρείσλ ηφζν απφ κεραλέο φζν θαη απφ αλζξψπνπο Υεηξηζκφο πιεξνθνξηψλ γξακκέλσλ ζε νπνηαδήπνηε γιψζζα ζηνλ θφζκν, αθνχ είλαη ζπκβαηή κε Unicode Γπλαηφηεηα αλαπαξάζηαζεο πνιχπινθσλ δνκψλ δεδνκέλσλ, φπσο δέληξα θαη ιίζηεο, καζεκαηηθνί ηχπνη θ.α. 3.3. Τεσνολογίερ πος σπηζιμοποιήθηκαν 3.3.1. JSON Ζ JSON (JavaScript Open Notation) απνηειεί κηα ζεκαζηνινγηθή γιψζζα θαη είλαη παξφκνηα κε ηελ XML. Δίλαη βαζηζκέλε ζε θείκελν θαη απνηειεί έλα κέζν αλαπαξάζηαζεο θαη αληαιιαγήο δεδνκέλσλ. πλήζσο ρξεζηκνπνηείηαη γηα κεηάδνζε δεδνκέλσλ αλάκεζα ζε εθαξκνγέο θαη webservices θαη απνηειεί κηα ελαιιαθηηθή ιχζε γηα ηελ γιψζζα XML. Πξνέξρεηαη απφ ηε γιψζζα πξνγξακκαηηζκνχ JavaScript, ραξαθηεξίδεηαη φκσο σο κηα κνξθή δεδνκέλσλ αλεμάξηεηε γιψζζαο (language-independent). Ζ αλάγλσζή ηεο κπνξεί λα γίλεη απφ ππνινγηζηή αιιά θαη απφ άλζξσπν. Γελ πεξηνξίδεηαη ζε θάπνηα γιψζζα, αιιά ππάξρνπλ αλαιπηέο (parsers) πνπ ρξεζηκνπνηνχληαη γηα ηηο δηάθνξεο γιψζζεο. Ο θψδηθαο γηα ηελ κεηαγιψηηηζε θαη ηελ παξαγσγή δεδνκέλσλ ζε κνξθή JSON είλαη άκεζα δηαζέζηκνο ζην δηαδίθηπν, ζε κηα κεγάιε πνηθηιία γισζζψλ πξνγξακκαηηζκνχ. [14] ειίδα 40 απφ 85

Έλα αξρείν JSOΝ απνηειείηαη απφ ηηκέο, πνπ κπνξεί λα είλαη αληηθείκελα, λνχκεξα, πίλαθεο, ζπκβνινζεηξέο, ηηκέο boolean ή ε ηηκή null. Έλαο πίλαθαο JSON απνηειείηαη απφ έλα ζχλνιν ηηκψλ. Μέζα ζε έλα αληηθείκελν JSON βξίζθεηαη έλα ζχλνιν απφ δεχγε κεηαβιεηψλ θαη απφ ηηο ηηκέο πνπ αληηζηνηρνχλ ζην θάζε δεχγνο. Σα δεχγε απηά απνζεθεχνληαη κε ζπγθεθξηκέλε κνξθή σο αιθαξηζκεηηθά θαη έηζη κεηαθέξνληαη κέζσ δηθηχνπ νη δηάθνξεο δνκέο δεδνκέλσλ. Όηαλ πξαγκαηνπνηεζεί ε ιήςε ηνπο, αλαιχεηαη ε αλαπαξάζηαζε θαη αλαθηνχληαη ηα δεδνκέλα θαη νη ηηκέο ηνπο. [2][13] Έλα παξάδεηγκα ηεο κνξθήο JSON είλαη ην εμήο: { "brands":[ { "ID":"1", "BrandName":"Apple", "PhotoPath":"Photos\/Apple1414664282947.jpg", "Active" :"0", "LastModified":"2014-10-30 12:17:50" }, { "ID":"2", "BrandName":"Samsung", "PhotoPath":"Photos\/Samsung1414661193988.jpg", "Active" :"0", "LastModified":"2014-10-30 11:26:22" }, { "ID":"3", "BrandName":"HTC", "PhotoPath":"Photos\/htc_logo.png", "Active" :"0", "LastModified":"2014-09-13 18:42:41" ειίδα 41 απφ 85

} }, { "ID":"4", "BrandName":"Kodak", "PhotoPath":"Photos\/Kodak_logo.png", "Active" :"0", "LastModified":"0000-00-00 00:00:00" }, { "ID":"5", "BrandName":"Hewlett-Packard", "PhotoPath":"", "Active" :"0", "LastModified":"0000-00-00 00:00:00" }, { "ID":"6", "BrandName":"ASUS", "PhotoPath":"Photos\/ASUS1409420866520.png", "Active" :"0", "LastModified":"2014-09-06 16:57:12" } ], "success":1 3.3.2. GCM Σν GCM (Google Cloud Messaging) απνηειεί κηα ππεξεζία ηεο Google πνπ είλαη βαζηζκέλε ζην cloud computing θαη δίλεη ηε δπλαηφηεηα ζηνπο πξνγξακκαηηζηέο, ρξεζηκνπνηψληαο δηθνχο ηεο πφξνπο, λα πξαγκαηνπνηήζνπλ ηελ επηθνηλσλία αλάκεζα ζηηο ζπζθεπέο Android θαη ηνπο δηαθνκηζηέο. Ζ ππεξεζία απηή επηηξέπεη ζε δηαθνκηζηέο εθαξκνγψλ λα ζηέιλνπλ κελχκαηα (push notifications) ζηηο εθαξκνγέο ειίδα 42 απφ 85

γηα ινγηζκηθφ Android. Ζ ππεξεζία κπνξεί λα ρξεζηκνπνηεζεί είηε ζηέιλνληαο έλα κήλπκα πνπ ππνδεηθλχεη ζηελ εθαξκνγή Android φηη ππάξρνπλ λέα δεδνκέλα πξνο αλάθηεζε απφ ην δηαθνκηζηή, είηε ζηέιλνληαο έλα κήλπκα πνπ λα πεξηέρεη έσο θαη 4 KB σθέιηκνπ θνξηίνπ δεδνκέλσλ. Όηαλ ην κήλπκα θηάζεη, ζέηεη ηελ εθαξκνγή ζε ιεηηνπξγία, εθφζνλ ε εθαξκνγή έρεη πξνγξακκαηηζηεί κε ηέηνην ηξφπν θαη κπνξεί λα αλαγλσξίζεη ηελ θιήζε ηνπ ζπζηήκαηνο. Γε ρξεηάδεηαη δειαδή λα ηξέρεη ε εθαξκνγή γηα λα ιεθζεί ην κήλπκα. Μηα αθφκε πξνυπφζεζε γηα ηε ιήςε ησλ κελπκάησλ είλαη πσο ε ζπζθεπή ζα πξέπεη λα πεξηέρεη ινγηζκηθφ κε ηελ Android έθδνζε 2.2 ή θάπνηα λεφηεξε. Σέινο, εάλ ν πξνγξακκαηηζηήο ζέιεη λα ρξεζηκνπνηήζεη ηηο ππεξεζίεο γηα ζπζθεπή πνπ πεξηέρεη ηελ έθδνζε 4.0.4 ή θάπνηα λεφηεξε, έρεη ηε δπλαηφηεηα λα ηε ρξεζηκνπνηήζεη ρσξίο θάπνηα απαίηεζε, ζε αληίζεζε κε παιαηφηεξεο εθδφζεηο φπνπ είλαη απαξαίηεηε ε δεκηνπξγία θαη ε ζχλδεζε κε έλαλ ινγαξηαζκφ Google. [3][4][5] Δικόνα 11: Τπόπορ λειηοςπγίαρ GCM ειίδα 43 απφ 85

3.4. Ππογπαμμαηιζηικά πεπιβάλλονηα 3.4.1. Eclipse Σν Eclipse απνηειεί έλα απφ ηα πην δεκνθηιή νινθιεξσκέλα πεξηβάιινληα αλάπηπμεο εθαξκνγψλ (IDE) θαη ρξεζηκνπνηείηαη απφ πνιινχο πξνγξακκαηηζηέο παγθνζκίσο, κε ζθνπφ ηφζν ηελ πινπνίεζε εθαξκνγψλ Android φζν θαη άιινπ είδνπο εθαξκνγψλ. Πξνηηκάηαη σο πεξηβάιινλ θαζψο είλαη ιηηφ θαη θηιηθφ αθφκε θαη φηαλ ν πξνγξακκαηηζηήο είλαη αξράξηνο. 3.4.2. Aptana To Aptana είλαη έλα πξνγξακκαηηζηηθφ πεξηβάιινλ πνπ ρξεζηκνπνηείηαη γηα ηελ αλάπηπμε δηαδηθηπαθψλ εθαξκνγψλ. Δίλαη αλνηρηνχ θψδηθα θαη ππνζηεξίδεη αξθεηέο γιψζζεο πξνγξακκαηηζκνχ θαη πξσηφθνιια κεηαθνξάο αξρείσλ, φπσο: HTML5 CSS3 JavaScript Ruby Rails PHP Python FTP SFTP Σν πεξηβάιινλ απηφ κπνξεί λα εγθαηαζηαζεί ζε Windows, Linux θαη Mac. [24][25] ειίδα 44 απφ 85

Δικόνα 12: Το πεπιβάλλον ηος Aptana 3.4.3. phpmyadmin Δίλαη έλα δσξεάλ εξγαιείν ινγηζκηθνχ γξακκέλν ζε php, πνπ πξννξίδεηαη γηα ηελ δηαρείξηζε ηεο MySQL κέζσ ηνπ Γηαδηθηχνπ. Ζ phpmyadmin ππνζηεξίδεη έλα επξχ θάζκα ιεηηνπξγηψλ φπσο: δηαρείξηζε βάζεσλ δεδνκέλσλ, πίλαθεο, ζηήιεο, ζρέζεηο, επξεηήξηα, ρξήζηεο, δηθαηψκαηα, θιπ. Αθφκε, νη ρξήζηεο ηνπ εξγαιείνπ απηνχ έρνπλ ηελ δπλαηφηεηα λα εθηειέζνπλ άκεζα νπνηαδήπνηε εληνιή SQL. Πιένλ νη πεξηζζφηεξεο εηαηξίεο πνπ παξέρνπλ θηινμελία ηζηνζειίδσλ δίλνπλ ζην πειάηε έλα πίλαθα ειέγρνπ κε ελζσκαησκέλε ηελ phpmyadmin. ειίδα 45 απφ 85

Δικόνα 13: Η αναπαπάζηαζη μιαρ βάζηρ μέζα ζηο επγαλείο phpmyadmin Γπλαηφηεηεο πνπ παξέρνληαη απφ ην πξφγξακκα πεξηιακβάλνπλ ηα εμήο: Γηεπαθή Ηζηνχ Γηαρείξηζεο βάζεσλ δεδνκέλσλ MySQL Δηζαγσγή δεδνκέλσλ απφ CSV θαη SQL Δμαγσγή δεδνκέλσλ ζε δηάθνξεο κνξθέο: CSV, SQL, XML, PDF (κε ηε βηβιηνζήθε TCPDF), ISO / IEC 26300 - Κείκελν OpenDocument θαη ινγηζηηθψλ θχιισλ, ην Word, ην Excel, Latex θαη άιια Ζ ρνξήγεζε πνιιαπιψλ εμππεξεηεηψλ Γεκηνπξγία γξαθηθψλ PDF ηεο δηάηαμεο βάζεο δεδνκέλσλ Γεκηνπξγία ζχλζεησλ εξσηεκάησλ ρξεζηκνπνηψληαο ην Query-byπαξαδείγκαηνο (QBE) Φάρλνληαο ζε παγθφζκην επίπεδν ζε κηα βάζε δεδνκέλσλ ή έλα ππνζχλνιν απηνχ Ο κεηαζρεκαηηζκφο ησλ απνζεθεπκέλσλ δεδνκέλσλ ζε νπνηαδήπνηε κνξθή, ρξεζηκνπνηψληαο κηα ζεηξά πξνθαζνξηζκέλσλ ιεηηνπξγηψλ, φπσο ε εκθάληζε BLOB-δεδνκέλα σο εηθφλα ή download-link ειίδα 46 απφ 85

Εσληαλά δηαγξάκκαηα γηα ηελ παξαθνινχζεζε ηεο δξαζηεξηφηεηαο ηνπ δηαθνκηζηή MySQL, φπσο ζπλδέζεηο, ηηο δηαδηθαζίεο, CPU / κλήκεο, θ.ιπ. [22][23] 3.5. Άλλα ππογπάμμαηα 3.5.1. Filezilla Σν Filezilla είλαη έλα πξφγξακκα αλνηρηνχ θψδηθα. Γίλεη ηε δπλαηφηεηα κεηαθνξάο αξρείσλ αλάκεζα ζε έλαλ ππνινγηζηή θαη ζε έλα απνκαθξπζκέλν ζχζηεκα. Απνηειείηαη απν ην FileZilla Client θαη ην FileZilla Server. Τπνζηεξίδεη ηα πξσηφθνιια FTP, SFTP, FTPS (FTP κε SSL/TLS). πλδέεηαη κε ηνλ ππνινγηζηή (δηαθνκηζηή) ζηνλ νπνίν θηινμελνχληαη ηα αξρεία ηεο ηζηνζειίδαο θαη έηζη δηεπθνιχλεηαη ε κεηαθνξά ηνπο απφ θαη πξνο απηφλ. [26] 3.5.2. Photoshop Σν Adobe Photoshop αλαπηχρζεθε θαη θπθινθφξεζε απφ ηελ Adobe Systems θαη απνηειεί έλα πξφγξακκα γηα ηελ επεμεξγαζία γξαθηθψλ. Δίλαη ην γλσζηφηεξν πξντφλ ηεο Adobe θαη είλαη ην πξψην ζε πσιήζεηο ζηελ θαηεγνξία ησλ πξνγξακκάησλ επεμεξγαζίαο εηθφλσλ. Δίλαη ζπκβαηφ κε ηα ινγηζκηθά Mac OS X θαη Microsoft Windows. [27] Με ηε ρξήζε ηνπ πξνγξάκκαηνο απηνχ έγηλε ε επεμεξγαζία ησλ εηθνληδίσλ πνπ ρξεζηκνπνηήζεθαλ ζηελ εθαξκνγή θαζψο θαη ην εηθνλίδην ηεο ίδηαο ηεο εθαξκνγήο. ειίδα 47 απφ 85

Δικόνα 14: Το πεπιβάλλον ηος Photoshop 3.6. Δπίλογορ ην θεθάιαην απηφ έγηλε πεξηγξαθή φισλ ησλ ηερλνινγηψλ πνπ ρξεζηκνπνηήζεθαλ γηα λα αλαπηπρζεί ε παξνχζα πηπρηαθή εξγαζία. ηελ ζπλέρεηα ζα πεξηγξαθνχλ νη δπλαηφηεηεο πνπ δίλεη ε εθαξκνγή θαζψο θαη ηα κέξε απφ ηα νπνία απνηειείηαη. ειίδα 48 απφ 85

4. Δθαπμογή e-shop manager 4.1. Διζαγυγή ην ηέηαξην κέξνο απηήο ηεο πηπρηαθήο εξγαζίαο ζα γίλεη εθηελήο αλαθνξά ζηελ αλαιπηηθή ιεηηνπξγία θαη ζηα ζπζηαηηθά κέξε ηεο εθαξκνγήο, κε πνιιά screenshot θαη ηκήκαηα θψδηθα, έηζη ψζηε λα γίλεη θαηαλνεηή απφ ηνλ αλαγλψζηε. 4.2. Ανάλςζη ηηρ λειηοςπγικόηηηαρ ηηρ εθαπμογήρ 4.2.1. Οθόνη ζύνδεζηρ Καηά ηελ πξψηε εθηέιεζε ηεο εθαξκνγήο εκθαλίδεηε ε νζφλε ζχλδεζεο. Δδψ ν ρξήζηεο ηεο εθαξκνγήο, ζα πξέπεη λα βάιεη ηα ζηνηρεία ζχλδεζεο ηνπ. Σα ζηνηρεία απηά δίλνληαη ζηνλ ρξήζηε απφ ηνλ πξνγξακκαηηζηή. Δίλαη απαξαίηεην λα γίλεη ε ζχλδεζε έηζη ψζηε λα θαηαθέξεη λα πξνρσξήζεη ζηηο επφκελεο ιεηηνπξγίεο ηεο εθαξκνγήο. Ζ νζφλε απηή θαίλεηαη ζηελ εηθφλα 15. Δικόνα 15: Οθόνη ζύνδεζηρ ειίδα 49 απφ 85

4.2.2. Κενηπική Οθόνη Μφιηο ν ρξήζηεο εηζάγεη ηα ζηνηρεία ηνπ ζηα πεδία ηεο νζφλεο δηαζχλδεζεο θαη εθφζνλ είλαη ζσζηά, αλνίγεη ε εθαξκνγή θαη εκθαλίδεηαη ε θεληξηθή νζφλε. Ζ θεληξηθή νζφλε απνηειείηαη απφ ηελ κπάξα ελεξγεηψλ (ActionBar), ην κελνχ ηεο εθαξκνγήο θαη κία θεληξηθή πεξηνρή φπνπ θνξηψλνληαη νη νζφλεο. Σν κελνχ κπνξεί λα αλνίμεη θαη λα θιείζεη κε δχν ηξφπνπο, είηε παηψληαο ην αξηζηεξφ εηθνλίδην ηεο κπάξαο ελεξγεηψλ, είηε κε ζχξζηκν ηνπ παξαζχξνπ (αξηζηεξά - δεμηά). Όηαλ αλνίγεη ην κελνχ, ε κπάξα ελεξγεηψλ παξακέλεη ζηαζεξή. Σν κελνχ εκθαλίδεηε πάλσ απφ ηελ θεληξηθή πεξηνρή, θαηαιακβάλνληαο έλα κηθξφ κέξνο ηεο νζφλεο. Σν ππφινηπν κέξνο ηεο νζφλεο πνπ δελ θαιχπηεηαη απφ ην κελνχ παξακέλεη νξαηφ, αιιά εκθαλίδεηαη κε πην ζθνχξν ρξψκα. Μφιηο ν ρξήζηεο παηήζεη ζε κία απφ ηηο επηινγέο ηνπ κελνχ, ηφηε ην κελνχ θιείλεη θαη ζηε ζπλέρεηα εκθαλίδεηαη ε αληίζηνηρε νζφλε ζηελ θεληξηθή πεξηνρή. Δικόνα 16: Μενού κενηπικήρ οθόνηρ 4.2.3. Απσική Οθόνη ειίδα 50 απφ 85

Καηά ηελ έλαξμε ηεο εθαξκνγήο εκθαλίδεηαη ζηελ θεληξηθή πεξηνρή ε αξρηθή νζφλε, ζηελ νπνία κπνξεί λα κεηαβεί ν ρξήζηεο εάλ παηήζεη ζην κελνχ ηελ επηινγή «Αξρηθή». Ζ νζφλε απηή ρσξίδεηαη ζε ηέζζεξα ηκήκαηα, ην slider θαη ηξεηο θαηεγνξίεο πξνψζεζεο πξντφλησλ. Δικόνα 17: Απσική οθόνη 4.2.3.1. Slider Σα πεξηζζφηεξα e-shop πεξηέρνπλ ζηελ αξρηθή ηνπο ζειίδα έλα slider, φπνπ πξνβάιινληαη εηθφλεο δηάθνξσλ πξντφλησλ, εηθφλεο δηαθεκίζεσλ ή θαη εηθφλεο ηνπ θαηαζηήκαηνο. Γηα ηνλ ιφγν απηφ ζηελ εθαξκνγή απηή αλαπηχρζεθε ε ιεηηνπξγία δηαρείξηζεο ηνπ slider. ην slider ν ρξήζηεο κπνξεί λα δεη ηηο εηθφλεο πνπ πεξηέρνληαη είηε απηέο είλαη δεκνζηεπκέλεο ζην θνηλφ είηε φρη. Ζ ελαιιαγή ησλ εηθφλσλ κπνξεί λα γίλεη είηε απφ ηνλ ίδην ηνλ ρξήζηε κε ζχξζηκν ηνπ ρεξηνχ δεμηά ή αξηζηεξά, είηε απηφκαηα έπεηηα απφ θάπνην ρξνληθφ δηάζηεκα. ειίδα 51 απφ 85

Γίλεηαη επηπιένλ ε δπλαηφηεηα ζηνλ ρξήζηε λα επεμεξγαζηεί ηελ θαηάζηαζε δεκνζίεπζεο ηεο εηθφλαο. Απηφ κπνξεί λα γίλεη κε δχν ηξφπνπο, είηε παηψληαο επάλσ δεμηά ζηελ θνξδέια κε ην κάηη είηε παηψληαο θάησ δεμηά ζην κνιχβη (θάηη ην νπνίν ζα αλαιπζεί παξαθάησ). Παηψληαο ηελ κπιε θνξδέια κε ην εηθνλίδην ηνπ καηηνχ, ν ρξήζηεο αιιάδεη ηελ θαηάζηαζή ηεο γξήγνξα θαη εχθνια. Σν άζπξν κάηη ζπκβνιίδεη φηη ε εηθφλα είλαη δεκνζηεπκέλε ελψ ην κάηη κε ηελ θφθθηλε δηαγψληα γξακκή φηη δελ είλαη δεκνζηεπκέλε. 4.2.3.1.1. Οθόνη διασείπιζηρ Slider Μηα πην ιεπηνκεξήο δηαρείξηζε ησλ εηθφλσλ πξνο πξνβνιή ζην slider γίλεηαη ζηελ νζφλε δηαρείξηζεο slider. Ζ νζφλε απηή εκθαλίδεηαη κεηά ην πάηεκα ηνπ εηθνληδίνπ πνπ βξίζθεηαη ζην θάησ δεμί κέξνο ηνπ slider (κνιχβη). ε απηή ηελ νζφλε ν ρξήζηεο έρεη ηε δπλαηφηεηα: Να δηαγξάςεη κία εηθφλα παηψληαο ην άζπξν Υ εηθνλίδην ζην θάησ αξηζηεξφ κέξνο ηεο εηθφλαο Να πξνζζέζεη κία εηθφλα παηψληαο ην + πνπ βξίζθεηαη ζην δεμί κέξνο ηεο κπάξαο ελεξγεηψλ Να αιιάμεη ηελ θαηάζηαζε ηεο εηθφλαο παηψληαο ην εηθνλίδην ηνπ καηηνχ ζην θάησ δεμί κέξνο ηεο εηθφλαο, ην νπνίν ηε ζέηεη δεκφζηα ή θξπθή πξνο ην θνηλφ ειίδα 52 απφ 85

Δικόνα 18: Οθόνη διασείπιζηρ Slider 4.2.3.2. Καηηγοπίερ ε θάζε ειεθηξνληθφ θαηάζηεκα ππάξρνπλ επίζεο θαηεγνξίεο φπνπ ν θαηαζηεκαηάξρεο ηνπνζεηεί ζπγθεθξηκέλα πξντφληα πξνο εκθάληζε. Σα πξντφληα απηά κπνξεί λα είλαη είηε πξντφληα κε έθπησζε, είηε λέα πξντφληα ή θάπνηα επηιεγκέλα. Απηφ γίλεηαη έηζη ψζηε λα κπνξεί λα πξνβάιεη πξντφληα πνπ ζέιεη λα πξνσζήζεη. Έηζη, ζηελ εθαξκνγή έρεη πξνζηεζεί ε δπλαηφηεηα δηαρείξηζεο απηψλ ησλ θαηεγνξηψλ απφ ηνλ ρξήζηε. ηελ εθαξκνγή ππάξρνπλ ηξεηο θαηεγνξίεο πνπ κπνξεί λα εκθαλίδνληαη ζε δηάθνξεο πεξηνρέο ελφο ειεθηξνληθνχ θαηαζηήκαηνο. Ο ρξήζηεο κπνξεί λα πξνζζέηεη θαη λα αθαηξεί πξντφληα απφ ηηο θαηεγνξίεο απηέο. ηελ θάζε θαηεγνξία ππάξρεη κηα πεξηνρή φπνπ εκθαλίδνληαη ηα πξντφληα ηεο νξηδφληηα. Κάζε ηεηξάγσλν ζπκβνιίδεη έλα πξντφλ θαη κέζα ζε απηφ πεξηέρεηαη ν ηίηινο ηνπ πξντφληνο απηνχ. Πάλσ δεμηά ζε θάζε ηεηξάγσλν βξίζθεηαη έλα άζπξν Υ εηθνλίδην, παηψληαο ην νπνίν ν ρξήζηεο κπνξεί λα δηαγξάςεη ην πξντφλ απηφ απφ ηελ θαηεγνξία. Δπηπιένλ, ζε θάζε θαηεγνξία, κεηά ην ηειεπηαίν πξντφλ, ππάξρεη έλα ειίδα 53 απφ 85

ηεηξάγσλν κε έλα γθξη + πάλσ ηνπ. Παηψληαο ην ηεηξάγσλν απηφ, ν ρξήζηεο έρεη ηε δπλαηφηεηα λα πξνζζέζεη έλα λέν πξντφλ ζηελ αληίζηνηρε θαηεγνξία. Γηα λα γίλεη ε πξνζζήθε ηνπ λένπ πξντφληνο, αλνίγεη κηα νζφλε πνπ πεξηέρεη θαηεγνξίεο. Απφ ηηο θαηεγνξίεο απηέο ν ρξήζηεο ζα πξέπεη λα επηιέμεη εθείλε, ζηελ νπνία βξίζθεηαη ην πξντφλ πνπ ζέιεη λα πξνζζέζεη. Γηα λα πξαγκαηνπνηεζεί ε πξνζζήθε ηνπ πξντφληνο, ζα πξέπεη ην πξντφλ λα κελ αλήθεη ζε θάπνηα άιιε θαηεγνξία πξνψζεζεο πξντφλησλ θαη επίζεο λα κελ είλαη θξπθφ. 4.2.4. Οθόνη Παπαγγελιών Παηψληαο απφ ην κελνχ ηελ επηινγή «Παξαγγειίεο», αλνίγεη ε νζφλε ησλ παξαγγειηψλ. ηελ νζφλε απηή παξνπζηάδεηαη κηα ιίζηα κε ην ζχλνιν ησλ παξαγγειηψλ πνπ έρνπλ πξαγκαηνπνηεζεί, ε νπνία θνξηψλεη θάζε θνξά ηξηάληα παξαγγειίεο. Ο ρξήζηεο κπνξεί λα ηαμηλνκήζεη κε αχμνπζα ή θζίλνπζα ζεηξά ηε ιίζηα απηή κε βάζε ην φλνκα ή ην επίζεην πειάηε, ηελ εκεξνκελία πνπ πξαγκαηνπνηήζεθε ε παξαγγειία θαη ην ζπλνιηθφ θφζηνο ηεο παξαγγειίαο. Ζ θάζε παξαγγειία παξνπζηάδεη ηα ζηνηρεία ηνπ πειάηε (νλνκαηεπψλπκν πειάηε), ηελ εκέξα πξαγκαηνπνίεζεο ηεο παξαγγειίαο, ην ζπλνιηθφ θφζηνο ηεο παξαγγειίαο, ηελ θαηάζηαζε ηεο παξαγγειίαο (ζε αλακνλή, ζε επεμεξγαζία, ζε πξνεηνηκαζία, παξάδνζε ζην ηαρπδξνκείν) θαη ηέινο έλα εηθνλίδην δηζθέηαο. Ζ εθαξκνγή δίλεη ηε δπλαηφηεηα ζηνλ ρξήζηε λα απνζεθεχεη παξαγγειίεο ζην θηλεηφ έηζη ψζηε ζε πεξίπησζε πνπ δελ έρεη πξφζβαζε ζε δίθηπν θαη δελ κπνξεί λα ζπλδεζεί, λα κπνξεί λα βιέπεη ηηο παξαγγειίεο απηέο. Απηφ κπνξεί λα γίλεη παηψληαο ην εηθνλίδην κε ηε δηζθέηα. Όηαλ παηεζεί ην απελεξγνπνηεκέλν εηθνλίδην απηφ, φια ηα ζηνηρεία ηηο παξαγγειίαο απνζεθεχνληαη ζην θηλεηφ θαη είλαη πξνζβάζηκα απφ ηνλ ρξήζηε κέζσ ηεο επηινγήο «Σνπηθά». Δάλ ν ρξήζηεο ζειήζεη λα δεη φιεο ηηο παξαγγειίεο, κπνξεί λα ην θάλεη κέζσ ηεο επηινγήο «Γηαδίθηπν». Γηα ηε δηαγξαθή κηαο απνζεθεπκέλεο παξαγγειίαο ν ρξήζηε αξθεί λα παηήζεη ην ελεξγνπνηεκέλν εηθνλίδην ηεο δηζθέηαο, ζηα δεμηά ηεο απνζεθεπκέλεο παξαγγειίαο. ειίδα 54 απφ 85

Γίλεηαη επηπιένλ ε δπλαηφηεηα ζηνλ ρξήζηε λα δεη ηηο ιεπηνκέξεηεο κηαο παξαγγειίαο πνπ ηνλ ελδηαθέξεη, παηψληαο πάλσ ζηελ παξαγγειία απηή. Δικόνα 19: Οθόνη παπαγγελιών 4.2.4.1. Οθόνη λεπηομεπειών παπαγγελίαρ Δπηιέγνληαο κηα παξαγγειία αλνίγεη ε νζφλε κε ηηο ιεπηνκέξεηεο ηεο παξαγγειίαο. Ζ νζφλε απηή πιεξνθνξεί ηνλ ρξήζηε ζρεηηθά κε ην φλνκα ηνπ πειάηε πνπ πξαγκαηνπνίεζε ηελ παξαγγειία, ηα ζηνηρεία παξαιαβήο ηεο παξαγγειίαο, ηα ζηνηρεία ηεο απνζηνιήο, ηελ θαηάζηαζε ηεο παξαγγειίαο, ην ζπλνιηθφ θφζηνο ηεο παξαγγειίαο θαη ηα νλφκαηα ησλ πξντφλησλ πνπ πεξηέρεη ε παξαγγειία απηή. Το όνομα ηος πελάηη: Δίλαη ην φλνκα ελφο πειάηε πνπ έρεη ινγαξηαζκφ ζηε ζειίδα ηνπ ειεθηξνληθνχ θαηαζηήκαηνο ειίδα 55 απφ 85

Σηοισεία παπαλαβήρ: Πεξηιακβάλνπλ ην φλνκα ηνπ παξαιήπηε ηεο παξαγγειίαο, έλαλ αξηζκφ θηλεηνχ ή ζηαζεξνχ ηειεθψλνπ θαη ηε δηεχζπλζε απνζηνιήο. Σηοισεία αποζηολήρ: Δίλαη ν ηξφπνο κε ηνλ νπνίν έρεη επηιέμεη ν πειάηεο λα παξαιάβεη ηελ παξαγγειία ηνπ, φπσο κέζσ αληηθαηαβνιήο θαη απνζηνιήο κε ηαρπδξνκείν, πιεξσκή κέζσ πηζησηηθήο θάξηαο θαη απνζηνιή κέζσ ηαρπδξνκείνπ θ.α. Σηοισεία καηάζηαζηρ παπαγγελίαρ: Δίλαη ε θαηάζηαζε ηεο παξαγγειίαο απφ ηελ πιεπξά ηνπ θαηαζηήκαηνο, φπσο αλακνλή παξαγγειίαο, επεμεξγαζία παξαγγειίαο, πξνεηνηκαζία παξαγγειίαο θαη παξάδνζε ηεο παξαγγειίαο ζην ηαρπδξνκείν. Ο ρξήζηεο κπνξεί λα αιιάμεη ηελ θαηάζηαζε απηή παηψληαο ζην εηθνλίδην κε ηηο ηξεηο ηειείεο ζηα δεμηά θαη επηιέγνληαο κηα άιιε θαηάζηαζε απφ απηέο πνπ ζα εκθαληζηνχλ. Σςνολικό κόζηορ παπαγγελίαρ: Δίλαη ην άζξνηζκα ηνπ θφζηνπο ησλ πξντφλησλ πνπ πεξηιακβάλεη ε παξαγγειία θαη ηνπ θφζηνπο πνπ αληηζηνηρεί ζηνλ ηξφπν πιεξσκήο θαη απνζηνιήο. Ονόμαηα πποφόνηυν: Αλαθέξνληαη ηα νλφκαηα θαη θάπνηεο ιεπηνκέξεηεο φισλ ησλ πξντφλησλ πνπ πεξηέρνληαη ζηελ θάζε παξαγγειία. ειίδα 56 απφ 85

Δικόνα 20: Οθόνη λεπηομεπειών παπαγγελίαρ 4.2.5. Οθόνη καηηγοπιών πποφόνηυν Παηψληαο απφ ην κελνχ ηελ επηινγή «Καηεγνξίεο», αλνίγεη ε νζφλε ησλ θαηεγνξηψλ ησλ πξντφλησλ. ηελ νζφλε απηή εκθαλίδεηαη κία ιίζηα πνπ πεξηιακβάλεη φιεο ηηο θαηεγνξίεο ησλ πξντφλησλ ηνπ ειεθηξνληθνχ θαηαζηήκαηνο. ηελ εηθφλα 21 παξνπζηάδεηαη ε δνκή ηεο ιίζηαο απηήο. Μέζα ζε κία θαηεγνξία κπνξεί λα ππάξρεη είηε κηα άιιε θαηεγνξία είηε πξντφληα. Σα επίπεδα ησλ δηάθνξσλ θαηεγνξηψλ είλαη δηαθξηηά κέζα ζηε ιίζηα, κε ηε ρξήζε ηεο παχιαο ( - ). Όπσο θαίλεηαη θαη ζηελ εηθφλα 21, ε θαηεγνξία «Τπνινγηζηέο» (θακία παχια) απνηειεί γνληθή θαηεγνξία ησλ θαηεγνξηψλ «ηαζεξνί», «Laptops» θαη «Λνγηζκηθά» (κία παχια). Σν ίδην ζπκβαίλεη θαη κε ηελ θαηεγνξία «Laptops» (κία παχια), ε νπνία απνηειεί γνληθή θαηεγνξία ησλ θαηεγνξηψλ «Netbook», «Notebook» θαη «Ultrabook» (δχν παχιεο). ειίδα 57 απφ 85

Ο ρξήζηεο κπνξεί λα θαηαιάβεη πφηε κία θαηεγνξία πεξηέρεη πξντφληα, θαζψο δίπια απφ ην φλνκα ηεο θαηεγνξίαο απηήο βξίζθεηαη κηα παξέλζεζε κε έλαλ αξηζκφ. Ο αξηζκφο απηφο ππνδειψλεη ην πιήζνο ησλ πξντφλησλ πνπ είλαη ηνπνζεηεκέλα ζε απηή ηελ θαηεγνξία. Ο ρξήζηεο έρεη ηε δπλαηφηεηα λα επεμεξγαζηεί κηα θαηεγνξία ή λα πξνζζέζεη κηα θαηλνχξηα. Γηα λα κπνξέζεη λα επεμεξγαζηεί κηα θαηεγνξία αξθεί λα παηήζεη πάλσ ζην φλνκα ηεο θαηεγνξίαο απηήο. Γηα λα πξνζζέζεη κηα λέα θαηεγνξία ζα πξέπεη λα παηήζεη ην + ζην πάλσ δεμί κέξνο ηεο κπάξαο ελεξγεηψλ. Δικόνα 21: Οθόνη καηηγοπιών 4.2.5.1. Οθόνη επεξεπγαζίαρ καηηγοπίαρ Καηά ηελ επεμεξγαζία κηαο θαηεγνξίαο, εκθαλίδεηαη ε νζφλε πνπ θαίλεηαη ζηελ εηθφλα 22. ειίδα 58 απφ 85

Ζ νζφλε απηή πεξηέρεη πιεξνθνξίεο ζρεηηθέο κε ηελ θαηεγνξία πνπ επηιέμακε. Οη πιεξνθνξίεο απηέο είλαη: Σν φλνκα ηεο θαηεγνξίαο Σν φλνκα πνπ ζα εκθαλίδεηαη ζην URL (ζα αλαιπζεί ζηελ επφκελε ελφηεηα) Ζ γνληθή θαηεγνξία ζηελ νπνία αλήθεη Ζ ζέζε ηεο θαηεγνξίαο ζε ζρέζε κε ηηο ππφινηπεο θαηεγνξίεο κέζα ζηε γνληθή Ο ρξήζηεο έρεη ηε δπλαηφηεηα λα αιιάμεη ην φλνκα ηεο θαηεγνξίαο, ην φλνκα πνπ ζα εκθαλίδεηαη ζην URL θαη ηε γνληθή θαηεγνξία παηψληαο ην εηθνλίδην ηνπ κνιπβηνχ ζηα δεμηά. Γίλεηαη επηπιένλ ε δπλαηφηεηα ζηνλ ρξήζηε λα αιιάμεη ηε ζέζε ηεο ηξέρνπζαο θαηεγνξίαο ζε ζρέζε κε ηηο ππφινηπεο κέζα ζηελ γνληθή θαηεγνξία, παηψληαο ηα βειάθηα πνπ βξίζθνληαη ζηα δεμηά ηνπο. Γηα ηελ απνζήθεπζε ή ηελ δηαγξαθή κηαο θαηεγνξίαο, εκθαλίδνληαη νη δχν αληίζηνηρεο επηινγέο, κεηά ην πάηεκα ηνπ εηθνληδίνπ κε ηηο ηξεηο ηειείεο, ζην δεμί κέξνο ηεο κπάξαο ελεξγεηψλ, φπσο θαίλεηαη θαη ζηελ εηθφλα 22. Δικόνα 22: Οθόνη επεξεπγαζίαρ καηηγοπίαρ ειίδα 59 απφ 85

4.2.5.2. Οθόνη πποζθήκηρ νέαρ καηηγοπίαρ Όηαλ ν ρξήζηεο παηήζεη ην + ζην δεμί κέξνο ηεο κπάξαο ελεξγεηψλ γηα λα πξνζζέζεη κηα λέα θαηεγνξία, αλνίγεη κηα θαηλνχξηα νζφλε. ηελ νζφλε απηή ππάξρνπλ ηξία πεδία γηα ζπκπιήξσζε θαη ν ρξήζηεο ππνρξεψλεηαη λα ζπκπιεξψζεη θαη ηα ηξία. Σν πξψην πεδίν είλαη ην φλνκα, φπνπ κπνξεί λα ζπκπιεξψζεη φπνην φλνκα επηζπκεί. Σν δεχηεξν πεδίν είλαη ην φλνκα URL ην νπνίν ζα πξέπεη λα ζπκπιεξσζεί κε ιαηηληθνχο ραξαθηήξεο. Σν φλνκα ηνπ πεδίνπ απηνχ εκθαλίδεηαη ζην URL θαηά ηελ πεξηήγεζε ζηηο θαηεγνξίεο ηνπ ειεθηξνληθνχ θαηαζηήκαηνο. Σν ηξίην πεδίν είλαη ε επηινγή ηεο γνληθήο θαηεγνξίαο. Παηψληαο ην + πνπ βξίζθεηαη δεμηά απφ ηνλ ηίηιν ηεο γνληθήο θαηεγνξίαο, εκθαλίδεηαη κηα νζφλε κε φιεο ηηο ππάξρνπζεο θαηεγνξίεο. Όηαλ ν ρξήζηεο επηιέμεη ηελ γνληθή θαηεγνξία, ηφηε θάησ απφ ηνλ ηίηιν «Θέζε θαηεγνξίαο» εκθαλίδνληαη φιεο νη θαηεγνξίεο πνπ πεξηέρνληαη κέζα ζε απηήλ, καδί κε ηελ θαηεγνξία πνπ ζέινπκε λα πξνζζέζνπκε. Αθνχ εκθαληζηνχλ φιεο νη θαηεγνξίεο ν ρξήζηεο έρεη ηε δπλαηφηεηα λα αιιάμεη ηε ζεηξά κε ηελ νπνία ζα εκθαλίδνληαη ζηελ ηζηνζειίδα. Σέινο, εθφζνλ γίλνπλ νη απαξαίηεηεο ελέξγεηεο, ν ρξήζηεο ζα πξέπεη λα παηήζεη ην εηθνλίδην ηεο δηζθέηαο πνπ βξίζθεηαη ζην δεμί κέξνο ηεο κπάξαο ελεξγεηψλ, ψζηε λα απνζεθεπηνχλ νη αιιαγέο πνπ πξαγκαηνπνηήζεθαλ. ειίδα 60 απφ 85

Δικόνα 23: Οθόνη πποζθήκηρ νέαρ καηηγοπίαρ 4.2.6. Οθόνη καηαζκεςαζηών Παηψληαο απφ ην κελνχ ηελ επηινγή «Καηαζθεπαζηέο», αλνίγεη ε νζφλε κε ηε ιίζηα ησλ θαηαζθεπαζηψλ. ηε ιίζηα απηή παξνπζηάδνληαη ζε αιθαβεηηθή ζεηξά ηα νλφκαηα, φπσο θαίλεηαη ζηελ εηθφλα 24. ηνλ ρξήζηε δίλεηαη ε δπλαηφηεηα λα επεμεξγαζηεί ηνπο θαηαζθεπαζηέο ή λα πξνζζέζεη θαηλνχξηνπο. Γηα λα κπνξέζεη λα επεμεξγαζηεί έλαλ θαηαζθεπαζηή αξθεί λα παηήζεη πάλσ ζην φλνκα ηνπ θαηαζθεπαζηή απηνχ. Γηα λα πξνζζέζεη έλαλ λέν θαηαζθεπαζηή ζα πξέπεη λα παηήζεη ην + ζην πάλσ δεμί κέξνο ηεο κπάξαο ελεξγεηψλ. ειίδα 61 απφ 85

Δικόνα 24: Οθόνη καηαζκεςαζηών 4.2.6.1. Οθόνη επεξεπγαζίαρ καηαζκεςαζηή Καηά ηελ επεμεξγαζία ελφο θαηαζθεπαζηή, εκθαλίδεηαη ε νζφλε πνπ θαίλεηαη ζηελ εηθφλα 25. Ζ νζφλε απηή πεξηέρεη πιεξνθνξίεο ζρεηηθέο κε ηνλ θαηαζθεπαζηή πνπ επηιέμακε, φπσο ην φλνκα ηνπ θαηαζθεπαζηή, κηα εηθφλα κε ην ινγφηππφ ηνπ θαζψο θαη ηα πξντφληα πνπ αλήθνπλ ζε απηφλ ηνλ θαηαζθεπαζηή. Γίλεηαη ε δπλαηφηεηα επεμεξγαζίαο ηνπ νλφκαηνο ηνπ θαηαζθεπαζηή θαη αιιαγήο ηεο εηθφλαο πξνο πξνβνιή, κε ην πάηεκα ηνπ εηθνληδίνπ ηνπ κνιπβηνχ, ζηα δεμηά. Αθφκε, επηιέγνληαο θάπνην απφ ηα πξντφληα ηνπ ζπγθεθξηκέλνπ θαηαζθεπαζηή, ν ρξήζηεο κεηαθέξεηαη ζηελ νζφλε επεμεξγαζίαο πξντφληνο, ε ιεηηνπξγία ηεο νπνίαο ζα αλαιπζεί ζε επφκελε ελφηεηα. Γηα ηελ απνζήθεπζε ή ηελ δηαγξαθή ελφο θαηαζθεπαζηή, εκθαλίδνληαη νη δχν αληίζηνηρεο επηινγέο, κεηά ην πάηεκα ηνπ εηθνληδίνπ κε ηηο ηξεηο ηειείεο, ζην δεμί κέξνο ηεο κπάξαο ελεξγεηψλ. ειίδα 62 απφ 85

Δικόνα 25: Οθόνη επεξεπγαζίαρ καηαζκεςαζηή 4.2.6.2. Οθόνη πποζθήκηρ νέος καηαζκεςαζηή Όηαλ ν ρξήζηεο παηήζεη ην + ζην δεμί κέξνο ηεο κπάξαο ελεξγεηψλ γηα λα πξνζζέζεη έλαλ λέν θαηαζθεπαζηή, αλνίγεη κηα θαηλνχξηα νζφλε, ε νπνία θαίλεηαη ζηελ εηθφλα 26. ηελ νζφλε απηή, ππάξρεη έλα πεδίν πξνο ζπκπιήξσζε θαη έλα άδεην πεδίν ζην νπνίν ζα πξέπεη λα πξνζηεζεί κηα εηθφλα. Απφ απηά ηα δχν, ππνρξεσηηθφ είλαη κφλν ην φλνκα ηνπ θαηαζθεπαζηή. Δθφζνλ ζπκπιεξσζεί ην πεδίν, ν ρξήζηεο ζα πξέπεη λα παηήζεη ην εηθνλίδην ηεο δηζθέηαο πνπ βξίζθεηαη ζην δεμί κέξνο ηεο κπάξαο ελεξγεηψλ, ψζηε λα απνζεθεπηνχλ νη αιιαγέο πνπ πξαγκαηνπνηήζεθαλ. ειίδα 63 απφ 85

Δικόνα 26: Οθόνη πποζθήκηρ νέος καηαζκεςαζηή 4.2.7. Οθόνη πποφόνηυν Παηψληαο απφ ην κελνχ ηελ επηινγή «Πξντφληα», αλνίγεη ε νζφλε ζηελ νπνία ζα εκθαληζηνχλ ηα πξντφληα. Δπεηδή ππάξρνπλ πνιιά πξντφληα θαη δελ είλαη πξαθηηθφ ην λα εκθαλίδνληαη φια, αλεμαξηήησο θαηεγνξίαο, ζην πάλσ κέξνο ηεο νζφλεο, θάησ απφ ηε κπάξα ελεξγεηψλ έρεη πξνζηεζεί κηα επηινγή. Μέζσ ηεο επηινγήο απηήο, ν ρξήζηεο κπνξεί λα δηαιέμεη κηα ζπγθεθξηκέλε θαηεγνξία, ηα πξντφληα ηεο νπνίαο ηνλ ελδηαθέξνπλ. Ζ πξνεπηιεγκέλε θαηεγνξία πξνο εκθάληζε είλαη ε «Υσξίο θαηεγνξία». Αθνχ ν ρξήζηεο επηιέμεη ηελ θαηεγνξία, θνξηψλνληαη απηνκάησο απφ ην δηαδίθηπν φια ηα πξντφληα ηεο θαηεγνξίαο θαη εκθαλίδνληαη κε ηε κνξθή ιίζηαο. Ο ρξήζηεο γηα θάζε έλα πξντφλ παίξλεη ηηο εμήο πιεξνθνξίεο: Όλνκα πξντφληνο Κχξηα εηθφλα ηνπ πξντφληνο ειίδα 64 απφ 85

Πξνεγνχκελε ηηκή (πξναηξεηηθφ) Σξέρνπζα ηηκή Απφζεκα ηνπ πξντφληνο Καηάζηαζε δεκνζίεπζεο Καηεγνξία πξντφληνο (γλσζηή ιφγσ επηιεγκέλεο θαηεγνξίαο) ηνλ ρξήζηε δίλεηαη ε δπλαηφηεηα λα επεμεξγαζηεί ηα πξντφληα ή λα πξνζζέζεη θαηλνχξηα. Γηα λα κπνξέζεη λα επεμεξγαζηεί έλα πξντφλ αξθεί λα παηήζεη πάλσ ζην φλνκα ηνπ πξντφληνο απηνχ. Γηα λα πξνζζέζεη έλα λέν πξντφλ ζα πξέπεη λα παηήζεη ην + ζην πάλσ δεμί κέξνο ηεο κπάξαο ελεξγεηψλ. Δικόνα 27: Οθόνη πποφόνηυν 4.2.7.1. Οθόνη επεξεπγαζίαρ πποφόνηορ Καηά ηελ επεμεξγαζία ελφο πξντφληνο, εκθαλίδεηαη ε νζφλε πνπ θαίλεηαη ζηελ εηθφλα 28. ειίδα 65 απφ 85

Ζ νζφλε απηή παξέρεη πεξηζζφηεξεο ιεπηνκέξεηεο ζρεηηθέο κε ην πξντφλ πνπ έρεη επηιεγεί. Οη πιεξνθνξίεο απηέο είλαη ηα ζηνηρεία πνπ αλαθέξζεθαλ ζηελ πξνεγνχκελε ελφηεηα, θαζψο θαη ηα παξαθάησ ζηνηρεία: Καηαζθεπαζηήο πξντφληνο Πεξηγξαθή Πσιήζεηο πξντφληνο Φσηνγξαθίεο Δικόνα 28: Οθόνη επεξεπγαζίαρ πποφόνηορ Ο ρξήζηεο έρεη ηε δπλαηφηεηα λα επεμεξγαζηεί φιεο ηηο πιεξνθνξίεο, εθηφο απφ ηηο πσιήζεηο. Καηά ηελ επεμεξγαζία ηνπ θαηαζθεπαζηή θαη ηεο θαηεγνξίαο, εκθαλίδεηαη κηα λέα νζφλε ζηελ νπνία πεξηέρεηαη κηα ιίζηα κε ην ζχλνιν ησλ θαηαζθεπαζηψλ θαη ησλ θαηεγνξηψλ αληίζηνηρα, πξνο επηινγή. Ζ επεμεξγαζία ησλ θσηνγξαθηψλ ηνπ πξντφληνο γίλεηαη ζε κηα λέα νζφλε, ζηελ νπνία νδεγείηαη ν ρξήζηεο παηψληαο ην εηθνλίδην ηνπ κνιπβηνχ ζηα δεμηά ηνπ ηίηινπ «Φσηνγξαθίεο». ειίδα 66 απφ 85

Με ην πάηεκα ηνπ εηθνληδίνπ κε ηηο ηξεηο ηειείεο ζην δεμί κέξνο ηεο κπάξαο ελεξγεηψλ παξέρνληαη ηξεηο επηινγέο ζηνλ ρξήζηε, ε απνζήθεπζε, ε επαλαθνξά ησλ αξρηθψλ ηηκψλ θαη ε δηαγξαθή ηνπ πξντφληνο. 4.2.7.2. Οθόνη επεξεπγαζίαρ θυηογπαθιών ενόρ πποφόνηορ ε απηή ηελ νζφλε ν ρξήζηεο κπνξεί λα δηαρεηξηζηεί ηηο εηθφλεο πνπ αληηζηνηρνχλ ζε έλα πξντφλ. Ο ηξφπνο ιεηηνπξγίαο απηήο ηεο νζφλεο είλαη πεξίπνπ ίδηνο κε απηφλ ηεο νζφλεο δηαρείξηζεο Slider, ε νπνία έρεη αλαιπζεί ζηελ ελφηεηα 4.2.3.1.1. Ζ κφλε δηαθνξά πνπ εληνπίδεηαη ζηνλ ηξφπν ιεηηνπξγίαο ησλ δχν νζνλψλ, είλαη ε επηινγή κηαο θσηνγξαθίαο σο θχξηαο. Ζ θσηνγξαθία απηή εκθαλίδεηαη φηαλ ζηελ ηζηνζειίδα γίλεηαη κία πεξηιεπηηθή παξνπζίαζε ηνπ πξντφληνο. Γηα λα νξηζηεί κηα θσηνγξαθία σο θχξηα, ν ρξήζηεο ην κφλν πνπ έρεη λα θάλεη είλαη λα παηήζεη πάλσ ζηελ θσηνγξαθία πνπ επηζπκεί. Ζ εκθάληζε φισλ ηνλ θσηνγξαθηψλ ηνπ πξντφληνο γίλεηαη ζηελ νζφλε κε ηα ιεπηνκεξή ζηνηρεία ηνπ πξντφληνο. Δικόνα 29: Οθόνη επεξεπγαζίαρ θυηογπαθιών ενόρ πποφόνηορ 4.2.8. Οθόνη Πελαηών Παηψληαο απφ ην κελνχ ηελ επηινγή «Πειάηεο», αλνίγεη ε νζφλε κε ηνπο πειάηεο ηνπ θαηαζηήκαηνο, νη νπνίνη είλαη ηαμηλνκεκέλνη κε αιθαβεηηθή ζεηξά. ηε ιίζηα πνπ ειίδα 67 απφ 85

εκθαλίδεηαη πεξηέρεηαη ην νλνκαηεπψλπκν ηνπ πειάηε θαζψο θαη δχν επηινγέο άκεζεο θιήζεο θαη απνζηνιήο ειεθηξνληθνχ κελχκαηνο. Σα δεδνκέλα ησλ πειαηψλ απνζεθεχνληαη ηνπηθά ζηε ζπζθεπή. Ο ιφγνο γηα ηνλ νπνίν γίλεηαη απηφ είλαη γηα λα έρεη πξφζβαζε ν ρξήζηεο ζηνλ θαηάινγν ησλ πειαηψλ αθφκε θαη φηαλ βξίζθεηαη εθηφο δηθηχνπ. Ζ εθαξκνγή δίλεη ηε δπλαηφηεηα δεκηνπξγίαο κηαο ζπληφκεπζεο ζηελ θεληξηθή νζφλε ηνπ θηλεηνχ, ψζηε ν ρξήζηεο λα κπνξεί λα έρεη άκεζε πξφζβαζε ζηνλ θαηάινγν, ρσξίο λα αλνίμεη ηελ εθαξκνγή. Ζ δεκηνπξγία ηεο ζπληφκεπζεο γίλεηαη παηψληαο ην εηθνλίδην ζην δεμί κέξνο ηεο κπάξαο ελεξγεηψλ. ηνλ ρξήζηε δίλεηαη επίζεο ε δπλαηφηεηα, παηψληαο πάλσ ζην φλνκα ελφο πειάηε, λα δεη ηα ζηνηρεία ηνπ θαη ηηο παξαγγειίεο πνπ έρεη πξαγκαηνπνηήζεη. Δικόνα 30: Οθόνη πελαηών 4.2.8.1. Οθόνη πποβολήρ ζηοισείυν πελάηη ηελ νζφλε απηή εκθαλίδνληαη ηα ζηνηρεία ηνπ πειάηε, ηα νπνία είλαη ην email ηνπ θαη ην ηειέθσλφ ηνπ. Αθφκε, ν ρξήζηεο ελεκεξψλεηαη γηα ην ζχλνιν ησλ παξαγγειηψλ ηνπ πειάηε, νη νπνίεο εκθαλίδνληαη ζε κία ιίζηα θάησ απφ ηα ζηνηρεία ηνπ. ηε ιίζηα ειίδα 68 απφ 85

απηή παξνπζηάδεηαη ν θσδηθφο ηεο θάζε παξαγγειίαο, ε εκέξα πξαγκαηνπνίεζεο ησλ παξαγγειηψλ θαζψο θαη ην ζπλνιηθφ θφζηνο θαη ε θαηάζηαζε ηεο εθάζηνηε παξαγγειίαο. ε απηή ηελ νζφλε ν ρξήζηεο κπνξεί επίζεο λα απνζεθεχζεη κηα παξαγγειία, παηψληαο ηε δηζθέηα πνπ βξίζθεηαη ζηα δεμηά ηεο παξαγγειίαο απηήο. Δπηιέγνληαο κηα απφ ηηο παξαγγειίεο πνπ ππάξρνπλ ζηε ιίζηα ν ρξήζηεο πξνσζείηαη ζηελ νζφλε ιεπηνκεξεηψλ παξαγγειίαο, ηεο νπνίαο νη ιεηηνπξγίεο έρνπλ αλαιπζεί. Δικόνα 31: Οθόνη πποβολήρ ζηοισείυν πελάηη 4.2.9. Δπιλογή αποζύνδεζηρ Παηψληαο ζηελ επηινγή «Απνζχλδεζε» ν ρξήζηεο απνζπλδέεηαη απφ ηελ εθαξκνγή, δηαγξάθνληαο ηα δεδνκέλα πνπ είραλ απνζεθεπηεί ζηε ζπζθεπή θαηά ηε δηάξθεηα πνπ ήηαλ ζπλδεδεκέλνο. ειίδα 69 απφ 85

4.2.10. Οθόνη πςθμίζευν Σν εηθνλίδην κε ην νπνίν ν ρξήζηεο κπνξεί λα εηζέιζεη ζηελ νζφλε απηή, εκθαλίδεηαη κφλν θαηά ηε δηάξθεηα ζηελ νπνία είλαη αλνηρηφ ην κελνχ ηεο εθαξκνγήο θαη βξίζθεηαη ζην δεμί κέξνο ηεο κπάξαο ελεξγεηψλ. Μέζσ ηεο νζφλεο απηήο ν ρξήζηεο κπνξεί λα ξπζκίζεη εάλ ε ζπζθεπή ζα δέρεηαη κελχκαηα απφ ηνπο δηαθνκηζηέο (push notifications) θαη λα νξίζεη ηελ ρξνληθή πεξίνδν θαηά ηελ νπνία δελ ζα δέρεηαη εηδνπνηήζεηο. Δικόνα 32: Οθόνη πςθμίζευν 4.3. Ανάλςζη ηυν ζςζηαηικών ζηοισείυν ηηρ εθαπμογήρ 4.3.1. Μπάπα ενεπγειών (ActionΒar) Ζ κπάξα ελεξγεηψλ είλαη έλα ραξαθηεξηζηηθφ παξαζχξνπ πνπ πξνζδηνξίδεη ηε ζέζε ηνπ ρξήζηε ζηελ εθαξκνγή θαη παξέρεη ελέξγεηεο πνπ επηηξέπνπλ ηελ εθηέιεζε κεζφδσλ πινήγεζεο. Ζ κπάξα ελεξγεηψλ επηζεκνπνίεζε έλα θνηλφ πξφηππν ζρεδίαζεο πνπ πξνζθέξεη ζηνπο ρξήζηεο έλα νηθείν πεξηβάιινλ κεηαμχ δηαθνξεηηθψλ ειίδα 70 απφ 85

εθαξκνγψλ. Δίλαη ηνπνζεηεκέλε πάληα ζην επάλσ κέξνο ηεο νζφλεο θαη νξίδεη ν πξνγξακκαηηζηείο εάλ ζα πεξηιακβάλεηαη ζηελ εθαξκνγή. Δικόνα 33: Το κοινό ππόηςπο για όλερ ηιρ εθαπμογέρ ηελ εηθφλα 33 παξνπζηάδεηαη ην θνηλφ πξφηππν ηεο κπάξαο ελεξγεηψλ. Απνηειείηαη απφ ην εηθνλίδην θαη ηνλ ηίηιν ηεο θάζε νζφλεο, θαζψο θαη απφ έλα ζχλνιν ελεξγεηψλ πνπ ρξεζηκεχνπλ ζηελ πινήγεζε. [37] Σν Android δίλεη ζηνπο πξνγξακκαηηζηέο ηελ δπλαηφηεηα λα θάλνπλ ππεξθφξησζε ηνπ θνηλνχ πξνηχπνπ ζρεδίαζεο ηεο κπάξαο ελεξγεηψλ. ε απηή ηελ πηπρηαθή εξγαζία ρξεζηκνπνηήζεθε ε δπλαηφηεηα απηή, κε ηε ρξήζε ελφο δηαθνξεηηθνχ ζρεδηαζκνχ (Δηθφλα 34), ν νπνίνο απνηειείηαη απφ ηξία κέξε. Σα κέξε απηά είλαη ηα εμήο: Σν θνπκπί ηνπ κελνχ Ο ηίηινο πνπ πξνζδηνξίδεη ηελ νζφλε ζηελ νπνία βξίζθεηαη ν ρξήζηεο Ζ πεξηνρή ελεξγεηψλ φπνπ κπνξεί ν ρξήζηεο λα βξεη είηε κεκνλσκέλεο ελέξγεηεο είηε ελέξγεηεο πνπ βξίζθνληαη θάησ απφ ην «κελνχ ππεξρείιηζεο» Δικόνα 34: ActionBar εθαπμογήρ ειίδα 71 απφ 85

4.3.1.1. Παπαδείγμαηα 4.3.1.1.1. Παπάδειγμα XML layout Φφξησζε ηεο φςεο (εηθφλα 34) ε νπνία ππεξθνξηψλεη ην θνηλφ πξφηππν ηνπ Android. ms_action_bar.xml <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id= "@+id/ac" android:layout_width="fill_parent" android:layout_height="match_parent" android:background="#ffffff" android:orientation="vertical" > <RelativeLayout android:layout_width="fill_parent" android:layout_height="fill_parent" > <RelativeLayout android:id="@+id/ab_left_toggle" android:layout_width="wrap_content" android:layout_height= "fill_parent" android:layout_alignparentleft="true" android:layout_centervertical="true" android:layout_marginleft="7dp" android:background="@drawable/states_ab_options" android:clickable="true" android:onclick="oncustomoptionsitemselected" android:paddingleft="5dp" android:paddingright="5dp" > <!--This is the icon that opens the side menu --!> <ImageView android:layout_width="35dp" ειίδα 72 απφ 85

android:layout_height="35dp" android:layout_centerinparent="true" android:src="@drawable/menu_icon" /> </RelativeLayout> <!--This is the action bar title which indicates where the user is --!> <com.ptixiaki.mshop.widgets.mstextview android:id="@+id/ab_title" android:layout_width="wrap_content" android:layout_height= "wrap_content" android:layout_centerinparent="true" android:textcolor="@color/letter_color" android:textsize="20sp" /> <LinearLayout android:id="@+id/ab_settings" android:layout_width="45dp" android:layout_height="fill_parent" android:layout_alignparentright="true" android:layout_centervertical="true" android:layout_marginright="7dp" android:background="@drawable/states_ab_options" android:gravity="center" android:onclick="oncustomoptionsitemselected" android:visibility="gone" > <ImageView android:layout_width="30dp" android:layout_height="30dp" android:src="@drawable/ic_action_settings" /> </LinearLayout> </RelativeLayout > </RelativeLayout> ειίδα 73 απφ 85

4.3.1.1.2. Παπάδειγμα Java ActionBar actionbar = getsupportactionbar(); // hide home button actionbar.setdisplayshowhomeenabled(false); // active the custom view actionbar.setdisplayshowcustomenabled(true); // hide title actionbar.setdisplayshowtitleenabled(false); // get the view which we will be using in actionbar View v = View.inflate( this, R.layout.ms_action_bar, null ); // set the view in action bar actionbar.setcustomview(v); 4.3.2. DrawerLayout ηελ ελφηεηα απηή ζα αλαιπζεί ν ηξφπνο ιεηηνπξγίαο ηνπ κελνχ ηεο εθαξκνγήο. Ζ ιεηηνπξγία απηή έρεη γίλεη κε ηε βνήζεηα ηνπ αληηθεηκέλνπ DrawerLayout, ην νπνίν πξνζθέξεη ην Android. Οξίδνπκε ζην αληηθείκελν απηφ δχν φςεηο (views), φπνπ ε κία ζα είλαη ην κελνχ θαη ε άιιε φςε ε πεξηνρή πνπ ζα θνξηψλνληαη νη νζφλεο. ηελ εθαξκνγή απηή ε δχν φςεηο είλαη ηχπνπ fragment (θφθθηλν θαη θίηξηλν ζηελ εηθφλα 35). Σν DraweLayout παίξλεη ηηο φςεηο απηέο θαη βάδεη ην κελνχ (θφθθηλν) θάησ απφ ηελ θεληξηθή φςε (θίηξηλν). Έηζη φηαλ ν ρξήζηεο ζειήζεη λα πινεγεζεί ζε άιιε νζφλε, ζα πξέπεη πνιχ απιά είηε λα ζχξεη ην δάρηπιφ ηνπ απφ ηα αξηζηεξά πξνο ηα δεμηά είηε λα παηήζεη ην θνπκπί πινήγεζεο. Έηζη, ε νζφλε κε ην θφθθηλν πιαίζην ζα θαιχςεη ηελ πεξηνρή κε ην θίηξηλν πιαίζην. [36] Ο ιφγνο γηα ηνλ νπνίν ρξεζηκνπνηήζεθαλ fragments γηα ηηο δχν απηέο φςεηο είλαη φηη κέζσ ησλ fragments δίλεηαη ε δπλαηφηεηα θφξησζεο νπνηνπδήπνηε layout θαη επίζεο ε αλάπηπμε ηνπ θψδηθα ηνπ κελνχ θαη φπνηαο άιιεο νζφλεο θνξησζεί ζην θίηξηλν ηκήκα, γίλεηαη κέζα ζηελ θιάζε ηνπ fragment. Με απηφλ ηνλ ηξφπν ν θψδηθαο ησλ layout είλαη πην ζπκκαδεκέλνο. ειίδα 74 απφ 85

Δικόνα 35: DrawerLayout 4.3.3. Παπαδείγμαηα 4.3.3.1. Παπάδειγμα XML απσείος Παξαθάησ παξαηίζεηαη ε κνξθή ηνπ XML αξρείνπ ηεο δξαζηεξηφηεηαο πνπ δίλεη ηε δπλαηφηεηα ηεο ιεηηνπξγίαο ηνπ κελνχ ηεο εθαξκνγήο. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" > <android.support.v4.widget.drawerlayout android:id="@+id/drawer_layout" android:layout_width="match_parent" android:layout_height="match_parent" > <!-- Framelayout to display Fragments --> <!-- yellow view --> <FrameLayout ειίδα 75 απφ 85

android:id="@+id/frame_container" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#e4e4e4" /> <!-- red view layout_width indicate the menou width --> <FrameLayout android:id="@+id/frame_menu" android:layout_width="240dp" android:layout_height="match_parent" android:layout_gravity="start" /> </android.support.v4.widget.drawerlayout> </RelativeLayout> 4.3.3.2. Παπάδειγμα Java Παξαθάησ παξαηίζεηαη ν θψδηθαο ζηνλ νπνίν δίλεηαη ε κνξθή πνπ ζα έρεη ην κελνχ ηεο δξαζηεξηφηεηαο. // we get the instance of FragmentManager FragmentManager fragmentmanager = getsupportfragmentmanager(); // we get the instance of MenuFragment MenuFragment mmenu = new MenuFragment(); // we set the red fragment of the activity to display the menu layout fragmentmanager.begintransaction(); fragmentmanager.replace( R.id.frame_menu, mmenu ); fragmentmanager.commit(); Παξαθάησ παξαηίζεηαη ν θψδηθαο ν νπνίνο δίλεη ηε κνξθή ηεο θεληξηθήο πεξηνρήο ηεο δξαζηεξηφηεηαο: // we get from getfragment(fragmenttypes enum) the instance of the fragment ειίδα 76 απφ 85

//we want to be shown in the yellow view mcontent = getfragment(type); // we set to mcontent instance, data that we want to pass mcontent.setarguments(data); if (mcontent!= null) { // we get the instance of FragmentManager FragmentManager fragmentmanager = getsupportfragmentmanager(); fragmentmanager.begintransaction(); // we set the yellow fragment of the activity to display the menu layout fragmentmanager.replace(r.id.frame_container, mcontent); fragmentmanager.commit(); } 4.3.4. Toast Ζ εθαξκνγή ρξεζηκνπνηεί ην αληηθείκελν Toast ψζηε λα ελεκεξψλεη ηνλ ρξήζηε γηα ηελ θαηάζηαζε ησλ απνηειεζκάησλ ηνπ ζε θάζε ελέξγεηα πνπ έρεη πξαγκαηνπνηήζεη. Δμ νξηζκνχ απηφ ην αληηθείκελν εκθαλίδεηαη ζην θάησ κέξνο ηεο νζφλεο θεληξαξηζκέλν, κε γθξη ζθνχξν θφλην θαη κε άζπξα γξάκκαηα. Ο πξνγξακκαηηζηήο κπνξεί λα νξίζεη κφλν έλα κήλπκα ην νπνίν ζα εκθαλίδεηαη ζηνλ ρξήζηε. Μπνξεί επίζεο λα νξίζεη ην ρξνληθφ δηάζηεκα θαηά ην νπνίν ζα βξίζθεηαη ζηελ νζφλε ην θάζε κήλπκα. [38] Όπσο θαίλεηαη ζηελ εηθφλα 36, ην κήλπκα πνπ εκθαλίδεηαη είλαη ηχπνπ Toast. ε απηφ ην αληηθείκελν ν πξνγξακκαηηζηήο κπνξεί λα θνξηψζεη νπνηνδήπνηε layout θαη λα νξίζεη ηε ζέζε ζηελ νζφλε, ζηελ νπνία ζα εκθαληζηεί. ειίδα 77 απφ 85

Δικόνα 36: Μήνςμα ενημέπυζηρ σπήζηη (Toast) 4.3.4.1. Παπάδειγμα Java Παξαθάησ παξαηίζεηαη θψδηθαο, φπνπ παξνπζηάδεηαη ν ηξφπνο ππεξθφξησζεο ηνπ αληηθεηκέλνπ Toast: // get the view we want to be shown in toast message View toastroot = View.inflate(ctx, R.layout.custom_toast, null); // initialize the toast if(toast == null) toast = new Toast(ctx); LinearLayout linear = (LinearLayout) toastroot.findviewbyid(r.id.toast_border); TextView txt = (TextView) toastroot.findviewbyid(r.id.toast_text); ImageView img = (ImageView) toastroot.findviewbyid(r.id.toast_img); // give the message we want to prompt to the user txt.settext(message); switch(type) { case SUCCESS: img.setbackgrounddrawable(ctx.getresources().getdrawable(r.drawable.success)); ειίδα 78 απφ 85