SlideShare uma empresa Scribd logo
1 de 47
Baixar para ler offline
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΔΗΜΙΟΥΡΓΙΑ 
ΠΡΟΓΡΑΜΜΑΤΩΝ ΓΙΑ 
ΦΟΡΗΤΕΣ ΣΥΣΚΕΥΕΣ 
(IOS ΚΑΙ ANDROID) 
Σχίζας Σταύρος 
(stavros.schizas@pinnatta.com) 
Αναγνώσταρος Γιώργος 
(george.anagnostaros@pinnatta.com)
Δομή 
• Ιστορία 
• Εισαγωγή στο iOS 
• Εισαγωγή στο Android
Ιστορία 
• Εν αρχή είναι τα PDA 
• Η πρώιμη περιοδος των smart phones 
• Τα πραγματικά έξυπνα κινητά 
• Η επόμενη μέρα, smart wearables
PDA was the beginning… 
• Τα PDA (Personal Digital Assistant) είναι απο τις πρώτες φορητές 
ηλεκτρονικές συσκευές, που απέκτησαν δυνατότητες αντίστοιχες αυτών των 
υπολογιστών. 
• Το 1984 η εταιρεία Psion παρουσιάζει το πρώτο PDA, που ονομαζόταν 
organizer. Η ίδια εταιρεία στις αρχές του ‘90 συνέχισε την εξέλιξη 
αναπτύσσοντας νέες συσκευές
Apple 
Το 1992 η Apple βαφτίζει αυτή την κατηγορία συσκευών ως PDA, 
παρουσιάζοντας την Newton. 
Ήταν μια αποτυχημένη προσπάθεια, καθώς δεν υπήρχε ακόμα ώριμη αγορά!
IBM 
2 χρόνια αργότερα (1994) ακολουθεί και η IBM παρουσιάζοντας το IBM Simon. 
Το πρώτο “έξυπνο κινητό” καθώς εκτός απο PDA λειτουργούσε και ως 
τηλέφωνο.
Nokia 
Το 1996 η Nokia εμφανίζει το 9000 Communicator, ένα έξυπνο κινητό που 
ξεπούλησε!
Microsoft 
Την παρουσία της δήλωσε και η Microsoft με μια ειδική έκδοση των Windows 
για PDA. 
Το πλεονέκτημα ήταν ότι επέτρεπε σε τρίτους προγραμματιστές να αναπτύξουν 
εφαρμογές.
Smart Phones Era 
Η Google, στην προσπάθειά της να κατακτήσει και τον κόσμο των smart 
phones, ξεκίνησε το 2007 την ανάπτυξη του πλέον διάσημου λειτουργικού 
συστήματος, του Android.
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 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
Wearables (Evolution in the making) 
Η Apple παρουσίασε το Apple Watch, ενώ η Google έχει ήδη στην αγορά 
διάφορα ρολόγια που χρησιμοποιούν Android Wear (Samsung Gear live, 
Motorola Moto 360, LG G Watch).
iOS 
Το λειτουργικό σύστημα που δημιούργησε μια νέα αγορά, όταν κανένας δεν το 
πίστευε...
iOS – You will need… 
• Macbook (Air ή Pro) ή iMac ή Mac PRO (αν είστε αρκετά πλούσιοι! ) 
• XCode 
• Πραγματικές συσκευές 
• Gimp ή οποιοδήποτε άλλο εργαλείο για επεξεργασία εικόνας 
• GIT ή οποιοδήποτε άλλο εργαλείο για version control (Προτιμήστε το git για 
να σας κάνει τη ζωή πιο εύκολη!) 
• Cocoa Pods 
• Θα χρειαστείτε επίσης ένα ετήσιο licence που κοστίζει $99!
iOS Development : Objective-C 
• Η Objective-C είναι μια αντικειμενοστραφής γλώσσα προγραμματισμού 
• Το Obj-C είναι ένα Smalltalk-style messaging με C 
• Η Objective-C αναπτύχθηκε στις αρχές της δεκαετίας του 1980 
• Είχε επιλεχθεί ως η βασική γλώσσα προγραμματισμού από τη NeXT για το 
NeXTSTEP λειτουργικό σύστημα 
• Οι μέθοδοι επιλέγονται κατά την εκτέλεση και όχι κατά τη μεταγλώττιση 
• Υποστηρίζει method swizzling
iOS Development : Swift 
• H Swift είναι μια γλώσσα προγραμματισμού script όπως η Python/JavaScript 
• Παρουσίαστηκε τον Ιούνιο του 2014 
• Η τρέχουσα έκδοση είναι η v1.2 
• https://developer.apple.com/swift/resources/ 
• Apple Swift Books
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 και πολλά άλλα!
iOS Development : Xcode (Ρύθμιση Περιβάλλοντος)
iOS Development : Xcode (Framework Permissions)
iOS Development : Xcode (Framework Permissions) 
• Για κάποια frameworks, η πρόσβαση σε διάφορες ενέργειες ζητείται από τους 
χρήστες μόνο κατά την εκτέλεση της εφαρμογής, όχι κατά την εγκατάσταση, 
όπως γίνεται στο Android. Κάποια permissions: 
• Address Book 
• Location Services 
• Microphone Access 
• Photo gallery 
• Remote Notifications
iOS Development : Notifications 
• Υπάρχουν δύο είδη ειδοποιήσεων: Remote και Local 
• Τα Remote Notifications στέλνοντα από έναν back-end server και απαιτούν 
την έγκριση του χρήστη για την ενεργοποίησή τους 
• Τα Local Notifications προγραμματίζονται από την εφαρμογή και 
παρουσιάζονται από την εφαρμογή στον χρήστη
iOS Development : Gestures
iOS Development : Model – View – Controller 
• Model: Το αντικείμενο που κρατά τα δεδομένα της εφαμρογής και τα χειρίζεται 
• View: Το αντικείμενο που είναι υπεύθυνο για την οπτική αναπαράσταση του 
Model και τα controls με τα οποία μπορεί να αλληλεπιδράσει ο χρήστης (όλα 
τα UIViews και τις υπο-κλάσεις τους) 
• Controller: Είναι ο μεσολαβητής που συγχρονίζει όλες τις εργασίες. Αποκτά 
πρόσβαση στα δεδομένα από το Μodel και τα αναπαριστά με τα Views, 
ακούει τα events και τα χειρίζεται όπως κρίνεται απαραίτητο
iOS Development : Model – View – Controller 
(Communication) 
• Ο Controller, το View και το Μodel επικοινωνούν μέσω μηνυμάτων 
• Key-Value Observer (KVO) 
• Notifications 
• Delegation 
• Target Action 
• Block (επίπεδο πηγαίου κώδικα)
iOS Development : UITableView
iOS Development : UICollectionView
iOS Development : UI 
• Μάθετε όλα τα UI components και πώς να τα χρησιμοποιήσετε 
• Εξατομίκευση UI 
• Προσαρμοσμένο UI για όλες τις συσκευές (WWDC 2014 videos) 
• https://developer.apple.com/library/ios/referencelibrary/GettingStarted/RoadM 
apiOS/DesigningaUserInterface.html 
• Auto layout (πολύ σημαντικό!)
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/
Android 
Ένα ανοικτό λειτουργικό σύστημα που έφερε την επανάσταση στα smart 
phones κι έδωσε ευκαιρίες σε μικρούς κατασκευαστές…
Android – You will need… 
• Macbook ή έστω PC με τουλάχιστον 4GB Ram ή αρκετή υπομονή! 
• Java που πάει παντού! 
• Eclipse με ADT 
• Genymotion Simulator 
• Πραγματική συσκευή 
• GIT είναι must! 
• Apache ANT 
• Google Play dev licence
Android Development – AndroidManifest.xml 
• Σε τι έκδοση θα παίξει η εφαρμογή 
• Ποιες οθόνες υποστηρίζει 
• Τι features απαιτεί (πχ κάμερα) 
• Τι δικαιώματα θέλει (πχ να γράφουμε στην SD κάρτα) 
• Απο τι αποτελείται: 
• Υπηρεσίες (Services) 
• Δραστηριότητες (Activities) 
• Receivers μηνύματων (Push Receiver)
Android Development – AndroidManifest.xml
Android Development – Services 
Τι είναι; 
Οι υπηρεσίες είναι οτιδήποτε θέλουμε να εκτελείται ασύγχρονα και άσχετα από 
το User Interface. 
Παράδειγμα 
Μια υπηρεσία μπορεί να κατεβάζει ειδήσεις, τις οποίες ο χρήστης θα δει σε 
δεύτερο χρόνο.
Android Development – Activities 
Τι είναι; 
Θεωρητικά είναι ένα συγκεκριμένο “πράγμα” που χρησιμεύει στην εκτέλεση μια 
δραστηριότητας του χρήστη, πχ λήψη φωτογραφίας με φίλτρα. 
Πρακτικά ειναι συνήθως μια οθόνη της εφαρμογής! 
Πως ξεκινάει; 
Κάθε δραστηριότητα ξεκινάει με κάποια πρόθεση (intent) 
Τι είναι πρόθεση; 
Η πρόθεση είναι το τι θέλει να κάνει ο χρήστης, για παράδειγμα μια πρόθεση μπορεί 
να είναι: “Ο χρήστης θέλει να στείλει μήνυμα στο τηλέφωνο +306946222888”
Android Development – Activities 
Πώς επιλέγεται ποια δραστηριοτητα αντιστοιχεί για κάθε πρόθεση; 
Στο μανιφέστο ορίζουμε για κάθε δραστηριότητα ένα φίλτρο για προθέσεις
Android Development – Activities 
Κι αν πολλές δραστηριότητες χειρίζονται την ιδια πρόθεση; 
Τo λειτουργικό απλά ρωτάει τον χρήστη ή ξέρει ποια ειναι η προκαθορισμένη!
Android Development – Activities 
Πώς ξέρει η εφαρμογή ποιά δραστηριότητα θα είναι η αρχική; 
Αρκεί απλά να το ορίσουμε στο μανιφέστο...
Android – GUI 
Αυτό που όλοι οι χρήστες θα δουν..
Android – GUI Design
Android – GUI XML
Android – GUI Dealing with events 
“Όταν ο χρήστης πατάει ενα κουμπί (συμβάν) τότε κάτι πρέπει να 
γίνεται (χειρισμός συμβάντος)” 
Ο χειρισμός γίνεται απο event listeners. 
Οι πιο συχνά χρησιμοποιούμενοι είναι: 
• OnClickListener για όταν ο χρήστης πατήσει 
• OnLongClickListener για όταν πατήσει με πείσμα
Android – GUI Dealing with events 
Παράδειγμα:
Android – GUI… additionally… 
Επιπλέον αξίζει να μάθετε: 
• Τι είναι layout και πώς μπορώ να έχω εμφολευμένα layouts για 
δημιουργία σύνθετου GUI (RelativeLayout, LinearLayout etc) 
• Τι είναι ListView, GridView και πώς μπορούν να χρησιμοποιηθούν για να 
εμφανιστούν λίστες ή πλέγματα (grids) απο στοιχεία 
• Σε τι αντιστοιχούν οι μονάδες dp, sp και με ποιον τρόπο μπορούν να 
μεταφραστούν από px 
• Τι είναι τα fragments και πώς μπορούν να αξιοποιηθούν 
• Πώς μπορώ να φτιάξω custom UI components
Android – Notifications 
Επικοινωνία εκτος εφαρμογής…
Android – Notifications 
Ή και εκτός συσκευής...
Android – Notifications 
Μέσω των ειδοποιήσεων η εφαρμογή “προκαλεί” τον χρήστη να επιστρέψει 
και να τον ενημερώσει! 
Χαρακτηριστικά παραδείγματα: 
• Νέο μήνυμα 
• Νέα προσφορά 
• “Έχεις καιρό να μπεις…”
εισαγωγη στην δημιουργια προγραμματων για φορητες συσκευες (iOS και Android)

