Upload
abdimuna-muna
View
140
Download
0
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
!!
Who A’m I ?!Name: abdimuna!Day: programmer!Night: braining, sec
OSX | iOS
Recap1. History 2. Apple | Mac 3. OSX 4. iOS 5. Objective-C 6. Conclusion
Apple | Founders
Steve Jobs & Steve Wozniak
Apple-II:
First Apple-II was released on 17, June 1977
!8-bit personal computer
Processor: 1Mhz RAM: 4KB
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
NEXT
16, sept 1985 Steve jobs left Apple.inc
NeXT-Step | (NS)
Next was formed by Steve Jobs in 1985, after he left Apple.inc
NeXT-Step | (NS)
First Next computer, was released in 1888, followed by NeXT station in 1990
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
OSX | Birth
OSX | History
OSX | Architecture
OSX | Architecture
OSX | Darwin
Darwin is an opensource kernel
OSX | RPC
OSX | Evolution
iOS
iOS (before 24, June 2010 — iPhone OS) Is an operating system which powers apple’s
devices (iPhone, iPad, iPod-touch, Apple-TV)
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.
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.
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.
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)
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
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)
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)
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 )
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
Objective-C | Apple
Objective-C | File ext
Objective-C | Data-types
Objective-C | class
Objective-C |ex
Objective-C | Implementation
Objective-C | method
Objective-C | sms-sent
Objective-C | example
Objective-C | dot
Objective-C | ex
Objective-C |ex
Objective-C | MultiThreading
dispatch_queue_t exampleQueue = dispatch_queue_create( “com.abdimuna1.myApp”, NULL ); dispatch_sync( exampleQueue, ^{ // // DO SOME STUFF HERE }); dispatch_release( exampleQueue );
Objective-C | Xcode
Is tool(GUI) for compiling, debugging, designing: Objective-C, C, or C++
projects
Objective-C | Xcode
Objective-C | compiling in cmd
Objective-C | Libraries
QA .?Thanks
sources:
Apple: https://developer.apple.com/library/mac/documentation/cocoa/conceptual/ProgrammingWithObjectiveC/Introduction/Introduction.html