Partner Spotlight: Morpholio Board Pro

Posted on Tuesday, April 11th, 2017 by Drew Endick
Categories: iOS, Partner Spotlight

We are excited to showcase Board Pro by Morpholio, and their integration with the Creative SDK.

Morpholio Board Creative SDK

Board is a fantastic app for interior designers. Called “Ideal” by Interior Design, “Addictive” by ELLE DÉCOR and “Stellar” by Design Milk, Board combines your perfect products library with a powerful set of tools and the mobility to work or present anywhere. Board, an essential tool for any creative process or presentation, allows users to effortlessly layout, collage and illustrate with a series of photos, images, sketches and annotations to generate beautiful and informative boards that are easy to share. Morpholio Board is ideal for designers, architects, photographers, artists, or members of any creative culture. Its unique board ability allows you to easily build custom layouts, communicate via drawings or notes, and circulate ideas fluently with your global network.

New in Board is Ava, the transforming super-doc for interior design. Short for Automated Visual Assembly, Ava is the patent-pending future of interiors added into Board Pro. Ava is the new best friend to designers of all types who want to think and work with images, while allowing precise as well as beautiful deliverables to be automatically generated for them. With the tap of one button and the flip of a board, Ava automatically turns your layout into a concise and editable spreadsheet for purchasing or spec book of customizable cut sheets for your drawing sets.

Morpholio Board Ava

Adobe Creative SDK Integration

Morpholio integrated workflow features from the Creative SDK in their Board Pro App to give users needed access to their content across devices. Using the Send to Desktop API from the Creative SDK, Morpholio users can now send their design work from the Board app straight to Photoshop CC on the desktop.

Files sent to Photoshop CC will have layers preserved as Adobe Photoshop .PSD files. In lieu of having to email files to themselves, users can now collage, organize or layout designs in the Board app and seamlessly continue working on the desktop.

Morpholio Board Adobe Creative SDK Send To Desktop

In addition, Morpholio integrated the Creative SDK Image Editor for bringing simple yet effective editing functionality for photos and images. With the new Creative SDK Image Editor located first on the image toolbar, Morpholio users can not only create amazing boards, they can now filter, vignette and enhance their images directly in the Board app.

You can find the newest version of Morpholio’s Board Pro, as well as the rest of Morpholio’s creative apps here on the App Store.

PhoneGap Plugin Roundup

Posted on Tuesday, September 20th, 2016 by Ash Ryan
Categories: Android, iOS, Web
Tags: Client Auth, Image Editor UI, PhoneGap, Send To Desktop API, User Auth UI

PhoneGap Logo

We’ve had a lot of PhoneGap news recently, with the release of our first 4 PhoneGap plugins and 2 PhoneGap templates.

PhoneGap makes it possible for Web developers to build apps for iOS and Android using the languages they know and love: HTML, CSS, and JavaScript. Our PhoneGap plugins are also compatible with Cordova and Ionic.

Creative SDK Image Editor PhoneGap template

Image Editor UI PhoneGap plugin

Creative SDK Send To Desktop API PhoneGap plugin

Send To Desktop API PhoneGap plugin

Learn more

For an overview of these new offerings, head over to the PhoneGap blog, where they talk about the Image Editor UI plugin, Send To Desktop API plugin, and more!

To see all of the Creative SDK PhoneGap plugins and templates, also be sure to check out the Plugins section of the Creative SDK GitHub page.

If there’s another Creative SDK PhoneGap plugin you’d like to see, let us know in the comments!

PhoneGap template for the Creative SDK Send To Desktop API

Posted on Wednesday, September 7th, 2016 by Ash Ryan
Categories: Android, iOS, Web
Tags: Client Auth, Image Editor UI, PhoneGap, Send To Desktop API, User Auth UI

PhoneGap Logo

Hi Web developers! We’ve had a lot of PhoneGap + Creative SDK announcements for you recently. We announced our first PhoneGap plugins, a PhoneGap template for the Image Editor, and another batch of PhoneGap plugins.

As a companion to that second batch of plugins, today we are releasing a PhoneGap template for the Creative SDK Send To Desktop API.