Mais conteúdo relacionado

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

2. Εισαγωγή | O συναρπαστικός κόσμο του App Store και του iOS Development
2. Εισαγωγή | O συναρπαστικός κόσμο του App Store και του iOS Development2. Εισαγωγή | O συναρπαστικός κόσμο του App Store και του iOS Development
2. Εισαγωγή | O συναρπαστικός κόσμο του App Store και του iOS DevelopmentLazaros Vrysis
 
εε ομαδας 3
εε ομαδας 3εε ομαδας 3
εε ομαδας 3tryfonid
 
Ενότητα 7.1
Ενότητα 7.1Ενότητα 7.1
Ενότητα 7.1aslan97
 
Ανάπτυξη λογισμικού
Ανάπτυξη λογισμικούΑνάπτυξη λογισμικού
Ανάπτυξη λογισμικούpasxelfstone
 
Ασφάλεια Android - Βασικές αρχές, αδυναμίες και λύσεις
Ασφάλεια Android - Βασικές αρχές, αδυναμίες και λύσειςΑσφάλεια Android - Βασικές αρχές, αδυναμίες και λύσεις
Ασφάλεια Android - Βασικές αρχές, αδυναμίες και λύσειςSpyros Eleftheriadis
 
Γ.2.Μ.2 υπολογιστικό σύστημα ως ενιαίο σύνολο
Γ.2.Μ.2 υπολογιστικό σύστημα ως ενιαίο σύνολοΓ.2.Μ.2 υπολογιστικό σύστημα ως ενιαίο σύνολο
Γ.2.Μ.2 υπολογιστικό σύστημα ως ενιαίο σύνολοpapettas
 
