ios Development Γκόγκος Χρήστος

Σχετικά έγγραφα
Φορολογική Βιβλιοθήκη. Θανάσης Φώτης Προγραμματιστής Εφαρμογών

ΔΕ10: Πληροφοριακά Συστήματα Διοίκησης IΙ Εργαστήριο # 2

Unity Editor #04 Κεντρικό Μενού: Edit, Unity Preferences

ANDROID Προγραμματισμός Εφαρμογών

Εισαγωγή στην ASP.NET. Σημειώσεις Σεμιναρίου Επιμέλεια: Βασίλης Κόλιας 4.0

Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1

CTEC-153: ΦΥΛΛΑ ΕΡΓΑΣΙΑΣ

Αντικειμενοστραφής Προγραμματισμός I(5 ο εξ) Εργαστήριο #4 ο : Αποσφαλμάτωση (debugging), μετατροπές

Ανάπτυξη Διεπαφών Χρήστη σε Λειτουργικά Συστήματα Κινητών Συσκευών

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

Κατασκευή δικτυακής εφαρμογής στην αρχιτεκτονική ios iphone που υλοποιεί ένα παιχνίδι ερωτοαπαντήσεων

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #4 ο : Αποσφαλμάτωση (debugging), μετατροπές

HP Network Node Manager (NNM) Tutorial

Μάθημα 3: Αρχιτεκτονική Υπολογιστών

Για τους Χρήστες του RICOH Smart Device Connector: Διαμόρφωση του Μηχανήματος

Εφαρμογή Παρακολούθησης Τιμών Καυσίμων για Windows Phone 8

Κεφάλαιο 7: Υλοποίηση εφαρμογών σε προγραμματιστικά περιβάλλοντα. Εφαρμογές Πληροφορικής Κεφ. 7 Καραμαούνας Πολύκαρπος 1

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

HTML HTML5...CSS

Το PowerPoint (PP) είναι ένα γραφικό πρόγραμμα για παρουσιάσεις. Χαρακτηριστικά Παρουσιάσεων:

Δομές Δεδομένων. Σημειώσεις από το εργαστήριο για τον χειρισμό του προγράμματος Eclipse. 5ο εξάμηνο. v1.0

Διαδικτυακές Εφαρμογές Ενότητα 1: JPA

Γενική οργάνωση υπολογιστή «ΑΒΑΚΑ»

To περιβάλλον Ανάπτυξης εφαρμογών της Visual Basic 2008 Express Edition

Ανάπτυξη εφαρμογής Input-Output

Βυζαντινός Ρεπαντής Κολλέγιο Αθηνών 2010

Construct 2. Τι είναι Βασικές έννοιες Παραδείγματα χρήσης. Βασίλης Κούρτης

Πως θα κατασκευάσω το πρώτο πρόγραμμα;

Διαδικτυακές Εφαρμογές Ενότητα 3: Ανάπτυξη JavaEE 6 εφαρμογής με JSF2, EJB3 και JPA

ΕΡΓΑΣΤΗΡΙΟ 16. Χρησιμοποιώντας τον Αποσφαλματιστή (Debugger) του Eclipse

Εισαγωγικό Φροντιστήριο

Python και Android. Νίκος Νοδαράκης. 17 Μαΐου 2010

ios Developing Κεφάλα Αικατερίνη Μουρίκης Ευάγγελος Επιβλέπων: Μηνάς Δασυγένης

Εργαστήριο Τεχνολογίας Λογισμικού και Ανάλυσης Συστημάτων - 4 ο Εργαστήριο -

Αικατερίνη Καμπάση, PhD. Τμήμα Προστασίας και Συντήρησης Πολιτισμικής Κληρονομιάς Α.Τ.Ε.Ι. Ιονίων Νήσων

Εισαγωγικά & Βασικές Έννοιες

Digital Academy. Εισαγωγή στην ανάπτυξη Android Εφαρμογών

Βάσεις Δεδομένων 2η εργαστηριακή άσκηση

Browsers. Λειτουργικότητα και Παραμετροποίηση

