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



Σχετικά έγγραφα
ΗΛΕΚΣΡΟΝΙΚΗ ΤΠΗΡΕΙΑ ΑΠΟΚΣΗΗ ΑΚΑΔΗΜΑΪΚΗ ΣΑΤΣΟΣΗΣΑ

Πωσ δθμιουργώ φακζλουσ;

Κάνουμε κλικ ςτθν επιλογι του οριηόντιου μενοφ «Get Skype»για να κατεβάςουμε ςτον υπολογιςτι μασ το πρόγραμμα του Skype.

ΕΝΟΤΗΤΑ 2: ΤΟ ΛΟΓΙΣΜΙΚΟ ΤΟΥ ΥΠΟΛΟΓΙΣΤΗ. ΚΕΦΑΛΑΙΟ 5: Γνωριμία με το λογιςμικό του υπολογιςτι

Ηλεκτρονικι Επιχειρθςιακι Δράςθ Εργαςτιριο 1

Περιεχόμενα. χολι Χοροφ Αντιγόνθ Βοφτου - Πολιτικι Διαχείριςθσ Cookie 1

Σφντομεσ Οδθγίεσ Χριςθσ

Virtualization. Στο ςυγκεκριμζνο οδηγό, θα παρουςιαςτεί η ικανότητα δοκιμήσ τησ διανομήσ Ubuntu 9.04, χωρίσ την ανάγκη του format.

Εγχειρίδιο Χρήςησ Προςωποποιημζνων Υπηρεςιών Γ.Ε.ΜΗ. (Εθνικό Τυπογραφείο)

Εγχειρίδιο Χρήςησ Προςωποποιημζνων Υπηρεςιών Γ.Ε.ΜΗ. (Εθνικό Τυπογραφείο)

Joomla! - User Guide

assessment.gr USER S MANUAL (users)

ΛΕΙΤΟΥΓΙΚΆ ΣΥΣΤΉΜΑΤΑ. 5 ο Εργαςτιριο Ειςαγωγι ςτθ Γραμμι Εντολϊν

ΟΔΗΓΙΕ ΔΗΜΙΟΤΡΓΙΑ ΚΑΙ ΡΤΘΜΙΗ ΔΩΡΕΑΝ ΗΛΕΚΣΡΟΝΙΚΟΤ ΣΑΧΤΔΡΟΜΕΙΟΤ ΣΟ GOOGLE (G-MAIL)

Epsilon Cloud Services

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 2 ο Εργαςτιριο Διαχείριςθ Διεργαςιϊν

ΟΔΗΓΙΕ ΓΙΑ ΣΗΝ ΕΙΑΓΩΓΗ ΕΚΔΡΟΜΩΝ & ΝΕΩΝ - ΑΝΑΚΟΙΝΩΕΩΝ ΣΗΝ ΙΣΟΕΛΙΔΑ ΣΗ Δ.Δ.Ε. ΘΕΠΡΩΣΙΑ

ΔΙΑΔΙΚΑΙΑ ΚΑΙ ΡΤΘΜΙΕΙ ΓΙΑ ΤΝΔΕΗ ΣΟ INTRANET ΣΟΤ ΕΚΕΣΑ-ΙΣΧΗΔ

ΕΝΟΤΗΤΑ 2: ΤΟ ΛΟΓΙΣΜΙΚΟ ΤΟΥ ΥΠΟΛΟΓΙΣΤΗ. ΚΕΦΑΛΑΙΟ 6: Το γραφικό περιβάλλον Επικοινωνίασ (Γ.Π.Ε)

Internet a jeho role v našem životě Το Διαδίκτυο και ο ρόλοσ του ςτθ ηωι μασ

Εγχειρίδιο Χρήςησ Support

Εγχειρίδιο Χριςθσ τθσ διαδικτυακισ εφαρμογισ «Υποβολι και παρακολοφκθςθ τθσ ζγκριςθσ Εκπαιδευτικών Πακζτων»

SingularLogic Application. Παραμετροποίηση Galaxy Application Server

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

Οδηγός χρήσης Blackboard Learning System για φοιτητές

ΕΝΟΣΗΣΑ 1: ΓΝΩΡIΖΩ ΣΟΝ ΤΠΟΛΟΓΙΣΗ. ΚΕΦΑΛΑΙΟ 2: Σο Τλικό του Τπολογιςτι

ΕΦΑΡΜΟΓΕ ΒΑΕΩΝ ΔΕΔΟΜΕΝΩΝ ΣΗ ΝΟΗΛΕΤΣΙΚΗ. Φιλιοποφλου Ειρινθ

Διαδικαςία Διαχείριςθσ Στθλϊν Βιβλίου Εςόδων - Εξόδων. (v.1.0.7)

Οδηγίες Πρόζβαζης ζηο EndNote Web. Πρόζβαζη ζηο EndNote Web

Σφςτημα Κεντρικήσ Υποςτήριξησ τησ Πρακτικήσ Άςκηςησ Φοιτητών ΑΕΙ

Διαδικασία Δημιοσργίας Ειδικών Λογαριασμών. (v.1.0.7)

Λειτουργικά υςτιματα Windows XP

ΕΦΑΡΜΟΓΖσ ΒΆΕΩΝ ΔΕΔΟΜΖΝΩΝ ΚΑΙ ΔΙΑΔΙΚΣΥΟΤ. Ειρινθ Φιλιοποφλου

Εγχειρίδιο Χρήςησ Προςωποποιημζνων Υπηρεςιών Γ.Ε.ΜΗ. (Περιφέρειες)

Οδηγίες αναβάθμισης χαρτών

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

Διαδικαζία Διατείριζης Εκηύπωζης Ιζοζσγίοσ Γενικού - Αναλσηικών Καθολικών. (v )

Πρόςβαςη και δήλωςη μαθημάτων ςτον Εφδοξο

Διαχείριςθ του φακζλου "public_html" ςτο ΠΣΔ

Οδηγίεσ για τη ςφνδεςη του υπολογιςτή ςασ ςτουσ προβολείσ των αιθουςών Ι 1, Ι 2, Ι 3 και του 10 ου ορόφου

Εγκατάσταση & Διαχείριση Joomla στο Π.Σ.Δ. ΣΥΜΒΟΥΛΟ ΡΛΗΟΦΟΙΚΗΣ Ν. ΣΕΩΝ & ΚΕ.ΡΛΗ.ΝΕ.Τ. Ν. ΣΕΩΝ

TIM Εικονικό Περιβάλλον Συνεργασίας Οδθγίεσ Χριςθσ

Megatron ERP Βάςη δεδομζνων Π/Φ - κατηγοριοποίηςη Databox

1. Κατέβαςμα του VirtueMart

Δείκτεσ Διαχείριςθ Μνιμθσ. Βαγγζλθσ Οικονόμου Διάλεξθ 8

Εισαγωγικές έννοιες. Αντώνησ Κ Μαώργιώτησ

Διαδικαςία Προγράμματοσ Ωρομζτρθςθσ. (v.1.0.7)

ΟΔΗΓΙΕ ΓΙΑ ΣΗ ΔΗΜΙΟΤΡΓΙΑ ΚΑΙ ΣΗΝ ΤΠΟΒΟΛΗ ΑΙΣΗΗ ΓΙΑ «ΚΟΤΠΟΝΙ ΚΑΙΝΟΣΟΜΙΑ»

Εγχειρίδιο Χριςθσ: Εφαρμογι Αιτιςεων για τα Εκπαιδευτικά Προγράμματα του Προςωπικοφ των Επιχειριςεων Τροφίμων

τατιςτικά ςτοιχεία ιςτότοπου Κ.Ε.Π.Α. Α.Ν.Ε.Μ, για τθν περίοδο 1/1/ /12/2014

Σμιμα Marketing & Sales

ΕΝΟΤΗΤΑ 2: ΕΠΙΚΟΙΝΩΝΩ ΜΕ ΤΟΝ ΥΠΟΛΟΓΙΣΤΗ. ΚΕΦΑΛΑΙΟ 5: Αρχεία - Φάκελοι

1. Εγκατάςταςη κειμενογράφου JCE

Οδηγόσ εγκατάςταςησ και ενεργοποίηςησ

Modellus 4.01 Συ ντομοσ Οδηγο σ

Εφδοξοσ+ Συνδεκείτε ςτθν Εφαρμογι Φοιτθτϊν και μεταβείτε ςτθ ςελίδα «Ανταλλαγι Βιβλίων (Εφδοξοσ+)».

Διαχείριςη Αριθμοδεικτών (v.1.0.7)

Seventron Limited. Οδηγίες χρήσης EnglishOnlineTests.com

Οδηγίεσ προσ τουσ εκπαιδευτικοφσ για το μοντζλο του Άβακα

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

Σμιμα Marketing & Sales

Εγχειρίδιο Χρήσης Google Cloud Print

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 7 θ Διάλεξθ Διαχείριςθ Μνιμθσ Μζροσ Γ

1 Εγκατϊςταςη λογαριαςμού

1. ΕΝΗΜΕΡΩΗ My Cosmos

Εγχειρίδιο Χρήςησ Αυτοματοποίηςησ Κυκλώματοσ Πληρωμών ΟΛΠ μζςω e-banking VERSION <Final>

Οδηγίεσ ρφθμιςησ Cisco ATA186. Υπηρεςία Επικοινωνίασ & υνεργαςίασ