Παρουσίαση του μαθήματος "Εφαρμογές πληροφορικής"
Παρουσίαση του μαθήματος "Εφαρμογές πληροφορικής"Παρουσίαση του μαθήματος "Εφαρμογές πληροφορικής"
Παρουσίαση του μαθήματος "Εφαρμογές πληροφορικής"Ιωάννης Σαρημπαλίδης
 
Web Accessibility: Πώς να κάνετε το website σας προσβάσιμο για όλους τους επι...
Web Accessibility: Πώς να κάνετε το website σας προσβάσιμο για όλους τους επι...Web Accessibility: Πώς να κάνετε το website σας προσβάσιμο για όλους τους επι...
Web Accessibility: Πώς να κάνετε το website σας προσβάσιμο για όλους τους επι...Antonis Zeakis
 
VisitGreece.gr Site Redesign rapidbounce Presentation
VisitGreece.gr Site Redesign rapidbounce PresentationVisitGreece.gr Site Redesign rapidbounce Presentation
VisitGreece.gr Site Redesign rapidbounce Presentationrapidbounce
 
VET4SBO Level 1 module 3 - unit 1 - v1.0 gr
VET4SBO Level 1   module 3 - unit 1 - v1.0 grVET4SBO Level 1   module 3 - unit 1 - v1.0 gr
VET4SBO Level 1 module 3 - unit 1 - v1.0 grKarel Van Isacker
 
