Overview of iOS frameworks

Vikas Kore
15 min readNov 5, 2017

This article contains list of Apple iOS frameworks and their overview. I have tried to bring most of iOS frameworks under a hood, it helps new developers to get start and for interview purpose also. I hope it will help us.

for Overview of iOS frameworks introduced in iOS 8,9 and 10
https://medium.com/@vikaskore/overview-of-ios-frameworks-introduced-in-ios-8-9-and-10-3ad572c1727d

for Overview of iOS frameworks which were introduced after iOS 10
https://medium.com/@vikaskore/overview-of-ios-11-frameworks-fb80ed30b150

1. MediaAccessibility [iOS 7.0+]

Coordinate the presentation of closed-captioned data for your app’s media files.

2. JavaScriptCore [iOS 7.0+]

The JavaScriptCore Framework provides the ability to evaluate JavaScript programs from within Swift, Objective-C, and C-based apps. You can use also use JavaScriptCore to insert custom objects to the JavaScript environment.

3. SpriteKit [iOS 7.0+]

SpriteKit is a graphics rendering and animation infrastructure that you can use to animate arbitrary textured images, otherwise known as sprites. SpriteKit provides a traditional rendering loop that alternates between determining the contents of and rendering frames. You determine the contents of the frame and how those contents change. SpriteKit does the work to render that frame efficiently using graphics hardware. SpriteKit is optimized for applying arbitrary animations or changes to your content. This design makes SpriteKit more suitable for games and apps that require flexibility in how animations are handled.

4. Game Controller [iOS 7.0+]

Support hardware game controllers in your game.
The Game Controller framework is used to discover game controllers connected to a device and receive input data from them. You use control profiles to map the physical controls on the device to the inputs needed in your game. After retrieving a profile from the controller, you can either poll the current values of its controls or add handlers to be called when control values change.

5. SafariServices [iOS 7.0+]

Enable web views and services in your app.
Use the Safari Services framework to integrate Safari behaviors into your iOS or macOS app or to extend the behavior of Safari.

6. MultipeerConnectivity [iOS 7.0+]

The Multipeer Connectivity framework supports the discovery of services provided by nearby devices and supports communicating with those services through message-based data, streaming data, and resources (such as files). In iOS, the framework uses infrastructure Wi-Fi networks, peer-to-peer Wi-Fi, and Bluetooth personal area networks for the underlying transport. In macOS and tvOS, it uses infrastructure Wi-Fi, peer-to-peer Wi-Fi, and Ethernet.

7. AdSupport [iOS 6.0+]

The Ad Support framework provides apps with access to an identifier that can be used only for serving advertisements, as well as a flag which indicates whether a user has limited ad tracking. Accessing the advertising identifier requires apps to read and honor the opt-out flag.

8. PassKit [iOS 6.0+]

Request and process Apple Pay payments in your app. Create, distribute, and update passes for the Wallet app.

The PassKit framework lets you add Apple Pay to your app, manage passes in the user’s Wallet app.

9. VideoToolbox [iOS 6.0+]

VideoToolbox is a low-level framework that provides direct access to hardware encoders and decoders. It provides services for video compression and decompression, and for conversion between raster image formats stored in CoreVideo pixel buffers. These services are provided in the form of session objects (compression, decompression, and pixel transfer), which are vended as Core Foundation (CF) types. Apps that don’t need direct access to hardware encoders and decoders should not need to use VideoToolbox directly.

10. Social [iOS 6.0+]

Integrate your app with supported social networking services. Use the provided template to create HTTP requests.

On iOS and macOS, this framework provides a template for creating HTTP requests. On iOS only, the Social framework provides a generalized interface for posting requests on behalf of the user.

11. Accounts [iOS 5.0+]

Help users access and manage their external accounts from within your app, without requiring them to enter login credentials.

