Brand new features for the Labs Framework!

Posted on Thursday, October 22nd, 2015 by Swati Teerdhala
Category: iOS

We’re excited to announce brand new features for the iOS Creative SDK Labs Framework!

The Labs Framework (AdobeCreativeSDKLabs.framework) contains some of the hottest new technologies straight out of Adobe Labs, our epicenter of creative innovation. Now, you can access the newest, most exclusive creative tech – only available in a few of our mobile and desktop apps – straight from our very own researchers to build powerful and unique creative experiences of your own.

The Labs Framework provides the following technologies:

  • AdobeLabsMagicAudioSpeechMatcher – gives your users the ability to match the acoustic properties of recordings so they can eliminate background noise and enhance their iPhone or iPad recordings to sound professionally made regardless of where they are recorded.
  • AdobeLabsMagicCropper – generates automatic crops of various sizes and aspect ratios on images so your users’ photos will look professionally cropped in seconds – with just the push of a button.
  • AdobeLabsMagicCurve – allows your users to easily make vector curves and shapes using control points directly on the line (one of the hardest things to do design-wise!) giving them the benefits of Adobe Illustrator CC technology directly within your app.
  • AdobeLabsMagicPath – provides users with the ability to “sketch” and generate beautiful paths, allowing them to turn their creative ideas into professional sketches in just a few seconds.
  • AdobeLabsUXMagicPerspectiveView – automatically manipulates and corrects perspective in an image so your users can take their photos and fix them even if they were taken at an odd or imperfect angle.
  • AdobeLabsUXMagicSelectionView – allows your users to select and extract foreground objects from an image so they can cut out the exact part of the photo they want to use to make the perfect collages or layered photos.

With the Labs Framework, you can add these innovative new tools directly into your own app in just a few minutes. Check out the documentation here to get started and see examples over on GitHub.

We’ll continue to add brand new features to the Labs Framework so make sure to follow us on our Blog, Twitter (@CreativeSDK) or Facebook to get the latest updates.

Xcode 7 and the Creative SDK

Posted on Wednesday, September 9th, 2015 by Ash Ryan
Category: iOS

Earlier today, Apple released the GM for Xcode 7 which introduces a bunch of exciting new features for developers in preparation for iOS9. We’re working hard to take advantage of these new features in the Creative SDK, but in the meantime you can find simple instructions for getting the current version to work with Xcode 7 by following the link below:

Let us know if you have any questions, and as always, we’d love to hear your feedback.

The Creative SDK Team

Dividing up the Foundation SDK

Posted on Friday, August 7th, 2015 by Swati Teerdhala
Category: iOS

From its inception, the Foundation SDK’s goal was to provide a set of core services that allows applications to integrate with the Creative Cloud. These services include authentication, networking, caching, and access to Creative Cloud storage and services.

With time the Foundation SDK’s functionality grew to include additional Creative Cloud services (e.g., access to Community assets and Lightroom/Photos services). The Foundation SDK’s increased functionality is a positive development for most Creative Cloud app developers. However, its increased size became an issue for applications that only use a small part of the Foundation SDK. Case in point, some applications only need the authentication component to associate an application’s data to a given user, but don’t want the overhead of the larger Foundation SDK. It became clear that breaking up the Foundation SDK into smaller components was a necessity to address these concerns.

New SDK Components

The Foundation SDK is divided into the following components:

  • Core
  • CommonUX
  • AppLibraryUX
  • AssetModel
  • AssetUX
  • MarketUX


Core SDK

The Core SDK implements the minimum functionality that could be useful to any Creative Cloud application.  It includes networking, caching, authentication (including its UI components), and In-App Purchase support.  All subsequent modules depend on Core.

CommonUX SDK

The CommonUX SDK includes the common user interface functionality used by other UI components.  It depends on Core.  AppLibraryUX, AssetUX, and MarketU are dependent on it.

AppLibraryUX SDK

The AppLibraryUX SDK implements the UI elements to showcase the increasing number of Creative Cloud applications.  It depends on Core and CommonUX.  No split SDKs are dependent on it.

AssetModel SDK

The AssetModel SDK implements the headless APIs for accessing the various Creative Cloud services: storage, photos, image manipulation, community assets, and send to desktop.  It depends on Core.  AssetUX and MarketUX are dependent on it.


The AssetUX SDK includes the UI components to display the asset browser.  The browser displays Creative Cloud files, design libraries, photos, and application specific assets (Draw, Line, and Sketch).  It depends on Core, CommonUX, and AssetModel.  No split SDKs depend on it.