A template is a great way to start learning about a PhoneGap plugin. Templates are essentially sample apps that you can download via NPM, build from your command line, and run on your device (these plugins support iOS and Android).

When you try out the Creative SDK Send To Desktop PhoneGap template, without writing any code, you’ll have a sample app for your reference that looks like this:

Creative SDK Send To Desktop API PhoneGap plugin

In the template app, you can:

Try it out

You can get started with the Creative SDK Send To Desktop template for PhoneGap by checking out the repo on GitHub.

The README covers everything you need to get going, including prerequisites, setup steps, and files to check for sample code.

Learn more

After you’ve tried the template and you’re ready to learn more about the plugins that make the template possible, check out these GitHub repos:

The READMEs for the plugin repos on GitHub contain Setup and API guides, as well as sample code, to help you get started quickly.

If there’s another Creative SDK PhoneGap plugin you’d like to see, let us know in the comments!

New PhoneGap plugins: Send To Desktop API and User Auth UI

Posted on Tuesday, August 30th, 2016 by Ash Ryan
Categories: Android, iOS, Web
Tags: Client Auth, Image Editor UI, PhoneGap, Send To Desktop API, User Auth UI

PhoneGap Logo

Hi Web developers! Joining our first two PhoneGap plugins, we’re excited to announce a new batch of plugins that let you use the Creative SDK in your PhoneGap app.

Adobe PhoneGap lets you easily create apps using the web technologies you know and love: HTML, CSS, and JavaScript.

With our growing catalogue of PhoneGap plugins, you can build apps using the Creative SDK native components for iOS and Android without writing a single line of Objective-C, Swift, or Java.

About the plugins

Our newest plugins make available the Creative SDK Send To Desktop API and User Auth UI components.

With the Send To Desktop API plugin, your users can send images from your mobile app and have them open automatically in Photoshop, Illustrator, or InDesign on the desktop.

For the user, this interaction feels like magic; for the developer, it’s a single function call.

Send To Desktop API

Send To Desktop API: Send images from your app to Photoshop, Illustrator, or InDesign

The Send To Desktop workflow makes use of the user’s Adobe Creative Cloud account, which you can access via the User Auth UI plugin.

All of the heavy lifting for User Auth login and logout is handled by the plugin, making the integration quick and simple to set up.

Get the plugins

Check out our PhoneGap plugins on GitHub:

  • Client Auth: The starting point for all Creative SDK integrations
  • Image Editor UI: Powerful photo editing for mobile apps
  • New! User Auth UI: Let users log in to their Adobe Creative Cloud accounts, right from within your app
  • New! Send To Desktop API: Magically send images from mobile to Photoshop, Illustrator, or InDesign

The READMEs for the plugin repos contain Setup and API guides, as well as sample code, to help you get started quickly.

We’ll have more Creative SDK + PhoneGap news for you soon. As always, feel free to reach out if you have any requests related to our PhoneGap plugins.

(Oh, and while you’re digging in, try out our PhoneGap template for the Image Editor!)

PhoneGap template for the Creative SDK Image Editor

Posted on Wednesday, August 24th, 2016 by Ash Ryan
Categories: Android, iOS, Web
Tags: Image Editor UI, PhoneGap

Hi Web developers! Last week we announced our first PhoneGap plugins for the Creative SDK.

As a companion to those plugins, today we are releasing a PhoneGap template for the Creative SDK Image Editor.

A template is a great way to start learning about a PhoneGap plugin. Templates are essentially sample apps that you can download via NPM, build from your command line, and run on your device (these plugins support iOS and Android).

When you try out the Creative SDK Image Editor PhoneGap template, without writing any code, you’ll have a sample app for your reference that looks like this:

Creative SDK Image Editor PhoneGap template

The buttons let you use the Creative SDK Image Editor to edit the photo on the screen or use the camera to take a new photo for editing.

Try it out

You can get started with the Creative SDK Image Editor template for PhoneGap by checking out the repo on GitHub.

The README covers everything you need to get going, including prerequisites, setup steps, and files to check for sample code.

Learn more

After you’ve tried the template and you’re ready to learn more about the plugins that make the template possible, check out these GitHub repos:

The READMEs for the plugin repos on GitHub contain Setup and API guides, as well as sample code, to help you get started quickly.

