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
1
840
Adobe Creative SDK ImageEdit UIの紹介
2016.04.23に『フロントエンド✕モバイルアプリ勉強会 』でお話しした、『Adobe Creative SDK ImageEdit UIの紹介』のスライドです。
Ippei Sumida
April 23, 2016
Tweet
Share
More Decks by Ippei Sumida
See All by Ippei Sumida
DROBEの生成AI活用事例 with AWS
ippey
0
200
みんなでQAしてる話
ippey
0
110
AIで生成したものをAIでチェックしてる話
ippey
0
2.1k
『WordPressコミュニティで学ぶ』OSS貢献の多様性
ippey
0
930
25分で理解する!Symfonyの魅力とその実践的活用法
ippey
1
7.2k
素早いバリュー提供のための DROBEの新戦略
ippey
0
1.4k
Symfony 6.3のおすすめ新機能まとめ
ippey
1
1.9k
PhpStorm + GitHub Copilotはいいぞ
ippey
0
2.7k
それぞれの特徴から考えるフレームワーク選び
ippey
1
1k
Other Decks in Programming
See All in Programming
はじめてのWeb API体験 ー 飲食店検索アプリを作ろうー
akinko_0915
0
170
SQLアンチパターン第2版 データベースプログラミングで陥りがちな失敗とその対策 / Intro to SQL Antipatterns 2nd
twada
PRO
34
9.8k
Quality Gates in the Age of Agentic Coding
helmedeiros
PRO
1
110
コーディングエージェント概観(2025/07)
itsuki_t88
0
430
PHPカンファレンス関西2025 基調講演
sugimotokei
5
960
Prompt Engineeringの再定義「Context Engineering」とは
htsuruo
0
110
AI時代の『改訂新版 良いコード/悪いコードで学ぶ設計入門』 / ai-good-code-bad-code
minodriven
24
10k
効率的な開発手段として VRTを活用する
ishkawa
1
180
Workers を定期実行する方法は一つじゃない
rokuosan
0
130
DMMを支える決済基盤の技術的負債にどう立ち向かうか / Addressing Technical Debt in Payment Infrastructure
yoshiyoshifujii
4
630
プロダクトという一杯を作る - プロダクトチームが味の責任を持つまでの煮込み奮闘記
hiliteeternal
0
270
The Modern View Layer Rails Deserves: A Vision For 2025 And Beyond @ RailsConf 2025, Philadelphia, PA
marcoroth
2
820
Featured
See All Featured
Being A Developer After 40
akosma
90
590k
Docker and Python
trallard
45
3.5k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
33
2.4k
Embracing the Ebb and Flow
colly
86
4.8k
Rebuilding a faster, lazier Slack
samanthasiow
83
9.1k
Thoughts on Productivity
jonyablonski
69
4.8k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
2.9k
BBQ
matthewcrist
89
9.7k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
110
19k
For a Future-Friendly Web
brad_frost
179
9.8k
KATA
mclloyd
30
14k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
18
1k
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ʢʣ։࠵ʂ
͝੩ௌ ͋Γ͕ͱ͏͍͟͝·ͨ͠