The Accounts framework provides access to user accounts stored in the Accounts database. An account stores the login credentials of a particular service, such as Twitter, that can be used as authentication for the service. By implementing the Accounts framework into your app, you do not need to be responsible for storing account logins yourself. Instead, the user can grant access for your app to use their account login credentials, bypassing the need to type their username and password. If no account for a particular service exists in the user’s Accounts database, you can let them create and save an account from within your app.

In addition to handling calls, you can provide a Call Directory app extension to provide caller ID information and a list of blocked numbers associated with your service.

12. NewsstandKit [iOS 5.0+]

Create and manage assets for the client side of a Newsstand app. Enable users to browse and download newspapers and magazines, with viewing optimized for mobile devices.
You use the Newsstand Kit framework to develop the client side of a Newsstand application. Through the Newsstand, users can browse through newspapers and magazines that are optimized for viewing on mobile devices.

13. Core Bluetooth [iOS 5.0+]

The Core Bluetooth framework provides the classes needed for your apps to communicate with devices that are equipped with Bluetooth low energy wireless technology.

Do not subclass any of the classes of the Core Bluetooth framework. Overriding these classes is unsupported and results in undefined behavior.

14. GLKit [iOS 5.0+]

Speed up OpenGL ES or OpenGL app development. Use math libraries, background texture loading, pre-created shader effects, and a standard view and view controller to implement your rendering loop.

The GLKit framework provides functions and classes that reduce the effort required to create new shader-based apps or to port existing apps that rely on fixed-function vertex or fragment processing provided by earlier versions of OpenGL ES or OpenGL.

15. Core Image [iOS 5.0+]

Use built-in or custom filters to process still and video images.
Core Image is an image processing and analysis technology that provides high-performance processing for still and video images. Use the many built-in image filters to process images and build complex effects by chaining filters.

16. Core MIDI [iOS 4.2+]

Communicate with MIDI devices such as hardware keyboards and synthesizers.
The Core MIDI framework provides APIs for communicating with MIDI (Musical Instrument Digital Interface) devices, including hardware keyboards and synthesizers. Connect from an iOS device using the dock connector or a network.

17. Core Telephony [iOS 4.0+]

Use the Core Telephony framework to obtain information about a user’s home cellular service provider that is, the provider with whom the user has an account. Carriers can use this information to write applications that provide services only for their own subscribers. You can also use this framework to obtain information about current cellular calls.

18. Accelerate [iOS 4.0+]

Make large-scale mathematical computations and image calculations, optimized for high performance.

Contains C APIs for vector and matrix math, digital signal processing, large number handling, and image processing.

19. Core Media [iOS 4.0+]

Represent time-based audio-visual assets with essential data types.

The Core Media framework defines the media pipeline used by AVFoundation and other high-level media frameworks found on Apple platforms. Use Core Media’s low-level data types and interfaces to efficiently process media samples and manage queues of media data.

20. Core Video [iOS 4.0+]

Process digital video including manipulation of individual frames using a pipeline-based API and support for both Metal and OpenGL.

Core Video provides a pipeline model for digital video. It simplifies working with video by partitioning the process into discrete steps. This makes it easier for developers to access and manipulate individual frames without having to worry about translating between data types (QuickTime, OpenGL, and so on) or display synchronization issues. Apps that don’t need to manipulate individual video frames should never need to use Core Video directly.

21. EventKit [iOS 4.0+]

With permission, access and manipulate the user’s calendar and reminder data. Monitor changes to the user’s Calendar database, and help users create new events.

22. EventKitUI [iOS 4.0+]

Display a user interface for viewing, selecting, and editing the user’s calendar and reminders data.

23. iAd [iOS 4.0+]

Display advertisements in a dedicated portion of your app’s user interface. Receive revenue when users view or click the ads.

iAd allows your application to earn revenue by displaying advertisements to the user. Your application dedicates a portion of its user interface to display advertisements and in turn you receive revenue when users view or click those advertisements.

While you are developing your application, iAd sends test advertisements to help you verify your implementation is correct. To receive live advertisements from iAd in a release application, you need to integrate the iAd Framework in your application and submit your binary using iTunes Connect.

