Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΔΗΜΙΟΥΡΓΙΑ 
ΠΡΟΓΡΑΜΜΑΤΩΝ ΓΙΑ 
ΦΟΡΗΤΕΣ ΣΥΣΚΕΥΕΣ 
(IOS ΚΑΙ ANDROID) 
Σχίζας Σταύρος 
(stavros.schizas@pinnatta...
Δομή 
• Ιστορία 
• Εισαγωγή στο iOS 
• Εισαγωγή στο Android
Ιστορία 
• Εν αρχή είναι τα PDA 
• Η πρώιμη περιοδος των smart phones 
• Τα πραγματικά έξυπνα κινητά 
• Η επόμενη μέρα, sm...
PDA was the beginning… 
• Τα PDA (Personal Digital Assistant) είναι απο τις πρώτες φορητές 
ηλεκτρονικές συσκευές, που απέ...
Apple 
Το 1992 η Apple βαφτίζει αυτή την κατηγορία συσκευών ως PDA, 
παρουσιάζοντας την Newton. 
Ήταν μια αποτυχημένη προσ...
IBM 
2 χρόνια αργότερα (1994) ακολουθεί και η IBM παρουσιάζοντας το IBM Simon. 
Το πρώτο “έξυπνο κινητό” καθώς εκτός απο P...
Nokia 
Το 1996 η Nokia εμφανίζει το 9000 Communicator, ένα έξυπνο κινητό που 
ξεπούλησε!
Microsoft 
Την παρουσία της δήλωσε και η Microsoft με μια ειδική έκδοση των Windows 
για PDA. 
Το πλεονέκτημα ήταν ότι επέ...
Smart Phones Era 
Η Google, στην προσπάθειά της να κατακτήσει και τον κόσμο των smart 
phones, ξεκίνησε το 2007 την ανάπτυ...
Current Situation 
Tο 2014 είναι η χρονιά όπου η χρήση και η πώληση έξυπνων κινητών (smart 
phones) ξεπέρασε αυτή των σταθ...
Current Situation 
Period Android iOS 
Windows 
Phone 
BlackBerry OS Others 
Q2 2014 84.7% 11.7% 2.5% 0.5% 0.7% 
Q2 2013 7...
Wearables (Evolution in the making) 
Η Apple παρουσίασε το Apple Watch, ενώ η Google έχει ήδη στην αγορά 
διάφορα ρολόγια ...
iOS 
Το λειτουργικό σύστημα που δημιούργησε μια νέα αγορά, όταν κανένας δεν το 
πίστευε...
iOS – You will need… 
• Macbook (Air ή Pro) ή iMac ή Mac PRO (αν είστε αρκετά πλούσιοι! ) 
• XCode 
• Πραγματικές συσκευές...
iOS Development : Objective-C 
• Η Objective-C είναι μια αντικειμενοστραφής γλώσσα προγραμματισμού 
• Το Obj-C είναι ένα S...
iOS Development : Swift 
• H Swift είναι μια γλώσσα προγραμματισμού script όπως η Python/JavaScript 
• Παρουσίαστηκε τον Ι...
iOS Development : Xcode 
• Είναι το επίσημο IDE για προγραμματισμό iOS και Mac 
• Κυκλοφόρησε το 2003 
• Η τελευταία έκδοσ...
iOS Development : Xcode (Ρύθμιση Περιβάλλοντος)
iOS Development : Xcode (Framework Permissions)
iOS Development : Xcode (Framework Permissions) 
• Για κάποια frameworks, η πρόσβαση σε διάφορες ενέργειες ζητείται από το...
iOS Development : Notifications 
• Υπάρχουν δύο είδη ειδοποιήσεων: Remote και Local 
• Τα Remote Notifications στέλνοντα α...
iOS Development : Gestures
iOS Development : Model – View – Controller 
• Model: Το αντικείμενο που κρατά τα δεδομένα της εφαμρογής και τα χειρίζεται...
iOS Development : Model – View – Controller 
(Communication) 
• Ο Controller, το View και το Μodel επικοινωνούν μέσω μηνυμ...
iOS Development : UITableView
iOS Development : UICollectionView
iOS Development : UI 
• Μάθετε όλα τα UI components και πώς να τα χρησιμοποιήσετε 
• Εξατομίκευση UI 
• Προσαρμοσμένο UI γ...
iOS Development : Useful Links 
• https://developer.apple.com/library/ios/navigation/ 
• Βίντεο WWDC 2013 και 2014 
• http...
Android 
Ένα ανοικτό λειτουργικό σύστημα που έφερε την επανάσταση στα smart 
phones κι έδωσε ευκαιρίες σε μικρούς κατασκευ...
Android – You will need… 
• Macbook ή έστω PC με τουλάχιστον 4GB Ram ή αρκετή υπομονή! 
• Java που πάει παντού! 
• Eclipse...
Android Development – AndroidManifest.xml 
• Σε τι έκδοση θα παίξει η εφαρμογή 
• Ποιες οθόνες υποστηρίζει 
• Τι features ...
Android Development – AndroidManifest.xml
Android Development – Services 
Τι είναι; 
Οι υπηρεσίες είναι οτιδήποτε θέλουμε να εκτελείται ασύγχρονα και άσχετα από 
το...
Android Development – Activities 
Τι είναι; 
Θεωρητικά είναι ένα συγκεκριμένο “πράγμα” που χρησιμεύει στην εκτέλεση μια 
δ...
Android Development – Activities 
Πώς επιλέγεται ποια δραστηριοτητα αντιστοιχεί για κάθε πρόθεση; 
Στο μανιφέστο ορίζουμε ...
Android Development – Activities 
Κι αν πολλές δραστηριότητες χειρίζονται την ιδια πρόθεση; 
Τo λειτουργικό απλά ρωτάει το...
Android Development – Activities 
Πώς ξέρει η εφαρμογή ποιά δραστηριότητα θα είναι η αρχική; 
Αρκεί απλά να το ορίσουμε στ...
Android – GUI 
Αυτό που όλοι οι χρήστες θα δουν..
Android – GUI Design
Android – GUI XML
Android – GUI Dealing with events 
“Όταν ο χρήστης πατάει ενα κουμπί (συμβάν) τότε κάτι πρέπει να 
γίνεται (χειρισμός συμβ...
Android – GUI Dealing with events 
Παράδειγμα:
Android – GUI… additionally… 
Επιπλέον αξίζει να μάθετε: 
• Τι είναι layout και πώς μπορώ να έχω εμφολευμένα layouts για 
...
Android – Notifications 
Επικοινωνία εκτος εφαρμογής…
Android – Notifications 
Ή και εκτός συσκευής...
Android – Notifications 
Μέσω των ειδοποιήσεων η εφαρμογή “προκαλεί” τον χρήστη να επιστρέψει 
και να τον ενημερώσει! 
Χαρ...
εισαγωγη στην δημιουργια προγραμματων για φορητες συσκευες (iOS και Android)
Nächste SlideShare
Wird geladen in …5
×

εισαγωγη στην δημιουργια προγραμματων για φορητες συσκευες (iOS και Android)

563 Aufrufe

Veröffentlicht am

εισαγωγη στην δημιουργια προγραμματων για φορητες συσκευες (iOS και Android)

Veröffentlicht in: Software
  • Als Erste(r) kommentieren

εισαγωγη στην δημιουργια προγραμματων για φορητες συσκευες (iOS και Android)

  1. 1. ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΔΗΜΙΟΥΡΓΙΑ ΠΡΟΓΡΑΜΜΑΤΩΝ ΓΙΑ ΦΟΡΗΤΕΣ ΣΥΣΚΕΥΕΣ (IOS ΚΑΙ ANDROID) Σχίζας Σταύρος (stavros.schizas@pinnatta.com) Αναγνώσταρος Γιώργος (george.anagnostaros@pinnatta.com)
  2. 2. Δομή • Ιστορία • Εισαγωγή στο iOS • Εισαγωγή στο Android
  3. 3. Ιστορία • Εν αρχή είναι τα PDA • Η πρώιμη περιοδος των smart phones • Τα πραγματικά έξυπνα κινητά • Η επόμενη μέρα, smart wearables
  4. 4. PDA was the beginning… • Τα PDA (Personal Digital Assistant) είναι απο τις πρώτες φορητές ηλεκτρονικές συσκευές, που απέκτησαν δυνατότητες αντίστοιχες αυτών των υπολογιστών. • Το 1984 η εταιρεία Psion παρουσιάζει το πρώτο PDA, που ονομαζόταν organizer. Η ίδια εταιρεία στις αρχές του ‘90 συνέχισε την εξέλιξη αναπτύσσοντας νέες συσκευές
  5. 5. Apple Το 1992 η Apple βαφτίζει αυτή την κατηγορία συσκευών ως PDA, παρουσιάζοντας την Newton. Ήταν μια αποτυχημένη προσπάθεια, καθώς δεν υπήρχε ακόμα ώριμη αγορά!
  6. 6. IBM 2 χρόνια αργότερα (1994) ακολουθεί και η IBM παρουσιάζοντας το IBM Simon. Το πρώτο “έξυπνο κινητό” καθώς εκτός απο PDA λειτουργούσε και ως τηλέφωνο.
  7. 7. Nokia Το 1996 η Nokia εμφανίζει το 9000 Communicator, ένα έξυπνο κινητό που ξεπούλησε!
  8. 8. Microsoft Την παρουσία της δήλωσε και η Microsoft με μια ειδική έκδοση των Windows για PDA. Το πλεονέκτημα ήταν ότι επέτρεπε σε τρίτους προγραμματιστές να αναπτύξουν εφαρμογές.
  9. 9. Smart Phones Era Η Google, στην προσπάθειά της να κατακτήσει και τον κόσμο των smart phones, ξεκίνησε το 2007 την ανάπτυξη του πλέον διάσημου λειτουργικού συστήματος, του Android.
  10. 10. Current Situation Tο 2014 είναι η χρονιά όπου η χρήση και η πώληση έξυπνων κινητών (smart phones) ξεπέρασε αυτή των σταθερών στο Διαδίκτυο και προβλέπεται να αυξηθεί ραγδαία και τα επόμενα χρόνια.
  11. 11. Current Situation Period Android iOS Windows Phone BlackBerry OS Others Q2 2014 84.7% 11.7% 2.5% 0.5% 0.7% Q2 2013 79.6% 13.0% 3.4% 2.8% 1.2% Q2 2012 69.3% 16.6% 3.1% 4.9% 6.1% Q2 2011 36.1% 18.3% 1.2% 13.6% 30.8% Επικρατέστερες πλατφόρμες για smartphones ειναι οι Android (84,7%) και iOS (11,7%) για το 2014. http://www.idc.com/prodserv/smartphone-os-market-share.jsp
  12. 12. Wearables (Evolution in the making) Η Apple παρουσίασε το Apple Watch, ενώ η Google έχει ήδη στην αγορά διάφορα ρολόγια που χρησιμοποιούν Android Wear (Samsung Gear live, Motorola Moto 360, LG G Watch).
  13. 13. iOS Το λειτουργικό σύστημα που δημιούργησε μια νέα αγορά, όταν κανένας δεν το πίστευε...
  14. 14. iOS – You will need… • Macbook (Air ή Pro) ή iMac ή Mac PRO (αν είστε αρκετά πλούσιοι! ) • XCode • Πραγματικές συσκευές • Gimp ή οποιοδήποτε άλλο εργαλείο για επεξεργασία εικόνας • GIT ή οποιοδήποτε άλλο εργαλείο για version control (Προτιμήστε το git για να σας κάνει τη ζωή πιο εύκολη!) • Cocoa Pods • Θα χρειαστείτε επίσης ένα ετήσιο licence που κοστίζει $99!
  15. 15. iOS Development : Objective-C • Η Objective-C είναι μια αντικειμενοστραφής γλώσσα προγραμματισμού • Το Obj-C είναι ένα Smalltalk-style messaging με C • Η Objective-C αναπτύχθηκε στις αρχές της δεκαετίας του 1980 • Είχε επιλεχθεί ως η βασική γλώσσα προγραμματισμού από τη NeXT για το NeXTSTEP λειτουργικό σύστημα • Οι μέθοδοι επιλέγονται κατά την εκτέλεση και όχι κατά τη μεταγλώττιση • Υποστηρίζει method swizzling
  16. 16. iOS Development : Swift • H Swift είναι μια γλώσσα προγραμματισμού script όπως η Python/JavaScript • Παρουσίαστηκε τον Ιούνιο του 2014 • Η τρέχουσα έκδοση είναι η v1.2 • https://developer.apple.com/swift/resources/ • Apple Swift Books
  17. 17. iOS Development : Xcode • Είναι το επίσημο IDE για προγραμματισμό iOS και Mac • Κυκλοφόρησε το 2003 • Η τελευταία έκδοση είναι η v.6.0.1 (που είναι διαθέσιμη μέσω του App Store) • Παρέχει iOS device simulators • Κάποια εργαλεία: power profiling, memory leaks, core data, network, zombies (!!!), animations performance και πολλά άλλα!
  18. 18. iOS Development : Xcode (Ρύθμιση Περιβάλλοντος)
  19. 19. iOS Development : Xcode (Framework Permissions)
  20. 20. iOS Development : Xcode (Framework Permissions) • Για κάποια frameworks, η πρόσβαση σε διάφορες ενέργειες ζητείται από τους χρήστες μόνο κατά την εκτέλεση της εφαρμογής, όχι κατά την εγκατάσταση, όπως γίνεται στο Android. Κάποια permissions: • Address Book • Location Services • Microphone Access • Photo gallery • Remote Notifications
  21. 21. iOS Development : Notifications • Υπάρχουν δύο είδη ειδοποιήσεων: Remote και Local • Τα Remote Notifications στέλνοντα από έναν back-end server και απαιτούν την έγκριση του χρήστη για την ενεργοποίησή τους • Τα Local Notifications προγραμματίζονται από την εφαρμογή και παρουσιάζονται από την εφαρμογή στον χρήστη
  22. 22. iOS Development : Gestures
  23. 23. iOS Development : Model – View – Controller • Model: Το αντικείμενο που κρατά τα δεδομένα της εφαμρογής και τα χειρίζεται • View: Το αντικείμενο που είναι υπεύθυνο για την οπτική αναπαράσταση του Model και τα controls με τα οποία μπορεί να αλληλεπιδράσει ο χρήστης (όλα τα UIViews και τις υπο-κλάσεις τους) • Controller: Είναι ο μεσολαβητής που συγχρονίζει όλες τις εργασίες. Αποκτά πρόσβαση στα δεδομένα από το Μodel και τα αναπαριστά με τα Views, ακούει τα events και τα χειρίζεται όπως κρίνεται απαραίτητο
  24. 24. iOS Development : Model – View – Controller (Communication) • Ο Controller, το View και το Μodel επικοινωνούν μέσω μηνυμάτων • Key-Value Observer (KVO) • Notifications • Delegation • Target Action • Block (επίπεδο πηγαίου κώδικα)
  25. 25. iOS Development : UITableView
  26. 26. iOS Development : UICollectionView
  27. 27. iOS Development : UI • Μάθετε όλα τα UI components και πώς να τα χρησιμοποιήσετε • Εξατομίκευση UI • Προσαρμοσμένο UI για όλες τις συσκευές (WWDC 2014 videos) • https://developer.apple.com/library/ios/referencelibrary/GettingStarted/RoadM apiOS/DesigningaUserInterface.html • Auto layout (πολύ σημαντικό!)
  28. 28. iOS Development : Useful Links • https://developer.apple.com/library/ios/navigation/ • Βίντεο WWDC 2013 και 2014 • http://www.davemark.com/?p=1829&utm_source=iOS+Dev+Weekly&utm_campaign=46a7deb647- iOS_Dev_Weekly_Issue_100&utm_medium=email&utm_term=0_7bda94b7ca-46a7deb647-299403737 • http://ios.devtools.me/ • http://www.raywenderlich.com/store/ios-apprentice • http://web.stanford.edu/class/cs193p/cgi-bin/drupal/ • Apple Books, ειδικά για το Swift • Unit Tests (Test-Driven iOS Development book) • http://www.pttrns.com/ • http://www.mobile-patterns.com/ • http://capptivate.co/
  29. 29. Android Ένα ανοικτό λειτουργικό σύστημα που έφερε την επανάσταση στα smart phones κι έδωσε ευκαιρίες σε μικρούς κατασκευαστές…
  30. 30. Android – You will need… • Macbook ή έστω PC με τουλάχιστον 4GB Ram ή αρκετή υπομονή! • Java που πάει παντού! • Eclipse με ADT • Genymotion Simulator • Πραγματική συσκευή • GIT είναι must! • Apache ANT • Google Play dev licence
  31. 31. Android Development – AndroidManifest.xml • Σε τι έκδοση θα παίξει η εφαρμογή • Ποιες οθόνες υποστηρίζει • Τι features απαιτεί (πχ κάμερα) • Τι δικαιώματα θέλει (πχ να γράφουμε στην SD κάρτα) • Απο τι αποτελείται: • Υπηρεσίες (Services) • Δραστηριότητες (Activities) • Receivers μηνύματων (Push Receiver)
  32. 32. Android Development – AndroidManifest.xml
  33. 33. Android Development – Services Τι είναι; Οι υπηρεσίες είναι οτιδήποτε θέλουμε να εκτελείται ασύγχρονα και άσχετα από το User Interface. Παράδειγμα Μια υπηρεσία μπορεί να κατεβάζει ειδήσεις, τις οποίες ο χρήστης θα δει σε δεύτερο χρόνο.
  34. 34. Android Development – Activities Τι είναι; Θεωρητικά είναι ένα συγκεκριμένο “πράγμα” που χρησιμεύει στην εκτέλεση μια δραστηριότητας του χρήστη, πχ λήψη φωτογραφίας με φίλτρα. Πρακτικά ειναι συνήθως μια οθόνη της εφαρμογής! Πως ξεκινάει; Κάθε δραστηριότητα ξεκινάει με κάποια πρόθεση (intent) Τι είναι πρόθεση; Η πρόθεση είναι το τι θέλει να κάνει ο χρήστης, για παράδειγμα μια πρόθεση μπορεί να είναι: “Ο χρήστης θέλει να στείλει μήνυμα στο τηλέφωνο +306946222888”
  35. 35. Android Development – Activities Πώς επιλέγεται ποια δραστηριοτητα αντιστοιχεί για κάθε πρόθεση; Στο μανιφέστο ορίζουμε για κάθε δραστηριότητα ένα φίλτρο για προθέσεις
  36. 36. Android Development – Activities Κι αν πολλές δραστηριότητες χειρίζονται την ιδια πρόθεση; Τo λειτουργικό απλά ρωτάει τον χρήστη ή ξέρει ποια ειναι η προκαθορισμένη!
  37. 37. Android Development – Activities Πώς ξέρει η εφαρμογή ποιά δραστηριότητα θα είναι η αρχική; Αρκεί απλά να το ορίσουμε στο μανιφέστο...
  38. 38. Android – GUI Αυτό που όλοι οι χρήστες θα δουν..
  39. 39. Android – GUI Design
  40. 40. Android – GUI XML
  41. 41. Android – GUI Dealing with events “Όταν ο χρήστης πατάει ενα κουμπί (συμβάν) τότε κάτι πρέπει να γίνεται (χειρισμός συμβάντος)” Ο χειρισμός γίνεται απο event listeners. Οι πιο συχνά χρησιμοποιούμενοι είναι: • OnClickListener για όταν ο χρήστης πατήσει • OnLongClickListener για όταν πατήσει με πείσμα
  42. 42. Android – GUI Dealing with events Παράδειγμα:
  43. 43. Android – GUI… additionally… Επιπλέον αξίζει να μάθετε: • Τι είναι layout και πώς μπορώ να έχω εμφολευμένα layouts για δημιουργία σύνθετου GUI (RelativeLayout, LinearLayout etc) • Τι είναι ListView, GridView και πώς μπορούν να χρησιμοποιηθούν για να εμφανιστούν λίστες ή πλέγματα (grids) απο στοιχεία • Σε τι αντιστοιχούν οι μονάδες dp, sp και με ποιον τρόπο μπορούν να μεταφραστούν από px • Τι είναι τα fragments και πώς μπορούν να αξιοποιηθούν • Πώς μπορώ να φτιάξω custom UI components
  44. 44. Android – Notifications Επικοινωνία εκτος εφαρμογής…
  45. 45. Android – Notifications Ή και εκτός συσκευής...
  46. 46. Android – Notifications Μέσω των ειδοποιήσεων η εφαρμογή “προκαλεί” τον χρήστη να επιστρέψει και να τον ενημερώσει! Χαρακτηριστικά παραδείγματα: • Νέο μήνυμα • Νέα προσφορά • “Έχεις καιρό να μπεις…”

×