The Aviary SDK is now part of the Adobe Creative SDK

The Aviary SDK is now the Image Editing component in the Adobe Creative SDK. Visit CreativeSDK.com to access the latest Image Editing SDK and brand new SDK components by Adobe, offering features like store to Creative Cloud and publish to Behance.

Aviary iOS SDK Customization Guide

The default appearance of the editor is sleek and intuitive, and a number of customization options are provided so that the editor's look, feel, and functionality can be made consistent with any app. Most visual customization is done through the AviarySDKCustomizer, an app included in the AviarySDK directory. Use the "Apply to Xcode Project" button to reflect your changes in your integration of the Aviary SDK. Note that you can save and open customization profiles if you need to transfer them to other members of your organization.

White Labeling

For partners who require removing Aviary branding from the user interface, a white label premium upgrade is also available.

If you have already purchased white labeling or another premium upgrade, you can enable them with the setPremiumAddOns: class method of AVYPhotoEditorController. The permissions for these add-ons are validated by Aviary's servers and all unauthorized add-on usage will be disabled and reported. The method requires a mask of the premium add-ons you would like to enable. There are currently two valid constants, AVYPhotoEditorPremiumAddOnHiRes and AVYPhotoEditorPremiumAddOnWhiteLabel, which represent high resolution and white labeling respectively. The following code snippet will enable both the high resolution and white label options:

[AVYPhotoEditorController setPremiumAddOns:(AVYPhotoEditorPremiumAddOnHiRes | AVYPhotoEditorPremiumAddOnWhiteLabel)];

Further Customization

The AVYPhotoEditorCustomization class can be used to further customize the look and feel of the Photo Editor in your app. A number of class methods are available to fine tune the appearance.

Tool Order

The default tool order of the editor is changed with the setToolOrder: class method. The parameter to this method is an array of strings whose values represent the available tools in the editor. For a complete list of those constants, see the top of AVYPhotoEditorCustomization.h. AddiAVYtionally, by omitting a tool from the order, it will not be shown in the editor.

// Set the tools to Contrast, Brightness, Enhance, and Crop (to be displayed in that order).
[AVYPhotoEditorCustomization setToolOrder:@[kAVYContrast, kAVYBrightness, kAVYEnhance, kAVYCrop]];

Custom Icons and Images

  1. It is possible to customize the icons used to represent the tools inside of your app. The setIconImage:forTool: class method is used to accomplish this. The provided image should be roughly 50 points square in size with a transparent background. The tool parameter must be one of the constants representing the available tools at the top of AVYPhotoEditorCustomization.h.

    [AVYPhotoEditorCustomization setIconImage:image forTool:kAVYBrightness];
    
  2. It is also possible to set a pattern image for the navigation bar inside of the editor using the setNavBarImage: class method.

    [AVYPhotoEditorCustomization setNavBarImage:image];
    

Crop Sizes

The crop tool can be configured to show only the sizes that make sense for your application. There are four methods available to customize the sizes. setCropToolCustomEnabled: determines whether the user is given the ability to crop with an custom aspect ratio. setCropToolOriginalEnabled: sets whether the user is given the preset to crop with the image's original aspect ratio. setCropToolInvertEnabled: sets whether the user is able to invert the given crop presets by double tapping.

// Disable the Custom and Original crop options, and do not allow the user to invert the settings.
[AVYPhotoEditorCustomization setCropToolCustomEnabled:NO];
[AVYPhotoEditorCustomization setCropToolInvertEnabled:NO];
[AVYPhotoEditorCustomization setCropToolOriginalEnabled:NO];

Additionally, you can provide custom presets to your user as well using the setCropToolPresets: class method. The parameter for this method is an array of dictionaries. Each of these dictionaries must have values for the following keys: kAVYCropPresetName, kAVYCropPresetWidth, and kAVYCropPresetHeight; these keys represent the display name, width, and height of the preset respectively.

// Create two custom presets displayed to the user as "Option1" and "Option2" with 3:7 and 4:11 aspect ratios, respectively.
[AVYPhotoEditorCustomization setCropToolPresets:@[@{kAVYCropPresetName:@"Option1", kAVYCropPresetWidth:@3, kAVYCropPresetHeight:@7}, @{kAVYCropPresetName:@"Option2", kAVYCropPresetWidth:@4, kAVYCropPresetHeight:@11}]];

Supported Interface Orientations

The interface orientatAVYions supported by the iPad version of the editor can be customized with the setSupportedIPadOrientations: class method. Note that on iPhone, only the portrait interface orientation is supported.

[AVYPhotoEditorCustomization setSupportedIpadOrientations:@[@(UIInterfaceOrientationLandscapeLeft), @(UIInterfaceOrientationLandscapeRight), @(UIInterfaceOrientationPortrait)]];

Titles of Cancel and Apply Buttons

If the "Cancel" and "Apply" buttons on the main Photo Editor screen aren't consist with your app, you have some options in renaming them. "Cancel" can be replaced with either "Back" or "Exit" and "Apply" can be substituted for "Done", "Save", "Next", or "Send".

[AVYPhotoEditorCustomization setLeftNavigationBarButtonTitle:kAVYLeftNavigationTitlePresetExit];
[AVYPhotoEditorCustomization setRightNavigationBarButtonTitle:kAVYRightNavigationTitlePresetSave];AVY