MarketUX SDK

The MarketUX includes the UI component for displaying the Community or Market Assets.   It depends on Core, CommonUX, and AssetModel.  No split SDKs depend on it.

Using the Split SDK Components

Applications can use individual CSDK components to meet their needs as long as they meet the components’ dependency requirements.  For example, an application that only uses authentication only needs to integrate the CreativeSDKCore framework.

An application that presents the Creative Cloud file browser needs to integrate the following frameworks:

  • CreativeSDKCore
  • CreativeSDKCommonUX
  • CreativeSDKAssetModel
  • CreativeSDKAssetUX


Applications need to link the corresponding frameworks and copy the necessary bundle resources as previously done for the monolithic Foundation SDK.

For a very short time the monolithic Foundation SDK will also be available on the Creative SDK release to facilitate migration to the split components. However, the monolithic Foundation SDK will be discontinued at a future release. Application developers are encouraged to use the split components as soon as possible and reap the benefits of the Creative SDK’s more modular design.

Adobe strives to evolve the Creative SDK and meet the needs of developers and end users. In particular, the split frameworks may be further refined as they change in size and functionality. Comments and suggestions are always welcome on this change and any other area where the Creative SDK can better meet your needs.

Introducing Magic Selection View: Brand New Tech from Adobe Labs

Posted on Thursday, June 4th, 2015 by Swati Teerdhala
Category: iOS

We’re extremely excited to announce that, for the first time ever, we have added exclusive new technology from Adobe Labs into the most recent version of the iOS Creative SDK. With Magic Selection View, you can use our latest technology to identify and pull selected portions of the image out of the foreground – with just two fingers! This new feature, Magic Selection View can be found in the AdobeCreativeSDKLabs.framework. This is just one example of how we’re continuing to evolve our creative tools and reimagine them for new mobile workflows.

The AdobeLabsUXMagicSelectionView class is similar to a combination of UIScrollView and UIImageView – it will display an image and let you scroll and pan the image. Simply instantiate it, add it as a subview to your view, and call setImage:

 magicSelectionView = [[AdobeLabsUXMagicSelectionView alloc] initWithFrame: self.view.bounds];
 [magicSelectionView setImage: myImage withCompletionBlock: myCompletionBlock];
 [self.view addSubview: magicSelectionView];

Note: setImage is asynchronous and requires the use of a completionBlock for robust operation. See the sample app (link below) for details.

Once the image is set, the magic selection view is ready to use:


Unlike UIScrollView, panning is done with two fingers; the single finger gesture in the Magic Selection View is used for painting the magic selection:


Once the selection is painted you can extract the selected foreground bits from the image:


In order to use the Magic Selection View, you must add both the AdobeCreativeSDKLabs.framework and the AdobeCreativeSDKFoundation.framework in addition to a few dependent frameworks to your xCode app project’s “Link Binary With Libraries” build phase. Be sure to also add AdobeCreativeSDKFoundationResources.bundle to your “Copy Bundle Resources” build phase:


Finally, Magic Selection View requires an iOS Deployment Target of 8.0 or greater and requires the -ObjC Other Linker Flag:


And that’s it! With the Creative SDK you can give your users this powerful technology in just a few steps. You can find a complete example of this by downloading a sample project here.

Disclaimer: This Adobe Labs component is a beta product, and is provided with limited support. As with all of our SDKs, feedback is welcome.


New iOS Release: Smaller Foundation Size, Color Framework and more!

Posted on Thursday, April 2nd, 2015 by Swati Teerdhala
Category: iOS

Our latest iOS release for the Creative SDK is here! We’ve reduced the size of the foundation framework, fixed some bugs and have a brand new component available.

Reduced Framework Size

You asked and we are happy to deliver – the iOS foundation framework (in app) has dropped from 26.7 MB to 13.3 MB!

Update for Downloading Larger Files

We’ve also optimized the existing download API to support larger files. The max file size will depend on the size of the internal disk cache of a user’s device.

New Color Component

We’re excited to announce a brand new component in the Creative SDK! The Color component allows you to embed a Color Designer with theme/harmony selection, giving your users the ability to pick and create their own color swatches and themes within your app.

Your users can not only save those new creations in their Creative Cloud profile, they can also access all of their existing color themes and pull from the Adobe Color community as well.

