You are on page 1of 4

Objective C Notes:Objective-C is a general-purpose, object-oriented programming language that adds Smalltalk-style messaging to the Cprogramming language.

It is the main programming language used by Apple for the OS X and iOS operating systems and their respective APIs, Cocoa and Cocoa Touch. Originally developed in the early 1980s, it was selected as the main language used by NeXT for its NeXTSTEP operating system, from which OS X and iOS are [1] derived. Generic Objective-C programs that do not use the Cocoa or Cocoa Touch libraries, or using parts that may be ported or reimplemented for other systems can also be compiled for any system supported by GCC or Clang. Objective-C source code program files usually have .m filename extensions, while ObjectiveC header files have .hextensions, the same as for C header files.

Objective-C is a thin layer on top of C, and moreover is a strict superset of C; it is possible to compile any C program with an Objective-C compiler, and to freely include C code within an [7] Objective-C class. Objective-C derives its object syntax from Smalltalk. All of the syntax for non-object-oriented operations (including primitive variables, pre-processing, expressions, function declarations, and function calls) are identical to that of C, while the syntax for object-oriented features is an implementation of Smalltalk-style messaging.

Cocoa Touch

Cocoa Touch is a UI framework for building software programs to run on the iOS operating system (for the iPhone, iPod Touch, andiPad) from Apple Inc. Cocoa Touch provides an abstraction layer of iOS, the operating system for the iPhone, iPod Touch, and iPad. Cocoa Touch is based on the Mac OS X Cocoa API toolset and, like it, is primarily written in the Objective-C language. Cocoa Touch allows the use of hardware and features that are not found in Mac OS X computers and are thus unique to the iOS range of devices. Just like Cocoa, Cocoa Touch follows a Model-View-Controller (MVC) software architecture. Tools for developing applications based on Cocoa Touch are included in the iOS SDK.

Main features[edit]

Some of the main features and technologies of Cocoa Touch are: Core Animation Multitasking Gesture Recognizers

MVC

Component interactions[edit]

A typical collaboration of the MVC components

In addition to dividing the application into three kinds of components, the Model view [4] controller (MVC) design defines the interactions between them.

A controller can send commands to the model to update the model's state (e.g., editing a document). It can also send commands to its associated view to change the view's presentation of the model (e.g., by scrolling through a document). A model notifies its associated views and controllers when there has been a change in its state. This notification allows views to update their presentation, and the controllers to change the available set of commands. In some cases an MVC implementation might instead be "passive," so that other components must poll the model for updates rather than being notified.

A view is told by the controller all the information it needs for generating an output representation to the user. It can also provide generic mechanisms to inform the controller of user input.

Sqlite
SQLite (/skjullat/ or /sikwl.lat/ ) is a relational database management system contained in a C programming library. In contrast to other database management systems, SQLite is not a separate process that is accessed from the client application, but an integral part of it. SQLite is ACID-compliant and implements most of the SQL standard, using a dynamically and weakly typed SQL syntax that does not guarantee the domain integrity. SQLite is a popular choice as embedded database for local/client storage in application software such as web browsers. It is arguably the most widely deployed database engine, as it is used today by several widespread browsers, operating systems, and embedded systems, [5] among others. SQLite has many bindings to programming languages.
[3] [4]

Design[edit]
Unlike clientserver database management systems, the SQLite engine has no standalone processes with which the application program communicates. Instead, the SQLite libraryis linked in and thus becomes an integral part of the application program. (In this, SQLite follows the precedent of Informix SE of c. 1984) The library can also be called dynamically. The application program uses SQLite's functionality through simple function calls, which reduce latency in database access: function calls within a single process are more efficient than inter-process communication. SQLite stores the entire database (definitions, tables, indices, and the data itself) as a single cross-platform file on a host machine. It implements this simple design by locking the entire database file during writing. SQLite read operations can be multitasked, though writes can only be performed sequentially.

Baas
Backend as a service (BaaS), also known as "mobile backend as a service" [1] [2] [3] (MBaaS), is a model for providing web and mobile app developers with a way to link their applications to backend cloud storage while also providing features such as user [4] management, push notifications, and integration with social networking services. These services are provided via the use of custom software development kits (SDKs) and application programming interfaces (APIs). BaaS is a relatively recent development in [5] [6][7] cloud computing, with most BaaS startups dating from 2011 or later. The global BaaS market had an estimated value of $216.5 million in 2012.

Purpose[edit]

Web and mobile apps require a similar set of features on the backend, including push [9][10] notifications, integration with social networks, and cloud storage. Each of these services has their own API that must be individually incorporated into an app, a process that can be [11] time-consuming and complicated for app developers. BaaS providers form a bridge between the frontend of an application and various cloud-based backends via a unified API [3] and SDK. Providing a consistent way to manage backend data means that developers do not need to redevelop their own backend for each of the services that their apps need to [10] [11][12] access, potentially saving both time and money. Although similar to other cloud-computing developer tools, such as software as a service (SaaS), infrastructure as a service (IaaS), and platform as a service (PaaS), BaaS is distinct from these other services in that it specifically addresses the cloud-computing needs of web and mobile app developers by providing a unified means of connecting their apps to [13][14] cloud services.

Service providers[edit]
Each BaaS provider offers a slightly different set of backend tools and resources. Among the most common services provided are push notifications, file storage and sharing, integration with social networks such as Facebook and Twitter, location services, messaging and chat functions, user management, running business logic, and usage analysis [11][14][15] tools. BaaS providers have a broad focus, providing SDKs and APIs that work for app development on multiple platforms, such as iOS, Android, Blackberry, Windows Phone, HTML5, and [15] others. Providers may also offer links to multiple backend storage options, such as Microsoft Azure, Rackspace and Amazon EC2.
[14][9]

Business model[edit]
BaaS providers generate revenue from their services in various ways, often using a freemium model. Under this model, a client receives a certain number of free active users or APIcalls per month, and pays a fee for each user or call over this limit. Alternatively, clients can pay a set fee for a package which allows for a greater number of calls or active users per [10] month.

You might also like