SIMATIC MANAGER SIMATIC MANAGER

Λογισμικό κατασκευής εννοιολογικών χαρτών. Α. Αθανασόπουλος

Εργαστήριο 1-1 η Άσκηση - Ανάλυση

Games: Εξοικείωση με το περιβάλλον του Game Maker μέσα από την κατασκευή ενός παιχνιδιού

Λειτουργικά Συστήματα (διαχείριση επεξεργαστή, μνήμης και Ε/Ε)

Τι είναι ένα λειτουργικό σύστημα (ΛΣ); Μια άλλη απεικόνιση. Το Λειτουργικό Σύστημα ως μέρος του υπολογιστή

Σχεδιασμός Βάσεων Δεδομένων

ΕΡΓΑΣΤΗΡΙΑΚΗ ΕΦΑΡΜΟΓΗ 1 ΤO ΡΟΜΠΟΤ INTELLITEK ER-2u

Εισαγωγικές έννοιες. Ιωάννης Γ. Τσούλος 2014

ΛΟΓΙΣΜΙΚΟ ΠΡΟΣΟΜΟΙΩΣΗΣ ANYLOGIC

Συνέδριο ΕΛΛΑΚ Open Source λογισμικό σε εφαρμογές του δημόσιου και ιδιωτικού τομέα

Εισαγωγή στην Πληροφορική

4. ΔΗΜΙΟΥΡΓΙΑ ΜΟΝΤΕΛΟΥ ΠΟΛΥΔΙΑΣΤΑΤΗΣ ΑΝΑΛΥΣΗΣ

APP INVENTOR ΜΕΡΟΣ A. Σοφία Τζελέπη,

Εγχειρίδιο Χρήστη. AirPrint

Τα Windows Πολύ Απλά και Πολύ Σύντομα

Εγχειρίδιο Συντονιστή Τηλεδιασκέψεων Υπηρεσίας e:presence

ΔΗΜΙΟΥΡΓΙΑMOBILE ΕΦΑΡΜΟΓΩΝ ΓΙΑ ANDROID ΣΥΣΚΕΥΕΣ ΜΕ APPINVENTOR

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ. Ανάπτυξη εφαρμογής Android και IOS σε περιβάλλον Flash. ΟΝΟΜΑΤΕΠΩΝΥΜΑ ΣΠΟΥΔΑΣΤΩΝ

Νέα ευέλικτη λίστα εργαζομένων

ΜΕΛΕΤΗ ΤΟΥ ios SDK ΚΑΙ ΑΞΙΟΠΟΙΗΣΗ ΤΟΥ ΓΙΑ

Οδηγίες ενεργοποίησης WiFi

Οδηγίες χρήσης για εφαρμογή WiFi ΑC

ΕΡΓΑΛΕΙΑ ΚΑΤΑΣΚΕΥΗΣ ΠΑΙΧΝΙΔΙΩΝ: Εργασία με το λογισμικό Valve Editor

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών

Ιδιότητες αντικειμένων, συγγραφή κώδικα, συντακτικά λάθη

ΜΑΘΗΜΑ 3 MULTIPLE CHOICE

Τµήµα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών. Πτυχιακή εργασία

Σύστημα υποβολής αιτήσεων υποψήφιων συνεργατών ΕΚΤ

Θα αναπτύξουμε μια εφαρμογή που θα λειτουργεί σαν κουμπί πανικού. Η εφαρμογή θα αποτελείται από δύο κουμπιά.

Unity Editor #03 Κεντρικό Μενού: Edit

Ανάπτυξη εφαρμογής Input-Output

Επιτεύγµατα των Λ.Σ.

Εισαγωγή στην Επιστήμη της Πληροφορικής Εργαστήριο. Microsoft Word Μέρος 2

Προγραμματισμός Ι. Δυναμική Διαχείριση Μνήμης. Δημήτρης Μιχαήλ. Ακ. Έτος Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

1. Κατανόηση Και Αλλαγή Μεταξύ Προβολών Εμφάνισης Της Παρουσίασης. 1. Κατανόηση Και Αλλαγή Μεταξύ Προβολών Εμφάνισης Της Παρουσίασης