24. Core Motion [iOS 4.0+]

Core Motion reports motion- and environment-related data from the onboard hardware of iOS devices, including from the accelerometers, gyroscopes, pedometers, magnetometers, and barometers. You use this framework to access hardware-generated data so that you can use it in your app. For example, a game might use accelerometer and gyroscope data to control onscreen game behavior.

25. Image I/O [iOS 4.0+]

Read and write most image file formats. Manage color and access image metadata.

The Image I/O programming interface framework allows applications to read and write most image file formats. This framework offers high efficiency, color management, and access to image metadata.

26. Core Text [iOS 3.2+]

Create text layouts using high-quality typesetting, character-to-glyph conversion, and positioning of glyphs in lines and paragraphs. Optimize font handling with automatic font substitution, and get easy access to font metrics and glyph data.

This collection of documents is the API reference for the Core Text framework. Core Text provides a modern, low-level programming interface for laying out text and handling fonts. The Core Text layout engine is designed for high performance, ease of use, and close integration with Core Foundation. The text layout API provides high-quality typesetting, including character-to-glyph conversion, with ligatures, kerning, and so on. The complementary Core Text font technology provides automatic font substitution (cascading), font descriptors and collections, easy access to font metrics and glyph data, and many other features.

27. Core Data [iOS 3.0+]

Use Core Data to manage the model layer objects in your application. It provides generalized and automated solutions to common tasks associated with object lifecycle and object graph management, including persistence.

Core Data drastically decreases the amount of code you write to support the model layer. This is primarily due to the following built-in features that you do not have to implement, test, or optimize:

  • Change tracking and built-in management of undo and redo beyond basic text editing.
  • Maintenance of change propagation, including maintaining the consistency of relationships among objects.
  • Lazy loading of objects, partially materialized futures (faulting), and copy-on-write data sharing to reduce overhead.
  • Automatic validation of property values. Managed objects extend the standard key-value coding validation methods to ensure that individual values lie within acceptable ranges, so that combinations of values make sense.
  • Schema migration tools that simplify schema changes and allow you to perform efficient in-place schema migration.
  • Optional integration with the application’s controller layer to support user interface synchronization.
  • Grouping, filtering, and organizing of data in memory and in the user interface.
  • Automatic support for storing objects in external data repositories.
  • Sophisticated query compilation. Instead of writing SQL, you can create complex queries by associating an NSPredicate object with a fetch request.
  • Version tracking and optimistic locking to support automatic multiwriter conflict resolution.

28. MessageUI [iOS 3.0+]

The Message UI framework provides specialized view controllers for presenting standard composition interfaces for email and SMS (Short Messaging Service) text messages. Use these interfaces to add message delivery capabilities without requiring the user to leave your app.

29. MapKit [iOS 3.0+]

Display map or satellite imagery directly from your app’s interface, call out points of interest, and determine placemark information for map coordinates.

Use the MapKit framework to embed maps directly into your own windows and views. You can add annotations and overlays to the map to call out points of interest or user destinations. You can also provide text completion for users typing in the name of a point of interest.

If your app offers transit directions, you can make your directions available to Maps. You can also use Maps to supplement the directions that you provide in your app. For example, if your app only provides directions for subway travel, you can use Maps to provide walking directions to and from subway stations.

30. GameKit [iOS 3.0+]

Create experiences that keep players coming back to your game. Add leaderboards, achievements, matchmaking, challenges, and more.

GameKit offers features that you can use to create great social games. GameKit provides you with the ability to create apps that allow players to interact with each other. Multiplayer apps allow your game to create real-time network matches. Players can invite other players to join their game. Most importantly, players can receive invitations to join a match even when your game is not running. Your game is running on each device and the instances of your game exchange match and voice data with each other. Turn-Based Gaming provides store-and-forward network match infrastructure where the match is played out over a series of discrete turns. This kind of match can be played without requiring all of the players to be connected simultaneously.