Extra Λογιςτική Διαχείριςη & Extra Μιςθοδοςία

Ηλεκτρονικι Υπθρεςία Ολοκλθρωμζνθσ Διαχείριςθσ Συγγραμμάτων και Λοιπϊν Βοθκθμάτων

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

ΕΝΟΤΘΤΑ 2: ΤΟ ΛΟΓΙΣΜΙΚΟ ΤΟΥ ΥΠΟΛΟΓΙΣΤΘ. ΚΕΦΑΛΑΙΟ 8: Πειρατεία Λογιςμικοφ

Ειδικά Θζματα Βάςεων Δεδομζνων

Διδάςκων: Κωνςταντίνοσ τεφανίδθσ

5 ΜΕΘΟΔΟΙ - ΠΑΡΑΜΕΤΡΟΙ

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

ΕΝΟΣΗΣΑ 1: ΓΝΩΡIΖΩ ΣΟΝ ΤΠΟΛΟΓΙΣΗ Ω ΕΝΙΑΙΟ ΤΣΗΜΑ. ΚΕΦΑΛΑΙΟ 2: Σο Εςωτερικό του Τπολογιςτι

Οδηγίεσ προσ τουσ εκπαιδευτικοφσ για το μοντζλο τησ Αριθμογραμμήσ

ΕΝΟΣΗΣΑ 1: ΓΝΩΡIΖΩ ΣΟΝ ΤΠΟΛΟΓΙΣΗ. ΚΕΦΑΛΑΙΟ 3: Εργονομία

Οδθγόσ για τθν αξιοποίθςθ τθσ διαςφνδεςθσ του myschool με το Εκνικό Δθμοτολόγιο

Εγκατάσταση & Διαχείριση Joomla ΤΜΒΟΤΛΟ ΠΛΗΡΟΦΟΡΙΚΗ Ν. ΕΡΡΩΝ & ΚΕ.ΠΛΗ.ΝΕ.Σ. Ν. ΕΡΡΩΝ

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

Οδθγόσ εγκατάςταςθσ προγραμμάτων για ανάπτυξθ εφαρμογών ςε iphone

Ζρευνα ικανοποίθςθσ τουριςτϊν

ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΗ. του ΙΑΣΡΟΦΑΡΜΑΚΕΤΣΙΚΟΤ ΦΑΚΕΛΟΤ ΑΘΕΝΩΝ Για τον ΟΙΚΟ ΝΑΤΣΟΤ ΕΡΓΑΣΗΡΙΑΚΟΙ ΓΙΑΣΡΟΙ. iknowhow Πληροφορική A.E

Αυτόματη δημιουργία στηλών Αντιστοίχηση νέων λογαριασμών ΦΠΑ

Είςοδοσ/Εγγραφή ςτη διαχειριςτική ςελίδα του Σχολείου

Μάθημα 9 ο ΤΕΧΝΙΚΕΣ ΔΙΑΧΕΙΡΙΣΗΣ ΕΙΚΟΝΙΚΗΣ ΜΝΗΜΗΣ

Κατά τθν ενεργοποίθςθ τθσ ιδιότθτασ αυτισ ενδζχεται να εμφανιςτεί ζνα μινυμα ςαν αυτό τθσ παρακάτω εικόνασ. Απλά επιβεβαιϊςτε πατϊντασ ΟΚ.

Εισαγωγή Νέου Παγίου

groupsms Interface: Εργαλείο μαζικών αποζηολών SMS

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

Εγχειρίδιο Χρήςησ Προςωποποιημζνων Υπηρεςιών Γ.Ε.ΜΗ. (Επιμελητήρια)

Ιδιότθτεσ πεδίων Γενικζσ.

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

ελ. 11/235, Περιεχόμενα Φακζλου "Σεχνικι Προςφορά"

Οδθγίεσ Ρρόςβαςθσ Στισ Εφαρμογζσ EMCS και AIS Και τθν Διαχείριςθ Ηλεκτρονικϊν Εξουςιοδοτιςεων

Σύντομος Οδηγός Χρήσης της web εφαρμογής ΠΥΑΝΕΑ. 1 ο Βή μα

ΕΝΟΤΗΤΑ 3: Χριςθ εργαλείων ζκφραςθσ, επικοινωνίασ, ανακάλυψθσ και δθμιουργίασ. ΚΕΦΑΛΑΙΟ 7: Υπθρεςίεσ Αναηιτθςθσ ςτον Παγκόςμιο Ιςτό

Σ ΤΑΤ Ι Σ Τ Ι Κ Η. Statisticum collegium V

φντομη Παρουςίαςη epr.gr

Transcript:

ΔΘΝΙΚΟ ΜΔΣΟΒΙΟ ΠΟΛΤΣΔΥΝΔΙΟ ΥΟΛΗ ΗΛΔΚΣΡΟΛΟΓΩΝ ΜΗΥΑΝΙΚΩΝ ΚΑΙ ΜΗΥΑΝΙΚΩΝ ΤΠΟΛΟΓΙΣΩΝ ΣΟΜΔΑ ΔΠΙΚΟΙΝΩΝΙΩΝ,ΗΛΔΚΣΡΟΝΙΚΗ ΚΑΙ ΤΣΗΜΑΣΩΝ ΠΛΗΡΟΦΟΡΙΚΗ Ανάπηςξη εθαπμογήρ κοινυνικών δικηύυν ζε Android ΓΙΠΛΩΜΑΣΙΚΗ ΔΡΓΑΙΑ ηεο Άνναρ Ξενάκη Επιβλέπυν: Θενδώξα Βαξβαξίγνπ Καζεγήηξηα Δ.Μ.Π Αζήλα, Μάίνο 2013

2

ΔΘΝΙΚΟ ΜΔΣΟΒΙΟ ΠΟΛΤΣΔΥΝΔΙΟ ΥΟΛΗ ΗΛΔΚΣΡΟΛΟΓΩΝ ΜΗΥΑΝΙΚΩΝ ΚΑΙ ΜΗΥΑΝΙΚΩΝ ΤΠΟΛΟΓΙΣΩΝ ΣΟΜΔΑ ΣΔΥΝΟΛΟΓΙΑ ΠΛΗΡΟΦΟΡΙΚΗ ΚΑΙ ΤΠΟΛΟΓΙΣΩΝ Ανάπηςξη εθαπμογήρ κοινυνικών δικηύυν ζε Android ΓΙΠΛΩΜΑΣΙΚΗ ΔΡΓΑΙΑ ηεο ΑΝΝΑΣ ΞΕΝΑΚΗ Επιβλέπυν: Θενδώξα Βαξβαξίγνπ Καζεγήηξηα Δ.Μ.Π Δγθξίζεθε από ηελ ηξηκειή εμεηαζηηθή επηηξνπή ηελ 18 ε Φεβξνπαξίνπ 1999 (Τπνγξαθή) (Τπνγξαθή) (Τπνγξαθή)......... ΘενδώξαΒαξβαξίγνπ Διεπζέξηνο Καγηάθαο Βαζίιεηνο Λνύκνο Καζεγήηξηα Δ.Μ.Π. Καζεγεηήο Δ.Μ.Π. Καζεγεηήο Δ.Μ.Π. Αζήλα, Μάίνο 2013 3

(Τπνγξαθή)... Ξελάθε Άλλα Γηπισκαηνύρνο Ηιεθηξνιόγνο Μεραληθόο θαη Μεραληθόο Τπνινγηζηώλ Δ.Μ.Π. Copyright Άλλα Ξελάθε Με επηθύιαμε παληόο δηθαηώκαηνο. All rights reserved. Απαγνξεύεηαη ε αληηγξαθή, απνζήθεπζε θαη δηαλνκή ηεο παξνύζαο εξγαζίαο, εμ νινθιήξνπ ή ηκήκαηνο απηήο, γηα εκπνξηθό ζθνπό. Δπηηξέπεηαη ε αλαηύπσζε, απνζήθεπζε θαη δηαλνκή γηα ζθνπό κε θεξδνζθνπηθό, εθπαίδεπηηθήο ή εξεπλεηηθήο θύζεο, ππό ηελ πξνππόζεζε λα αλαθέξεηαη ε πεγή πξνέιεπζεο θαη λα δηαηεξείηαη ην παξόλ κήλπκα. Δξσηήκαηα πνπ αθνξνύλ ηε ρξήζε ηεο εξγαζίαο γηα θεξδνζθνπηθό ζθνπό πξέπεη λα απεπζύλνληαη πξνο ηνλ ζπγγξαθέα. Οη απόςεηο θαη ηα ζπκπεξάζκαηα πνπ πεξηέρνληαη ζε απηό ην έγγξαθν εθθξάδνπλ ηνλ ζπγγξαθέα θαη δελ πξέπεη λα εξκελεπζεί όηη αληηπξνζσπεύνπλ ηηο επίζεκεο ζέζεηο ηνπ Δζληθνύ Μεηζόβηνπ Πνιπηερλείνπ. 4

