45
Who A’m I ? Name: abdimuna Day: programmer Night: braining, sec OSX | iOS

A short story_of_osx_i_os

Embed Size (px)

DESCRIPTION

This is a short story of OSX and iOS, and an introduction to Objective-C, the language powering Mac OS X and iOS mobile operating system. ...In this presentation you will see how and when the OSX and iOS started, ... How OSX and IOS differ ... Introduction to Objective-C, and some key features of objective-C ...This presentation don't teach you how to become a programmer, but it gives the binding understand on how and when things came the way they are . ...

Citation preview

Page 1: A short story_of_osx_i_os

!!

Who A’m I ?!Name: abdimuna!Day: programmer!Night: braining, sec

OSX | iOS

Page 2: A short story_of_osx_i_os

Recap1. History 2. Apple | Mac 3. OSX 4. iOS 5. Objective-C 6. Conclusion

Page 3: A short story_of_osx_i_os

Apple | Founders

Steve Jobs & Steve Wozniak

Page 4: A short story_of_osx_i_os

Apple-II:

First Apple-II was released on 17, June 1977

!8-bit personal computer

Processor: 1Mhz RAM: 4KB

Page 5: A short story_of_osx_i_os

Mac | Macintosh

1st Mac was introduced on 24, Jan 1984

!1. First public computer with GUI 2. Used mouse 3. Processor: 8Mhz 4. RAM 64KB

Page 6: A short story_of_osx_i_os

NEXT

16, sept 1985 Steve jobs left Apple.inc

Page 7: A short story_of_osx_i_os

NeXT-Step | (NS)

Next was formed by Steve Jobs in 1985, after he left Apple.inc

Page 8: A short story_of_osx_i_os

NeXT-Step | (NS)

First Next computer, was released in 1888, followed by NeXT station in 1990

Page 9: A short story_of_osx_i_os

NEXT-Step | (NS)

Characteristics: • 32-bit system, • Processor Motorola 68030, 25Mhz • RAM: 256MB • HDD: 330 or 660MB • 10Base-2 Ethernet • 17 inch b/w monitor, res 1120x832

Page 10: A short story_of_osx_i_os

OSX | Birth

Page 11: A short story_of_osx_i_os

OSX | History

Page 12: A short story_of_osx_i_os

OSX | Architecture

Page 13: A short story_of_osx_i_os

OSX | Architecture

Page 14: A short story_of_osx_i_os

OSX | Darwin

Darwin is an opensource kernel

Page 15: A short story_of_osx_i_os

OSX | RPC

Page 16: A short story_of_osx_i_os

OSX | Evolution

Page 17: A short story_of_osx_i_os

iOS

iOS (before 24, June 2010 — iPhone OS) Is an operating system which powers apple’s

devices (iPhone, iPad, iPod-touch, Apple-TV)

Page 18: A short story_of_osx_i_os

OSX vs iOS• The architecture for which the kernel and binaries are compiled is

ARM-based, rather than Intel i386 or x86_64. The processors may be different (A4, A5, A5X, etc), but all are based on designs by ARM. The main advantage of ARM over Intel is in power management,

which makes their processor designs attractive for mobile operating systems such as iOS, as well as its arch-nemesis, Android.

!• The kernel sources remain closed — even though Apple promised to

maintain XNU, the OS X Kernel, as open source, it apparently frees itself from that pledge for its mobile version. Occasionally, some of

