Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Adobe Creative SDK ImageEdit UIの紹介
Search
Ippei Sumida
April 23, 2016
Programming
850
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Adobe Creative SDK ImageEdit UIの紹介
2016.04.23に『フロントエンド✕モバイルアプリ勉強会 』でお話しした、『Adobe Creative SDK ImageEdit UIの紹介』のスライドです。
Ippei Sumida
April 23, 2016
More Decks by Ippei Sumida
See All by Ippei Sumida
DROBEの生成AI活用事例 with AWS
ippey
0
320
みんなでQAしてる話
ippey
0
180
AIで生成したものをAIでチェックしてる話
ippey
0
2.3k
『WordPressコミュニティで学ぶ』OSS貢献の多様性
ippey
0
1.3k
25分で理解する!Symfonyの魅力とその実践的活用法
ippey
1
7.8k
素早いバリュー提供のための DROBEの新戦略
ippey
0
1.5k
Symfony 6.3のおすすめ新機能まとめ
ippey
1
2.2k
PhpStorm + GitHub Copilotはいいぞ
ippey
0
3.2k
それぞれの特徴から考えるフレームワーク選び
ippey
1
1.2k
Other Decks in Programming
See All in Programming
Javaの型とAI時代に型が大事な理由 / java types and type in AI era
kishida
2
160
Datadog × OpenTelemetry 入門と実践のあいだ
kn_to_maxpno
1
180
Mujeres en SEO Summit 2026 - Greatest Disaster Hits en Web Performance
guaca
0
220
The ROI of Quarkus for Spring Boot Applications
hollycummins
0
150
フロントエンドとバックエンドで「1文字」を揃えよう
youkidearitai
PRO
0
780
「なぜそう決めたのか」を残し続ける仕組み ― Notion AI カスタムエージェント × Slack連携による設計判断の自動記録 - NIKKEI Tech Talk #47
niftycorp
PRO
0
250
Spring Security 実践 ─ GraphQL APIで実務に役立つ 認証・認可 を学ぶ
wagyu
0
270
[2026年度第1回ORセミナー] 計画最適化ベンチャーと競技プログラミング人材
terryu16
0
280
自作OSでスライド発表する
uyuki234
1
3.6k
なぜ型を書くのか? TSKaigi2026で改めて考える #tskaigi_smarthr
kajitack
0
180
Oxcを導入して開発体験が向上した話
yug1224
4
370
The Bowling Game- From Imperative to Functional Programming - Part 1
philipschwarz
PRO
0
210
Featured
See All Featured
Art, The Web, and Tiny UX
lynnandtonic
304
22k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
550
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
3.6k
So, you think you're a good person
axbom
PRO
2
2.1k
Speed Design
sergeychernyshev
33
1.9k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
270
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.2k
Music & Morning Musume
bryan
47
7.3k
Facilitating Awesome Meetings
lara
57
7k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
200
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
750
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
640
Transcript
Adobe Creative SDK ImageEdit UIͷհ ϑϩϯτΤϯυ✕ϞόΠϧΞϓϦษڧձ 2016.04.23
ࣗݾհ • ֯ాɹҰฏʢεϛμɹΠοϖΠʣ • DNPσδλϧίϜ • PHP, iOS, AndroidΤϯδχΞ •
CoderDojoٶɾകాɹϝϯλʔɺੈਓձ
ࣗݾհ @ippey_s ippeisumida
Adobe Creative SDK
Adobe Creative SDKͱ • Adobeͷը૾ܥϥΠϒϥϦ • iOS, Android, Web͕༻ҙ͞Ε͍ͯΔ •
ແྉͰར༻Մೳ
ओͳػೳ
Creative Cloud Content Management
Creative Cloud Market
Creative Tool
Connected Workflow
ओͳػೳ • Creative Cloud Content Management • Creative Cloud Market
• Creative Tools • Connected Workflow
Creative Tools • Image Edit UIʢAviaryʣ • Color Tools UI
ಋೖࣄྫ
KURURi
ಋೖࣄྫʢKURURiʣ • DNPϑϦϚΞϓϦ • iOS, AndroidରԠ • ग़ը૾ͷฤूػೳʹར༻
ར༻Πϝʔδ
ಋೖϝϦοτ • ը૾ฤूػೳ։ൃͷίετݮ • എܠɾจࣈ৭ͳͲ͋ΔఔΧελϚΠζՄೳ • iOS, AndroidͷػೳΛ౷ҰͰ͖Δ
How to use Image Edit UI
How to use Image Edit UI • iOS, AndroidωΠςΟϒ •
WebJavaScript͕ͩɺPC, λϒϨοτ͚ • ࠓճɺCordova + iOS SDK
ClientID, Secretऔಘ
ClientID, Secretऔಘ
SDKμϯϩʔυ
Frameworkίϐʔ
BuildPhaseઃఆʢPluginՃޙʣ
PluginϑΝΠϧߏ
Plugin࡞ FrameworkՃ <framework src="src/ios/AdobeCreativeSDKImage.framework" custom="true" /> <framework src="src/ios/AdobeCreativeSDKCore.framework" custom="true" />
<framework src="Accelerate.framework" /> <framework src="CoreData.framework" /> <framework src="libsqlite3.0.dylib" /> <framework src="libz.1.2.5.dylib" /> <framework src="Foundation.framework" /> <framework src="MessageUI.framework" /> <framework src="OpenGLES.framework" /> <framework src="QuartzCore.framework" /> <framework src="StoreKit.framework" /> <framework src="MobileCoreServices.framework" /> <framework src="UIKit.framework" /> <framework src="libc++.dylib" />
Plugin࡞ ίϚϯυՃ #import <Cordova/CDVPlugin.h> #import <Cordova/CDVInvokedUrlCommand.h> #import <AdobeCreativeSDKCore/AdobeCreativeSDKCore.h> #import <AdobeCreativeSDKImage/AdobeCreativeSDKImage.h>
@interface AviaryImageEdit : CDVPlugin <AdobeUXImageEditorViewControllerDelegate> { AdobeUXImageEditorViewController *editorController; NSString *callbackId; } - (void)launch:(CDVInvokedUrlCommand*)command; @end
Plugin࡞ ίϚϯυՃ #import <Cordova/CDVPlugin.h> #import <Cordova/CDVInvokedUrlCommand.h> #import <AdobeCreativeSDKCore/AdobeCreativeSDKCore.h> #import <AdobeCreativeSDKImage/AdobeCreativeSDKImage.h>
@interface AviaryImageEdit : CDVPlugin <AdobeUXImageEditorViewControllerDelegate> { AdobeUXImageEditorViewController *editorController; NSString *callbackId; } - (void)launch:(CDVInvokedUrlCommand*)command; @end Protocolઃఆ
Plugin࡞ ίϚϯυՃ #import <Cordova/CDVPlugin.h> #import <Cordova/CDVInvokedUrlCommand.h> #import <AdobeCreativeSDKCore/AdobeCreativeSDKCore.h> #import <AdobeCreativeSDKImage/AdobeCreativeSDKImage.h>
@interface AviaryImageEdit : CDVPlugin <AdobeUXImageEditorViewControllerDelegate> { AdobeUXImageEditorViewController *editorController; NSString *callbackId; } - (void)launch:(CDVInvokedUrlCommand*)command; @end ίϚϯυએݴ
Plugin࡞ ίϚϯυՃ - (void)launch:(CDVInvokedUrlCommand*)command { [[AdobeUXAuthManager sharedManager] setAuthenticationParametersWithClientID:@"Client ID" clientSecret:@"Client
Secret" enableSignUp:NO]; callbackId = command.callbackId; NSString *path = (NSString *) [command.arguments objectAtIndex: 0]; UIImage *imageToEdit = [UIImage imageWithContentsOfFile: [path substringFromIndex: 7]]; editorController = [[AdobeUXImageEditorViewController alloc] initWithImage:imageToEdit]; [editorController setDelegate: self]; [super.viewController presentViewController:editorController animated:YES completion:nil]; }
Plugin࡞ ίϚϯυՃ - (void)launch:(CDVInvokedUrlCommand*)command { [[AdobeUXAuthManager sharedManager] setAuthenticationParametersWithClientID:@"Client ID" clientSecret:@"Client
Secret" enableSignUp:NO]; callbackId = command.callbackId; NSString *path = (NSString *) [command.arguments objectAtIndex: 0]; UIImage *imageToEdit = [UIImage imageWithContentsOfFile: [path substringFromIndex: 7]]; editorController = [[AdobeUXImageEditorViewController alloc] initWithImage:imageToEdit]; [editorController setDelegate: self]; [super.viewController presentViewController:editorController animated:YES completion:nil]; } Client ID, Secretઃఆ
Plugin࡞ ίϚϯυՃ - (void)launch:(CDVInvokedUrlCommand*)command { [[AdobeUXAuthManager sharedManager] setAuthenticationParametersWithClientID:@"Client ID" clientSecret:@"Client
Secret" enableSignUp:NO]; callbackId = command.callbackId; NSString *path = (NSString *) [command.arguments objectAtIndex: 0]; UIImage *imageToEdit = [UIImage imageWithContentsOfFile: [path substringFromIndex: 7]]; editorController = [[AdobeUXImageEditorViewController alloc] initWithImage:imageToEdit]; [editorController setDelegate: self]; [super.viewController presentViewController:editorController animated:YES completion:nil]; } ฤूϏϡʔੜɾදࣔ
Plugin࡞ Delegateઃఆʢอଘʣ - (void)photoEditor:(AdobeUXImageEditorViewController *)editor finishedWithImage:(UIImage *)image { // Handle
the result image here NSArray * paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString * basePath = ([paths count] > 0) ? [paths objectAtIndex:0] : nil; NSData *binaryData = UIImagePNGRepresentation(image); [binaryData writeToFile:[basePath stringByAppendingPathComponent: @"result.png"] atomically: YES]; CDVPluginResult *pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsString: @"save"]; [editorController dismissViewControllerAnimated: YES completion: nil]; [self.commandDelegate sendPluginResult:pluginResult callbackId:callbackId]; }
Plugin࡞ DelegateઃఆʢΩϟϯηϧʣ - (void)photoEditorCanceled:(AdobeUXImageEditorViewController *)editor { // Handle cancellation here
CDVPluginResult *pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsString: @"cancel"]; [editorController dismissViewControllerAnimated: YES completion: nil]; [self.commandDelegate sendPluginResult:pluginResult callbackId:callbackId]; }
༻্ͷҙ • iOS, Web؆୯ • Androidͦͦ͜͜؆୯ • ωοτϫʔΫ͕ଓ͞Ε͍ͯΔલఏ • SDKͷߋ৽ϖʔε͕ૣ͍
ࠂ
DojoCon Japan 2016 20168݄27ʢʣ։࠵ʂ
͝੩ௌ ͋Γ͕ͱ͏͍͟͝·ͨ͠