Πεπίλητη Ο ζθνπόο ηεο δηπισκαηηθήο εξγαζίαο ήηαλ ε δεκηνπξγία κίαο εθαξκνγήο πνπ ζα αλαζύξεη δεδνκέλα από ην δίθηπν θνηλσληθήο δηθηύσζεο LinkedIn θαη ζηε ζπλέρεηα ζα ηα παξνπζηάδεη. Η πινπνίεζε ηεο εθαξκνγήο έγηλε πάλσ ζην ζύζηεκα Android. Σν Android είλαη έλα Λεηηνπξγηθό ύζηεκα γηα θηλεηά ηειέθσλα ην νπνίν καο επηηξέπεη λα δεκηνπξγνύκε εθαξκνγέο γη απηά. Ο ζρεδηαζκόο ηεο εθαξκνγήο έγηλε ζηε πιαηθόξκα eclipse κε ηε βνήζεηα εηδηθώλ εξγαιείσλ ζρεδηαζκνύ γηα android. Πην ζπγθεθξηκέλα ε εθαξκνγή, κε ηελ άδεηα ηνπ ρξήζηε, δεηά δεδνκέλα ηνπ βαζηθνύ πξνθίι ηνπ ρξήζηε, ηηο επαθέο ηνπ θαη όζα δεδνκέλα πάλσ ζε απηέο παξέρεη ην LinkedIn. ηε ζπλέρεηα πξνβάιεη ην πξνθίι ηνπ ρξήζηε, ηε ιίζηα κε ηηο επαθέο ηνπ ρξήζηε νλνκαζηηθά θαη θαηεγνξηνπνηεί ηηο επαθέο ηνπ ρξήζηε κε βάζε ην θιάδν ηεο επηρείξεζεο πνπ έρνπλ δειώζεη γηα λα κπνξεί ν ρξήζηεο λα βξεη ζπλεξγάηεο ζηνλ θύθιν ησλ επαθώλ ηνπ αλα θαηεγνξία. Η εθαξκνγή απηή ρξεζηκνπνηεί ηελ ππάξρνπζα βηβιηνζήθε ηνπ socialauth γηα android 1.0 θαζώο θαη ηελ αληίζηνηρε θύξηα βηβιηνζήθε πνπ δηεπθνιύλεη ηελ επηθνηλσλία κε θνηλσληθά δίθηπα. Λέξειρ κλειδιά: θηλεηό, android, LinkedIn, δίθηπα θνηλσληθήο δηθηύσζεο, εθαξκνγή 5

6

Abstract The purpose of my diplomatic work was to create an application that will retrieve data from the social network LinkedIn and then present them on a mobile phone screen. The application will run in mobile phones over Android. Android is a Linux- based operating system designed primarily for touch screen mobile devices such as smartphones and tablet computers which provides tools for creating applications. The application was designed on the eclipse platform with the assistance of android tools. The application logs in with the user's profile in LinkedIn and requests permission for basic profile information and user's connections as well as information provided from LinkedIn for those connections. Later it presents a user profile view, a connection list view and a view with categorized connections by industry so users can find associates by category. This application uses the library of socialauth for android and its compatible basic library for communication with social networks. keywords: mobile phone, android, LinkedIn, social networks, application 7

8

Πίνακασ Περιεχομζνων 1. Ειςαγωγι... 11 1.1. Κινθτι Τθλεφωνία... 11 1.2. Android... 12 1.2.1. Ιςτορία... 12 1.2.2. Διεπιφάνεια (Interface)... 13 1.2.3. Εφαρμογζσ και Ανάπτυξθ... 14 1.2.4. Linux... 14 1.2.5. Διαχείρθςθ Μνιμθσ... 16 1.2.6. Αςφάλεια... 17 1.2.7. Licensing... 17 2. Σκοπόσ τθσ εργαςίασ... 19 3. Συμπλθρωματικά προγράμματα- εργαλεία... 20 3.1. Socialauth... 20 3.2. Socialauth-android... 23 3.3. Eclipse-Εργαλεία Σχεδιαςμοφ Android Εφαρμογϊν... 24 3.4. Apigee... 25 3.5. LinkedIn... 25 3.6. OAuth - Εξουςιοδότθςθ... 27 3.6.1. OAuth 1.0... 27 3.6.2. OAuth 2.0... 33 3.7. Εξουςιοδότθςθ ςτο LinkedIn... 34 3.8. Άδειεσ... 35 4. Αναλυτικι περιγραφι τθσ εφαρμογισ... 36 4.1. Χειριςμόσ εφαρμογισ... 36 9

4.2. Υλοποίθςθ... 39 4.3. Άδειεσ Λογιςμικοφ... 52 5. Παράρτθμα Α... 53 5.1. Κϊδικασ εφαρμογισ... 53 6. Βιβλιογραφία... 98 10

1. Ειζαγωγή Στθν ενότθτα αυτι κα κάνουμε μία ςφντομθ ιςτορικι αναδρομι ςτθ κινθτι τθλεφωνία εμβακφνοντασ ςτα smartphones και ςτο λειτουργικό ςφςτθμα Android για να κατανοιςουμε καλφτερα τθν εφαρμογι που δθμιουργιςαμε. 1.1. Κινηηή Τηλεθωνία Κινθτό τθλζφωνο (ι απλά κινθτό), ονομάηεται κατά κφριο λόγο το τθλζφωνο που δεν εξαρτάται από φυςικι καλωδιακι ςφνδεςθ με δίκτυο παροχισ τθλεφωνίασ και δεν εξαρτάται από κάποια τοπικι αςφρματθ ςυςκευι εκπομπισ ραδιοφωνικοφ ςιματοσ χαμθλισ ςυχνότθτασ. Τα κινθτά τθλζφωνα χρθςιμοποιοφν τεχνολογία κυψελϊν (cells) και εκπζμπουν ςε υψθλζσ ςυχνότθτεσ. Για τθν εκπομπι και λιψθ των ςθμάτων χρθςιμοποιείται πλζον, αποκλειςτικά ψθφιακι τεχνολογία με κωδικοποίθςθ. Από το 1990 μζχρι το 2011 οι χριςτεσ των κινθτϊν ςυςκευϊν αυξικθκαν ραγδαία απο 12.4 εκατομμφρια ςε 6 δισ εκατομμφρια, προςεγγίηοντασ το 87% του πλθκυςμοφ. Σθμζρα τα κινθτά τθλζφωνα υποςτθρίηουν πολφ περιςςότερεσ δυνατότθτεσ πζρα από τθ διεξαγωγι απλϊν κλιςεων. Κάποιεσ από αυτζσ είναι τα μθνφματα, MMS, email, internet, υπζρυκρεσ, bluetooth, επαγγελματικζσ εφαρμογζσ, παιχνίδια και θ φωτογραφικι μθχανι. Οι ςυςκευζσ που προςφζρουν όλεσ αυτζσ τισ υπθρεςίεσ και γενικότερα ιδιότθτεσ υπολογιςτϊν αναφζρονται γενικότερα ωσ smartphones. Η πρϊτθ κινθτι ςυςκευι τθλεφϊνου χειρόσ δθμιουργικθκε από τουσ John F. Mitchell και Dr Martin Cooper για τθ Motorola το 1973 και ηφγιηε περίπου 1 κιλό. Το πρϊτο διαφθμιςτικό ζγινε απο το δίκτυο ΝΤΤ τθσ Ιαπωνίασ το 1979 αρχικά ςτθ πρωτεφουςα του Τοκυο. Το 1981 ακολοφκθςαν διαφθμίςεισ για το Nordic Mobile Telephone (NMT) ςτισ Δανία, Φινλανδία,Σουθδία και Νορβθγία. Πολλζσ άλλεσ χϊρεσ ακολοφκθςαν ςυμπεριλαμβανομζνων τθσ Αγγλίασ, του Μεξικοφ και του Καναδά. Στισ 6 Μαρτίου του 1983 θ Ameritech κυκλοφόρθςε ςτθν αγορά το 11

μοντζλο DynaTAc το οποιο ειχε 1G, ϊρεσ ομιλίασ 0,5 και για τθ λειτουργία του απαιτοφςε 10 ϊρεσ φόρτθςθσ. Το 1991 θ Radiolinja ςτθ Φινλανδία ζβγαλε τα πρϊτα κινθτά τθλζφωνα 2G βαςιςμζνα ςτο πρότυπο GSM. Δζκα χρόνια αργότερα το 2001 τα πρϊτα κινθτά 3G κυκλοφόρθςαν ςτθν Ιαπωνία από τθν NTT DoCoMo βαςιςμζνα ςτο πρότυπο WCDMA. Στθ ςυνζχεια ακολοφκθςαν 3.5G, 3G+, turbo 3G βαςιςμζνα ςτο high-speed packet access (HSPA) παρζχοντασ τθ δυνατότθτα ςτα δίκτυα UMTS να κάνουν ταχφτερθ μεταφορά δεδομζνων και μεγαλφτερθ χωρθτικότθτα. Μζχρι το 2009 είχε γίνει ςαφζσ ότι τα δίκτυα 3G δε μποροφςαν να υποςτθρίξουν εφαρμογζσ που ςχετίηονταν με εφαρμογζσ πολυμζςων του ιντερνετ (streaming media). Κατά ςυνζπεια άρχιςαν να αναπτφςςονται τα κινθτά 4θσ γενιάσ με ζωσ και 10 φορζσ καλφτερεσ ταχφτθτεσ ςε ςχζςθ με τα δίκτυα 3θσ γενίασ. Τα κινθτά 4G ςτθρίηονταν ςε δφο πρότυπα, το WiMAX και το LTE που παρουςιάςτθκαν πρϊτα από τθ Σκανδιναβικι TeliaSonera. Όμωσ οι εξελίξεισ ςτθ κινθτι τθλεφωνία δε ςταμάτθςαν εκεί το 2005 θ Android Inc. καταςκεφαςε τo λογιςμικό για τα πρϊτα κινιτα smartphones και tablets το οποίο αργότερα αγοράςτθκε από τθ Google. Σν πξώην θηλεηό κε ινγηζκηθό android πνπιήζεθε ηνλ Οθηώβξην ηνπ 2008. 1.2. Android 1.2.1. Ιζηοπία Το Android είναι λειτουργικό ςφςτθμα για ςυςκευζσ κινθτισ τθλεφωνίασ το οποίο τρζχει τον πυρινα του λειτουργικοφ Linux. Αρχικά αναπτφχκθκε από τθν Google και αργότερα από τθν Open Handset Alliance. Επιτρζπει ςτουσ καταςκευαςτζσ λογιςμικοφ να ςυνκζτουν κϊδικα με τθν χριςθ τθσ γλϊςςασ προγραμματιςμοφ Java, ελζγχοντασ τθν ςυςκευι μζςω βιβλιοκθκϊν λογιςμικοφ ανεπτυγμζνων από τθν Google. Η Android Inc. ιδρφκθκε ςτο Palto Alto τθσ Καλιφόρνια τον Οκτϊβριο του 2003 από τουσ Andy Rubin, Rich Miner, Nick Sears, Chris White. Αρχικόσ ςκοπόσ τθσ 12