the iOS modifications leak into the publicly available sources (as can be seen by various #ifdef,__arm__, and ARM_ARCH conditionals),

though these generally diminish in number with new kernel versions.

Page 19: A short story_of_osx_i_os

OSX vs iOS• The kernel is compiled slightly differently, with a focus on

embedded features and some new APIs, some of which eventually make it to OS X, whereas others do not.

• The system GUI is Springboard, the familiar touch-based application launcher, rather than Aqua, which is mouse-driven and designed for windowing..

• Memory management is much tighter, as there is no nigh-infinite swap space to fall on.

• The system is hardened, or “jailed,” so as not to allow any access to the underlying UNIX APIs (i.e. Darwin), nor root access, nor any access to any directory but the application’s own. Only Apple’s applications enjoy the full power of the system. App Store apps are restricted and subject to Apple’s scrutiny.

Page 20: A short story_of_osx_i_os

OSX vs iOS• The kernel is compiled slightly differently, with a focus on embedded

features and some new APIs, some of which eventually make it to OS X, whereas others do not.

• The system GUI is Springboard, the familiar touch-based application launcher, rather than Aqua, which is mouse-driven and designed for windowing..

• Memory management is much tighter, as there is no nigh-infinite swap space to fall on. As a consequence, programmers have to adapt to harsher memory restrictions and changes in the programming model.

• The system is hardened, or “jailed,” so as not to allow any access to the underlying UNIX APIs (i.e. Darwin), nor root access, nor any access to any directory but the application’s own. Only Apple’s applications enjoy the full power of the system. App Store apps are restricted and subject to Apple’s scrutiny.

Page 21: A short story_of_osx_i_os

OSX vs iOSThere some differences in API point of view !• O S X : C o c o a - A P I e . g N S -

(Button,View..) • iOS: UITouch, or Cocoa-Touch e.g UI-

(Button, View)

Page 22: A short story_of_osx_i_os

Objective-C

Is the general purpose programming language which adds some SmallTalk-style messaging in C (developed

in early-80’s).

• Designed by: Brad Cox & Tom Love • Was selected as the main language used by NeXT for its

NEXTSTEP OS • Now: is the language powering both OSX & iOS

Page 23: A short story_of_osx_i_os

Objective-C |

Its: • OOP (adds object capabilities to pure C) • dynamic, (U-can determine which messages to send to

at runtime, and not at compile time) • Single inheritance, (NSObject is the super class of

all subclasses)

Page 24: A short story_of_osx_i_os

Objective-C |

• Delegation (Like callBacks, powerful) • Protocols, (acts as substitute for multiple inheritance,

like java interfaces) • Categories, (Adds functionality to an existing classes

aka adding some more methods for an existing classes)

Page 25: A short story_of_osx_i_os

Objective-C |

• Notifications (Objects can register for Notifications

events) • KVC/KVO, (Accessing object properties by key or by

value, Listening for object’s properties change) • Blocks, (Powerful feature added in iOS-4, & OSX-10.6,

They enable you to do powerful operations e.g concurrencies )

Page 26: A short story_of_osx_i_os

Objective-C | GCD

• dispatch_object_t • dispatch_source_t • dispatch_queue_t • dispatch_group_t • dispatch_semaphore_t • dispatch_time_t • dispatch_once_t

GCD: simply is the multi-threading API

Page 27: A short story_of_osx_i_os

Objective-C | Apple

Page 28: A short story_of_osx_i_os

Objective-C | File ext

Page 29: A short story_of_osx_i_os

Objective-C | Data-types

Page 30: A short story_of_osx_i_os

Objective-C | class

Page 31: A short story_of_osx_i_os

Objective-C |ex

Page 32: A short story_of_osx_i_os

Objective-C | Implementation

Page 33: A short story_of_osx_i_os

Objective-C | method

Page 34: A short story_of_osx_i_os

Objective-C | sms-sent

Page 35: A short story_of_osx_i_os

Objective-C | example

Page 36: A short story_of_osx_i_os

Objective-C | dot

Page 37: A short story_of_osx_i_os

Objective-C | ex

Page 38: A short story_of_osx_i_os

Objective-C |ex

Page 39: A short story_of_osx_i_os

Objective-C | MultiThreading

dispatch_queue_t exampleQueue = dispatch_queue_create( “com.abdimuna1.myApp”, NULL ); dispatch_sync( exampleQueue, ^{ // // DO SOME STUFF HERE }); dispatch_release( exampleQueue );

Page 40: A short story_of_osx_i_os

Objective-C | Xcode

Is tool(GUI) for compiling, debugging, designing: Objective-C, C, or C++

projects

Page 41: A short story_of_osx_i_os

Objective-C | Xcode

Page 42: A short story_of_osx_i_os

Objective-C | compiling in cmd

Page 43: A short story_of_osx_i_os

Objective-C | Libraries

Page 44: A short story_of_osx_i_os

QA .?Thanks

Page 45: A short story_of_osx_i_os

sources:

Apple: https://developer.apple.com/library/mac/documentation/cocoa/conceptual/ProgrammingWithObjectiveC/Introduction/Introduction.html