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
790
3
Share
13ヶ国語対応のアプリで やっていること
WWDC Extended Tokyo 2017
Yusuke Fujiki
June 05, 2017
More Decks by Yusuke Fujiki
See All by Yusuke Fujiki
Siri Shortcuts を試してみた! / Tried to Siri Shortcuts
fujikky
0
1.2k
Objective-C入門
fujikky
0
200
Other Decks in Programming
See All in Programming
Getting more out of Maven
mlvandijk
0
100
事業会社でのセキュリティ長期インターンについて
masachikaura
0
250
アクセシビリティ試験の"その後"を仕組み化する
yuuumiravy
0
110
Java 21/25 Virtual Threads 소개
debop
0
340
Swift Concurrency Type System
inamiy
0
460
メッセージングを利用して時間的結合を分離しよう #phperkaigi
kajitack
3
580
ローカルで稼働するAI エージェントを超えて / beyond-local-ai-agents
gawa
3
270
それはエンジニアリングの糧である:AI開発のためにAIのOSSを開発する現場より / It serves as fuel for engineering: insights from the field of developing open-source AI for AI development.
nrslib
1
840
[PHPerKaigi 2026]PHPerKaigi2025の企画CodeGolfが最高すぎて社内で内製して半年運営して得た内製と運営の知見
ikezoemakoto
0
340
Don't Prompt Harder, Structure Better
kitasuke
0
690
煩雑なSkills管理をSoC(関心の分離)により解決する――関心を分離し、プロンプトを部品として育てるためのOSSを作った話 / Solving Complex Skills Management Through SoC (Separation of Concerns)
nrslib
4
860
10年分の技術的負債、完済へ ― Claude Code主導のAI駆動開発でスポーツブルを丸ごとリプレイスした話
takuya_houshima
0
2.4k
Featured
See All Featured
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
520
XXLCSS - How to scale CSS and keep your sanity
sugarenia
250
1.3M
Embracing the Ebb and Flow
colly
88
5k
The World Runs on Bad Software
bkeepers
PRO
72
12k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
0
200
Information Architects: The Missing Link in Design Systems
soysaucechin
0
880
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
2.7k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.7k
The Curious Case for Waylosing
cassininazir
0
300
Un-Boring Meetings
codingconduct
0
260
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
0
1.1k
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ΤϯδχΞ͕Γͯ ͍·ͤΜʂ
͝ਗ਼ௌ͋Γ͕ͱ͏ ͍͟͝·ͨ͠