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.2k
Objective-C入門
fujikky
0
180
Other Decks in Programming
See All in Programming
Flutter On-device AI로 완성하는 오프라인 앱, 박제창 @DevFest INCHEON 2025
itsmedreamwalker
1
160
実は歴史的なアップデートだと思う AWS Interconnect - multicloud
maroon1st
0
270
Denoのセキュリティに関する仕組みの紹介 (toranoana.deno #23)
uki00a
0
180
AIコーディングエージェント(Gemini)
kondai24
0
300
AtCoder Conference 2025
shindannin
0
790
從冷知識到漏洞,你不懂的 Web,駭客懂 - Huli @ WebConf Taiwan 2025
aszx87410
2
3.2k
クラウドに依存しないS3を使った開発術
simesaba80
0
180
SwiftUIで本格音ゲー実装してみた
hypebeans
0
520
AI Agent Tool のためのバックエンドアーキテクチャを考える #encraft
izumin5210
5
1.4k
[AtCoder Conference 2025] LLMを使った業務AHCの上⼿な解き⽅
terryu16
6
920
Context is King? 〜Verifiability時代とコンテキスト設計 / Beyond "Context is King"
rkaga
10
1.5k
リリース時」テストから「デイリー実行」へ!開発マネージャが取り組んだ、レガシー自動テストのモダン化戦略
goataka
0
150
Featured
See All Featured
HDC tutorial
michielstock
1
280
Art, The Web, and Tiny UX
lynnandtonic
304
21k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
3.8k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.6k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.8k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
180
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
78
The browser strikes back
jonoalderson
0
240
Designing for humans not robots
tammielis
254
26k
Six Lessons from altMBA
skipperchong
29
4.1k
How GitHub (no longer) Works
holman
316
140k
First, design no harm
axbom
PRO
1
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ΤϯδχΞ͕Γͯ ͍·ͤΜʂ
͝ਗ਼ௌ͋Γ͕ͱ͏ ͍͟͝·ͨ͠