Φύλλο Εργασίας: Παιχνίδι Λαβύρινθος (MAZE) Προγραμματιστικό Εργαλείο: GAME MAKER. Ονοματεπώνυμο:

Διαδικτυακές Εφαρμογές. Ενότητα 2: Enterprise Java Beans και Java Server Faces Μιχάλας Άγγελος Βούρκας Δημήτριος Τμήμα Μηχανικών Πληροφορικής ΤΕ

Οδηγίες χρήσης για εφαρμογή WiFi ΑC

Σχεδίαση με το AutoCAD

Εισαγωγή στην Πληροφορική & τον Προγραμματισμό

APP INVENTOR ΜΕΡΟΣ A - 1 Η ΕΒΔΟΜΑΔΑ. Σοφία Τζελέπη,

Microsoft Office. Δρ. Νικόλαος Σγούρος

Διαχείριση Έργων Πληροφορικής Εργαστήριο

Λειτουργικά Συστήματα Ι. Καθηγήτρια Παπαδάκη Αναστασία

Computer Setup Οδηγός χρήσης

Εργαστήριο του Μαθήματος: EΠΛ 003

Δομημένος Προγραμματισμός

Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών Πάτρας Τομέας Συστημάτων και Αυτομάτου Ελέγχου. Εργαστήριο Αναλογικού και Ψηφιακού Ελέγχου Ι

Εισαγωγή στην Πληροφορική & τον Προγραμματισμό

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

A3.3 Γραφικά Περιβάλλοντα Επικοινωνίας και Διαχείριση Παραθύρων

ΔΡΑΣΤΗΡΙΟΤΗΤΑ : ΖΑΡΙΑ

Πύλη Φαρμακευτικών Υπηρεσιών Υπουργείου Υγείας Κύπρου. System Architecture Overview

Τ.Ε.Ι. ΚΡΗΤΗΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΙΑΣ. Ασκήσεις 1-2 Εισαγωγή

Παρουσίαση Delphi. Μέμος-Μπαγκράτσας Ιωάννης 1232 Μαργαρίτης Νικόλαος 1226

Μικροεπεξεργαστές - Μικροελεγκτές Ψηφιακά Συστήματα

Βασικές οδηγίες εγκατάστασης και χρήσης. Σύστημα περιπολίας GMS Αισθητήρας ανάγνωσης επιτρεπόμενη απόσταση από το σημείο ελέγχου 3-5cm.

Εισαγωγή στην Επιστήμη της Πληροφορικής Εργαστήριο. Microsoft Word Μέρος 2

Εισαγωγικά & Βασικές Έννοιες

ΕΠΕΞΕΡΓΑΣΙΑ ΒΙΝΤΕΟ ΜΕ ΤΟ ΠΡΟΓΡΑΜΜΑ VSDC FREE VIDEO EDITOR

Transcript:

ios Development Γκόγκος Χρήστος

Λογισμικά Objective C Interface Builder Simulator Instruments XCODE

Simulator Cmd + Shift + H Home button Cmd + K εμφάνιση/απόκρυψη πληκτρολογίου Δυνατότητα για περιστροφή δεξιά (Cmd + ) και περιστροφή αριστερά (Cmd + ) Αλλαγή κλίμακας (scale) Cmd + 1, Cmd + 2, Cmd + 3 Η πραγματική απόδοση της εφαρμογής φαίνεται όταν η εφαρμογή τρέχει στην ίδια την συσκευή Περιορισμοί του Simulator Δεν έχει κάμερα Δεν έχει επιταχυνσιόμετρο

MVC https://developer.apple.com/library/ios/documentation/general/conc eptual/devpedia-cocoacore/mvc.html Το MVC design pattern επιβάλλεται κατά την δημιουργία εφαρμογών για το ios Τα modelαντικείμενα είναι διαχωρισμένα από τα view αντικείμενα ViewControllers Controller objects:.h.m View objects:.storyboard,.xib Για να γραφεί κώδικας που θα εκτελείται όταν γίνεται κάποιο event σε ένα view object θα πρέπει να οριστεί ένα IBAction Για να υπάρχει πρόσβαση από τον controller στα αντικείμενα view θα πρέπει να οριστούν ως IBOutlets

