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
760
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
170
Other Decks in Programming
See All in Programming
どうして僕の作ったクラスが手続き型と言われなきゃいけないんですか
akikogoto
1
120
Contemporary Test Cases
maaretp
0
140
「今のプロジェクトいろいろ大変なんですよ、app/services とかもあって……」/After Kaigi on Rails 2024 LT Night
junk0612
5
2.2k
役立つログに取り組もう
irof
28
9.6k
카카오페이는 어떻게 수천만 결제를 처리할까? 우아한 결제 분산락 노하우
kakao
PRO
0
110
[Do iOS '24] Ship your app on a Friday...and enjoy your weekend!
polpielladev
0
110
見せてあげますよ、「本物のLaravel批判」ってやつを。
77web
7
7.8k
Compose 1.7のTextFieldはPOBox Plusで日本語変換できない
tomoya0x00
0
190
C++でシェーダを書く
fadis
6
4.1k
GitHub Actionsのキャッシュと手を挙げることの大切さとそれに必要なこと
satoshi256kbyte
5
430
CSC509 Lecture 13
javiergs
PRO
0
110
A Journey of Contribution and Collaboration in Open Source
ivargrimstad
0
930
Featured
See All Featured
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
131
33k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
226
22k
How To Stay Up To Date on Web Technology
chriscoyier
788
250k
Producing Creativity
orderedlist
PRO
341
39k
The Language of Interfaces
destraynor
154
24k
[RailsConf 2023] Rails as a piece of cake
palkan
52
4.9k
Bash Introduction
62gerente
608
210k
Into the Great Unknown - MozCon
thekraken
32
1.5k
Fireside Chat
paigeccino
34
3k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
16
2.1k
Designing for humans not robots
tammielis
250
25k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
25
1.8k
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ΤϯδχΞ͕Γͯ ͍·ͤΜʂ
͝ਗ਼ௌ͋Γ͕ͱ͏ ͍͟͝·ͨ͠