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
ニーリーにおけるプロダクトエンジニア
nealle
0
830
地方に住むエンジニアの残酷な現実とキャリア論
ichimichi
5
1.5k
10 Costly Database Performance Mistakes (And How To Fix Them)
andyatkinson
0
330
#QiitaBash MCPのセキュリティ
ryosukedtomita
1
1.3k
ソフトウェア品質を数字で捉える技術。事業成長を支えるシステム品質の マネジメント
takuya542
1
13k
AI時代の『改訂新版 良いコード/悪いコードで学ぶ設計入門』 / ai-good-code-bad-code
minodriven
12
3.2k
Modern Angular with Signals and Signal Store:New Rules for Your Architecture @enterJS Advanced Angular Day 2025
manfredsteyer
PRO
0
220
AI駆動のマルチエージェントによる業務フロー自動化の設計と実践
h_okkah
0
150
たった 1 枚の PHP ファイルで実装する MCP サーバ / MCP Server with Vanilla PHP
okashoi
1
250
Deep Dive into ~/.claude/projects
hiragram
14
2.5k
A2A プロトコルを試してみる
azukiazusa1
2
1.4k
Node-RED を(HTTP で)つなげる MCP サーバーを作ってみた
highu
0
120
Featured
See All Featured
Agile that works and the tools we love
rasmusluckow
329
21k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
740
Practical Orchestrator
shlominoach
189
11k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.4k
Being A Developer After 40
akosma
90
590k
Gamification - CAS2011
davidbonilla
81
5.4k
Balancing Empowerment & Direction
lara
1
430
A Modern Web Designer's Workflow
chriscoyier
695
190k
The Pragmatic Product Professional
lauravandoore
35
6.7k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Facilitating Awesome Meetings
lara
54
6.4k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
161
15k
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ΤϯδχΞ͕Γͯ ͍·ͤΜʂ
͝ਗ਼ௌ͋Γ͕ͱ͏ ͍͟͝·ͨ͠