IOS ΕΠΛ371 Προγραμματισμός Συστημάτων Χρίστος Βασιλείου

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Προγραμματισμός Ι (αποφύγετέ τον!) 3) Διακοπτόμενος βρόχος: (αποφύγετέ τον!) float energy;......while(TRUE){drink_water(); if(energy
Advertisements

ΕΙΣΑΓΩΓΗ ΣΤΗΝ PHP. Τι θα μάθουμε;  Να καταλάβουμε τι είναι η PHP και πώς δουλεύουν τα PHP scripts  Τι χρειάζεται για να ξεκινήσουμε με την PHP  Να.
4/3/2017 5:15 AM Επισκόπηση προσεγγίσεων ανάπτυξης εφαρμογών για έξυπνες κινητές συσκευές και ανάπτυξη πρότυπης εφαρμογής Ξανθόπουλος Σπύρος ΑΕΜ: 114 Διπλωματική.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πολυμορφισμός – Αφηρημένες κλάσεις Interfaces (διεπαφές)
Next Generation Networking
Κεφάλαιο 1ο: ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΤΩΝ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Αντωνίου Δεσποιάνα Κωνστάμπεης Τιμόθεος Κυριάκου Παναγιώτης Χριστοφόρου Βάκης.
Βάσεις Δεδομένων 1 T.Manavis– N.Kyritsis.
Message Passing Interface (MPI)
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Λειτουργικό Σύστημα Ios
29/11/2004Εισαγωγή στο OpenMP1 OpenMP Αθήνα, Νοέμβριος 2004 Συστήματα Παράλληλης Επεξεργασίας Εργαστήριο Υπολογιστικών Συστημάτων.
1/12/2003Εισαγωγή στο OpenMP1 OpenMP Αθήνα, Νοέμβριος 2003 Συστήματα Παράλληλης Επεξεργασίας Εργαστήριο Υπολογιστικών Συστημάτων.
24/11/2003Message Passing Interface (MPI)1 Αθήνα, Νοέμβριος 2003 Συστήματα Παράλληλης Επεξεργασίας Εργαστήριο Υπολογιστικών Συστημάτων.
22/11/2004Message Passing Interface (MPI)1 Αθήνα, Νοέμβριος 2004 Συστήματα Παράλληλης Επεξεργασίας Εργαστήριο Υπολογιστικών Συστημάτων.
ΗΥ-150 Προγραμματισμός Εντολές Ελέγχου Ροής.
Μέλη ομάδας Μαρία Στυλιανού Νίκος Οδυσσέως Γεωργία Χριστοδουλίδου
Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 1 Week 4: Exceptions Εβδομάδα 4: Εξαιρέσεις [Exceptions]
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Κατεύθυνση «Προηγμένες Τεχνολογίες Ανάπτυξης Λογισμικού»
ΕΙΣΑΓΩΓΗ ΜΑΘΗΜΑ 1.
ΕΠΑΝΑΛΗΨΗΕΠΑΝΑΛΗΨΗ ΠΡΟΓΡΑΜΜΑΤΑ. ΠΡΟΓΡΑΜΜΑ 1 ΕΞΗΓΗΣΤΕ ΤΙ ΕΞΟΔΟ ΠΑΡΑΓΕΙ ΤΟ ΠΑΡΑΚΑΤΩ ΠΡΟΓΡΑΜΜΑ #include int main() { char ch; int i; float fl; printf("dose.
Η ΓΛΩΣΣΑ C ΜΑΘΗΜΑ 2.
Προγραμματισμός ΙΙ Διάλεξη #6: Απλές Δομές Ελέγχου Δρ. Νικ. Λιόλιος.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java II.
Message Passing Interface (MPI) Συστήματα Παράλληλης Επεξεργασίας Εργαστήριο Υπολογιστικών Συστημάτων Αθήνα, Δεκέμβριος 2002.
Ανάπτυξη Πρωτοτύπου Λογισμικού
Ποιότητα Λογισμικού Ενότητα 4: Παράδειγμα Ελέγχου. Διδάσκων: Γεώργιος Κακαρόντζας, Καθηγητής Εφαρμογών. Τμήμα Μηχανικών Πληροφορικής, Τεχνολογικής Εκπαίδευσης.
Εισαγωγή σε Android Δομή αρχείων σε Android Projects
Γλωσσική Τεχνολογία Εισαγωγικό Φροντιστήριο. Project του μαθήματος  Εργασία 2 ατόμων  Προφορική εξέταση για :  Project (80%)  Θεωρία (20%)  Στο φροντιστήριο.
Επικοινωνία Ανθρώπου Μηχανής HTML CGI JAVASCRIPT Κουμπούλης Χρήστος Α.Μ. 921 Χαλαβαζής Βασίλης Α.Μ. 988.
Templates Standard Template Library (STL) Exceptions Μεταπτυχιακό Πρόγραμμα Σπουδών, Τμήμα Εφαρμοσμένης Πληροφορικής.
Applets Εκμεταλλεύονται τo γραφικό υπόβαθρο που παρέχουν οι browsers, έχοντας έτσι τη δυνατότητα προβολής γραφικών και τη δυνατότητα υλοποίησης ενός γραφικού.
Network Inference Μπαλάφα Κασιανή - Αδριανή Πλασταρά Κατερίνα.
ΟΣΣ Δεκεμβρίου 2004 Σχεδιασμός Λογισμικού Γλώσσες Προγραμματισμού ΙΙ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ.
ΙΟΝΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΜΣ «ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΗΣΗΣ» ΗΛΕΚΤΡΟΝΙΚΗ ΔΗΜΟΣΙΕΥΣΗ ΔΙΔΑΣΚΟΝΤΕΣ: ΚΑΠΙΔΑΚΗΣ ΣΑΡΑΝΤΟΣ ΓΕΡΓΑΤΣΟΥΛΗΣ ΕΜΜΑΝΟΥΗΛ Το DSpace ως ένα Ανοικτό.
ΜΑΘ3122/106 – Γλώσσα προγραμματισμού Ξενοφών Ζαμπούλης ΜΑΘ3122/106 – Γλώσσα προγραμματισμού Επανάληψη.
ΛΟΓ102: Τεχνολογία Λογισμικού Ι Διδάσκων: Νίκος Παπασπύρου 1Νίκος ΠαπασπύρουΛΟΓ102:
ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ Διδάσκοντες:Γιάννης Μαΐστρος Στάθης Ζάχος Νίκος Παπασπύρου
Applets Εκτελούνται από τον appletviewer και από Java enabled web browsers Εκμεταλλεύονται τo γραφικό υπόβαθρο που παρέχουν οι browsers, έχοντας έτσι τη.
ΗΥ-340 Γλώσσες και Μεταφραστές Φροντιστήριο Syntax Directed Translation and alpha Language.
ΕΙΣΑΓΩΓΙΚΟ ΦΡΟΝΤΙΣΤΗΡΙΟ Διαχείριση Περιεχομένου Παγκόσμιου Ιστού και Γλωσσικά Εργαλεία.
Εφαρμογές Υπολογιστών Ά Λυκείου Κεφ. 4 Λογισμικό Συστήματος
Βασικά στοιχεία της Java
Κεφάλαιο 3 Τύποι Δεδομένων - Τελεστές. Πρωτογενείς τύποι δεδομένων: int, float, double, chars ΤύποςΌνομαΜέγεθος byte 8-bit signed, short 16-bit.
Εισαγωγή στη JAVΑ (μέρος Β’) Βασίλης Παπαταξιάρχης Μάθημα: Αντικειμενοστραφής Προγραμματισμός Διδάσκουσα: Ιζαμπώ Καράλη Τμήμα Πληροφορικής.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα.
ΕΙΣΑΓΩΓΉ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΉ ΝΊΚΟΣ ΠΑΠΑΔΆΚΗΣ ΛΟΓΙΣΜΙΚΟ ΤΟΥ ΗΛΕΚΤΡΟΝΙΚΟΥ ΥΠΟΛΟΓΙΣΤΗ.
Αρχές Τεχνολογίας Λογισμικού Εργαστήριο 1: Εισαγωγή.
Εισαγωγή στη C# Μαρίνος Θεμιστοκλέους Ανδρούτσου 150 Γραφείο 206 Τηλ Ώρες Γραφείου: Τετάρτη 5-6 μμ.
Εξέλιξη Farm Manager iOS για δυνατότητα λογικής ομαδοποίησης, επισκόπησης εργασιών που εκκρεμούν και αναφορές Μπούρας Βασίλειος 2702 Επιβλέπων: Δρ. Λάντζος.
Τεχνολογία και Προγραμματισμός Υπολογιστών
Εισαγωγή στον Προγ/μό Η/Υ
Αντικειμενοστραφής Προγραμματισμός Ι
Αντικειμενοστραφής Προγραμματισμός ΙΙ
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Κατηγορίες και Προδιαγραφές Λογισμικού Η/Υ (Software)
ΔΟΜΕΣ ΕΛΕΓΧΟΥ(if-else, switch) και Λογικοί τελεστές / παραστάσεις
ΔΟΜΕΣ ΕΛΕΓΧΟΥ(if-else, switch) και Λογικοί τελεστές / παραστάσεις
ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ (Λ.Σ.)
Εισαγωγή στη VHDL 5/8/2018 Εισαγωγή στη VHDL.
Εισαγωγή στον Προγ/μό Υπολογιστών
Προγραμματιστικά Περιβάλλοντα
Προγραμματισμός κινητών συσκευών
Εισαγωγή στη Java (Μέρος Α’)
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Multi-touch Gestures for Manipulating 3D Shapes
Τύποι δεδομένων και τελεστές,
Λήψη Αποφάσεων και Συναρτήσεις Ελέγχου
Μεταγράφημα παρουσίασης:

IOS ΕΠΛ371 Προγραμματισμός Συστημάτων Χρίστος Βασιλείου Ανδρεάς Δημητρίου Μύρια Χατζηθεορή Μαργαρίτα Παπαευθυμίου

iOS Λειτουργικό σύστημα για κινητές πλατφόρμες της Apple Πλεονεκτήμα : το App Store το οποίο περιέχει περισσότερες από 500.000 εφαρμογές Το περιβάλλον χρήσης του είναι βασισμένο στην άμεση αλληλεπίδραση του χρήστη με την οθόνη αφής της συσκευής Ανάπτυξη εφαρμογών στο περιβάλλον του,μεσω του λογισμικού ανάπτυξης εφαρμογών iOS SDK Δοκιμασία των εφαρμογών στον εξομοιωτή iPhone Simulator

Επίπεδα του IOS Μπορεί να οριστεί ως ένα σετ από διάφορα επίπεδα. Στα ανώτερα επίπεδα βρίσκονται οι θεμελιώδεις τεχνολογίες και υπηρεσίες στις οποίες βασίζονται όλες οι εφαρμογές. Στα κατώτερα επίπεδα βρίσκονται πιο εξελιγμένες υπηρεσίες και τεχνολογίες.

iOS SDK Έρχεται με όλα τα interfaces, τα εργαλεία και τους πόρους που χρειάζονται για την ανάπτυξη αυτών των εφαρμογών. Παράδοση των περισσότερων συστημάτων interface σε ειδικά πακέτα, τα frameworks. Χρήση των πακέτων στην εφαρμογή μας όπως οποιαδήποτε βιβλιοθήκη.

Συστατικά του SDK Xcode Tools: Εργαλεία που υποστηρίζουν ανάπτυξη iOS εφαρμογών. Αποτελούνται από τα παρακάτω: Xcode: Η κύρια εφαρμογή κατά την ανάπτυξη των iOS εφαρμογών. Χρησιμοποιείται για την επεξεργασία, την εκτέλεση και την αποσφαλμάτωση του κώδικα. Instrument : Εργαλείο για αποσφαλμάτωση και ανάλυση της επίδοσης. Χρήση του για συγκέντρωση πληροφοριών για την συμπεριφορά κατά την εκτέλεση της εφαρμογής και για προσδιορισμό προβλημάτων. iOS Simulator: Μια Mac OS X εφαρμογή η οποία προσομοιώνει την τεχνολογική στοίβα του iOS και μας επιτρέπει να ελέγξουμε iOS εφαρμογές. iOS Developer Library: Η αναφορά και εννοιολογική τεκμηρίωση που διδάσκει τα πάντα για τις τεχνολογίες iOS και την διαδικασία ανάπτυξης εφαρμογών.

Cocoa Touch layer Cocoa Touch layer: Layer του iOS που περιέχει τα κατάλληλα frameworks για δημιουργία iOS εφαρμογών. Ορίζει την βασική δομή και υποστήριξη εφαρμογών για τεχνολογίες όπως: Multitasking Τouch-based input Ρush notifications, and many high-level system services

Κey technologies available in the Cocoa Touch layer Document Support ΤοUIKit framework που διαχειρίζεται το γραφικό περιβάλλον του iPhoneOS File-Sharing Support Αυτό το χαρακτηριστικό δεν επιτρέπει στην εφαρμογή να μοιραστεί δεδομένα με άλλες εφαρμογές στην ίδια συσκευή.

Multitasking: Data Protection: Εφαρμογές δεν τερματίζουν αλλά συνεχίζουν την εκτέλεση τους στο background όταν ο χρήστης πιέσει το Home button. Data Protection: Εφαρμογές οι οποίες δουλεύουν με ‘ευαίσθητα’ δεδομένα, μπορούν να υιοθετήσουν το built-in encryption που είναι διαθέσιμο σε ορισμένες συσκευές. Όταν η συσκευή είναι κλειδωμένη κανείς δεν έχει πρόσβαση στα δεδομένα εώς ότου να την ξεκλειδώσει ο χρήστης.

Peer-to-Peer Services: Η σύνδεση μέσω Bluetooth Χρήση για αρχικοποίηση communication sessions με συσκευές οι οποίες βρίσκονται κοντά. Standard System View Controllers.

Media Layer Περιέχει τα γραφικά, τον ήχο, τις τεχνολογίες για την λήψη Video με στόχο την δημιουργία καλύτερης multimedia εμπειρίας που θα είναι διαθέσιμη σε mobile device. Graphics Technologies Audio Technologies Video Technologies AVAudioPlayer

Core Services Layer Περιέχει τις θεμελιώδεις υπηρεσίες του συστήματος που χρησιμοποιούν όλες οι εφαρμογές. Ακόμα και αν αυτές δεν χρησιμοποιούνται άμεσα, πολλά μέρη του συστήματος έχουν σαν βάση τους τις υπηρεσίες αυτές.

Core OS Layer Περιέχει τα low-level χαρακτηριστικά πάνω από τα οποία βρίσκονται χτισμένες οι περισσότερες τεχνολογίες. Ίσως αυτές να μην χρησιμοποιούνται άμεσα από τις εφαρμογές μας, αλλά χρησιμοποιούνται κυρίως από άλλα frameworks. Σε περιπτώσεις που θέλουμε ρητή ασφάλεια ή επικοινωνία με ένα εξωτερικό hardware εξάρτημα, μπορεί να γίνει με την χρήση frameworks στο επίπεδο αυτό.

iPhone Security iPhone συσκευές είναι ευαίσθητες όσο αφορά την ασφάλεια Δημιουργία ενός “sandbox area” στο file system Write access μόνο σε αυτή την περιοχή Απόρριψη εγκατάστασης άλλων εφαρμογών Βασική προσέγγιση της Apple είναι η δημιουργία μιας ελεγχόμενης, ‘κλειστής’ συσκευής

Αρχιτεκτονική των iPhone ακολουθεί μια προσέγγιση κατά την οποία ελαττώνεται η ‘επιφάνεια επιθέσεων’. Περιορισμός στον αριθμό των εφαρμογών Περιορισμός στην λειτουργία των υπάρχοντων εφαρμογών. Δεν περιέχει κοινά binaries όπως bash,ssh ή ls.

Περιορισμός προσβάσεων στο filesystem της συσκευής: Αν ένα USB τοποθετηθεί για συγχρονισμό με το iTunes, το filesystem δεν μπορεί να γίνει mount. Ένα μικρό μέρος του filesystem είναι ορατό κατά την σύνδεση. Το μέρος αυτό του filesystem δεν περιέχει binaries ή libraries.

Το iPhone δεν ΄ακούει΄ σε TCP ή UDP ports για εισερχόμενα δεδομένα. Mείωση πιθανών ευαίσθητων σημείων και την έκθεση της συσκευής σε εξωτερικούς κινδύνους. Σχεδιασμός iPhone ως κλειστό σύστημα όπου δεν επιτρέπεται εγκατάσταση τρίτων εφαρμογών. Παρέχει access control settings -> πρόσθεση ή αφαίρεση δικαιωμάτων για εφαρμογές. Δυνατότητα περιορισμού πρόσβασης σε συγκεκριμένες υπηρεσίες ή δεδομένα.

Sandbox Παρέχει άμυνα εναντίον των κλεμμένων, κατεστραμμένων ή διεγραμμένων δεδομένων του χρήστη σε περίπτωση που κακόβουλος κώδικας προσπαθεί να εκμεταλλευτεί την εφαρμογή μας.

Objective-C

Objective-C: General Info Brad Cox and Tom Love in the early 1980s In 1986, Cox published the main description of Objective-C C + SmallTalk = Objective-C Object-oriented language Can compile C programs Case Sensitive Supports weak typing Offers runtime binding-linking -> Detects errors during runtime

A Simple Code #import <Foundation/Foundation.h> int main (int argc, const char *argv[]){ NSAutorealeasePool *pool = [[NSAutorealeasePool alloc] init]; int minutes = 60; int hours = 24; int days = 365; int minutesInAYear = minutes * hours * days; NSLog(@”There are %i minutes in a year.\n”, minitesInAYear); [pool drain]; return 0; }

Data Types and Variables Variables name are like: myVariableIs int float double char bool(true/false) enum my Enum {enum1, enum2} BOOL (YES/NO) NSString NSDate

Operators and expressions + - / * == < > <= >= != && || % a++ ++a Προτερεότητα πράξεων (condition) ? Selection1 : Selection2

Condition Statements If Statement Switch Statement #import <Foundation/Foundation.h> int main (int argc, const char *argv[]){ NSAutorealeasePool *pool = [[NSAutorealeasePool alloc] init]; int b = 60; if ( b == 60){ NSLog(@”This is correct.”); else { if (b == 30){ NSLog(@”It’s so so.”); else{ NSLog(@”It’s wrong”); } [pool drain]; return 0; #import <Foundation/Foundation.h> int main (int argc, const char *argv[]){ NSAutorealeasePool *pool = [[NSAutorealeasePool alloc] init]; int b = 60; switch(b){ case 60: NSLog(@”This is correct.”); break; case 30:NSLog(@”It’s so so.”); break; default: NSLog(@”It’s wrong”); break; } [pool drain]; return 0;

Loops For loop While loop #import <Foundation/Foundation.h> int main (int argc, const char *argv[]){ NSAutorealeasePool *pool = [[NSAutorealeasePool alloc] init]; int i, a = 0; for(i=0; i<10;i++){ a++; } NSLog(@”The value of a is %i.\n”, a); [pool drain]; return 0; #import <Foundation/Foundation.h> int main (int argc, const char *argv[]){ NSAutorealeasePool *pool = [[NSAutorealeasePool alloc] init]; int i, a = 0; i=0; while(i<10){ a++; i++; } NSLog(@”The value of a is %i.\n”, a); [pool drain]; return 0;

Functions Prototype Example <return type> <name> (<list of parameters>){ <list of commands> return <variable / expression>; } Example int sum (int x, int y){ int sum = x + y; return sum; or return x + y; }

Memory Management “If you own an object, you must release it” NSObject * myObject = [[NSObect alloc] init]; //retainCounter++ [myObject release]; [myObject autorelease]; //also used for return objects [pool drain]; New Alloc Retain Copy

Classes Header file (.h) #import <Foundation/Foundation.h> @interface Player: NSObject { @private int score; int privateNumber; } @property int score; (void) addNumbers: (int) a withNumber: (int) b; - (int) score; - (void) setScore: (int) s; @end - Istance + class

Classes Implementation file (.m) #import “Player.h” @implementation Player @synthesize score; (id) init { [super init] ; return self; } (int) addNumbers: (int) a withNumber: (int) b { return a+b; } (int) score { return score; } (void) setScore: (int) s { score = s; ] (void) dealloc{ [super dealloc]; } @end

Arrays Objective-C Style #import <Foundation/Foundation.h> int main (int argc, const char *argv[]){ NSAutorealeasePool *pool = [[NSAutorealeasePool alloc] init]; NSDate *myDate = [[NSDate alloc] init]; NSArray *myArray = [NSArray arrayWithObjects: @”one”,myDate,nil]; NSMutableArray *myArray2 = [NSMutableArray arrayWithObjects: @”one,nil]; [myArray2 addObject:myDate]; [myArray2 removeObjectAtIndex:1]; NSLog(@”The second element of %i in myArray is: %@”, [myArray count], [myArray objectAtIndex:1]); [pool drain]; return 0; }

Dictionaries NSMutableDictionary *states = [NSMutableDictionary dictionaryWithObjectsAndKeys: @”Arizona”, @”AZ”, @”California”, @”CA”, @”Colorado”, @”CO”, nil]; [States setObject:@”Florida” withKey:@”FL”]; NSString * stateKey = “FL”; NSLog(@” %@ is for %@”, stateKey, [states objectForKey:stateKey]);

Fast Enumeration for (NSString *x in myArray){ NSLog(@”%@”, x ); } for (NSString *x in myDictionary){ NSLog(@”%@”, [myDictionary objectForKey:x]);

References http://developer.apple.com/library/ios/documentation/Miscellaneous/Conceptual/iPhoneOSTechOverview/iPhoneOSTechOverview.pdf http://securityevaluators.com/files/papers/apple-sandbox.pdf http://www.cocos2d-iphone.org/ https://developer.apple.com/library/mac/documentation/cocoa/conceptual/objectivec/objc.pdf

Σας Ευχαριστούμε για την προσοχή σας! Σας Ευχαριστούμε για την προσοχή σας!