Delegation (εξουσιοδότηση- ανάθεση) Όλες οι ios εφαρμογές χρησιμοποιούν delegates Ένα αντικείμενο (delegate) ενεργεί εκ μέρους ενός άλλου αντικείμενου (delegating object). Επιτρέπει τη συγκέντρωση της λογικής που χειρίζεται την συμπεριφορά πολλών αντικειμένων σε ένα αντικείμενο @interface ViewContoller: UIViewController <UITextFieldDelegate> Δημιουργία ενός delegate Υλοποίηση των απαιτούμενωνμεθόδων που ορίζουν το delegate protocol Σήμανση της κλάσης ότι είναι delegate για το συγκεκριμένο protocol Σύνδεση του delegate αντικειμένου με το delegating αντικείμενο (με κώδικα ή στο Interface Builder)

ARC (Automatic Reference Counting) Η objective C μπορεί να διαχειριστεί τη μνήμη χρησιμοποιώντας την καταμέτρηση αναφορών (reference counting) Όσο υπάρχει τουλάχιστον 1 αναφορά προς ένα αντικείμενο το αντικείμενο παραμένει διαθέσιμο προς χρήση Αν δεν χρησιμοποιείται το ARC τότε θα πρέπει να χρησιμοποιηθεί η μέθοδος releaseγια να αποδοθεί ο χώρος που καταλαμβάνει ένα αντικείμενο όταν πλέον αυτός δεν χρησιμοποιείται @autoreleasepool { }

Data Structures NSArray NSDictionary NSSet NSMutableArray NSMutableDictionary NSMutableSet

strong/weak Strong: η αναφορά διατηρείται στο heap μέχρι να μην χρησιμοποιείται πλέον Weak: η αναφορά διατηρείται όσο κάποιος άλλος δείχνει προς αυτή με strong τρόπο

HIG (Human Interface Guidelines) Apple HIG ~ 200 pages Εξαιρετικά χρήσιμες συμβουλές και οδηγίες για πολλά θέματα που αφορούν την ευχρηστία των εφαρμογών Αν μια εφαρμογή δεν συμβαδίζει με το Apple HIG είναι πιθανό να «κοπεί» από το App Store https://developer.apple.com/library/ios/documentation/userexperience/conceptual/mobilehig/index.html

ios Application Project Templates Master Detail iphone multiple pages ipad split view Page based Application (page flip) Single View Application Tabbed Application Game SpriteKit (2D games) SceneKit OpenGL Metal

Frameworks >50 frameworks UIKit UIKit/Dynamics Foundation Core Graphics (CG) Core Data

Core Data Το Core Data είναι ένα framework που επιτρέπει επικοινωνία με σχεσιακές βάσεις δεδομένων χρησιμοποιώντας όμως αντικείμενα αντί για πίνακες. Χρησιμοποιείται για ανάπτυξη εφαρμογών σε ios καθώς και σε OS X. Υποστηρίζει caching και έχει πολύ καλή απόδοση. Managed Objects: Είναι αντικείμενα που δημιουργούνται προκειμένου να αποθηκεύσουν δεδομένα. Managed Object Context: Αναλαμβάνει τη διαχείριση των managed objects. Αλλαγές που γίνονται στα managed objects διατηρούνται προσωρινά στο MOC και μεταφέρονται όταν αποφασισθεί στη ΒΔ. Managed Object Model: Ορίζει τις οντότητες (entities) που περιγράφουν το μοντέλο δεδομένων για τα managed objects. Κάθε οντότητα μπορεί να έχει ιδιότητες, σχέσεις fetched properties (ασθενείς σχέσεις) και fetch requests (προσχεδιασμένα ερωτήματα) Persistent Object Store: Υποδομή φυσικής αποθήκευσης των αντικειμένων (SQLite, XML, )

