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
13ヶ国語対応のアプリで やっていること
Search
Yusuke Fujiki
June 05, 2017
Programming
3
780
13ヶ国語対応のアプリで やっていること
WWDC Extended Tokyo 2017
Yusuke Fujiki
June 05, 2017
Tweet
Share
More Decks by Yusuke Fujiki
See All by Yusuke Fujiki
Siri Shortcuts を試してみた! / Tried to Siri Shortcuts
fujikky
0
1.1k
Objective-C入門
fujikky
0
180
Other Decks in Programming
See All in Programming
Android 16 × Jetpack Composeで縦書きテキストエディタを作ろう / Vertical Text Editor with Compose on Android 16
cc4966
1
190
Kiroの仕様駆動開発から見えてきたAIコーディングとの正しい付き合い方
clshinji
1
210
Performance for Conversion! 分散トレーシングでボトルネックを 特定せよ
inetand
0
140
[FEConf 2025] 모노레포 절망편, 14개 레포로 부활하기까지 걸린 1년
mmmaxkim
0
1.6k
CJK and Unicode From a PHP Committer
youkidearitai
PRO
0
110
@Environment(\.keyPath)那么好我不允许你们不知道! / atEnvironment keyPath is so good and you should know it!
lovee
0
110
Namespace and Its Future
tagomoris
6
700
パッケージ設計の黒魔術/Kyoto.go#63
lufia
3
430
Android端末で実現するオンデバイスLLM 2025
masayukisuda
1
140
RDoc meets YARD
okuramasafumi
4
170
テストカバレッジ100%を10年続けて得られた学びと品質
mottyzzz
2
580
AIと私たちの学習の変化を考える - Claude Codeの学習モードを例に
azukiazusa1
10
3.8k
Featured
See All Featured
Code Review Best Practice
trishagee
70
19k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.9k
RailsConf 2023
tenderlove
30
1.2k
Stop Working from a Prison Cell
hatefulcrawdad
271
21k
The Invisible Side of Design
smashingmag
301
51k
A Modern Web Designer's Workflow
chriscoyier
696
190k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3k
How to Think Like a Performance Engineer
csswizardry
26
1.9k
Code Reviewing Like a Champion
maltzj
525
40k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.7k
Building Better People: How to give real-time feedback that sticks.
wjessup
368
19k
Mobile First: as difficult as doing things right
swwweet
224
9.9k
Transcript
13ϲࠃޠରԠͷΞϓϦͰ ͍ͬͯΔ͜ͱ JUBILEE WORKS, Inc. ౻ ༟հ 2017/6/6 WWDC Extended
Tokyo 2017
͍͢·ͤΜࠓͷLTWWDC ؔ͋Γ·ͤΜ
ࣗݾհ • ౻ ༟հ (;͖͡ Ώ͏͚͢) / @fujikky • JUBILEE
WORKS, Inc. • ڞಉઃཱऀ / ΤϯδχΞ / ݩσβΠφʔ • iOSɺWebϑϩϯτΤϯυɺRailsɺetc.. ͳΜͰΓ͕ͨΓ
None
ΈΜͳͷ༧ఆ ͭͷΧϨϯμʔʹ ΧϨϯμʔγΣΞΞϓϦ
ϝϯόʔটɾ௨
༧ఆͰνϟοτ
None
Ϣʔβʔ400ສਓ
·ͩ·ͩओઓຊ • άϩʔόϧల։Λߟ͑ͯͳ͍Θ͚Ͱͳ͍ • ͨͩ͠ɺϦιʔε༧ࢉݶΒΕ͍ͯΔ • Ͱ͖ΔൣғͰछΛࢃ͍͓ͯ͘
ΞϓϦͷϩʔΧϥΠζ
ΞϓϦͷϩʔΧϥΠζ • 13ϲࠃޠʹରԠ • 1ͭͷόΠφϦͰରԠ ຊޠɾӳޠɾؖࠃޠɾ தࠃޠʢൟମࣈʣɾதࠃޠʢ؆ମࣈʣɾ υΠπޠɾϑϥϯεޠɾϙϧτΨϧޠɾεϖΠϯޠɾ ϚϨʔޠɾΠϯυωγΞޠɾλΠޠɾϩγΞޠ
ଟݴޠԽͷج४ • ݴޠਓޱͷଟ͞ • ϦλʔϯϨʔτ • AppStoreϑΟʔνϟʔཤྺ • εϚϗීٴ •
ຊͱͷ૬ੑ
ςΩετ༁ͷڧ͍ຯํ Gengo.com • Ϋϥυιʔγϯά༁αʔϏε • ୯ޠʹԠͨ͡՝ۚ
ςΩετϩʔΧϥΠζͷ՝ • iOS, Android, Web Ͱಉ͡จݴΛ͍·Θͯ͠ ͍Δ • ͦΕͧΕͷϓϩμΫτ͝ͱʹจݴΛ༁͢Δ ͷແବ
• จݴͷදه༳Εൃੜ͠͏Δ
ςΩετϩʔΧϥΠζͷ՝ • ࡞ۀऀ͕ෳ͍Δ • ΤϯδχΞɺاըɺ༁ऀ • ڞಉ࡞ۀ͕՝ • શһ͕GitΛ͑ΔΘ͚Ͱͳ͍
ͦ͜Ͱ Google Spreadsheet
"OESPJE WBMVFT\MBOH^YNM J04 \MBOH^MQSPK-PDBMJ[BCMFTUSJOHT 4QSFBETIFFU 8FC \MBOH^KT ϒϥβ͔Βೖྗ &OHJOFFS 1MBOOFS
5SBOTMBUPS 3VCZ4DSJQU
ͳͥ Google Spreadsheet ͔ • ෳਓͰಉ࣌ʹ࡞ۀ͕Ͱ͖Δ • มߋཤྺ͕͋ΓɺສҰ༰Λյͯ͠͠·ͬͯ ͤΔ •
REST APIɺSDK ͕ἧ͍ͬͯΔ
Spreadsheet ͷݶք • ॻ͖͕͑؆୯͗͢Δ • ςΩετ͕ଟ͗͢Δͱॏ͍ • ϒϥϯνཧ͕Ͱ͖ͳ͍ • ଞͷπʔϧΛ୳͔͢ɺ͢Δ͔ݕ౼த
ΧϧνϟʔͷରԠ
ΧϧνϟʔͷରԠ • ʑͷ֤ࠃͷར༻ऀ͔Βཁ͕͘Δ • ຊ༵ͷରԠཁ͕ଟ͔ͬͨ • ຊਓͷϢʔεέʔε͋Δఔ૾͕ͭͨ͘ Ίɺ͕͍͍ࣗͨͪ͢Α͏ʹ࡞͍ͬͯΔ
ؖࠃͷچྐྵରԠ • ؖࠃ͔Βͷ͓͍߹ΘͤͰಛʹଟ͔ͬͨ • ੜΛچྐྵͰ͓ॕ͍͢Δश׳͕͋Δ • چྐྵͷɾ݄ϕʔεͷ܁Γฦ͠ػೳ࣮
iOSͷچྐྵͷܭࢉํ๏ let calendar = Calendar(identifier: .chinese) let components = calendar.dateComponents([.day,
.month], from: Date()) let date = components.isLeapMonth! ? "閏" : "" + "\(components.month!)月" + "\(components.day!)日" // 5月11日 →᠘͕͋ͬͨ
چྐྵͷ᠘ • Foundation ͷ Calendar.Identifier.chinese ຊ ͱؖࠃͰچྐྵ͕ͣΕΔύλʔϯ͕͋ΔͷͰཁҙ • ৽݄ͷҐஔͰ໊݄Λܾఆ͍ͯ͠ΔͨΊɺதࠃͱؖࠃ ͷ͕࣌ࠩҟͳΔ͜ͱʹΑΓɺதࠃچྐྵͱؖࠃچྐྵͰ
ͻͱ݄ͣΕΔͱ͍͏ݱ͕͘͝·Εʹൃੜ͢Δ • ؖࠃͱಉ͡λΠϜκʔϯͷຊɺچྐྵΛϕʔε ༵Ͱಉ༷ͷ͕ൃੜ͢Δ
چྐྵͷ᠘ • ͪΐ͏Ͳ2017ͷ6݄ͱ7݄ʹൃੜ͍ͯͨ͠ • ͜ͷʹରԠ͢ΔͨΊɺؖࠃɾຊ༻ͷچ ྐྵϥΠϒϥϦΛಠࣗʹ࣮ͯ͠ɺҬઃఆΛ Έͯग़͚͠Λ͍ͯ͠Δ
࣌ࠁͷAM/PMදࣔ • ຊͰ24࣌ؒදهͱAM/PMදهͲͪΒ ΘΕ͍ͯΔ • ԤถͰAM/PMදه͕ओྲྀ • 24࣌ؒදه Military Timeʢ܉༻࣌ؒʣͱ͠
ͯݏΘΕ͍ͯΔ
࣌ࠁͷAM/PMදࣔ • جຊతʹiOSͷઃఆʹґଘ͢ΔΑ͏ʹ࡞͍ͬͯΔ • ͨͩ͠ʮ24࣌ؒද͔ࣔͲ͏͔ʯΛऔಘ͢ΔAPI ͳ͍ • DateFormatter Ͱ ࣌ࠁΛग़ྗͯͦ͜͠ʹ
AM/PM ͷγϯϘϧؚ͕·Ε͍ͯΔ͔Ͳ͏͔Ͱஅ͍ͯ͠ Δ
࣌ࠁͷग़ྗΛDateFormatter ʹͤΕ͍͍͡ΌΜ …ͱࢥ͏͚ΕͲɺ ෳࡶͳUIΛ࡞Δͱ͖ ಠࣗॲཧͰग़͚͠ ͢Δඞཁ͕͋ͬͨ
ΧελϚʔαϙʔτɾ ϑΟʔυόοΫ
ϦΞϧλΠϜͰ Slack ʹ௨ • Ϣʔβʔ͔Β͓͍͘߹ΘͤϑΟʔυόο ΫϦΞϧλΠϜͰSlackʹ௨͞ΕΔ • શࣾһ͕CSνϟϯωϧʹࢀՃ͍ͯ͠Δ • ετΞͷϨϏϡʔΞϓϦΞϯέʔτͷ݁
ՌͳͲྲྀΕΔ
ւ֎͔ΒͷϑΟʔυόοΫ • વւ֎ͷϢʔβʔ͔Βͷɺ֎ࠃޠͰͷ͍ ߹ΘͤϑΟʔυόοΫͨ͘͞Μ͘Δ • ʮ͔Βͳ͍ɾݟΔͷ͕ΊΜͲ͍͘͞ʯͱ͍ ͏Α͏ͳ͜ͱΛͳ͍ͨ͘͠
(PPHMF'PSN 6TFS (PPHMF"QQ4DSJQU 4MBDL "QQ "QQ4UPSF (PPHMF"QQ4DSJQU "QQ"OOJF 'FFECBDL 3FWJFX
Google App Script Ͱػց༁ // ӳޠ͔Βຊޠ༁ LanguageApp.translate("Hello", "en", "ja");
Google App Script • Google App Script ແྉʂ • ༁ॲཧແྉʂ
• ͨͩ͠ɺͨ·ʹԆͨ͠Γࣦഊͨ͠Γ͢Δ • εΫϦϓτͷσϓϩΠํ๏ʹ͕͋Δ • ৴པੑΛ্͛ΔͳΒ Lambda ͱ͔Λ͏
άϩʔόϧରԠͷ՝
தࠃ • ɺ߳ߓΛআ͍ͨதࠃຊͷରԠiOSͷ Έ • Google Play͕ਐग़͍ͯ͠ͳ͍ • Androidͷ֤Ϛʔέοτʹग़͢ͷݱύʔτ φʔΛݟ͚ͭΔ͔ɺݱ๏ਓΛ࡞Δ͔͠ͳ
͘ɺϋʔυϧ͕ߴ͍
தࠃ • APKΛൈ͔ΕͨྑΞϓϦ͕ग़ճ͍ͬͯΔ (όʔδϣϯΞοϓͣ͠Β͍͠ɺηΩϡϦ ςΟతʹඍົ) • ਓޱ͕େ͖͍ͷͰͨΕσΧΠ͚ͩʹਏ͍ • AWS͕ϒϩοΫ͞Ε͕ͪʢS3ͳͲʣ
υΠπ • υΠπΧϨϯμʔͷि൪߸ରԠͷχʔζ͕ ͋Δ • ຊਓͷจԽ͚ͩͰೃછΈ͕ͳ͍ͨΊɺͳ ͔ͳ͔ରԠͮ͠Β͍ • ϑΟʔυόοΫΛΒͬͯಓʹରԠ͍ͯ͠Δ
ͦͷଞ • ͓ͦΒ͘Ұ൪͍͍ͷݱͷύʔτφʔΛݟ ͚ͭΔ͜ͱ • ݱࡏɺձࣾͷମྗతʹɺࠃͷγΣΞΛ ৳࣌͢ظͷͨΊɺҾ͖ଓ͖ʮͰ͖ΔൣғͰʯ άϩʔόϧରԠΛਐΊ͍ͯ͘
We are Hiring!
ಛʹiOSΤϯδχΞ͕Γͯ ͍·ͤΜʂ
͝ਗ਼ௌ͋Γ͕ͱ͏ ͍͟͝·ͨ͠