We’ll have more PhoneGap plugins to announce very soon. In the meantime, if there’s a Creative SDK PhoneGap plugin you’d like to see, let us know in the comments!

PhoneGap plugins for the Creative SDK

Posted on Friday, August 19th, 2016 by Ash Ryan
Categories: Android, iOS, Web
Tags: Client Auth, Image Editor UI, PhoneGap

PhoneGap Logo
(Update: you can also check out our latest batch of plugins after reading this article.)

Hi Web developers! We’re excited to announce our first PhoneGap plugins for the Creative SDK.

PhoneGap lets you easily create apps using the web technologies you know and love: HTML, CSS, and JavaScript.

We’ve been working in collaboration with the Adobe PhoneGap team to bring the power of the Creative SDK to even more developers with PhoneGap. Now, you can take advantage of the Creative SDK native components for iOS and Android without writing a single line of Objective-C, Swift, or Java.

Get the plugins

As of today, you can start using these Creative SDK PhoneGap plugins:

(Update: be sure to check out our latest batch of plugins too.)

The READMEs for the plugin repos contain Setup and API guides, as well as sample code, to help you get started quickly.

We have more PhoneGap plugins on the way. In the meantime, if you have a request for a PhoneGap plugin for a specific Creative SDK component, let us know in the comments!

We’ve got GitHub repos

Posted on Thursday, March 24th, 2016 by Ash Ryan
Categories: Android, iOS, Web
Tags: Asset Browser UI, Client Auth, GitHub, Image Editor UI, Repo, Send To Desktop API, User Auth UI

Adobe Creative SDK repos on GitHub

When you start your Creative SDK integration, the best place to learn what the SDK can do for your app is to check out our developer guides for your platform. The guides walk you through step-by-step example integrations for each Creative SDK component, complete with code snippets and screenshots.

But sometimes you just want to see top-to-bottom working code.

If that’s the case for you, go have a look at our GitHub repos for iOS, Android, and Web. These Getting Started repos contain multiple apps that accompany the developer guides on our portal.

For example, if you’re looking to integrate the Asset Browser UI component on Android, see the example app in our Android GitHub repo. The code in this app mirrors what is covered in our Asset Browser UI guide.

Our current developer guide and GitHub repo offerings

We offer GitHub repos and companion developer guides for iOS, Android, and Web.

The lineup will naturally change over time. You can check the latest developer guides on our developer portal, and the latest repos on our GitHub org.

We hope the example GitHub repos make it easy for you to get up and running with the Creative SDK.

Head on over to GitHub to fork a repo and try out our Creative SDK example apps.

New release for the Creative SDK on iOS and Android

Posted on Monday, March 7th, 2016 by Ash Ryan
Categories: Android, iOS

The Adobe Creative SDK logo

Today we’re excited to announce a new version of the Creative SDK for iOS and Android!

On iOS, we’ve released PSD extraction support for iPhone and the ability for users to browse Creative Cloud Market without logging in.

On Android, we’re announcing Android API 23 (Marshmallow) support, a fresh new look for the Image Editor with Material Design, and a remote Maven repo for the SDK.

To see everything that’s new for your platform, check out the changelogs on our developer portal.

You can dive straight in to our revamped developer guides for iOS and for Android if you’d like to get started right away.

Using the Creative SDK from a Swift App

Posted on Tuesday, February 9th, 2016 by Ashkan Farhadtouski
Category: iOS

Apple has designed Swift to be fully cross-compatible with existing Objective-C-based APIs. This interoperability extends to all third-party SDKs as well.

The Swift developer tools already come bundled with an excellent importer that makes using Objective-C APIs almost indistinguishable from native Swift APIs. However, since this importing is done automatically and on the fly, there are some corner cases that aren’t quite covered or could cause issues.

In this post, I will go through the process of setting up a brand new iOS app, written in Swift, that imports and uses a few of the Creative SDK frameworks. You can find a fully-working and configured sample in the Creative SDK samples GitHub repository.

Contents

Getting Started

To get started, we’ll need to create an iOS app that uses Swift as its main programming language.

Note that you can easily integrate the Creative SDK into Objective-C codebases, but for this article we’re going to focus on Swift.

