The OS X operating system combines a stable core with advanced technologies to help you deliver world-class products on the Mac platform. Knowing what these technologies are, and how to use them, can help streamline your development process, while giving you access to key OS X features.
Protect your Mac from malware. MacOS has many features that help protect your Mac and your personal information from malicious software, or malware. One common way malware is distributed is by embedding it in a harmless-looking app. You can reduce this risk by using software.
At a Glance
This guide introduces you to the range of possibilities for developing Mac software, describes the many technologies you can use for software development, and points you to sources of information about those technologies. It does not describe user-level system features or features that have no impact on software development.
OS X Has a Layered Architecture with Key Technologies in Each Layer
Education & Personal Development. So this is a benefit that will actually get better the longer you have your Mac. Apple can update software patches and make improvements quicker than PC. Get a huge head start on creating a native Mac app based on your existing iPad app. Your Mac and iPad apps share the same project and source code, so any changes you make translate to both platforms. And your newly created Mac app runs natively, utilizing the same frameworks, resources, and even runtime environment as apps built just for Mac. MacBook Air vs MacBook Pro: Head to Head. Below, we compare the key specs of the MacBook Air and the various MacBook Pro models to help you decide which is best.
It’s helpful to view the implementation of OS X as a set of layers. The lower layers of the system provide the fundamental services on which all software relies. Subsequent layers contain more sophisticated services and technologies that build on (or complement) the layers below.
The lower the layer a technology is in, the more specialized are the services it provides. Generally, technologies in higher layers incorporate lower-level technologies to provide common app behaviors. A good rule of thumb is to use the highest-level programming interface that meets the goals of your app. Here is a brief summary of the layers of OS X.
- The Cocoa (Application) layer includes technologies for building an app’s user interface, for responding to user events, and for managing app behavior.
- The Media layer encompasses specialized technologies for playing, recording, and editing audiovisual media and for rendering and animating 2D and 3D graphics.
- The Core Services layer contains many fundamental services and technologies that range from Automatic Reference Counting and low-level network communication to string manipulation and data formatting.
- The Core OS layer defines programming interfaces that are related to hardware and networking, including interfaces for running high-performance computation tasks on a computer’s CPU and GPU.
- The Kernel and Device Drivers layer consists of the Mach kernel environment, device drivers, BSD library functions (
libSystem
), and other low-level components. The layer includes support for file systems, networking, security, interprocess communication, programming languages, device drivers, and extensions to the kernel.
Relevant Chapters:Cocoa Application Layer, Media Layer, Core Services Layer, Core OS Layer, Kernel and Device Drivers Layer
You Can Create Many Different Kinds of Software for Mac
Using the developer tools and system frameworks, you can develop a wide variety of software for Mac, including the following:
Mac Air For Software Development Program
Read: Best audio editing software for Mac. If you think you might need an FTP app, CyberDuck is an oldie but a goodie - and can be downloaded for free. If you go to the Mac App Store. Find out why you need a Mac for iOS development and the minimum Mac you need for programming your next app. Wondering if the MacBook Pro, MacBook Air, or even Mac mini are good enough for.
- Apps. Apps help users accomplish tasks that range from creating content and managing data to connecting with others and having fun. OS X provides a wealth of system technologies such as app extensions and handoff, that you use to extend the capabilities of your apps and enhance the experience of your users.
- Frameworks and libraries. Frameworks and libraries enable code sharing among apps.
- Command-line tools and daemons. Command-line tools allow sophisticated users to manipulate data in the command-line environment of the Terminal app. Daemons typically run continuously and act as servers for processing client requests.
- App plug-ins and loadable bundles. Plug-ins extend the capabilities of other apps; bundles contain code and resources that apps can dynamically load at runtime.
- System plug-ins. System plug-ins, such as audio units, kernel extensions, I/O Kit device drivers, preference panes, Spotlight importers, and screen savers, extend the capabilities of the system.
Relevant Chapter:Creating Software Products for the Mac Platform
When Porting a Cocoa Touch App, Be Aware of API Similarities and Differences
The technology stacks on which Cocoa and Cocoa Touch apps are based have many similarities. Some system frameworks are identical (or nearly identical) in each platform, including Foundation, Core Data, and AV Foundation. This commonality of API makes some migration tasks—for example, porting the data model of your Cocoa Touch app—easy.
Other migration tasks are more challenging because they depend on frameworks that reflect the differences between the platforms. For example, porting controller objects and revising the user interface are more demanding tasks because they depend on AppKit and UIKit, which are the primary app frameworks in the Cocoa and CocoaTouch layers, respectively.
See Also
Apple provides developer tools and additional information that support your development efforts.
Xcode, Apple’s integrated development environment, helps you design, create, debug, and optimize your software. You can download Xcode from the Mac App Store.
For an overview of the developer tools for OS X, see the Xcode Apple Developer webpage. For an overview Xcode functionality, read Xcode Overview.
The OS X Developer Library contains the documentation, sample code, tutorials, and other information you need to write OS X apps. You can access the OS X Developer Library from the Apple Developer website or from Xcode. In Xcode, choose Help > Documentation and API Reference to view documents and other resources in the Organizer window.
In addition to the OS X Developer Library, there are other sources of information on developing different types of software for Mac:
- Apple Open Source. Apple makes major components of OS X—including the UNIX core—available to the developer community. To learn about Apple’s commitment to Open Source development, visit Open Source Development Resources. To learn more about some specific Open Source projects, such as Bonjour and WebKit, visit Mac OS Forge.
- BSD. Berkeley Software Distribution (BSD) is an essential UNIX-based part of the OS X kernel environment. Several excellent books on BSD and UNIX are available in bookstores. But you can also find additional information on any of the websites that cover BSD variants—for example, The FreeBSD Project.
- Third-party books. Several excellent books on Mac app development can be found online and in the technical sections of bookstores.
Free Mac Software
Copyright © 2004, 2015 Apple Inc. All Rights Reserved. Terms of Use | Privacy Policy | Updated: 2015-09-16
iPadOS features additional technologies that take advantage of the unique functionality of iPad using the iOS SDK. With iPadOS, your iPad apps can now deliver multiwindow experiences, add full drawing experiences for Apple Pencil, and contribute fonts for systemwide use.
Multitasking
With Multitasking capabilities such as Slide Over, Split View, and Picture in Picture, users can quickly switch from one app to another with intuitive gestures.
Multiple Windows
In iPadOS, apps that support Drag and Drop can also support multiple windows. For example, users of a document creation app can work on several documents at once, use the app in Split View or in multiple spaces, and even work with multiple apps in Slide Over.
Drag and Drop
With multitouch APIs, your apps can let users quickly move text, images, and files from one app to another. Support Drag and Drop in your apps to let users move content in a way that feels natural.
PencilKit
Apple Pencil delivers pixel-perfect precision and industry-leading low latency, making it great for drawing, sketching, coloring, taking notes, marking up email, and more. Your apps can take advantage of Apple Pencil, which features an intuitive touch surface that supports double-tap gestures. And with PencilKit, the new feature-rich drawing and annotation framework, you can now easily add a full drawing experience to your app — with access to a canvas, responsive inks, a rich tool palette, and a drawing model on iPadOS.
Files and Folders
![Air Air](/uploads/1/2/6/0/126049720/898965144.jpg)
Files now supports USB drives, SD cards, and file servers. And host of new features like Column View, Quick Actions and local storage make Files even more powerful.
Fonts
With iPadOS, your app can contribute fonts for systemwide use and use other contributed fonts, offered through the new font picker interface. And new system UI fonts are now available for use in your app.
Machine Learning
With on-device model training and a gallery of curated models, there’s never been a better time to take advantage of machine learning. Core ML seamlessly takes advantage of the CPU, GPU, and Neural Engine to provide maximum performance and efficiency, and lets you integrate the latest cutting-edge models into your apps. The Create ML app lets you build, train, and deploy machine learning models with no machine learning expertise required.
Augmented Reality
ARKit delivers an incredible awareness of people with the ability to integrate human movement into your app, the People Occlusion feature that lets AR content realistically pass behind and in front of people in the real world, and much more. Reality Engine — Apple’s rendering, animation, physics, and audio engine — powers Reality Composer and RealityKit, so you can easily prototype and produce AR experiences.
Desktop-class Browsing with Safari
Safari on iPad supports the latest web standards and automatically adapts websites and web apps to touch, delivering a rich browsing experience with blazing-fast performance, industry-leading security, and modern desktop features. Your site or embedded WebView can take advantage of powerful new features and coding best practices to deliver a best-in class user experience for iPad.
Building for iPad Pro
iPad Pro lets you deliver faster, more responsive experiences like never before. The all-screen design goes from edge to edge. Face ID works seamlessly in portrait or landscape. The A12X Bionic chip outperforms the vast majority of portable PCs, runs pro apps, and enables stunning augmented reality experiences. And with support for accessories like the second-generation Apple Pencil and Smart Keyboard Folio, iPad Pro represents the biggest change to iPad ever.
Mac Air For Software Development 2017
Face ID
This secure way to unlock, authenticate, and pay lets users quickly access your app with just a glance. The TrueDepth camera projects and analyzes more than 30,000 invisible dots to create a facial map that is encrypted and protected by the Secure Enclave on the device.
For details on user authentication, see the Human Interface Guidelines.
A12X Bionic
The A12X Bionic chip with the Neural Engine is the smartest, most powerful chip we’ve ever made, and it’s been designed specifically for iPad Pro. The A12X Bionic delivers faster CPU performance than the majority of portable PCs. The Apple-designed 7-core GPU, along with architectural enhancements and memory compression enable the GPU to perform up to 2x faster. And the 8-core Neural Engine, which runs five trillion operations per second, is dedicated to highly efficient, powerful machine learning, enabling all-new experiences.
UI Optimization
Take advantage of the all-screen design of the 11-inch iPad Pro and 12.9-inch iPad Pro (3rd generation) by building your app with the iOS 12.1 SDK or later and making sure it appears correctly with the display’s rounded corners and home indicator.
Run and Test in Simulator. Make sure your apps take advantage of the edge-to-edge Liquid Retina display by respecting safe areas and supporting adaptive layouts. Read the updated Human Interface Guidelines, download the latest version of Xcode, and test your app in Simulator.
Enable full screen native resolution. Your app will run in Full Screen Display Mode on iPad Pro if your project’s base SDK is set to iOS 12.1 or later and you have a Launch Storyboard.
Verify all parts of your app. Make sure that your UI displays correctly and no elements are mispositioned, overlapping, incorrectly scaled, or clipped. If you discover issues, use the safe area guides and layout margins to correctly position UI elements.
Bring Your iPad App to Mac
Get a huge head start on creating a native Mac app based on your existing iPad app. Your Mac and iPad apps share the same project and source code, so any changes you make translate to both platforms. And your newly created Mac app runs natively, utilizing the same frameworks, resources, and even runtime environment as apps built just for Mac.
Sidecar on macOS Catalina
Users running macOS Catalina can use iPad as a secondary display alongside Mac and draw with Apple Pencil on iPad. There’s no need to make any adjustments to Mac apps — they just work.