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:
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.
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.
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.
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.
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:
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.