The first step is to create an iOS app, preferably a “Single View Application” to keep things simple.

Create a Single View Application in Xcode

The -ObjC Flag

The Creative SDK is currently a static library written in Objective-C. One of the powerful features of Objective-C is the ability to augment existing functionality using Categories.

Since Categories are used for some publicly-accessible functionality of the SDK, we’re required to specify the -ObjC linker flag in the “Other Linker Flags” setting in the newly created app’s Build Settings. Consult the Technical Q&A 1490 (QA1490) for more information about why this flag is necessary.

Add the -ObjC flag in Xcode

Split Framework

Note: This section was deprecated in v0.14.2160, and is no longer required. If you are using a newer version of the Creative SDK, you can skip to the next section.

In the past, the Creative SDK was configured as a “monolithic” framework that contained all the functionality in a single framework. This made it easier to integrate all the Creative SDK APIs in one step.

Over time, the functionality and complexity of the Creative SDK grew, which made the monolithic framework more difficult to integrate and use. This prompted us to split the features of the SDK into smaller, more independent frameworks. To maintain backwards compatibility with existing apps that were using the monolithic framework, we introduced a preprocessor macro that would dictate whether the “split components” were used.

To tell the preprocessor that we intend to integrate functionality from different frameworks within our app, we need to specify the USE_CSDK_COMPONENTS macro:

Specify the USE_CSDK_COMPONENTS

Framework Search Paths

We need to specify the path to the location where we’ve downloaded the Creative SDK as the Framework Search Path. This path is used for code completion and binary linking.

All we need to do is to specify the path in the Build Settings:

Framework Search Paths in Xcode

Linking with the Creative SDK Binaries

Now we can add the desired Creative SDK frameworks to our app.

For this guide, we’ll only need the “Core” framework, so we add it in the Build Phases screen. The Creative SDK has other iOS-provided dependencies that we also need to specify.

The full list of dependencies is as follows:

  • MobileCoreServices.framework
  • SystemConfiguration.framework
  • libc++.tbd
  • libz.tbd

Copy Resources

Since the Creative SDK provides some UI components, we’ll need to reference a few resources (compiled storyboards, images, etc.).

To do this, we’ll need to copy the AdobeCreativeSDKCoreResources.bundle from the AdobeCreativeSDKCore.framework bundle. This bundle is under the Resources symlink:

Location of the Creative SDK resources bundle

Bridging Header

The final step before we can use the Creative SDK APIs from Swift is to provide a Bridging Header. This Bridging Header is the guide the Swift importer uses to determine which APIs should be imported and made available in Swift.

All we need to do is to create a new header (.h) file and add it to our project. Make sure to name this file according to the Swift and Objective-C Interoperability Guide.

Also make sure to specify the name of this header file in the “Objective-C Bridging Header” setting on the Build Settings page. Since we’re only using the Creative SDK Core framework, we only need to import that framework’s umbrella header:

#import <AdobeCreativeSDKCore/AdobeCreativeSDKCore.h>

All Ready

We’re now ready to use the Creative SDK APIs from our Swift app. Since almost all functionality that is exposed by the Creative SDK requires a user account, we can start by configuring the Authentication Manager with the client ID and secret values that are given to us when we register our app with Adobe:

override func viewDidLoad()
{
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.

    AdobeUXAuthManager.sharedManager().setAuthenticationParametersWithClientID(kClientId, clientSecret: kClientSecret, enableSignup: false)
}

From this point on, we can call any of the Creative SDK APIs and, as long as an authenticated user session exists, those API calls will work.

Troubleshooting

