Objective-C is a reflective, object-oriented programming language, which adds Smalltalk-style
messaging to the C programming language.
Today it is used primarily on Apple's Mac OS X and iPhone OS: two environments based
on, although not compliant with the OpenStep standard.[1] Objective-C is the primary
language used for Apple's Cocoa API, and it was originally used as the main language
on NeXT's NeXTSTEP OS. Generic Objective-C programs which do not make use of these
libraries can also be compiled for any system supported by gcc, which includes an
Objective-C compiler.
We offer Various framework in Objective C
Cocoa consists primarily of two Objective-C object libraries called frameworks.
Frameworks are functionally similar to shared libraries, a compiled object that
can be dynamically loaded into a program's address space at runtime, but frameworks
add associated resources, header files, and documentation.
- Foundation Kit, or more commonly simply Foundation, first appeared in OpenStep.
On Mac OS X, it is based on Core Foundation. Foundation is a generic object-oriented
library providing string and value manipulation, containers and iteration, distributed
computing, run loops, and other functions that are not directly tied to the graphical
user interface. The "NS" prefix, used for all classes and constants in the framework,
comes from Cocoa's NeXTSTEP heritage.
- Application Kit or AppKit is directly descended from the original NeXTSTEP Application
Kit. It contains code with which programs can create and interact with graphical
user interfaces. AppKit is built on top of Foundation, and uses the same "NS" prefix.
A key part of the Cocoa architecture is its comprehensive views model. This is organized
along conventional lines for an application framework, but is based on the PDF drawing
model provided by Quartz. This allows creation of custom drawing content using PostScript-like
drawing commands, which also allows automatic printer support and so forth. Since
the Cocoa framework manages all the clipping, scrolling, scaling and other chores
of drawing graphics, the programmer is freed from implementing basic infrastructure
and can concentrate only on the unique aspects of an application's content.