εταιρείασ ιταν θ καταςκευι λογιςμικοφ για ψθφιακζσ μθχανζσ όταν ςυνειδθτοποίθςαν ότι δεν αφορά μεγάλο αγοραςτικό κοινό και ζςτρεψαν τισ προςπάκειεσ τουσ ςτθ καταςκευι μιασ κινθτισ ςυςκευισ που να δουλεφει με λογιςμικό παραπλιςιο τθσ Symbian και τθσ Windows Mobile (τότε δεν είχε ακόμθ κυκλοφοριςει το iphone τθσ Apple). Η Google αγόραςε τθν Android Inc. ςτισ 17 Αυγοφςτου 2005. Μετά τθν αγορά οι Rubin, Miner και White παρζμειναν ςτθν εταιρεία. Στθ Google θ ομάδα του Rubin ανζπτυξε λογιςμό με βάθ τον φλοιό των Linux. Η πρϊτθ παρουςίαςθ τθσ πλατφόρμασ Android ζγινε ςτισ 5 Νοεμβρίου 2007, παράλλθλα με τθν ανακοίνωςθ τθσ ίδρυςθσ του οργανιςμοφ Open Handset Alliance, μιασ κοινοπραξίασ 48 τθλεπικοινωνιακϊν εταιριϊν, εταιριϊν λογιςμικοφ κακϊσ και καταςκευισ hardware, οι οποίεσ είναι αφιερωμζνεσ ςτθν ανάπτυξθκαι εξζλιξθ ανοιχτϊν προτφπων ςτισ ςυςκευζσ κινθτισ τθλεφωνίασ. Το πρϊτο κινθτό Android ιταν το HTC Dream και κυκλοφόρθςε ςτισ 22 Οκτωβρίου 2008. Από το 2008 και μετά το Android ζβγαλε πολλζσ ενθμερϊςεισ και ςταδιακά βελτιϊςε εκκετικά το λειτουργικό ςφςτθμα. Κάκε καινοφργια ζκδοςθ ονομάηεται με το πρϊτο γράμμα ςε αλφαβθτικι ςειρά ςε ςχζςθ με τισ προθγοφμενεσ εκδόςεισ με βάςθ κάποιο γλυκό. 1.2.2. Διεπιθάνεια (Interface) H διεπιφάνεια του android ςτθρίηεται ςτον απευκείασ χειριςμό τθσ ςυςκευισ, δθλαδι με τθ χριςθ οκόνθσ αφισ ο χριςτθσ μπορεί με απλζσ κινιςεισ των δακτφλων να χειρίηεται πολλζσ οκόνεσ και λειτουργίεσ άμεςα. Οι κινιςεισ του χριςτθ γίνονται αντιλθπτζσ από τθ ςυςκευι και θ ςυςκευι αφινει το χριςτθ να καταλάβει πότε ζγιναν αντιλθπτζσ με ανάλογουσ ιχουσ και δονιςεισ. Οι ςυςκευζσ android ζχουν επίςθσ επυταχυνςιόμετρα, γυροςκόπια και αιςκθτιρεσ εγγφτθτασ που χρθςιμοποιοφνται ςε διάφορεσ εφαρμογζσ (όπωσ για παράδειγμα θ μετατροπι τθσ οκόνθσ από κάκετθ ςε οριηόντια ανάλογα με το πωσ κρατιζται θ ςυςκευι ι ο χειριςμόσ ωσ τιμόνι ςε μία εφαρμογι με οδιγθςθ εικονικϊν αυτοκινιτων) 13

Τα κινθτά ανοίγουν ςε μία κεντρικι οκόνθ όπωσ θ οκόνθ ενόσ υπολογιςτι. Η οκόνθ αυτι δομείται ςυνικωσ από εικονίδια των διαφορων εφαρμογϊν τα οποία με ζνα πάτθμα ανοίγουν τθν εφαρμογι. Εικονίδια που απεικονίηουν ςτοιχεία λειτουργίασ τθσ ςυςκευισ (μπαταρία, ϊρα, ςυνδεςιμότθτα δικτφου κ.τ.λ) βρίςκονται ςτθ μπάρα λειτουργιϊν. Ειδοποιιςεισ για χαμζνεσ κλιςεισ και άλλεσ ειδοποιιςεισ εφαρμογϊν εμφανίηονται ςαν Popups και ςτθ ςυνζχεια εξαφανίηονται από τθ κεντρικι οκόνθ και εμφανίηονται ςε ξεχωριςτι οκόνθ που εμφανίηεται με ςυρςιμο του δαχτφλου προσ τα κάτω, πάνω ςτθν οκόνθ. Εικόνα 1 Αρχική οθόνη android 1.2.3. Εθαπμογέρ και Ανάπηςξη Εφαρμογζσ ςχεδιάηονται για κινθτά android ςτθ γλϊςςα προγραμματιςμοφ java με τθ βοικεια του Android Software Development Kit (SDK 1 ). Το SDK περιζχει debugger, βιβλιοκικεσ, προςομοιωτι βαςιςμζνο ςτο QEMU (Quick emulator), αρχεία με πλθροφορίεσ, παραδείγματα κϊδικα και tutorials. Η πιο δθμοφιλισ πλατφόρμα που χρθςιμοποιείται είναι το Eclipse το οποίο ζχει τα αντίςτοιχα εργαλεία για android ( Android development Tools (ADT) ). Άλλα εργαλεία που χρθςιμοποιοφνται είναι το Native Development Kit για εφαργμογζσ ςε C ι C++ και το Google App Inventor με γραφικό περιβάλλον για αρχάριουσ ςχεδιαςτζσ λογιςμικοφ. 1.2.4. Linux Οι αρχικζσ εκδόςεισ του android βαςίηονται ςτο φλοιό των linux ζκδοςθσ 2.6 και από το Android Ice Cream Sandwich 4.0 και ζπειτα ςτθν ζκδοςθ των linux 3.x με βιβλιοκικεσ και εφαρμογζσ γραμμζνεσ ςε C και application framework που 1 http://developer.android.com/sdk/index.html 14

περιζχει βιβλιοκικεσ ςυμβατζσ με τθ Java βαςιςμζνεσ ςτο Apache Harmony. To android χρθςιμοποιεί τθ Dalvik virtual machine με just-in-time μεταγλϊττιςθ για να τρζξει το εκτζλεςιμο αρχείο Dalvik που είναι μετεφραςμζνο από κϊδικα Java ςε μορφι byte. Το android ακολουκεί τθν αρχιτεκτονικι ARM (βαςιςμζνθ ςε RISC υπολογιςτζσ ). Ο φλοιόσ των linux ζχει υποςτεί αρχιτεκτονικζσ αλλαγζσ από τθ Google εκτόσ του κφκλου τθσ τυπικισ ανάπτυξθσ του φλοιοφ. Δεν υποςτθρίηει το πρωτόκολλο X Windows System [1] οφτε το πλιρεσ ςφνολο των κλαςικϊν βιβλιοκθκϊν τθσ GNU και αυτό κακιςτά δφςκολο να εγκακιςτοφν τισ υπάρχουςεσ εφαρμογζσ Linux ι βιβλιοκικεσ για Android. Υποςτιριξθ απλισ C και SDL [2] εφαρμογϊν είναι δυνατι με προςκικθ μίασ shim [3] και χριςθ JNI [4]. Η μνιμθ των κινθτϊν android είναι χωριςμζνθ ςε πολλά κομμάτια όπωσ "/system" για το λειτουργικό ςφςτθμα και "/data" για το χριςτθ και τισ εγκαταςτάςεισ των εφαρμογϊν. Σε αντίκεςθ με τισ εκδόςεισ των linux οι χριςτεσ των android δεν ζχουν δικαιϊμα να πειράξουν μζρθ τθσ μνιμθσ όπωσ "/system" γιάτι είναι επιςτρεπτι μόνο θ ανάγνωςθ για λόγουσ αςφαλείασ. Παρόλα αυτά προγραμματιςτζσ μποροφν να επιρεάςουν το ςφςτθμα και να επιτρζψουν τθ τροποποίθςθ αυξάνοντασ τισ δυνατότθτεσ του ςυςτιματοσ ι προςκζτοντασ ιοφσ. 2 [1] X-Windows is a computer software system and network protocol that provides a basis for graphical user interfaces (GUIs) and rich input device capability for networked computers. [2] Simple DirectMedia Layer (SDL) is a cross-platform, free and open source multimedia library written in C that presents a simple interface to various platforms' graphics, sound, and input devices. [3] shim is a small library that transparently intercepts an API and changes the parameters passed, handles the operation itself, or redirects the operation elsewhere. [4] Java Native Interface (JNI) is a programming framework that enables Java code running in a Java Virtual Machine (JVM) to call, and to be called by, native applications (programs specific to a hardware and operating system platform) and libraries written in other languages such as C, C++ and assembly. 15