Μεταφορά application στο background Όταν μια εφαρμογή μεταφέρεται στο background παύει να είναι ενεργή και πλέον καταλαμβάνει ένα πολύ μικρό χώρο μνήμης Project Capabilities Background modes

Debugging Caveman debugging NSLog Xcode Debug Debug Navigator (CPU, Memory, stack trace) Inspect local variables Breakpoints (active inactive) Continue program execution Step into Step over Η διαγραφή του κώδικα IBOutlet ή IBAction θα πρέπει να συνοδεύεται και από την διαγραφή των αντίστοιχων events για τα σχετικά UI objects

Object Library Με κλικ στο καθένα εμφανίζεται σύντομο κείμενο σχετικά με τις βασικές του ιδιότητες που μπορούν να αλλάξουν Τα κίτρινα είναι ViewControllers User Interface controls UILabel UIButton UISegmentedControl UITextField UISlider UISwitch UIStepper UITableView UIImageView UITextView UIWebView UIScrollView UIDatePicker UIPicker

Auto Layout Constraint: Σχέση απόστασης ανάμεσα σε 2 controls Η δημιουργία constraints γίνεται με Ctrl + click από ένα control σε άλλο Editor Resolve Auto Layout Issues Add Missing constraints Στο Size Inspector και εφόσον έχουν εισαχθεί constraints για ένα αντικείμενο μπορεί να επιλεγεί κατάλληλη τιμή στο Content Compression Resistance Priorityέτσι ώστε να μην συμπιέζεται το αντίστοιχο control από τα άλλα controls

TableView Dequeued cells: Στη μνήμη κρατούνται μόνο τα κελία που είναι ορατά

AFNetworking

Blocks Χρησιμοποιούνται συχνά στα frameworks Διευκολύνουν τον προγραμματισμό Σε άλλες γλώσσες προγραμματισμού είναι γνωστά ως: anonymous functions, closures, lambdas ^(int a){ // code }

Grand Central Dispatch (GCD) Διευκολύνει την συγγραφή κώδικα που πρέπει να εκτελείται ταυτόχρονα Υλοποίηση που δεν επιβαρύνει το σύστημα Main Queueείναι η κύρια ουρά στην οποία δρομολογούνται όλες οι ενέργειες οι οποίες πρέπει να εκτελεστούν Το GCD μπορεί να δημιουργήσει επιπλέον ουρές Εργασίες που τοποθετούνται μια ουρά που έχει δημιουργηθεί με το GCD μπορούν να εκτελούνται παράλληλα με τις εργασίες που δρομολογούνται στην κύρια ουρά Δημιουργία ουράς και ανάθεση ονόματος σε αυτή (dispatch_queue_create) Δημιουργία blocks και αποστολή των blocks στην παραπάνω ουρά (dispatch_async) Το UI θα πρέπει να ενημερώνεται μόνο από την Main Queue (dispatch_get_main_queue)

SQLite + FMDB FMDB=Flying Meat Database https://github.com/ccgus/f mdb http://www.sqlite.org/

Segue Segueείναι η σύνδεση μεταξύ 2 views που επιτρέπει στο ένα view να εμφανίσει τα περιεχόμενα του άλλου view όταν πραγματοποιείται μια ενέργεια (π.χ. κλικ σε ένα πλήκτρο) Modal Segue: Χρησιμοποιείται όταν δεν χρειάζεται να περάσει πληροφορία από το ένα view στο άλλο

UIKit Dynamics Πρόκειται για μια physics engine η οποία μπορεί να χρησιμοποιηθεί σε αντικείμενα του UIKit Μπορούν να προστεθούν συμπεριφορές (behaviors) όπως βαρύτητα, δυνάμεις, και έλξη

MapKit Framework Το MapKit framework επιτρέπει να ενσωματωθούν απευθείας χάρτες σε εφαρμογές Υποστηρίζει σημειώσεις (annotations) πάνω στο χάρτη, υπέρθεση (overlay) περιεχομένου κ.α.