Εφαρμογές πληροφορικής 2ο κεφ
Εφαρμογές πληροφορικής 2ο κεφΕφαρμογές πληροφορικής 2ο κεφ
Εφαρμογές πληροφορικής 2ο κεφileria
 

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

2. Εισαγωγή | O συναρπαστικός κόσμο του App Store και του iOS Development
2. Εισαγωγή | O συναρπαστικός κόσμο του App Store και του iOS Development2. Εισαγωγή | O συναρπαστικός κόσμο του App Store και του iOS Development
2. Εισαγωγή | O συναρπαστικός κόσμο του App Store και του iOS Development
 
εε ομαδας 3
εε ομαδας 3εε ομαδας 3
εε ομαδας 3
 
κεφαλαιο 7
κεφαλαιο 7κεφαλαιο 7
κεφαλαιο 7
 
Ενότητα 7.1
Ενότητα 7.1Ενότητα 7.1
Ενότητα 7.1
 
App Inventor
App Inventor App Inventor
App Inventor
 
Ανάπτυξη λογισμικού
Ανάπτυξη λογισμικούΑνάπτυξη λογισμικού
Ανάπτυξη λογισμικού
 
Ασφάλεια Android - Βασικές αρχές, αδυναμίες και λύσεις
Ασφάλεια Android - Βασικές αρχές, αδυναμίες και λύσειςΑσφάλεια Android - Βασικές αρχές, αδυναμίες και λύσεις
Ασφάλεια Android - Βασικές αρχές, αδυναμίες και λύσεις
 
Presentation 2
Presentation 2Presentation 2
Presentation 2
 
Γ.2.Μ.2 υπολογιστικό σύστημα ως ενιαίο σύνολο
Γ.2.Μ.2 υπολογιστικό σύστημα ως ενιαίο σύνολοΓ.2.Μ.2 υπολογιστικό σύστημα ως ενιαίο σύνολο
Γ.2.Μ.2 υπολογιστικό σύστημα ως ενιαίο σύνολο
 
εισαγωγή στον προγραμματισμό
εισαγωγή στον προγραμματισμόεισαγωγή στον προγραμματισμό
εισαγωγή στον προγραμματισμό
 
Παρουσίαση του μαθήματος "Εφαρμογές πληροφορικής"
Παρουσίαση του μαθήματος "Εφαρμογές πληροφορικής"Παρουσίαση του μαθήματος "Εφαρμογές πληροφορικής"
Παρουσίαση του μαθήματος "Εφαρμογές πληροφορικής"
 