Εικόνα 2 Περιγραφή ςυςτήματοσ android 1.2.5. Διασείπηζη Μνήμηρ Επειδι οι περιςςότερεσ ςυςκευζσ android λειτουργοφν με μπαταρία, είναι ςχεδιαςμζνο να χειρίηεται τθ μνιμθ (RAM) και να ζχει τθν ελάχιςτθ κατανάλωςθ μπαταρίασ. Όταν κάποια εφαρμογι δε χρθςιμοποιείται πλζον από το χριςτθ το ςφςτθμα περιορίηει τθ μνιμθ που τθσ αφιερϊνει κρατϊντασ τθν όμωσ ακόμθ ανοιχτι. Οι εφαρμογζσ που παραμζνουν ανοιχτζσ αλλά εκτόσ χριςθσ δε χρθςιμοποιοφν τουσ πόρουσ τθσ ςυςκευισ (μπαταρία) μζχρι να επανζλκουν ςτο προςκινιο. Αυτό βελτιϊνει τθν απόκριςθ των εφαρμογϊν κακϊσ κάκε φορά που 16

ο χριςτθσ επιλζγει να τισ χρθςιμοποιιςει δε χρειάηεται να τισ ανοίξει εξ'αρχισ. Το android χειρίηεται τισ εφαρμογζσ που παραμζνουν ςτο παραςκινιο αυτόματα. Όταν θ μνιμθ ελαχιςτοποιείται το ςφςτθμα κα αρχίςει να κλείνει εφαρμογζσ που ιταν ανενεργζσ για μεγάλο χρονικό διάςτθμα. 1.2.6. Αζθάλεια Το android τρζχει τισ διάφορεσ εφαρμογζσ ςτο sandbox, μια απομονωμζνθ περιοχι του ςυςτιματοσ που δεν ζχει πρόςβαςθ ςτο υπόλοιπο ςφςτθμα εκτόσ αν ζχουν δοκεί τα αντίςτοιχα δικαιϊματα ςτθν εγκατάςταςθ από το χριςτθ. 1.2.7. Licensing Ο κϊδικασ του android πάρεχεται ωσ free and open-source λογιςμικό. Η Google διακζτει τα περιςςότερα κομμάτια του κϊδικα (ςυμπεριλαμβανομζνων των ςωρϊν του δικτφου και τθσ τθλεφωνίασ) υπό το license τθσ Apache v.2.0 και τισ υπόλοιπεσ αλλαγζσ ςτο φλοιό των linux υπό το license τθσ GNU General Public License v.2. H Open Handset Alliance τισ αλλαγζσ ςτο φλοιό των Linux τισ διζκετε πάντα ανοιχτζσ ςε όλουσ ενϊ το υπόλοιπο λογιςμικό του android που ςχεδιάςτθκε από τθ Google γινόταν διακζςιμο μόλισ κυκλοφοροφςε θ καινοφργια ζκδοςθ. Οι εφαρμογζσ android που ςχεδιάηονται από ιδιϊτεσ φζρουν τα δικά τουσ licenses. Στθ ςυνζχεια ακολουκεί ζνασ πίνακασ με πλθροφορίεσ για όλεσ τισ εκδόςεισ android 17

Εκδοςη Ονομαςία Ημερομηνία Ζκδοςησ API level Κατανομή (Μαϊοσ 1, 2013) 4.2.x Jelly Bean Νοζμβριοσ 13, 2012 17 2.3% 4.1.x Jelly Bean Ιοφλιοσ 9, 2012 16 26.1% 4.0.x Ice Cream Sandwich Δεκζμβριοσ 16, 2011 15 27.5% 3.2 Honeycomb Ιοφλιοσ 15, 2011 13 0.1% 3.1 Honeycomb Μάϊοσ 10, 2011 12 2.3.3 2.3.7 Gingerbread Φεβρουάριοσ 9, 2011 10 38.4% 2.3 2.3.2 Gingerbread Δεκζμβριοσ 6, 2010 9 0.1% 2.2 Froyo Μάϊοσ 20, 2010 8 3.7% 2.0 2.1 Eclair Οκτϊβριοσ 26, 2009 7 1.7% 1.6 Donut Σεπτζμβριοσ 15, 2009 4 0.1% 1.5 Cupcake Απρίλιος 30, 2009 3 18

2. Σκοπόρ ηηρ επγαζίαρ Στα πλαίςια τθσ εργαςίασ αυτισ δθμιουργιςαμε μία εφαρμογι για κινθτζσ ςυςκευζσ android θ οποία παίρνει δεδομζνα από ζνα λογαριαςμό LinkedIn και τα παρουςιάηει ςε οκόνεσ. Η εφαρμογι αυτι χρθςιμοποιεί τθν υπάρχουςα βιβλιοκικθ του socialauth. Πιο ςυγκεκριμζνα ο χριςτθσ με τθ βοικεια του socialauth ςυνδζεται ςτο λογαριαςμό του ςτο LinkedIn και δίνει ςτθν εφαρμογι τα δικαιϊματα να αναςφρει δεδομζνα από το προφίλ του. Αφοφ γίνει θ ςφνδεςθ και ο χριςτθσ μπει ςτο λογαριαςμό του, βγαίνει ζνα παράκυρο που του δίνει τθν επιλογι να δει το προςωπικό του προφίλ, να γράψει κάτι ςτο τοίχο του, να δει τθ λίςτα των φίλων του και να δει ποιοι από τουσ φίλουσ του ανικουν ςε κάποιο τομζα εργαςίασ ανά κατθγορίεσ. Για το προφίλ του χριςτθ ηθτοφνται τα δεδομζνα του βαςικοφ προφίλ όνομα, επίκετο, χϊρα, τοποκεςία, url τθσ φωτογραφίασ προφίλ και e-mail. Στθ ςυνζχεια αυτά παρουςιάηονται ςε ξεχωριςτι οκόνθ. Για τθ λίςτα των επαφϊν του χριςτθ ηθτοφνται τα δεδομζνα λίςτασ χριςτθ πιο ςυγκεκριμζνα όνομα και επίκετο. Στθ ςυνζχεια ςε ξεχωριςτι οκόνθ παρουςιάηεται θ λίςτα επαφϊν του χριςτθ με όνομα και επίκετο. Για τθ λίςτα επαφϊν του χριςτθ με βάςθ το τομζα εργαςίασ ηθτοφνται και πάλι δεδομζνα λίςτασ χριςτθ και πιο ςυγκεκριμζνα, όνομα, επίκετο, url τθσ φωτογραφίασ προφίλ, url του προφίλ τθσ επαφισ και τομζασ εργαςίασ. Στθ ςυνζχεια κατθγοριοποιεί τθσ επαφζσ του χριςτθ ςε κατθγορίεσ με βάςθ το γενικότερο τομζα εργαςίασ (πχ. οικονομικά) κατόπιν επιλογισ τθσ πρϊτθσ κατθγορίασ ο χριςτθσ καλείται να επιλζξει με βάςθ τον τομζα εργαςίασ που ζχουν δθλϊςει οι επαφζσ του. Στο τελόσ πραςουςιάηονται τα ςτοιχεία τθσ επαφισ ςε ξεχωριςτι οκόνθ. Κακ'όλθ τθ διάρκεια λειτουργίασ τθσ εφαρμογισ ο χριςτθσ ζχει τθ δυνατότθτα να πλοθγείται εντόσ τθσ εφαρμογισ ςε προθγοφμενα παράκυρα. 19

3. Σςμπληπωμαηικά ππογπάμμαηα- επγαλεία Για τθ λειτουργία τθσ εφαρμογισ χρθςιμοποιικθκαν ειδικά εργαλεία τθσ πλατφόρμασ eclipse κακϊσ και υπάρχουςεσ βιβλιοκικεσ του socialauth-android και socialauth. Επίςθσ χρθςιμοποιικθκαν λειτουργίεσ τθσ κονςόλασ Apigee, πρωτόκολλα εξουςιοδότθςθσ. 3.1. Socialauth Σε αυτό το ςθμείο πρζπει να γίνει μια αναφορά ςτο Socialauth και το τρόπο που δουλεφει. Για τθ δθμιουργία οποιαςδιποτε εφαρμογισ android που αναςφρει δεδομζνα από κάποιο κοινωνικό δίκτυο είναι απαραίτθτθ θ ανάλθψθ δικαιωμάτων δθμιουργίασ εφαρμογισ από το εκάςτοτε κοινωνικό δίκτυο. Για αυτό το ςκοπό κάκε προγραμματιςτισ λαμβάνει τα αντίςτοιχα κλειδιά τθσ εφαρμογισ του. Αντίςτοιχα και το Socialauth και ςτθ περίπτωςι μασ το mylinkedιnapp για να καταφζρουν τθ ςφνδεςθ τθσ εφαρμογισ ςτο κοινωνικό δίκτυο πρζπει πρϊτα να κάνουν ςφνδεςθ (Log in) με τα κλειδιά τουσ. 20

