Εφαρμογή Android για εύρεση και βαθμολογία παιδότοπων (Bachelor thesis)
Μπανάτσας, Χρίστος
The current thesis has as main objective the development of an Android application.
The application allows a user to find/add and rate playgrounds in him location as well
as in others locations.
Τhe basic elements of this thesis focus in two parts. The first one rotates around the
usages of the server, here is held the database and take place all the necessary
calculations so that their result be presented into client, the Android application. The
second part is about Android application, is concerned with the aesthetics
presentation of the server results and limits user-friendliness and easy access via the
user interface(UI).
In conclusion, is about an application which from a user's point of view, it aims
parents to find and help other parents to find the best playgrounds for their children. In
the other side, from a technology point of view, it aims popular and new technologies
which they consist an interesting part to study.
Institution and School/Department of submitter: | Σχολή Τεχνολογικών Εφαρμογών / Τμήμα Μηχανικών Πληροφορικής |
Subject classification: | Διεπαφές χρηστών (Συστήματα υπολογιστών) User interfaces (Computer systems) Application software -- Development Λογισμικό εφαρμογής -- Ανάπτυξη Android (Electronic resource) Android (Ηλεκτρονικός πόρος) Playgrounds Παιδότοποι |
Keywords: | Εφαρμογές κινητού;Android λογισμικό;Παιδότοπος;Mobile applications;Playground;Android software |
Description: | Πτυχιακή εργασία - Σχολή Τεχνολογικών Εφαρμογών - Τμήμα Μηχανικών Πληροφορικής, 2017 α.α. 8883 |
URI: | http://195.251.240.227/jspui/handle/123456789/13879 |
Item type: | bachelorThesis |
General Description / Additional Comments: | Πτυχιακή εργασία |
Subject classification: | Διεπαφές χρηστών (Συστήματα υπολογιστών) User interfaces (Computer systems) Application software -- Development Λογισμικό εφαρμογής -- Ανάπτυξη Android (Electronic resource) Android (Ηλεκτρονικός πόρος) Playgrounds Παιδότοποι |
Submission Date: | 2022-02-04T12:11:05Z |
Item language: | el |
Item access scheme: | free |
Institution and School/Department of submitter: | Σχολή Τεχνολογικών Εφαρμογών / Τμήμα Μηχανικών Πληροφορικής |
Publication date: | 2017-09-27 |
Bibliographic citation: | Μπανάτσας Χρίστος, Εφαρμογή Android για εύρεση και βαθμολογία παιδότοπων, Σχολή Τεχνολογικών Εφαρμογών / Τμήμα Μηχανικών Πληροφορικής, Διεθνές Πανεπιστήμιο Ελλάδος, 2017 |
Abstract: | Η παρούσα πτυχιακή εργασία έχει ως κύριο στόχο την ανάπτυξη μιας εφαρμογής σε
περιβάλλον Android. Η εφαρμογή επιτρέπει στον χρήστη να βρίσκει/προσθέτει και να
βαθμολογεί παιδότοπους στη περιοχή του καθώς και σε άλλες περιοχές.
Τα βασικά στοιχεία αυτής της πτυχιακής εργασίας επικεντρώνονται σε δύο μέρη. Το
πρώτο περιστρέφεται γύρω απο τις λειτουργίες που αφορούν τον
εξυπηρετητή(server) της εφαρμογής, εδώ κρατείται η βάση δεδομένων και γίνονται
όλοι οι απαραίτητοι υπολογισμοί ώστε το αποτέλεσμα τους να παρουσιαστεί στην
συνέχεια στον πελάτη(client), δηλαδή στην Android εφαρμογή. Η Android εφαρμογή
αποτελεί και το δεύτερο μέρος, ασχολείται με την αισθητική παρουσίαση των
αποτελεσμάτων που θα λάβει από τον εξυπηρετητή και οριοθετεί την ευχρηστία και
την εύκολη πρόσβαση μέσω της διεπαφής χρήστη(UI).
Συμπερασματικά λοιπόν πρόκειται για μια εφαρμογή η οποία από άποψη χρηστών
στοχεύει γονείς, ώστε να βρούν και να βοηθήσουν και άλλους γονείς να βρούν τους
κατάλληλους παιδότοπους για τα παιδιά τους. Ενώ από άποψη τεχνολογιών στοχεύει
σε δημοφιλείς νέες τεχνολογίες οι οποίες αποτελούν ένα ενδιαφέρον κομμάτι για
μελέτη. The current thesis has as main objective the development of an Android application. The application allows a user to find/add and rate playgrounds in him location as well as in others locations. Τhe basic elements of this thesis focus in two parts. The first one rotates around the usages of the server, here is held the database and take place all the necessary calculations so that their result be presented into client, the Android application. The second part is about Android application, is concerned with the aesthetics presentation of the server results and limits user-friendliness and easy access via the user interface(UI). In conclusion, is about an application which from a user's point of view, it aims parents to find and help other parents to find the best playgrounds for their children. In the other side, from a technology point of view, it aims popular and new technologies which they consist an interesting part to study. |
Table of contents: | ΠΡΟΛΟΓΟΣ………………………………………………………………………………......2 ΠΕΡΙΛΗΨΗ…………………………………………………………………………………...3 ΕΥΧΑΡΙΣΤΙΕΣ……………………………………………………………………………......5 Περιεχόμενα…………………………………………………………………………………..6 Εισαγωγή…………………………………………………………………………………….14 1 REST API……………………………………………………………………………...….16 1.1 Εισαγωγή..…………………………………………………………………………..16 1.2 Τι είναι…………………………………………………………………………….....16 1.3 Γιατί REST…………………………………………………………………………..16 1.4 Πως λειτουργεί……………………………………………………………………...17 1.5 Επίλογος…………………………………………………………………………….18 2 Αρχιτεκτονική και τεχνολογίες που χρησιμοποιήθηκαν……………………………...20 2.1 Εισαγωγή…………………………………………………………………………….20 2.2 Αρχιτεκτονική………………………………………………………………………...20 2.2.1 Συμβουλή……………………………………………………………………….21 2.3 τεχνολογίες που χρησιμοποιήθηκαν………………………………………………23 2.3.1 Gradle…………………………………………………………………………...23 2.3.1.1 Αυτοματοποιημένη δημιουργία…………………………………………..23 2.3.1.2 Διαχειριστής εξαρτήσεων………………………………………………...24 2.3.2 JSON…………………………………………………………………………….25 2.3.2.1 Μορφες JSON……………………………………………………………..25 2.3.2.2 JSON Parser……………………………………………………………....27 2.3.3 MongoDB………………………………………………………………………..27 2.3.3.1 NoSQL……………………………………………………………………...27 2.3.3.2 Έγγραφο (Document)………………………………………………….….27 2.3.3.2.1 Περιορισμοί πεδίων…………………………………………………..282.3.3.2.2 _id πεδίο………………………………………………………………28 2.3.3.2.3 Πλεονεκτήματα……………………………………...…….…………29 2.3.3.3 Mongo κέλυφος(Shell)………………………………………………...…29 2.3.3.4 Συλλογή (Collection)……………………………………………………..30 2.3.3.5 Ερωτήματα (Queries)……………………………………………….……31 2.3.3.5.1 Τελεστές ερωτημάτων……………………………………………….31 2.3.3.5.2 Παραδείγματα……………………………………………………..…32 2.3.3.6 Ενημέρωση (Update)………………………………….……………….…33 2.3.3.6.1 Τελεστές ενημέρωσης………………………………………….……33 2.3.3.6.2 Παραδείγματα………………………………………………………..34 2.3.3.7 Σύνολο (Aggregation)………………………………………………..…...36 2.3.3.8 Ευρετήρια (Indexes)……………………………………………………...38 2.3.3.9 Γεωγραφική αναζήτηση (Geospatial Query)………………………..….39 2.3.3.9.1 Παράδειγμα………………………………………………………40 2.3.3.10 GridFS……………………………………………………………………42 2.3.3.10.1 Συλλογές (Collections)………….……………………………..42 2.3.3.10.1.1 Chunks…………………...……………………………43 2.3.3.10.1.2 Files……………………...…………………………….44 2.3.3.10.2 Ευρετήρια (Indexes)………………………………………..…45 2.3.3.10.3 Χρήση GridFS……………………………………………….…..45 2.3.3.11 Πότε δεν προτείνεται η MongoDB…………………………………..…45 2.3.4 Ασφάλεια………………………………………..………………………...……..45 2.3.4.1 Basic Authentication………………………………………………..….45 2.3.5 Google Maps API (Geocode)……………………..…………………….….….47 2.3.5.1 Λειτουργία………………………………………………………………47 2.3.6 Spring framework…………………………………..………………………......51 2.3.6.1 Inversion of control container(Dependency Injection)………….….52 2.3.6.2 Ανάλυση ενοτήτων……………………………………………………..52 2.3.6.2.1 Core container:……………………………………………………522.3.6.2.2 AOP και Instrumentation…………………………………………53 2.3.6.2.3 Messaging…………………………………………………………53 2.3.6.2.4 Data Access/Integration…………………………………….……53 2.3.6.2.5 Web………………………………………………………….……..54 2.3.6.2.6 Τest…………………………………………………………..…….54 2.3.6.3 Spring projects…………………………………………………………55 2.3.6.3.1 Spring boot…………………………………………………..……55 2.3.6.3.2 Spring data………………………………………………….…….55 2.3.6.3.3 Spring security……………………………………………..……..55 2.3.7 Προγραμματιστικά περιβάλλοντα………….…….…………………….…...56 2.3.7.1 Intellij IDEA……………………………………………………..……...56 2.3.7.2 Postman…………………………………………………………...…...56 2.3.7.3 Filezilla………………………………………………………….………58 2.4 Επίλογος……………….……………………..……………………………...……..59 3 Χρήση και λειτουργία του Rest API……………………………………………..……...60 3.1 Eισαγωγή…………………………………………………………………..…...……60 3.2 Επεξηγήσεις…………………………………………………………………..……..60 3.3 Endpoints παιδότοπου………………………………………………………..…….61 3.4 Endpoints χρήστη…………………………………………………………….……..66 3.5 Eπίλογος…………………………………………………………………….……….68 4 Εισαγωγή στο λειτουργικό σύστημα Android…………………………………...……..69 4.1 Εισαγωγή……………………………………………………………………...……..69 4.2 Τι είναι το Android……………………………………………………………..…….69 4.3 Κύρια χαρακτηριστικά……………………………………………………….……...70 4.3.1 Δωρεάν και ανοιχτή πηγή…………………………………………….……….70 4.3.2 Δωρεάν διαθέσιμα εργαλεία ανάπτυξης λογισμικού……………….……….70 4.3.3 Οικίες γλώσσες προγραμματισμού…………………………………………..71 4.3.4 Google Play store……………………………………………………………...71 4.3.5 Material design…………………………………………………………………71 4.4 Aρχιτεκτονική του Android………………………………………………………….73 4.5 Επίλογος……………………………………………………………………………..75 5 Προγραμματισμός στο Android…………………………………………………………76 5.1 Εισαγωγή……………………………………………………………………….……76 5.2 Κατηγορίες εφαρμογών……………………………………………………….……76 5.2.1 Εφαρμογές προσκηνίου………………………………………………………76 5.2.2 Εφαρμογές παρασκηνίου……………………………………………………..77 5.2.3 Διακοπτόμενες εφαρμογές………………………………………………..…..77 5.2.4 Widgets…………………………………………………………………….…...77 5.3 Συστατικά στοιχεία μιας εφαρμογής………………………………………….…...78 5.3.1 Context………………………………………………………………………….78 5.3.2 Αctivity…………………………………………………………………………..78 5.3.3 Fragment………………………………………………………………….……80 5.3.4 Manifest…………………………………………………………………..…….82 5.3.5 Intent……………………………………………………………………...…….82 5.3.6 Service……………………………………………………...…………...……..82 5.3.7 Broadcast………………………………………………………………...…….83 5.3.8 Threads……………………………………………………………………...…83 5.3.9 AsyncTask……………………………………………………………….……..84 5.3.10 Layouts………………………………………………………………………..84 5.3.10.1 LinearLayout…………………………………………………….………84 5.3.10.2 RelativeLayout…………………………………………………...……..85 5.3.10.3 CoordinatorLayout………………………………………………..…….86 5.3.10.4 RecyclerView…………………………………………………….……...87 5.3.10.5 Dialogs…………………………………………………………….…….89 5.3.10.6 Toolbar……………………………………………………………..…….91 5.4 Eπίλογος………………………………………………………………….………92 6 Αρχιτεκτονική και τεχνολογίες που χρησιμοποιήθηκαν……………………….……..93 6.1 Εισαγωγή…………………………………………………………………….……...936.2 Αρχιτεκτονική…………………………………………………………………..……93 6.2.1 Tι είναι το MVP…………………………………………………………………93 6.2.2 Γιατί MVP……………………………………………………………….………93 6.2.3 Ανάλυση MVP………………………………………………………….………94 6.2.4 Σύνδεση………………………………………………………………………...95 6.3 Δομή του project στο Android Studio……………………………………………..97 6.4 Τεχνολογίες που χρησιμοποιήθηκαν…………………………………………….100 6.4.1 Java……………………………………………………………………………100 6.4.2 XML……………………………………………………………………………101 6.4.2.1 Βασική ορολογία………………………………………………………...102 6.4.3 Facebook SDK………………………………………….…………………….104 6.4.3.1 Εγγραφή σαν προγραμματιστής στο Facebook……….….…………104 6.4.3.2 Προσθήκη νέας εφαρμογής…………………………………………….104 6.4.3.3 Εισαγωγή του Facebook SDK στην Android εφαρμογή…………….105 6.4.3.4 Εισαγωγή στοιχείων στο Manifest………………………………..……106 6.4.3.5 Εισαγωγή ενός Facebook-login κουμπιού……………………………107 6.4.4 Google Sign-In…………………………………………………………..……109 6.4.4.1 Αρχείο ρυθμίσεων……………………………………………………….109 6.4.4.2 Εισαγωγή Google Sign-In στην Android εφαρμογή…………….……110 6.4.4.3 Εισαγωγή ενός Google Sign-In κουμπιού……………………….……110 6.4.3 EventBus………………………………………………………………………112 6.4.3.1 Πλεονεκτήματα EventBus………………………………………………113 6.4.3.2 Χρήση EventBus…………………………………………………...……114 6.4.3.3 Ορισμός Event……………………………………………………...……114 6.4.3.4 Προετοιμασία παραλήπτη (subscriber)..………………………...……115 6.4.3.5 Αποστολή Event…………………………………………………………116 6.4.4 Retrofit…………………………………………………………………………116 6.4.4.1 Δήλωση API………………………………………………………..…….116 6.4.4.2 Xειρισμός URL……………………………………………………...…...117 6.4.4.3 Σώμα ερωτήματος (Body Request)……………………………………118 6.4.4.4 Χειρισμός κεφαλίδας (header)………………………………...……….118 6.4.4.5 Εκτέλεση ερωτημάτων…………………………………………….……119 6.4.5 RxJava………………………………………………………………………...121 6.4.5.1 Δημιουργία/διαχείριση Observable/Subscriber………………………122 6.4.5.2 Τελεστές…………………………………………………………….…….124 6.4.5.2.1 Filter………………………………………………………………....125 6.4.5.2.2 Map……………………………………………………………….....127 6.4.5.2.3 FlatMap………………………………………………………….…..129 6.4.5.3 Schedulers…………………………………………………………….…131 6.4.5.4 Lambdas………………………………………………………………....132 6.4.5.5 Χρήση στο Android…………………………………………………..….133 6.4.6 Android Studio…………………………………………………………….…..134 6.5 Επίλογος………………………………………………………………….…..…….135 7 Αναλυτική λειτουργία και χρήση της εφαρμογής………………………………...…..136 7.1 Εισαγωγή…………………………………………………………………….……..136 7.2 Αρχική Οθόνη……………………………………………………………….……..136 7.3 ALL……………………………………………………………………………..…...138 7.4 Αναζήτηση………………………………………………………………………….138 7.5 ΝEAR ME…………………………………………………………………………..142 7.6 ΜΑP…………………………………………………………………………………143 7.7 Λεπτομέρειες παιδότοπου………………………………………………….……..144 7.7.1 Σύνδεση στην εφαρμογή…………………………………………………….147 7.7.2 Βαθμολόγηση παιδότοπου……………………………………………..…...149 7.7.3 Επεξεργασία πληροφοριών παιδότοπου…………………………….……154 7.7.4 Συμπλήρωση πεδίων που λείπουν………………………………….……..155 7.8 Λειτουργίες χρήστη………………………………………………………….…….156 7.9 Επίλογος…………………………………………………………………….……..158 8 Επίλογος………………………………………………………………………….……..1598.1 Σύνοψη και συμπεράσματα………………………………………………………159 8.2 Μελλοντικές επεκτάσεις……………………………………………………...…...159 9 Βιβλιογραφία και εξωτερικοί σύνδεσμοι………………………………………………160 9.1 Εξωτερικοί σύνδεσμοι………………………………………………………..……160 9.2 Βιβλιογραφία……………………………………………………………………….161 Παράρτημα Α……………………………………………………………………………….162 |
Advisor name: | Κεραμόπουλος, Ευκλείδης |
Examining committee: | Κεραμόπουλος, Ευκλείδης |
Publishing department/division: | Σχολή Τεχνολογικών Εφαρμογών / Τμήμα Μηχανικών Πληροφορικής |
Publishing institution: | ihu |
Number of pages: | 167 |
Appears in Collections: | Πτυχιακές Εργασίες |
Files in This Item:
File | Description | Size | Format | |
---|---|---|---|---|
Μπανάτσας Χρίστος.pdf | Μπανάτσας, Πτυχιακή | 12.97 MB | Adobe PDF | View/Open |
Please use this identifier to cite or link to this item:
This item is a favorite for 0 people.
http://195.251.240.227/jspui/handle/123456789/13879
Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.