Web Accessibility: Πώς να κάνετε το website σας προσβάσιμο για όλους τους επι...
Web Accessibility: Πώς να κάνετε το website σας προσβάσιμο για όλους τους επι...Web Accessibility: Πώς να κάνετε το website σας προσβάσιμο για όλους τους επι...
Web Accessibility: Πώς να κάνετε το website σας προσβάσιμο για όλους τους επι...
 
VisitGreece.gr Site Redesign rapidbounce Presentation
VisitGreece.gr Site Redesign rapidbounce PresentationVisitGreece.gr Site Redesign rapidbounce Presentation
VisitGreece.gr Site Redesign rapidbounce Presentation
 
Παρουσίαση Smart
Παρουσίαση SmartΠαρουσίαση Smart
Παρουσίαση Smart
 
Software - Λογισμικό
Software - ΛογισμικόSoftware - Λογισμικό
Software - Λογισμικό
 
10 Web 2.0 Tools
10 Web 2.0 Tools10 Web 2.0 Tools
10 Web 2.0 Tools
 
Software
SoftwareSoftware
Software
 
Εργαλεία Web 2.0
Εργαλεία Web 2.0Εργαλεία Web 2.0
Εργαλεία Web 2.0
 
VET4SBO Level 1 module 3 - unit 1 - v1.0 gr
VET4SBO Level 1   module 3 - unit 1 - v1.0 grVET4SBO Level 1   module 3 - unit 1 - v1.0 gr
VET4SBO Level 1 module 3 - unit 1 - v1.0 gr
 
Εφαρμογές πληροφορικής 2ο κεφ
Εφαρμογές πληροφορικής 2ο κεφΕφαρμογές πληροφορικής 2ο κεφ
Εφαρμογές πληροφορικής 2ο κεφ
 

Mais de Found.ation

From startup to scale-up
From startup to scale-upFrom startup to scale-up
From startup to scale-upFound.ation
 
How I built a local startup with dream international clients
 How I built a local startup with dream international clients How I built a local startup with dream international clients
How I built a local startup with dream international clientsFound.ation
 
Seo Fundamentals for new businesses
Seo Fundamentals for new businessesSeo Fundamentals for new businesses
Seo Fundamentals for new businessesFound.ation
 
Starting up with UX: User centered Design Process, Usability & UX
Starting up with UX: User centered Design Process, Usability & UXStarting up with UX: User centered Design Process, Usability & UX
Starting up with UX: User centered Design Process, Usability & UXFound.ation
 
Found.ation presentation
Found.ation presentationFound.ation presentation
Found.ation presentationFound.ation
 
Facebook news feed, creating content for the new facebook
Facebook news feed, creating content for the new facebookFacebook news feed, creating content for the new facebook
Facebook news feed, creating content for the new facebookFound.ation
 
επιλογή εταιρικής μορφής και εταιρική διακυβέρνηση μιας Start up εταιρείας
επιλογή εταιρικής μορφής και εταιρική διακυβέρνηση μιας Start up εταιρείαςεπιλογή εταιρικής μορφής και εταιρική διακυβέρνηση μιας Start up εταιρείας
επιλογή εταιρικής μορφής και εταιρική διακυβέρνηση μιας Start up εταιρείαςFound.ation
 
How to get started in the US ecosystem
How to get started in the US ecosystemHow to get started in the US ecosystem
How to get started in the US ecosystemFound.ation
 
Educ.ation: Term sheets
Educ.ation: Term sheetsEduc.ation: Term sheets
Educ.ation: Term sheetsFound.ation
 
Educ.ation: Convertible Note
Educ.ation: Convertible NoteEduc.ation: Convertible Note
Educ.ation: Convertible NoteFound.ation
 
Educ.ation: Παροχη βασικων νομικων συμβουλων σε θεματα νεανικης επιχειρηματικ...
Educ.ation: Παροχη βασικων νομικων συμβουλων σε θεματα νεανικης επιχειρηματικ...Educ.ation: Παροχη βασικων νομικων συμβουλων σε θεματα νεανικης επιχειρηματικ...
Educ.ation: Παροχη βασικων νομικων συμβουλων σε θεματα νεανικης επιχειρηματικ...Found.ation
 

Mais de Found.ation (11)

From startup to scale-up
From startup to scale-upFrom startup to scale-up
From startup to scale-up
 
How I built a local startup with dream international clients
 How I built a local startup with dream international clients How I built a local startup with dream international clients
How I built a local startup with dream international clients
 
Seo Fundamentals for new businesses
Seo Fundamentals for new businessesSeo Fundamentals for new businesses
Seo Fundamentals for new businesses
 