There are a few potential issues to be aware of when attempting to use the Creative SDK from Swift. Here are a few issues that you could run into:

  • Make sure the -ObjC linker flag is specified under the “Other Linker Flags” setting in the Build Settings page of your app’s main target.
  • Make sure the USE_CSDK_COMPONENTS preprocessor macro is defined for both Debug and Release configurations of your target. This macro was introduced as a backwards compatibility measure, is temporary, and will go away in an upcoming Creative SDK release.
  • In some cases Xcode will not specify the path to the location where you downloaded the Creative SDK frameworks as the “Framework Search Path”. Make sure the path is specified so Xcode’s code completion features function.
  • Even if the search path is correctly specified, deprecated methods won’t be marked as such in the suggestion list. These methods are marked as deprecated after they’re actually used in the code. We’re still investigating a way to get this to work. In the meantime, it’s always a good idea to check the API documentation to make sure you’re not using deprecated API methods.
  • In some cases, additional header files might need to be added to the Bridging Header file in order for certain Creative SDK APIs to be fully visible to the Swift importer. We’ve fixed this issue in an upcoming version of the Creative SDK, so this shouldn’t be an issue. However, if you come across any method or class that should be there but isn’t, simply including the header file that defines the method/class in question in the Bridging Header manually should resolve the issue.

Closing Notes

Apple have done a tremendous job in developing Swift and its tooling. At this point, all APIs from the Creative SDK should easily be accessible and usable. There are small corner cases that can be addressed by simple configuration changes or coding practices, some of which are documented here.

In the near future, we’re planning to move away from static libraries and instead use dynamic frameworks for the Creative SDK. This move will eliminate the Bridging Header and a few of the initial setup steps. It will also set us up to mix and match Swift code with our existing Objective-C codebase, although we’ll have to wait for Swift ABI compatibility, which is scheduled for later this year, tentatively.


Visit the Creative SDK developer portal to learn more.

Open Source Swift

Posted on Monday, December 14th, 2015 by Brad Bambara
Category: iOS

At this year’s WWDC, Apple announced that they would be open sourcing Swift. Now that the code is available, we can finally see what they’ve been working on.

What’s Included

When Apple made the announcement, it wasn’t immediately clear what would be included. In the most pessimistic scenario, we would get only the Swift standard library. However, Apple has gone above and beyond by also including Core Foundation, Grand Central Dispatch, a Swift Package Manager, and a few repositories dedicated to collecting feedback and clarifying the future of Swift.

In short, everything that a developer would need to use Swift is now open source. As with any open source project, it’s worth noting Swift’s license. Apple has decided on Apache 2.0, with a special modification:

As an exception, if you use this Software to compile your source code and portions of this Software are embedded into the binary product as a result, you may redistribute such product without providing attribution as would otherwise be required by Sections 4(a), 4(b) and 4(d) of the License.

This change to the license prevents the typical ‘copyleft’ restrictions, allowing developers to use Swift without having to also open source their own projects.

More Transparency

Transparency is one of the biggest benefits of open source. In the past, Apple has used opensource.apple.com for releasing code. Software updates would be larger and less frequent. The switch to GitHub allows us to see progress as it happens, tightening the feedback loop between Apple engineers and the open source community.

We’re also able to inspect the entire history of the project. We can see Swift’s humble beginning as an empty main function. We can also use tools like gource to visualize how the project has evolved up until this point:
https://player.vimeo.com/video/147777653

Looking toward the future, we should be able to see features of Swift as they’re being developed, which will allow developers more time to anticipate changes.

More Portability

Apple is serious about getting Swift up and running on Linux as well as OS X. They’ve already added support for Ubuntu.

This is great news for anyone who is writing an app that connects to a Linux server. Linux compatibility will allow developers to save lots of time and effort by sharing code between the front end and backend.

Package Management

Lots of developers love Cocoapods. Apple is clearly responding to that popularity with The Swift Package Manager. The manager is still in development, so the features are not completely nailed down. However, if this sounds like something that would be useful to your project, check out some of the example packages.

Longevity

Apple has always carefully chosen long-term investments in specific technologies. Steve Jobs once said, “We try to pick [technologies] that are in their spring … Sometimes you have to pick the things that look like the right horses to ride going forward.”

Former Apple Senior VP Scott Forstall once described the thought process behind the creation of OS X, saying, “We wanted an operating system that could last for another 20 years. The operating system that Apple had at the time didn’t have those legs.” This effort was a success, as OS X came out about 15 years ago and is still going strong.

I can hear a similar thought process behind Swift. This year Craig Federighi, Apple’s Senior VP of Software Engineering, said, “For 20 years to come, we think Swift should be everywhere and used by everyone.”

Apple clearly thinks of Swift as a critical part of its future, and open sourcing Swift is Apple’s way of saying that this language has legs.