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
iOS8の Custom Keyboard について
Search
haranicle
September 27, 2014
Technology
2
1.2k
iOS8の Custom Keyboard について
yidev 第16回勉強会で発表した資料です。
https://atnd.org/events/55682
haranicle
September 27, 2014
Tweet
Share
More Decks by haranicle
See All by haranicle
戦略的手抜きをするためのデザインシステム運用
haranicle
1
3.4k
bitFlyer ウォレット リニューアルの裏側
haranicle
0
150
多次元宇宙と画面遷移
haranicle
0
350
ハッピーな開発チームを築くために iOSエンジニアがしたこと
haranicle
5
15k
Playground芸
haranicle
6
1.9k
I💖Xcode Plugins
haranicle
0
140
Apple WatchのGlanceについて
haranicle
3
2.6k
Xcode6のFramework Templateについて
haranicle
2
2.7k
Other Decks in Technology
See All in Technology
KMP with Crashlytics
sansantech
PRO
0
240
PaaSの歴史と、 アプリケーションプラットフォームのこれから
jacopen
7
1.4k
あなたの人生も変わるかも?AWS認定2つで始まったウソみたいな話
iwamot
3
840
#TRG24 / David Cuartielles / Post Open Source
tarugoconf
0
570
Azureの開発で辛いところ
re3turn
0
240
RubyでKubernetesプログラミング
sat
PRO
4
160
AWSの生成AIサービス Amazon Bedrock入門!(2025年1月版)
minorun365
PRO
7
460
2025年の挑戦 コーポレートエンジニアの技術広報/techpr5
nishiuma
0
140
2025年のARグラスの潮流
kotauchisunsun
0
790
なぜfreeeはハブ・アンド・スポーク型の データメッシュアーキテクチャにチャレンジするのか?
shinichiro_joya
2
420
技術に触れたり、顔を出そう
maruto
1
150
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
6
54k
Featured
See All Featured
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
33
2.7k
The Invisible Side of Design
smashingmag
299
50k
We Have a Design System, Now What?
morganepeng
51
7.3k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
120k
Docker and Python
trallard
43
3.2k
Optimizing for Happiness
mojombo
376
70k
Intergalactic Javascript Robots from Outer Space
tanoku
270
27k
Large-scale JavaScript Application Architecture
addyosmani
510
110k
Building Flexible Design Systems
yeseniaperezcruz
328
38k
Writing Fast Ruby
sferik
628
61k
Fontdeck: Realign not Redesign
paulrobertlloyd
82
5.3k
Keith and Marios Guide to Fast Websites
keithpitt
410
22k
Transcript
J04ͷ $VTUPN,FZCPBSE ʹ͍ͭͯ !IBSBOJDMF
ࣗݾհ !IBSBOJDMF ݪҰ࢙ Β͔ͣ͠ /55ιϑτΣΞגࣜձࣾ ❉❉❉ J04ΞϓϦ։ൃ J04ϓϩδΣΫτͷٕज़ࢧԉ ͨ·ʹαʔόαΠυ
ͱ͖Ͳ͖"OESPJE
ݸਓతʹͭͬͨ͘ͷ ✴ಛघจࣈ ✴ػछґଘจࣈΛೖྗͰ͖Δ ΞϓϦ ✴"QQ4UPSFແྉϥϯΩϯάɹ Ґ ✴"QQ4UPSFϕετ৽ண"QQ ✴J04ʹҠ২தʜ
ΞδΣϯμ ✴"QQ&YUFOTJPOೖ ✴$VTUPN,FZCPBSEͱ ✴͍͘͢͢ΔͨΊʹ ✴։ൃͭΒ͍ϙΠϯτ ✴Ͱ͖Δ͜ͱɺͰ͖ͳ͍͜ͱ
"QQ&YUFOTJPOೖ
✴J04͔Βಋೖ͞ΕͨΞϓϦͷ֞ࠜΛ ͑ͯػೳΛఏڙͰ͖Δ͘͠Έ ✴5PEBZ 4IBSF "DUJPO 1IPUP&EJUJOH %PDVNFOU1SPWJEFS
$VTUPNLFZCPBSE ͷछྨ ✴ొਓ "QQ&YUFOTJPO WJB"QQ&YUFOTJPO1SPHSBNNJOH(VJEF
$VTUPN,FZCPBSEͱ
$VTUPN,FZCPBSEͱ ✴γεςϜΩʔϘʔυͷΘΓʹ༻Ͱ ͖ΔΩʔϘʔυ ✴$POUBJOJOH"QQΛΠϯετʔϧͯ͠ ઃఆҰൠΩʔϘʔυͰՃͰ͖Δ $POUBJOJOH"QQ໊ $POUBJOJOH"QQͷ*OGPQMJTU &YUFOTJPOͷ λʔήοτ໊
&YUFOTJPOͷ*OGPQMJTU
$VTUPN,FZCPBSEͷߏ ඞͣઃஔ͠ͳ͍ͱ͍͚ͳ͍ WJB"QQ&YUFOTJPO1SPHSBNNJOH(VJEF
$VTUPN,FZCPBSEͱ ✴σβΠϯ ✴ύλʔϯ͋Δ ΞϓϦ 4QPUMJHIU
͍͘͢͢ΔͨΊʹ
͕ݴ͏ʹʜ 5PVOEFSTUBOEXIBUVTFSTFYQFDUPGZPVSDVTUPN LFZCPBSE TUVEZUIFTZTUFNLFZCPBSE JU’TGBTU SFTQPOTJWF BOEDBQBCMF "OEJUOFWFSJOUFSSVQUTUIFVTFS XJUIJOGPSNBUJPOPSSFRVFTUT *GZPVQSPWJEFGFBUVSFTUIBUSFRVJSFVTFSJOUFSBDUJPO
BEEUIFNOPUUPUIFLFZCPBSECVUUPZPVS LFZCPBSE’TDPOUBJOJOHBQQ WJB"QQ&YUFOTJPO1SPHSBNNJOH(VJEF
Ͳ͏͢Δ͔ ✴$VTUPN,FZCPBSEදࣔຖʹ 6**OQVU7JFX$POUSPMMFS͕JOJU͞ΕΔ ✴JOJUˠWJFX%JE"QQFS·ͰͷॲཧΛՄ ೳͳݶΓܰ͘͢Δ ຯͳΞχϝʔγϣϯͰ͝·͔͢ʜ ✴ຖճॳظঢ়ଶʹΔͱΘ͍͠ͷͰ લճදࣔͨ͠ঢ়ଶΛ෮ݩͯ͋͛͠Δ ✴/46TFS%FGBVMUTΛ͏
✴6*4UBUF3FTUPSBUJPO͑ͳ͍ ͨͿΜ
GBTUʹ͢ΔͷΛ͖͋ΒΊͨΒ ✴ΩʔϘʔυ௨Γಓ ✴ɹɹɹ͚ͩͰૣ͘දࣔͯ͋͛͠Δ ຊޠ ӳޠ ֆจࣈ $VTUPN
։ൃͭΒ͍ϙΠϯτ
σόοάͭΒ͍ ✴"QQ&YUFOTJPOTٸʹམͪΔ ✴ϩά ✴γϛϡϨʔλͰ %FCVH0QFO4ZTUFN-PHʜ ✴ͳ͔ͥQSJOUMOग़ྗ͞Εͳ͍ͷͰ /4-PHΛ͏ ✴ϒϨʔΫϙΠϯτ ✴$VTUPN,FZCPBSEىಈதʹ9DPEFͰ %FCVH"UUBDIUP1SPDFTTىಈதͷ
$VTUPN,FZCPBSEΛબ ͜ΕΔલʹམͪΔͱʗ ?P? ʘ
σόοάͭΒ͍ ✴"QQ&YUFOTJPOTٸʹམͪΔ ✴ϩά ✴γϛϡϨʔλͰ %FCVH0QFO4ZTUFN-PHʜ ✴ͳ͔ͥQSJOUMOग़ྗ͞Εͳ͍ͷͰ /4-PHΛ͏ ✴ϒϨʔΫϙΠϯτ ✴$VTUPN,FZCPBSEىಈதʹ9DPEFͰ %FCVH"UUBDIUP1SPDFTTىಈதͷ
$VTUPN,FZCPBSEΛબ ͜ΕΔલʹམͪΔͱʗ ?P? ʘ గਖ਼ 9DPEFCFUBͰ ਏ͔͚ͬͨͲ ࠓͦ͏Ͱͳ͍ 3VO͢Δͱ͖ʹ $VTUPN,FZCPBSEͷ5BSHFU Λબ͢Ε ϩάϒϨʔΫϙΠϯτಈ͘
ͭΒ͗͢ΔͷͰ ✴͏6*ύʔπ͝ͱʹผϓϩδΣΫτ ✴ී௨ʹΞϓϦͷը໘Ͱಈ࡞֬ೝ ✴ϝΠϯͷϓϩδΣΫτͰ֤6*ύʔπͷ ϓϩδΣΫτͷϑΝΠϧΛࢀর ✴࠷ޙʹ߹ମ ✴Ϋϥεઃܭେࣄʂ
͓͍ɺγϛϡϨʔλ͓͍ ✴ͨ·ʹΩʔϘʔυ͕දࣔ͞Εͳ͍ ✴)BSEXBSF,FZCPBSE5PHHMF 4PGUXBSF,FZCPBSE ⌘ , Ͱදࣔ͞ΕΔΑ͏ʹͳΔ͜ͱ͕͋Δ
Ͱ͖Δ͜ͱɺͰ͖ͳ͍͜ͱ
4UPSZCPBSE͑Δͷ͔ ✴6**OQVU7JFX$POUSPMMFSʹ͑ͳ͍ ✴6**OQVU7JFX$POUSPMMFSWJFXͷαϒ Ϗϡʔʹ͑Δ ✴4UPSZCPBSEͰ7JFX$POUSPMMFSΛ࡞ ͬͯ4UPSZCPBSE*%Λࢦఆ ✴6*4UPSZCPBSEͷ JOTUBOUJBUF7JFX$POUSPMMFS8JUI*EF OUJGJFSͰΠϯελϯεԽ
͜ΕʹίʔυͰ"VUPMBZPVUΛ ઃఆ͢Δͷ͕ͭΒ͍
ඳըͰ͖Δൣғ ✴ৗʹը໘ͷԣ෯͍ͬͺ͍ʹදࣔ͞ΕΔ ✴ߴ͞WJFX%JE"QQFSҎ߱ͷλΠϛϯ άͳΒม͑ΒΕΔ ৗʹը໘͍ͬͺ͍ ৗʹը໘͍ͬͺ͍
શͯͷೖྗΤϦΞͰ͑Δ ✴/0 ✴͑ͳ͍ύλʔϯ ✴ೖྗઌ͕6*,FZCPBSE5ZQF1IPOF1BE PS6*,FZCPBSE5ZQF/BNF1IPOF1BE ✴ೖྗઌͷTFDVSF5FYU&OUSZ͕USVF ✴)PTU"QQ͕ΧελϜΩʔϘʔυͷ༻Λ ڋ൱ ✴"QQ%FMFHBUFͷ BQQMJDBUJPOTIPVME"MMPX&YUFOTJPO1PJO
U*EFOUJGJFSͰSFUVSOGBMTF͢Δ ͜Εॏཁʂʂ
Իೖྗ ແཧ ϚΠΫʹΞΫηεग़དྷͳ͍ WJB"QQ&YUFOTJPO1SPHSBNNJOH(VJEF
จࣈྻͷબͷ੍ޚ ແཧ WJB"QQ&YUFOTJPO1SPHSBNNJOH(VJEF
ϑΝΠϧΞΫηεͰ͖Δ ✴ଞͷ"QQ&YUFOTJPOͱಉ༷ ✴"QQ(SPVQΛ༻͢Δͱ$POUBJOJOH "QQͱγΣΞͰ͖ΔྖҬ͕Ͱ͖Δ ✴γΣΞྖҬͷ63-ɺ/4'JMF.BOBHFSͷ DPOUBJOFS63-'PS4FDVSJUZ"QQMJDBUJPO(S PVQ*EFOUJGJFSͰऔಘͰ͖Δ WJB"QQ&YUFOTJPO1SPHSBNNJOH(VJEF ͜͜ʹΞΫηε͢ΔͨΊʹ
3FRVFTUT0QFO"DDFTT͕ඞཁʂ
༨ஊγΣΞྖҬͷσΟϨΫτϦ %PDVNFOUT -JCSBSZ UNQ %PDVNFOU3FWJTJPOT7 %PDVNFOU3FWJTJPOT7 CBE $POUBJOFST %PDVNFOUT
-JCSBSZ .FEJB 3PPU UNQ WBS -JCSBSZ WJB"QQ&YUFOTJPO1SPHSBNNJOH(VJEF ˞/4'JMF.BOBHFSͷDPOUFOUT0G%JSFDUPSZ"U1BUIͰ֬ೝ
3FRVFTUT0QFO"DDFTTͬͯ ✴$VTUPN,FZCPBSEͷ*OGPQMJTUͷ,FZ ✴:&4ʹઃఆ͢ΔͱҎԼ͕ՄೳʹͳΔ ✴γΣΞྖҬͷΞΫηε ✴Ґஔใऔಘɺ࿈བྷઌͷΞΫηε ✴ωοτϫʔΫͷଓ ✴J$MPVEͷΞΫηε ✴(BNF$FOUFS *O"QQ1VSDIBTFWJB $POUBJOJOH"QQ
✴ :&4ʹઃఆ͠ͳͯ͘γϛϡϨʔλͳΒͰ͖ͪΌ͏ʂ
3FRVFTUT0QFO"DDFTTͬͯ ✴3FRVFTUT0QFO"DDFTTΛ:&4ʹઃఆ ͢Δͱʜ Ϣʔβ͕0/0''ΛܾΊΒΕΔ ͔͠ σϑΥϧτͰ0''ʹͳͬͯΔ Θ͔Γʹ͍͘ʂʂ
ωοτϫʔΫଓͯ͠Έͨ ✴Ͱ͖ͨ 8FC7JFX
·ͱΊ
$VTUPN,FZCPBSE ✴ γεςϜΩʔϘʔυͷΘΓʹ༻Ͱ͖Δ ΩʔϘʔυ ✴ දࣔຖʹJOJU͞ΕΔͷͰॳظԽॲཧΛܰ͘͢Δ ✴ σόοάͭΒ͍͚Ͳ Ͱ͖ͳ͍͜ͱͳ͍ ✴
4UPSZCPBSE͑ͳ͍͜ͱͳ͍ ✴ 6**OQVU7JFX$POUSPMMFSͷ෯ը໘෯ͱಉ͡Ͱ ݻఆ͚ͩͲɺߴ͞ม͑ΒΕΔ ✴ શͯͷೖྗΤϦΞͰ͑ΔΘ͚Ͱͳ͍ ✴ 3FRVFTUT0QFO"DDFTTΛ:&4ʹ͢Δͱ͍Ζ͍ ΖͰ͖ΔΑ͏ʹͳΔ
ࢀߟ ✴ "QQ&YUFOTJPO1SPHSBNNJOH(VJEF"QQ&YUFOTJPOT*ODSFBTF :PVS*NQBDU]IUUQTEFWFMPQFSBQQMFDPNMJCSBSZJPT EPDVNFOUBUJPO(FOFSBM$PODFQUVBM&YUFOTJCJMJUZ1(JOEFYIUNM ✴ 4XJGUJ04FYUFOTJPOͷσόοάํ๏2JJUB]IUUQ RJJUBDPNUBLFUJOJUFNTFBDEECEC