Starting up with UX: User centered Design Process, Usability & UX
Starting up with UX: User centered Design Process, Usability & UXStarting up with UX: User centered Design Process, Usability & UX
Starting up with UX: User centered Design Process, Usability & UX
 
Found.ation presentation
Found.ation presentationFound.ation presentation
Found.ation presentation
 
Facebook news feed, creating content for the new facebook
Facebook news feed, creating content for the new facebookFacebook news feed, creating content for the new facebook
Facebook news feed, creating content for the new facebook
 
επιλογή εταιρικής μορφής και εταιρική διακυβέρνηση μιας Start up εταιρείας
επιλογή εταιρικής μορφής και εταιρική διακυβέρνηση μιας Start up εταιρείαςεπιλογή εταιρικής μορφής και εταιρική διακυβέρνηση μιας Start up εταιρείας
επιλογή εταιρικής μορφής και εταιρική διακυβέρνηση μιας Start up εταιρείας
 
How to get started in the US ecosystem
How to get started in the US ecosystemHow to get started in the US ecosystem
How to get started in the US ecosystem
 
Educ.ation: Term sheets
Educ.ation: Term sheetsEduc.ation: Term sheets
Educ.ation: Term sheets
 
Educ.ation: Convertible Note
Educ.ation: Convertible NoteEduc.ation: Convertible Note
Educ.ation: Convertible Note
 