colorCommunityThemes           designLibrary           editingDesignLibraries

The Color component adds another layer of creativity to your app and allows your users to further pursue their creative inspiration.

singleColorEditing           harmonyEditing

For more information, please email us at

Best Practices for iOS API Design

Posted on Tuesday, March 17th, 2015 by Swati Teerdhala
Category: iOS

by: Michael Vitrano | @michaelvitrano

Aviary and its suite of cross-platform photo editing SDKs joined the Adobe family in late 2014. Those SDKs, now known as the Image Component of the Adobe Creative SDK, are used by tens of millions of users through apps created by thousands of developers. As a result of our dual customer base, we are challenged to produce beautiful, ever-improving end-user experiences, while maintaining stable and delightful APIs. The design goals for an API are similar to those of a user interface: exposing the product’s features and communicating how to use them. However, APIs come with the additional requirement of maintaining compatibility with a multiplicity of integrations written against them.

This post describes the Aviary team’s best practices for developing APIs, which has been refined over the past 4 years of shipping code to developers. The focus will be on iOS, but we apply these principles on every platform for which we develop (and think you should, too!). To prevent any confusion, this article will refer to an SDK or library as a unit of functionality shipped to developers. The SDK’s API is the set of classes and functions that developers interact with to access the functionality contained therein.


Before integrating an SDK, developers will almost certainly read through the accompanying documentation. It is crucial to provide a clear integration guide that maps out the steps required to start using your SDK. This document should contain granular details about generating an API key (if applicable), configuring required build settings, and an introduction to the key classes and functions. Publicly visible headers should be extensively documented to provide additional information not contained in the integration guide. Along with written documentation, provide sample applications that demonstrate the SDK’s functionality and API usage. These applications should include both a basic integration of your library and at least a few of its advanced features. Apple sets an excellent example with the native iOS SDK and provides each type of documentation for most of the SDK’s component frameworks. In general, it is best to follow the conventions of host platform’s documentation so that developers using your SDK will feel at home.

Platform Consistency

When designing iOS APIs, maintaining consistency with the native iOS SDK is critical. Cocoa Touch is a conventions-driven framework. This manifests itself in long, descriptive method names, the organization of functionality around view controllers, and design patterns like delegation and target-action. Through exposure to Apple’s code, all iOS developers will become familiar with these idioms. By keeping with these conventions in your API, you will give developers clues for understanding how it works.

Beyond helping developers understand your code, maintaining consistency with the iOS SDK will also help build developer confidence in the quality of your library. If your API looks like nothing they’ve seen before, a developer can rightfully assume that you have little experience with the platform and that your code should not be trusted. Apple provides extensive documentation on the naming conventions and design patterns used in Cocoa Touch. This documentation should be referred to constantly.

As Swift continues to grow and becomes the primary language for developing iOS
applications, Cocoa Touch will evolve with it. With a new language comes new idioms and design patterns. It will be important to stay current with these changes and update your code accordingly.

A Quick Integration

Nothing is more likely to convince a developer to adopt your SDK than seeing it improve the quality of or extend functionality in their application. If your SDK is easy to integrate, an interested developer will almost certainly be able to see it in action. On the other hand, if your SDK is difficult and/or time-consuming to integrate, they may give up before realizing the value it could add. Ideally, the simplest integration of your library should take fewer than 15 lines of code.
Continue reading

Creative SDK iOS v0.8 Released

Posted on Friday, February 6th, 2015 by Adam Lehman
Category: iOS

Creative SDK iOS v0.8.2074 was focused on updating the Market component for iPad and introducing a new component for iPhone. This release also includes new APIs for working with Creative Cloud Libraries and continues our refactoring work in the Device framework. Continue reading

Creative SDK iOS v0.7 Released (w/ Aviary)

Posted on Tuesday, December 16th, 2014 by Adam Lehman
Category: iOS

Creative SDK iOS v0.7.2070 was devoted to closing outstanding issues and improving the overall quality. However, we managed to sneak in a few new features, like a brand new image editing component based on Aviary. We also worked to reduce the size impact the Creative SDK Foundation frameworks adds to your app.

Continue reading

Creative SDK Available In Public Beta

Posted on Monday, October 6th, 2014 by Adam Lehman
Category: iOS

We’re thrilled to announce that the Creative SDK for iOS is now available in public beta. iOS developers are invited to connect their apps and users through the Creative Cloud and leverage technology previously only available to Adobe applications.

Continue reading