Εικόνα 3 Διαδικαςία λήψησ κλειδιϊν εφαρμογήσ Αφοφ ζχει γίνει επιτυχισ ςφνδεςθ τθσ εφαρμογισ με το κοινωνικό δίκτυο τθσ αρεςκίασ μασ ηθτείται από το χριςτθ να ςυνδεκεί με το προςωπικό του λογαριαςμό ςτο κοινωνικό δίκτυο. Τθ ςτιγμι που ο χριςτθσ κα πατιςει τι κζλει να εμφανιςτεί από τθν εφαρμογι ςτθ ςυνζχεια κα ςταλεί μία αίτθςθ GET ςτο κοινωνικό δίκτυο και αυτι αφοφ επιβεβαιϊςει ότι ο χριςτθσ ζχει όντωσ δικαίωμα να κάνει αυτι τθν αίτθςθ κα επιςτρζψει το αποτζλεςμα τθσ αίτθςθσ μασ. Αυτό κα το λάβει θ εφαρμογι μασ και κα το επεξεργαςτεί ανάλογα ϊςτε να μπορεί να το παρουςιάςει. Όταν τελειϊςει αυτι θ διαδικαςία κα παρουςιαςτοφν γραφικά τα αποτελζςματα ςε καινοφργια οκόνθ. Στθν Εικόνα 4 Εικόνα 3 Διαδικαςία λιψθσ κλειδιϊν εφαρμογισβλζπουμε πιο παραςτατικά τθ διαδικαςία. 21

Εικόνα 4 Παραςτατική λειτουργία ςυςτήματοσ 22

3.2. Socialauth-android To Socialauth -android προςκζτει τα χαρακτθριςτικά του Socialauth ςε περιβάλλον android. Εφ'όςον προςτεκεί ςτθν εφαρμογι ακολουκεί θ εξουςιοδότθςθ ςε περιβάλλον android. Ο χριςτθσ ανοίγει τθν εφαρμογι και επιλζγει τον πάροχο από τον οποίο κα ηθτιςει τθν εξουςιοδότθςθ χρθςιμοποιϊντασ τθ βιβλιοκικθ του SocialAuthandroid. Στθ ςυνζχεια ο χριςτθσ προτρζπεται να ειςάγει τα απαραίτθτα ςτοιχεία για τθ ςφνδεςθ. Ζπειτα ο πάροχοσ κα ηθτιςει τα απαραίτθτα δικαιϊματα για να μοιραςτεί τα δεδομζνα του χριςτθ ςτο κοινωνικό δίκτυο με τθν εφαρμογι. Με τθν αποδοχι ζχει επιτευχκεί θ εξουςιοδότθςθ και ο χριςτθσ επιςτρζφει ςτθν εφαρμογι. Τϊρα ο χριςτθσ μπορεί να χειριςτεί τα δεδομζνα του μζςω τθσ εφαρμογισ. Στθν Εικόνα 5 ακολουκεί θ διαδικαςία ςε διάγραμμα. 23

Εικόνα 5. Διάγραμμα λειτουργίασ SocialAuth-android 3.3. Eclipse-Επγαλεία Σσεδιαζμού Android Εθαπμογών Τα εργαλεία ςχεδιαςμοφ android εφαρμογϊν (Android Development Tools (ADT)) μπαίνουν ωσ πρόςκετα ςτθ πλατφόρμα του Eclipse και διευκολφνουν το ςχεδιαςμό Android εφαρμογϊν,φτιάχνουν το γραφικό περιβάλλον τθσ εφαρμογισ, προςκζτουν βιβλιοκικεσ του Android, κάνουν ζλεγχο για ςφάλματα, εξάγουν υπογεγραμζνα ι όχι αρχεία τφπου.apk για εγκατάςταςθ τθσ εφαρμογισ. 24

3.4. Apigee Το Apigee είναι μια πλατφόρμα για προγραμματιςτζσ που περιζχει ςτο ςχεδιαςμό του εργαλεία για καλφτερο, πιο λειτουργικό ςχεδιαςμό εφαρμογϊν. Πιο ςυγκεκριμζνα διακζτει μια πλθκϊρα κοινωνικϊν δικτφων (ςυνολικά 80) και μζςω τθσ ειδικά ςχεδιαςμζνθσ κονςόλασ προςφζρει ςτο προγραμματιςτι τθ δυνατότθτα να δει τι δεδομζνα μπορεί να ηθτιςει από κάκε κοινωνικό δίκτυο και να ελζγξει το αποτζλεςμα των αιτιςεων δεδομζνων (requests, queries) που κα εκάνε ςτο πάροχο (GET, PUT, POST, DELETE). Η Εικόνα 6 παρουςιάηει γραφικά τθ λειτουργία του Apigee. Εικόνα 6 Apigee 3.5. LinkedIn Το LinkedIn είναι ζνα κοινωνικό δίκτυο για επαγγελματίεσ. Δθμιουργικθκε το Δεκζμβριο του 2002 και δθμοςιοποιικθκε το Μάϊο του 2003. Η πρωταρχικι του χριςθ είναι για επαγγελματικι δικτφωςθ. Από τον Ιανουάριο του 2013 το LinkedIn ζχει παραπάνω από 200 εκατομμφρια χριςτεσ ςε πάνω από 200 χϊρεσ. Μζςω του LinkedIn οι χριςτεσ ζχουν τθ δυνατότθτα: Να γνωρίςουν επαγγελματικζσ επαφζσ δευτζρου βακμοφ (επαφζσ των επαφϊν τουσ) κακϊσ και επαγγελματικζσ επαφζσ τρίτου βακμοφ. 25

Να ανεβάςουν το βιογραφικό τουσ θλεκτρονικά και να παρουςιάςουν καλφτερα το επαγγελματικό τουσ προφίλ (εργαζιακή εμπειρία και αναλσηικό ηοσ εκπαιδεσηικό σπόβαθρο) και τισ κοινωνικζσ τουσ δραςτθριότθτεσ. Να βρουν εργαςία, ςυνεργάτεσ και επιχειρθματικζσ ευκαιρίεσ που προβάλλονται από τισ επαφζσ τουσ. Ωσ εργοδότεσ να δθμοςιοποιιςουν εργαςιακζσ ευκαιρίεσ. Αν αναηθτοφν εργαςία να κοιτάξουν τα προφίλ υπεφκυνων ανκρϊπινου δυναμικοφ και να δουν ποιοι γνωςτοί τουσ μποροφν να τουσ ςυςτιςουν. Να δθμοςιοποιιςουν φωτογραφίεσ και να δουν φωτογραφίεσ (με ςκοπό τθν περιτζρω αναγνϊριςθ των ικανοτιτων τουσ). Να ακολουκιςουν τισ ενθμερϊςεισ εταιριϊν και να παίρνουν ειδοποιιςεισ για επαγγελματικζσ ευκαιρίεσ. Να αποκθκεφςουν κζςεισ εργαςίασ που κα ικελαν να κάνουν αίτθςθ και όταν παρουςιαςτεί θ ευκαιρία να πάρουν δράςθ. Τα δεδομζνα των επαφϊν προςτατεφονται από το International Safe Harbor Privacy Principles. Το LinkedIn εκτόσ των άλλων προςφζρει και κάποιεσ επιπλζον εφαρμογζσ όπωσ το "LinkedIn Answers" όπου χριςτεσ κάνουν ερωτιςεισ επαγγελματικοφ περιεχομζνου επϊνυμα και δζχονται απάντθςεισ από άλλουσ επϊνυμουσ χριςτεσ ( πράγμα που αυξάνει τθν αξιοπιςτία των απαντιςεων ), "LinkedIn Polls", "LinkedIn DirectAds" (μία μορφι διαφθμίςεων). Το LinkedIn επίςθσ υποςτθρίηει τθ ςυμμετοχι ςε groups (ομάδεσ) ενδιαφερόντων. Οι περιςςότερεσ ομάδεσ ςχετίηονται με επαγγελματικά κζματα ενϊ υπάρχουν και ομάδεσ απόφοιτων. Τα groups παρζχουν τθ δυνατότθτα ςυηιτθςθσ θ οποία όμωσ ελζγχεται από τουσ υπεφκυνουσ του group. Κατά τθν αναηιτθςθ μίασ εταιρείασ ςτο LinkedIn παρουςιάηονται ςτατιςτικά ςτοιχεία για τθν εταιρεία αυτι όπωσ ποςοςτά ανδρϊν γυναικϊν, οι κζςεισ με το μεγαλφτερο ποςοςτό υπαλλιλων, θ τοποκεςία των κεντρικϊν γραφείων τισ εταιρείασ ι μία λίςτα από παλιοφσ και τωρινοφσ υπαλλιλουσ. 26