31. ExternalAccessory [iOS 3.0+]

Communicate with accessories connected to a device by the Apple Lightning connector, or connected wirelessly through Bluetooth.

The External Accessory framework provides support for communicating with external hardware connected to an iOS-based device through either the Apple Lightning or 30-pin connector, or wirelessly using Bluetooth. Applications that support external accessories must be sure to configure their Info.plist file correctly. Specifically, you must include the UISupportedExternalAccessoryProtocols key to declare the specific hardware protocols your application supports.

32. MobileCoreServices [iOS 3.0+]

Use uniform type identifier (UTI) information to create and manipulate data that can be exchanged between your app and other apps and services.

33. StoreKit [iOS 3.0+]

Support in-app purchases and interactions with the App Store.

StoreKit in your app, you can provide the following features and services:

  • In-App Purchase. Offer and promote in-app purchases for content and services.
  • Apple Music. Check a user’s Apple Music capabilities and offer a subscription.
  • Recommendations and reviews. Provide recommendations for third-party content and enable users to rate and review your app.

34. AV Foundation [iOS 2.2+]

AV Foundation is the full featured framework for working with time-based audiovisual media on iOS, macOS, watchOS and tvOS. Using AV Foundation, you can easily play, create, and edit QuickTime movies and MPEG-4 files, play HLS streams, and build powerful media functionality into your apps.

Work with audiovisual assets, control device cameras, process audio, and configure system audio interactions.

The AVFoundation framework combines four major technology areas that together encompass a wide range of tasks for capturing, processing, synthesizing, controlling, importing and exporting audiovisual media on Apple platforms.

35. AudioUnit [iOS 2.0+]

Add sophisticated audio manipulation and processing capabilities to your app. Create audio unit extensions that generate or modify audio in a host app.
The Audio Unit framework provides interfaces for hosting either version 2 or version 3 audio units and implementing version 3 audio processing plug-ins known as Audio Unit extensions. Developers implementing version 3 audio units should subclass the AUAudioUnit class.

36. AddressBook [iOS 2.0+]

The Address Book is a centralized database for contact and other personal information for people. Users need to enter personal information about themselves and their friends only once, instead of entering it repeatedly whenever the information is used. Applications that support the Address Book framework share this contact information with other applications, include Apple’s Mail and iChat.

37. CFNetwork [iOS 2.0+]

Access network services and handle changes in network configurations. Build on abstractions of network protocols to simplify tasks such as working with BSD sockets, administering HTTP and FTP servers, and managing Bonjour services.

38. IOKit [iOS 2.0+]

Gain user-space access to hardware devices and drivers.

The I/O Kit framework implements non-kernel access to I/O Kit objects (drivers and nubs) through the device-interface mechanism.

39. SystemConfiguration [iOS 2.0+]

Allow applications to access a device’s network configuration settings. Determine the reachability of the device, such as whether Wi-Fi or cell connectivity are active.

The System Configuration framework provides functions that determine the reachability of target hosts in both a synchronous and an asynchronous manner. It also provides error detection facilities.

40. Core Audio [iOS 2.0+]

Use specialized data types to interact with audio streams, complex buffers, and audiovisual timestamps.

The Core Audio framework (which is not an umbrella framework for the other services in Core Audio, but rather a peer) declares data types and constants used by other Core Audio interfaces. This framework also includes a handful of convenience functions.

41. AudioToolbox [iOS 2.0+]

Record or play audio, convert formats, parse audio streams, and configure your audio session.

The Audio Toolbox framework provides interfaces for recording, playback, and stream parsing. In iOS, the framework provides additional interfaces for managing audio sessions.

42. Media Player [iOS 2.0+]

Add the ability to find and play songs, audio podcasts, audio books, and more from within your app.

The Media Player framework provides developers with several ways to play media. Built-in music players provide an easy way to access and play audio from the user’s music library in your app. External music players can also retrieve and play media items from the user’s music library. To enable users to play videos containing MPMediaItem objects, use AVPlayer. You cannot play video media items using the Media Player framework.

