Εφαρμογή 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
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
Appears in Collections:Πτυχιακές Εργασίες

Files in This Item:
File Description SizeFormat 
Μπανάτσας Χρίστος.pdfΜπανάτσας, Πτυχιακή 12.97 MBAdobe PDFView/Open



 Please use this identifier to cite or link to this item:
http://195.251.240.227/jspui/handle/123456789/13879
  This item is a favorite for 0 people.

Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.