Τζλοσ, το LinkedIn προςφζρει ςτουσ χριςτεσ τθ δυνατότθτα να επαλθκεφςουν τισ ικανότθτεσ που ζχουν δθλϊςει οι επαφζσ τουσ (endorse). Με αυτό το τρόπο πιςτοποιοφνται περιςςότερο οι ικανότθτεσ των μελϊν του LinkedIn. 3.6. OAuth - Εξοςζιοδόηηζη Το OAuth είναι το πιο δθμοφιλζσ πρωτόκολλο εξουςιοδότθςθσ που χρθςιμοποιείται. Παρζχει τθ δυνατότθτα ςτουσ χριςτεσ να ζχουν πρόςβαςθ ςε πόρουσ που υπάρχουν ςε ζνα server εκ μζρουσ του διαχειρθςτι του. Επίςθσ παρζχει τθ δυνατότθτα παραχϊρθςθσ δικαιωμάτων ςε τρίτουσ χριςτεσ ϊςτε να μποροφν να ζχουν πρόςβαςθ ςε κάποιουσ πόρουσ που τουσ ανικουν χωρίσ να μοιράηονται τουσ κωδικοφσ τουσ με αυτοφσ. Στο κλαςικό μοντζλο εξουςιοδότθςθσ ο χριςτθσ (client) χρθςιμοποιεί τουσ κωδικοφσ του και με τθ πιςτοποίθςθ αυτϊν ζχει πρόςβαςθ ςτουσ πόρουσ που του αντιςτοιχοφν ςτο server. Το OAuth ειςάγει ζνα επιπλζον ρόλο ςε αυτό το μοντζλο αυτόν του διαχειριςτι πόρων (resource owner). Ο χριςτθσ (που δεν είναι διαχειριςτισ πόρων) ςτθ περίπτωςθ αυτι ηθτάει πρόςβαςθ ςε πόρουσ που χειρίηεται ο διαχειριςτισ και φιλοξενοφνται ςτο server. Για αυτό το λόγο πρζπει να πιςτοποιθκοφν όχι μόνο ο χριςτθσ με τουσ κωδικοφσ του αλλά και ο διαχειριςτισ πόρων για αυτι τθν αίτθςθ. 3.6.1. OAuth 1.0 Το OAuth 1.0 περιγράφεται από το πρωτόκολλο RFC5849. Ορολογία χρήςτησ (client) : Ενασ χριςτθσ HTTP (με βάςθ το πρωτόκολλο RFC2616) ικανόσ να κάνει αιτιςεισ εξουςιοδότθςθσ OAuth. διακομιςτήσ ( server): Ενασ HTTP διακομιςτισ με βάςθ το πρωτόκολλο RFC2616) ικανόσ να δεχτεί αιτιματα εξουςιοδότθςθσ OAuth. προςτατευμζνοσ πόροσ (protected resource): Πόροσ ςτον οποίο αποκτά κάποιοσ πρόςβαςθ από το διακομιςτι χρθςιμοποιϊντασ αιτιςεισ εξουςιοδότθςθσ OAuth. 27

διαχειριςτήσ πόρων(resource owner): Μία οντότθτα που ζχει τθν ικανότθτα πρόςβαςθσ και χειριςμοφ των προςτατευμζνων πόρων αφοφ παρουςιάςει τα κατάλλθλα διαπιςτευτιρια ςτο διακομιςτι. διαπιςτευτήρια(credentials): Ενα ηευγάρι από μοναδικό όνομα και κωδικό. Το OAuth κακορίηει τρεισ κλάςεισ διαπιςτευτθρίων : χριςτθ(client), παροδικά (temporary) και τεκμιρια (token), τα οποία χρθςιμοποιοφνται για να πιςτοποιιςουν και να εξουςιοδοτιςουν τον χριςτθ που ζνα απλό αίτθμα, ζνα αίτθμα εξουςιοδότθςθσ και ζνα αίτθμα πρόςβαςθσ αντίςτοιχα. τεκμήριο (token): Ενα μοναδικό πιςτοποιθτικό που δίνεται από το server και χρθςιμοποιείται από το χριςτθ για να μπορεί να ςυςχετίςει τα αιτιματα με το διαχειρθςτι πόρων του οποίου θ εξουςιοδότθςθ ηθτείται ι ζχει ιδθ αποκτθκεί από το χριςτθ. Τα τεκμιρια ζχουν ταιριαςτό κοινό κωδικό (shared-secret) που χρθςιμοποιείται από το χριςτθ για να επιτευχκεί θ ιδιοκτθςία του τεκμθρίου και θ δυνατότθτα του να παρουςιάςει τον διαχειριςτι πόρων. Σε αντιςτοιχεία με τουσ παραπάνω όρουσ χρθςιμοποιοφνται οι : Πελάτησ : χρήςτησ (Consumer : client ) Πάροχοσ: διακομιςτήσ Χρήςτησ : διαχειριςτήσ πόρων (Service Provider: server) (User: resource owner) Consumer Key and Secret: πιςτοποιητικά χρήςτη (Consumer Key and Secret: client credentials) Request Token and Secret: παροδικά πιςτοποιητικά (Request Token and Secret: temporary credentials) Access Token and Secret: πιςτοποιητικά τεκμηρίων (Access Token and Secret: token credentials) Διαδικαςία-Παράδειγμα 28

Ο Γιϊργοσ (διαχειριςτισ πόρων) πρόςφατα ανζβαςε κάποιεσ φωτογραφίεσ ςτο προςωπικό του φάκελο ςτο "photos.example.net" (server) και κα ικελε να τισ τυπϊςει από τον ιςτόχωρο "printer.example.com" (client). Πρακτικά κα κάνει εγγραφι με το λογαριαςμό του ςτο "photos.example.net" αλλά επειδι δε κζλει να μοιραςτεί τουσ κωδικοφσ του με το "printer.example.com" το "printer.example.com" κα ηθτιςει κάποια πιςτοποιθτικά χριςτθ από το "photos.example.net". Client Identifier: Client Shared-Secret: dpf43f3p2l4k3l03 kd94hf93k423kf44 Το "printer.example.com" κα χρθςιμοποιιςει τθ μεκοδο πιςτοποίθςθσ "HMAC- SHA1" όπωσ ορίηει το "photos.example.net". Temporary Credential Request https://photos.example.net/initiate Resource Owner Authorization URI: https://photos.example.net/authorize Token Request URI: https://photos.example.net/token Προτοφ ηθτθκεί άδεια χειριςμοφ φωτογραφιϊν από το Γιϊργο πρζπει να δθμιουργθκοφν παροδικά πιςτοποιθτικά με το "photos.example.net". Ακολουκϊντασ το πρωτόκολλο HTTPS (RFC2818) κα γίνει αίτθςθ ςτο διακομιςτι 29

POST /initiate HTTP/1.1 Host: photos.example.net Authorization: OAuth realm="photos", oauth_consumer_key="dpf43f3p2l4k3l03", oauth_signature_method="hmac-sha1", oauth_timestamp="137131200", oauth_nonce="wijqos", oauth_callback="http%3a%2f%2fprinter.example.com%2fready", oauth_signature="74knzjedhnmbp0emj9zht%2fxkycu%3d" Ο διακομιςτισ πιςτοποιεί το αίτθμα και απαντά με παροδικά πιςτοποιθτικά ςε μια απάντθςθ HTTP HTTP/1.1 200 OK Content-Type: application/x-www-form-urlencoded oauth_token=hh5s93j4hdidpola&oauth_token_secret=hdhd0 244k9j7ao03& oauth_callback_confirmed=true Ο χριςτθσ ηθτά τα δικαιϊματα από το Γιϊργο https://photos.example.net/authorize?oauth_token=hh5s93j4 hdidpola Ο διακομιςτισ ηθτά από το Γιϊργο να κάνει εγγραφι ςτο ςφςτθμα και να εγκρίνει τα δικαιϊματα που ζχει ηθτιςει ο "printer.example.com".ο Γιϊργοσ εγκρίνει τα δικαιϊματα και επιςτρζφουμε ςτο προθγοφμενο αίτθμα μζςω του callback-uri. 30

http://printer.example.com/ready? oauth_token=hh5s93j4hdidpola&oauth_verifier=hfdp7dh39dks9 884 To link αυτό επαλθκεφει ότι ζχουν δοκεί τα δικαιϊματα και ο χριςτθσ ηθτά πιςτοποιθτικά τεκμθρίων με τα ιδθ υπάρχοντα παροδικά πιςτοποιθτικά μζςω ενόσ αςφαλοφσ καναλιοφ (secure Transport Layer Seurity (TLS) ). POST /token HTTP/1.1 Host: photos.example.net Authorization: OAuth realm="photos", oauth_consumer_key="dpf43f3p2l4k3l03", oauth_token="hh5s93j4hdidpola", oauth_signature_method="hmac-sha1", oauth_timestamp="137131201", oauth_nonce="walatlh", oauth_verifier="hfdp7dh39dks9884", oauth_signature="gkgrfcywp7ro0oxsjdot%2fihf7iu%3d" Ο διακομιςτισ επαλθκεφει το αίτθμα και απαντά με πιςτοποιθτικά τεκμθρίων ςε HTTP HTTP/1.1 200 OK Content-Type: application/x-www-form-urlencoded oauth_token=nnch734d00sl2jdk&oauth_token_secret=pfkkdhi9sl 3r4s00 Με τα πιςτοποιθτικά τεκμθριϊν ο χριςτθσ μπορεί πλζον να πάρει τισ προςωπικζσ φωτογραφίεσ του Γιϊργου 31