43. Core Location [iOS 2.0+]

Obtain the geographic location and orientation of a device.

Core Location provides services for determining a device’s geographic location, altitude, orientation, or position relative to a nearby iBeacon. The framework uses all available onboard hardware, including Wi-Fi, GPS, Bluetooth, magnetometer, barometer, and cellular hardware to gather data.

44. Core Foundation [iOS 2.0+]

Access low-level functions, primitive data types, and various collection types that are bridged seamlessly with the Foundation framework.

Core Foundation is a framework that provides fundamental software services useful to application services, application environments, and to applications themselves. Core Foundation also provides abstractions for common data types, facilitates internationalization with Unicode string storage, and offers a suite of utilities such as plug-in support, XML property lists, URL resource access, and preferences.

45. Core Graphics [iOS 2.0+]

Harness the power of Quartz technology to perform lightweight 2D rendering with high-fidelity output. Handle path-based drawing, anti-aliased rendering, gradients, images, color management, PDF documents, and more.

The Core Graphics framework is based on the Quartz advanced drawing engine. It provides low-level, lightweight 2D rendering with unmatched output fidelity. You use this framework to handle path-based drawing, transformations, color management, offscreen rendering, patterns, gradients and shadings, image data management, image creation, and image masking, as well as PDF document creation, display, and parsing.

46. OpenGL ES [iOS 2.0+]

Create 3D and 2D graphics effects with this compact, efficient subset of OpenGL.

OpenGL ES provides a C-based interface for hardware-accelerated 2D and 3D graphics rendering. The OpenGL ES framework (OpenGLES.framework) in iOS provides implementations of versions 1.1, 2.0, and 3.0 of the OpenGL ES specification.

This collection of documents describes the platform-specific APIs for OpenGL ES on iOS devices, also known as EAGL. EAGL provides graphics contexts that encapsulate all OpenGL ES state and the ability to configure a Core Animation layer to be the destination for OpenGL ES drawing commands. EAGL also allows OpenGL ES objects, such as textures, renderbuffers, and framebuffers, to be shared between two or more graphics contexts.

47. Core Animation [iOS 2.0+]

Render, compose, and animate visual elements.

Core Animation provides high frame rates and smooth animations without burdening the CPU and slowing down your app. Most of the work required to draw each frame of an animation is done for you. You configure a few animation parameters (such as the start and end points) and tell Core Animation to start. Core Animation does the rest, handing most of the work off to dedicated graphics hardware to accelerate rendering.

48. Security [iOS 2.0+]

Secure the data your app manages, and control access to your app.

Use the Security framework to protect information, establish trust, and control access to software. Broadly, security services support these goals:

  • Establish a user’s identity (authentication) and then selectively grant access to resources (authorization).
  • Secure data, both on disk and in motion across a network connection.
  • Ensure the validity of code to be executed for a particular purpose.

49. Foundation [iOS 2.0+]

Access essential data types, collections, and operating-system services to define the base layer of functionality for your app.

The Foundation framework provides a base layer of functionality for apps and frameworks, including data storage and persistence, text processing, date and time calculations, sorting and filtering, and networking. The classes, protocols, and data types defined by Foundation are used throughout the macOS, iOS, watchOS, and tvOS SDKs.

50. UIKit [iOS 2.0+]

Construct and manage a graphical, event-driven user interface for your iOS or tvOS app.

The UIKit framework provides the required infrastructure for your iOS or tvOS apps. It provides the window and view architecture for implementing your interface, the event handling infrastructure for delivering Multitouch and other types of input to your app, and the main run loop needed to manage interactions among the user, the system, and your app. Other features offered by the framework include animation support, document support, drawing and printing support, information about the current device, text management and display, search support, accessibility support, app extension support, and resource management.

Best of luck!

Reference: www.apple.com

--

--

Vikas Kore
Vikas Kore

Responses (1)