Educ.ation: Παροχη βασικων νομικων συμβουλων σε θεματα νεανικης επιχειρηματικ...
Educ.ation: Παροχη βασικων νομικων συμβουλων σε θεματα νεανικης επιχειρηματικ...Educ.ation: Παροχη βασικων νομικων συμβουλων σε θεματα νεανικης επιχειρηματικ...
Educ.ation: Παροχη βασικων νομικων συμβουλων σε θεματα νεανικης επιχειρηματικ...
 

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

  • 1. ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΔΗΜΙΟΥΡΓΙΑ ΠΡΟΓΡΑΜΜΑΤΩΝ ΓΙΑ ΦΟΡΗΤΕΣ ΣΥΣΚΕΥΕΣ (IOS ΚΑΙ ANDROID) Σχίζας Σταύρος (stavros.schizas@pinnatta.com) Αναγνώσταρος Γιώργος (george.anagnostaros@pinnatta.com)
  • 2. Δομή • Ιστορία • Εισαγωγή στο iOS • Εισαγωγή στο Android
  • 3. Ιστορία • Εν αρχή είναι τα PDA • Η πρώιμη περιοδος των smart phones • Τα πραγματικά έξυπνα κινητά • Η επόμενη μέρα, smart wearables
  • 4. PDA was the beginning… • Τα PDA (Personal Digital Assistant) είναι απο τις πρώτες φορητές ηλεκτρονικές συσκευές, που απέκτησαν δυνατότητες αντίστοιχες αυτών των υπολογιστών. • Το 1984 η εταιρεία Psion παρουσιάζει το πρώτο PDA, που ονομαζόταν organizer. Η ίδια εταιρεία στις αρχές του ‘90 συνέχισε την εξέλιξη αναπτύσσοντας νέες συσκευές
  • 5. Apple Το 1992 η Apple βαφτίζει αυτή την κατηγορία συσκευών ως PDA, παρουσιάζοντας την Newton. Ήταν μια αποτυχημένη προσπάθεια, καθώς δεν υπήρχε ακόμα ώριμη αγορά!
  • 6. IBM 2 χρόνια αργότερα (1994) ακολουθεί και η IBM παρουσιάζοντας το IBM Simon. Το πρώτο “έξυπνο κινητό” καθώς εκτός απο PDA λειτουργούσε και ως τηλέφωνο.
  • 7. Nokia Το 1996 η Nokia εμφανίζει το 9000 Communicator, ένα έξυπνο κινητό που ξεπούλησε!
  • 8. Microsoft Την παρουσία της δήλωσε και η Microsoft με μια ειδική έκδοση των Windows για PDA. Το πλεονέκτημα ήταν ότι επέτρεπε σε τρίτους προγραμματιστές να αναπτύξουν εφαρμογές.
  • 9. Smart Phones Era Η Google, στην προσπάθειά της να κατακτήσει και τον κόσμο των smart phones, ξεκίνησε το 2007 την ανάπτυξη του πλέον διάσημου λειτουργικού συστήματος, του Android.
  • 10. Current Situation Tο 2014 είναι η χρονιά όπου η χρήση και η πώληση έξυπνων κινητών (smart phones) ξεπέρασε αυτή των σταθερών στο Διαδίκτυο και προβλέπεται να αυξηθεί ραγδαία και τα επόμενα χρόνια.
  • 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. Wearables (Evolution in the making) Η Apple παρουσίασε το Apple Watch, ενώ η Google έχει ήδη στην αγορά διάφορα ρολόγια που χρησιμοποιούν Android Wear (Samsung Gear live, Motorola Moto 360, LG G Watch).
  • 13. iOS Το λειτουργικό σύστημα που δημιούργησε μια νέα αγορά, όταν κανένας δεν το πίστευε...
  • 14. iOS – You will need… • Macbook (Air ή Pro) ή iMac ή Mac PRO (αν είστε αρκετά πλούσιοι! ) • XCode • Πραγματικές συσκευές • Gimp ή οποιοδήποτε άλλο εργαλείο για επεξεργασία εικόνας • GIT ή οποιοδήποτε άλλο εργαλείο για version control (Προτιμήστε το git για να σας κάνει τη ζωή πιο εύκολη!) • Cocoa Pods • Θα χρειαστείτε επίσης ένα ετήσιο licence που κοστίζει $99!
  • 15. iOS Development : Objective-C • Η Objective-C είναι μια αντικειμενοστραφής γλώσσα προγραμματισμού • Το Obj-C είναι ένα Smalltalk-style messaging με C • Η Objective-C αναπτύχθηκε στις αρχές της δεκαετίας του 1980 • Είχε επιλεχθεί ως η βασική γλώσσα προγραμματισμού από τη NeXT για το NeXTSTEP λειτουργικό σύστημα • Οι μέθοδοι επιλέγονται κατά την εκτέλεση και όχι κατά τη μεταγλώττιση • Υποστηρίζει method swizzling
  • 16. iOS Development : Swift • H Swift είναι μια γλώσσα προγραμματισμού script όπως η Python/JavaScript • Παρουσίαστηκε τον Ιούνιο του 2014 • Η τρέχουσα έκδοση είναι η v1.2 • https://developer.apple.com/swift/resources/ • Apple Swift Books
  • 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. iOS Development : Xcode (Ρύθμιση Περιβάλλοντος)
  • 19. iOS Development : Xcode (Framework Permissions)
  • 20. iOS Development : Xcode (Framework Permissions) • Για κάποια frameworks, η πρόσβαση σε διάφορες ενέργειες ζητείται από τους χρήστες μόνο κατά την εκτέλεση της εφαρμογής, όχι κατά την εγκατάσταση, όπως γίνεται στο Android. Κάποια permissions: • Address Book • Location Services • Microphone Access • Photo gallery • Remote Notifications
  • 21. iOS Development : Notifications • Υπάρχουν δύο είδη ειδοποιήσεων: Remote και Local • Τα Remote Notifications στέλνοντα από έναν back-end server και απαιτούν την έγκριση του χρήστη για την ενεργοποίησή τους • Τα Local Notifications προγραμματίζονται από την εφαρμογή και παρουσιάζονται από την εφαρμογή στον χρήστη
  • 22. iOS Development : Gestures
  • 23. iOS Development : Model – View – Controller • Model: Το αντικείμενο που κρατά τα δεδομένα της εφαμρογής και τα χειρίζεται • View: Το αντικείμενο που είναι υπεύθυνο για την οπτική αναπαράσταση του Model και τα controls με τα οποία μπορεί να αλληλεπιδράσει ο χρήστης (όλα τα UIViews και τις υπο-κλάσεις τους) • Controller: Είναι ο μεσολαβητής που συγχρονίζει όλες τις εργασίες. Αποκτά πρόσβαση στα δεδομένα από το Μodel και τα αναπαριστά με τα Views, ακούει τα events και τα χειρίζεται όπως κρίνεται απαραίτητο
  • 24. iOS Development : Model – View – Controller (Communication) • Ο Controller, το View και το Μodel επικοινωνούν μέσω μηνυμάτων • Key-Value Observer (KVO) • Notifications • Delegation • Target Action • Block (επίπεδο πηγαίου κώδικα)
  • 25. iOS Development : UITableView
  • 26. iOS Development : UICollectionView
  • 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. 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. Android Ένα ανοικτό λειτουργικό σύστημα που έφερε την επανάσταση στα smart phones κι έδωσε ευκαιρίες σε μικρούς κατασκευαστές…
  • 30. Android – You will need… • Macbook ή έστω PC με τουλάχιστον 4GB Ram ή αρκετή υπομονή! • Java που πάει παντού! • Eclipse με ADT • Genymotion Simulator • Πραγματική συσκευή • GIT είναι must! • Apache ANT • Google Play dev licence
  • 31. Android Development – AndroidManifest.xml • Σε τι έκδοση θα παίξει η εφαρμογή • Ποιες οθόνες υποστηρίζει • Τι features απαιτεί (πχ κάμερα) • Τι δικαιώματα θέλει (πχ να γράφουμε στην SD κάρτα) • Απο τι αποτελείται: • Υπηρεσίες (Services) • Δραστηριότητες (Activities) • Receivers μηνύματων (Push Receiver)
  • 32. Android Development – AndroidManifest.xml
  • 33. Android Development – Services Τι είναι; Οι υπηρεσίες είναι οτιδήποτε θέλουμε να εκτελείται ασύγχρονα και άσχετα από το User Interface. Παράδειγμα Μια υπηρεσία μπορεί να κατεβάζει ειδήσεις, τις οποίες ο χρήστης θα δει σε δεύτερο χρόνο.
  • 34. Android Development – Activities Τι είναι; Θεωρητικά είναι ένα συγκεκριμένο “πράγμα” που χρησιμεύει στην εκτέλεση μια δραστηριότητας του χρήστη, πχ λήψη φωτογραφίας με φίλτρα. Πρακτικά ειναι συνήθως μια οθόνη της εφαρμογής! Πως ξεκινάει; Κάθε δραστηριότητα ξεκινάει με κάποια πρόθεση (intent) Τι είναι πρόθεση; Η πρόθεση είναι το τι θέλει να κάνει ο χρήστης, για παράδειγμα μια πρόθεση μπορεί να είναι: “Ο χρήστης θέλει να στείλει μήνυμα στο τηλέφωνο +306946222888”
  • 35. Android Development – Activities Πώς επιλέγεται ποια δραστηριοτητα αντιστοιχεί για κάθε πρόθεση; Στο μανιφέστο ορίζουμε για κάθε δραστηριότητα ένα φίλτρο για προθέσεις
  • 36. Android Development – Activities Κι αν πολλές δραστηριότητες χειρίζονται την ιδια πρόθεση; Τo λειτουργικό απλά ρωτάει τον χρήστη ή ξέρει ποια ειναι η προκαθορισμένη!
  • 37. Android Development – Activities Πώς ξέρει η εφαρμογή ποιά δραστηριότητα θα είναι η αρχική; Αρκεί απλά να το ορίσουμε στο μανιφέστο...
  • 38. Android – GUI Αυτό που όλοι οι χρήστες θα δουν..
  • 39. Android – GUI Design
  • 41. Android – GUI Dealing with events “Όταν ο χρήστης πατάει ενα κουμπί (συμβάν) τότε κάτι πρέπει να γίνεται (χειρισμός συμβάντος)” Ο χειρισμός γίνεται απο event listeners. Οι πιο συχνά χρησιμοποιούμενοι είναι: • OnClickListener για όταν ο χρήστης πατήσει • OnLongClickListener για όταν πατήσει με πείσμα
  • 42. Android – GUI Dealing with events Παράδειγμα:
  • 43. Android – GUI… additionally… Επιπλέον αξίζει να μάθετε: • Τι είναι layout και πώς μπορώ να έχω εμφολευμένα layouts για δημιουργία σύνθετου GUI (RelativeLayout, LinearLayout etc) • Τι είναι ListView, GridView και πώς μπορούν να χρησιμοποιηθούν για να εμφανιστούν λίστες ή πλέγματα (grids) απο στοιχεία • Σε τι αντιστοιχούν οι μονάδες dp, sp και με ποιον τρόπο μπορούν να μεταφραστούν από px • Τι είναι τα fragments και πώς μπορούν να αξιοποιηθούν • Πώς μπορώ να φτιάξω custom UI components
  • 44. Android – Notifications Επικοινωνία εκτος εφαρμογής…
  • 45. Android – Notifications Ή και εκτός συσκευής...
  • 46. Android – Notifications Μέσω των ειδοποιήσεων η εφαρμογή “προκαλεί” τον χρήστη να επιστρέψει και να τον ενημερώσει! Χαρακτηριστικά παραδείγματα: • Νέο μήνυμα • Νέα προσφορά • “Έχεις καιρό να μπεις…”