GET /photos?file=vacation.jpg&size=original HTTP/1.1 Host: photos.example.net Authorization: OAuth realm="photos", oauth_consumer_key="dpf43f3p2l4k3l03", oauth_token="nnch734d00sl2jdk", oauth_signature_method="hmac-sha1", oauth_timestamp="137131202", oauth_nonce="chapoh", oauth_signature="mdpqcu8ipsujwon%2fudmsk2sui9i%3d" Ο χριςτθσ μπορεί να ςυνεχίςει να παίρνει φωτογραφίεσ από το φάκελο του Γιϊργου μζχρι αυτόσ να αποςφρει τα δικαιϊματα που ζχει παραχωριςει. Στθν Εικόνα 7 βλζπουμε ςχθματικά τθ διαδικαςία Εικόνα 7. OAuth authentication flow 32

3.6.2. OAuth 2.0 Το OAuth2 είναι θ επόμενθ ζκδοςθ του OAuth και εςτιάηει ςτθν απλότθτα των ςυνδζςεων. Δεν υποςτθρίηει τθν υπογραφι, τθ κρυπτογράφθςθ ι τθ ςφνδεςθ ςε αςφαλι κανάλια. Απαντά αποκλειςτικά ςε SSL και παρζχει κάποιο επίπεδο εμπιςτευτικότθτασ και εξουςιοδότθςθσ. Τα πιςτοποιθτικά του χρειάηονται ανανζωςθ γιατί διαρκοφν για μικρό χρονικό διάςτθμα. Στο OAuth2 υπάρχει διαχωριςμόσ ανάμεςα ςτο διακομιςτι που χειρίηεται τισ αιτιςεισ OAuth και ςτο διακομιςτι για εξουςιοδότθςθ. Δουλεφει περιςςότερο ςα πλαίςιο παρά ϊσ πρωτόκολλο. Το OAuth2 περιγράφεται από το πρωτόκολλο RFC6749. Στθν Εικόνα 8 περιγράφεται ςχθματικά θ δομι του πρωτοκόλλου. Εικόνα 8 OAuth2 ροή πρωτόκολλου. Στθν Εικόνα 9 περιγράφεται θ ανανζωςθ των πιςτοποιθτικϊν. 33

Εικόνα 9 Ανανζωςη των πιςτοποιητικϊν που ζχουν λήξει 3.7. Εξοςζιοδόηηζη ζηο LinkedIn Για τθ δθμιουργία τθσ εφαρμογισ χρειάςτθκε να πιςτοποιιςουμε τθν εφαρμογι μασ από το Linkedin και από το χριςτθ για να μποροφμε να πάρουμε δεδομζνα από το προφίλ του χριςτθ και να τα επεξεργάςτοφμε με τθν εφαρμογι. Για το ςκοπό αυτό μζςω του LinkedIn developers δθλϊςαμε τθν εφαρμογι μασ και πιραμε τα απαραίτθτα κλειδιά OAuth (consumer_key, consumer_secret). Στθ ςυνζχεια μζςω τθσ κλάςθσ LinkedInImpl.java που βρίςκεται ςτισ βιβλιοκικεσ μασ παίρνουμε τα απαραίτθτα πιςτοποιθτικά ςτζλνοντασ τα αιτιματα μασ ςτουσ ςυνδζςμουσ που ακολουκοφν όπωσ ορίηει το πρωτόκολλο OAuth 1. 0. 34

OAUTH_REQUEST_TOKEN_URL: https://api.linkedin.com/uas/oauth/requesttoken OAUTH_AUTHORIZATION_URL: https://api.linkedin.com/uas/oauth/authenticate OAUTH_ACCESS_TOKEN_URL: https://api.linkedin.com/uas/oauth/accesstoken 3.8. Άδειερ Αξίηει να αναφερκεί ότι ςτο LinkedIn υπάρχουν πολλά πεδία που παρότι παρζχονται οι αντίςτοιχεσ άδειεσ από το χριςτθ και τθροφνται όλα τα πρωτοκόλλα το κοινωνικό δίκτυο δεν επιτρζπει τθ πρόςβαςθ ςε αυτά ςε κανζνα διαχειριςτι. Για παράδειγμα οι δεξιότθτεσ (skills) των επαφϊν ενόσ χριςτθ ι τα e-mail τουσ ι θ θμερομθνία γεννθςισ τουσ κακϊσ και πολλά άλλα δε παρζχονται από το ςφςτθμα για να γίνει θ περαιτζρω επεξεργαςία τουσ με τθν εφαρμογι μασ. Γιαυτό το λόγο και ςτα πλαίςια τθσ εφαρμογισ παρουςιάηονται μόνο όςα πεδία προςφζρονται 35

4. Αναλςηική πεπιγπαθή ηηρ εθαπμογήρ Ακολουκεί μία αναλυτικι περιγραφι των κλάςεων τθσ εφαρμογισ για μεγαλφτερθ κατανοιςθ. 4.1. Φειπιζμόρ εθαπμογήρ Όταν ανοίξει θ εφαρμογι αρχικά παρουςιάηονται τα διακζςιμα κοινωνικά δίκτυα προσ ςφνδεςθ (Εικόνα 10) ςτθ περίπτωςι μασ επιλζγουμε το LinkedIn και ακολουκεί μία οκόνθ όπου ο χριςτθσ εγγράφεται ςτο κοινωνικό δίκτυο χρθςιμοποιϊντασ τουσ κωδικοφσ του και παράλλθλα παρζχει τα απαραίτθτα δικαιϊματα ςτθν εφαρμογι μασ (εικόνα 11). Στθ ςυνζχεια εμφανίηεται ζνα παράκυρο επιλογϊν ςτο οποίο ο χριςτθσ επιλζγει τι κελει να προβλθκεί, το προφίλ του, να γράψει κάτι ςτο προφίλ του, να δει τθ λίςτα των επαφϊν του, και τουσ φίλουσ του κατθγοριοποιθμζνουσ με βάςθ το επάγγελμα, επίςθσ υπάρχει επιλογι για επιςτροφι ςτθ προθγοφμενθ οκόνθ. Εικόνα 10 Αρχική Οθόνη Εφαρμογήσ Eικόνα 11. Εγγραφή χρήςτη Εικόνα 12. Παράθυρο επιλογϊν 36

Αν ο χριςτθσ επιλζξει να προβλθκεί το προφίλ του, εμφανίηεται θ εικόνα 13. Για λόγουσ προςταςίασ προςωπικϊν δεδομζνων ζχουν αλλαχκεί τα πρόςωπα ςτισ φωτογραφίεσ και ζχουν καλυφκεί τα προςωπικά ςτοιχεία. Εικόνα 13. Προφίλ χρήςτη Αν ο χριςτθσ επιλζξει να δει τθ λίςτα επαφϊν του κα εμφανιςτεί θ εικόνα 14. Εικόνα 14. Λίςτα επαφϊν Εάν ο χριςτθσ επιλζξει να δει τισ επαφζσ του κατθγοριοποιθμζνεσ με βάςθ το επάγγελμα, κα εμφανιςτεί αρχικά μία οκόνθ (εικόνα 15) με τισ κατθγορίεσ επαγγελμάτων χωριςμζνεσ ςε γενικότερεσ κατθγορίεσ. Αυτζσ είναι : τζχνθ (art ) γεωργία (agriculture ) 37

καταςκευζσ (constructions ) εταιρεία (corporation ) εκπαίδευςθ (education ) χρθματοοικονομικά (finance ) αγακά (goods ) κυβζρνθςθ (government ) υγεία (health ) νομοκεςία (legislation ) παραγωγι (manufacturing ) μζςα ενθμζρωςθσ (media ) οργάνωςθ (organisation ) αναψυχι (recreation) υπθρεςίεσ (services ) τεχνολογία (technology ) μεταφορά (tranportation ) απροςδιόριςτο (undefined ) Στθ ςυνζχεια αφοφ επιλζξει ςε ποια από αυτζσ κζλει να δει αν υπαρχοφν επαφζσ του κα εμφανιςτεί μια οκόνθ (εικόναι 16) με τα επαγγζλματα που ανικουν ςτο ςυγκεκριμζνο κλάδο εργαςίασ. Στισ παρανκζςεισ εμφανίηεται ο αρικμόσ των επαφϊν του χριςτθ που ανικουν ςτθ κάκε κατθγορία. Τα επαγγζλματα ορίηονται από το LinkedIn και φτάνουν ςυνολικά τα 143. Με τθν επιλογι επαγγζλματοσ κα εμφανιςτεί μία λίςτα από επαφζσ με το ςυγκεκριμζνο επάγγελμα (εικόνα 17). Ο χριςτθσ μπορεί να επιλζξει όποια από αυτζσ επικυμεί για να δει το αναλυτικό τουσ προφίλ (εικόνα 18). 38

Εικόνα 15. Κατηγορίεσ επαγγελμάτων Εικόνα 16. Επαγγζλματα Εικόνα 17. Λίςτα επαφϊν Εικόνα 18. Προφίλ επαφήσ 4.2. Υλοποίηζη Στθν ενότθτα αυτι κα δϊςουμε αρκετζσ πλθροφορίεσ ςχετικά με το πωσ ζχουν υλοποιθκεί τα παραπάνω τμιματα. Θα εξθγιςουμε κάποια ςυγκεκρίμενα κομμάτια κϊδικα που είναι απαραίτθτα για τθ κατανόθςθ τθσ λειτουργίασ τθσ εφαρμογισ (και όχι ολόκλθρεσ τισ κλάςεισ ). CustomUI.java public List<Contact2> getcontactlist2() try 39