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
2019年の技術であのARアプリを再現する(東北TECH道場版)
Search
Kenichi Takahashi
March 02, 2019
Programming
0
65
2019年の技術であのARアプリを再現する(東北TECH道場版)
東北TECH道場の石巻道場で再演用にDroidKaigi 2019で話した内容に加筆したものです。ARCoreとSceneformのバージョンが1.7に更新されたことにも触れています。
Kenichi Takahashi
March 02, 2019
Tweet
Share
More Decks by Kenichi Takahashi
See All by Kenichi Takahashi
AndroidのAR最新動向
ktaka
0
28
東京と千葉の映画館の勝手なる批評-2020年3月
ktaka
0
53
SIGGRAPH 2020の歩き方と見どころ
ktaka
1
650
左側と右側で別のものが見えるようにしてみた
ktaka
1
520
ARCoreで現実を拡張する話@DevFest東北
ktaka
1
160
SIGGRAPH 2019参加のコツ
ktaka
2
320
GTUG Girls ARCoreハンズオン
ktaka
1
440
ABC2019s ARCoreハンズオン
ktaka
2
1.2k
2019年春の技術であのARアプリを再現する
ktaka
1
1.1k
Other Decks in Programming
See All in Programming
React への依存を最小にするフロントエンド設計
takonda
12
3k
デザインパターンで理解するLLMエージェントの作り方 / How to develop an LLM agent using agentic design patterns
rkaga
3
300
Functional Event Sourcing using Sekiban
tomohisa
0
100
Arm移行タイムアタック
qnighy
0
340
Kaigi on Rails 2024 〜運営の裏側〜
krpk1900
1
250
subpath importsで始めるモック生活
10tera
0
320
Jakarta EE meets AI
ivargrimstad
0
190
「今のプロジェクトいろいろ大変なんですよ、app/services とかもあって……」/After Kaigi on Rails 2024 LT Night
junk0612
5
2.2k
Macとオーディオ再生 2024/11/02
yusukeito
0
380
ローコードSaaSのUXを向上させるためのTypeScript
taro28
1
630
Snowflake x dbtで作るセキュアでアジャイルなデータ基盤
tsoshiro
2
520
ActiveSupport::Notifications supporting instrumentation of Rails apps with OpenTelemetry
ymtdzzz
1
250
Featured
See All Featured
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
Imperfection Machines: The Place of Print at Facebook
scottboms
265
13k
Code Reviewing Like a Champion
maltzj
520
39k
Facilitating Awesome Meetings
lara
50
6.1k
Rebuilding a faster, lazier Slack
samanthasiow
79
8.7k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5k
The Cost Of JavaScript in 2023
addyosmani
45
6.8k
Testing 201, or: Great Expectations
jmmastey
38
7.1k
How to train your dragon (web standard)
notwaldorf
88
5.7k
Typedesign – Prime Four
hannesfritz
40
2.4k
A Philosophy of Restraint
colly
203
16k
Documentation Writing (for coders)
carmenintech
65
4.4k
Transcript
%SPJE,BJHJ Ͱొஃ͖ͯ͠·ͨ͠ɹ
ͷٕज़Ͱ ͋ͷ"3ΞϓϦΛ࠶ݱ͢Δ %SPJE,BJHJɹߴڮݑҰ
ԕ͍ੲɺΔ͔൴ํͷ৽॓ ஸͰ....
ηΧΠΧϝϥ ͱ͍͏"3ΞϓϦ͕ ։ൃ͞Ε͍ͯ·ͨ͠ɻɹ
ηΧΠΧϝϥ ʙεϚʔτϑΥϯᴈ໌ظʹΛ ूΊͨ"3ΞϓϦ ݄J1IPOF൛ϦϦʔε ݄"OESPJE൛ϦϦʔε ݄αʔϏεऴྃ
͋Ε͔Β͍݄͕ۙྲྀΕʜ ͷ͍·ͷٕज़ͰͬͨΒ ͲΜͳߏʹͳΔͷ͔ʁ
@ken1_taka ktaka גࣜձࣾΧϒΫιϑτΣΞΤϯδχΞ ߴڮݑҰ w ܞଳ͚%άϥϑΟΫεΤϯδϯɺੲ͋ͬͨ "3ΞϓϦͷ։ൃʹܞΘΔ w ݱࡏΧϒΫͰ%άϥϑΟΫεͷϨϯμϦϯά ͓ΑͼղੳΤϯδϯͷ࣮Λ୲
w ݸਓత׆ಈͱͯ͠"373ͷ࣮ݧΛ͢ΔΒ༁ ຊΛग़ͨ͠Γɺٕज़ܥࡶࢽͷղઆهࣄΛدߘ͢ ΔͳͲ͍ͯ͠Δ
6OJUZʹΑΔʙຊͷ༁
ٕज़ॻయͰग़ͨ͠ຊ #005)ʹ1%'൛ͱຊ൛͋Γ·͢ IUUQT[BYJTKVOLJFCPPUIQNJUFNT
೦ͷͨΊʜN @@ N w ࠓճ࡞ͨ͠"3ΞϓϦ͋͘·Ͱࢲͷݸਓత׆ಈͰͷ࣮ݧͷهͰ͋Γɺॴଐ ͢Δձ͕ࣾఏڙ͢ΔαʔϏεͱͷؔ͋Γ·ͤΜ
ຊʹೖΓ·͢
͋ͷ"3ΞϓϦʹඞཁͳػೳ w ΧϝϥϓϨϏϡʔͷදࣔ w ΤΞλάͷදࣔ w ΤΞλά࡞ w ςΩετλάͷจࣈೖྗ w
ΠϝʔδλάͷࣸਅࡱӨ w ݱࡏҐஔͷऔಘ w ΤΞλάͷσʔλͷอଘ w ΤΞλά܈ͷऔಘ w ݱࡏҐஔΛத৺ʹܘʁNͱ͍͏ ΫΤϦʔ w Ϣʔβʔೝূ
࣌ͬͨͷ "OESPJE൛ͱαʔόʔ w +BWB w /%, w $ w
0QFO(-&4 w "84 w &$ w 4 w 1)1
ࠓճ ͬͨͷ w "3$PSF w 4DFOFGPSN w $MPVE"ODIPST w
+BWB w ,PUMJOগ͠ w 'JSFCBTF w "VUIFOUJDBUJPO w $MPVE'JSFTUPSF w (FP'JSFTUPSF
ػೳ͝ͱʹݟ͍͖ͯ·͢ ·ͣը໘पΓ͔Β
ΧϝϥϓϨϏϡʔͱΤΞλάͷදࣔ w "3$PSF w 4DFOFGPSN w "S'SBHNFOU w 7JFX3FOEFSBCMF
"3$PSFͷػೳ
"3$PSFΛͬͨ։ൃ +BWB 6OJUZ 6OSFBM J04
"OESPJE4UVEJP +BWB 4DFOFGPSN
4DFOFGPSNͱ w ݄ͷ(PPHMF*0Ͱൃද͞Εͨͷ w %ϞσϧͷΠϯϙʔτπʔϧ w "3γʔϯͷΈࠐΈ͕؆୯ʹͰ͖ΔϥΠϒϥϦ
https://developers.google.com/ar/develop/java/sceneform/ l"OESPJE։ൃऀʹ%άϥϑΟΫεͱ0QFO(-ΛֶͿ͜ͱͳ͠ʹ "3$PSFΛۦ͢ΔྗΛ༩͑Δz
4DFOFGPSNొҎલʜ w +BWB༻"3$PSFͷ4%,ʹଐ͢Δαϯϓϧͷߏ w %ϞσϧʢPCKʣσʔλΛϩʔυ͢Δίʔυ w 0QFO(-&4ͷ"1*Λݺͼग़͢ίʔυ w ͦΕͦΕࡶͳͷͩͬͨ w
ʮѱ͍͜ͱݴΘͳ͍͔Β6OJUZͰͬͨ΄͏͕͍͍ΑʯͱࢲपΓʹݴͬͯ ͍ͨ
4DFOFGPSNͰ ࠷ݶඞཁͳ +BWBͷίʔυ ͜Ε͚ͩ
Ϗϧυ࣮ͯ͠ߦ w ฏ໘Λλοϓͯ͠%ϞσϧΛஔ͢ΔͨΊ ʹඞཁͳػೳ͕Ұ௨Γ͋Δ w ݟӫ͑ྑ͍ w ཧϕʔεͷϨϯμϥ͕Έࠐ·Ε͍ͯΔ
4DFOFGPSNͷߏ
%ϞσϧͷΠϯϙʔτϓϥάΠϯ w "OESPJE4UVEJPͷϓϥάΠϯ w %ϞσϧΛΠϯϙʔτͯ͠Ξηοτͱͯ͠ ΈࠐΊΔ w 0#+ '#9 HM5'
w "OESPJE4UVEJPͰϓϨϏϡʔՄೳ
.PEFM3FOEFSBCMFΫϥε w %ϞσϧΛѻ͏ͨΊͷΫϥεɹ
7JFX3FOEFSBCMFΫϥε "OESPJE։ൃऀʹ͓ͳ͡ΈͷMBZPVUͷYNMΛ"3্ۭؒʹු͔Ϳ 7JFXͱͯ͠࡞Ͱ͖Δʂ
"S'SBHNFOU w ΧϝϥϓϨϏϡʔͷදࣔ w Λಈ͔͢͜ͱΛଅ͢6* w ೝࣝฏ໘Λࣔ͢6* w ฏ໘Λλοϓͨ͠ࡍͷMJTUOFS w
ฏ໘ʹӨΛམͱ͢
ྑ͍͜ͱͮ͘Ͱ͕͢ʜ
4DFOFGPSNͰΞχϝʔγϣϯ͕ Ͱ͖ͳ͍
ͦͷ߹6OJUZΛʜ ͱݴ͍ͬͯ·͕ͨ͠ɺ
4DFOFGPSNͰΞχϝʔγϣϯ͕ Ͱ͖ͳ͍ɹͰ͖ΔΑ͏ʹͳΓ·ͨ͠ʂ
4DFOFGPSNͰ "OJNBUJPOՄೳʹʂ w GCYʹઃఆ͞ΕͨΞχϝʔγϣ ϯΛΠϯϙʔτՄೳ
"VHNFOUFE'BDFTՃ w "3$PSFͰՃ w ϑϩϯτΧϝϥʹࣸΔإΛ ͷͷϝογϡͱͯ͠ೝࣝ w 6OJUZͱ4DFOFGPSN༻ͷ"1*Ͱ ఏڙ͞ΕΔ IUUQTEFWFMPQFSTHPPHMFDPNBSEFWFMPQKBWBBVHNFOUFEGBDFT
͜͜·Ͱ͕"3$PSFͱ 4DFOFGPSNͷ֓ཁ
ΧϝϥϓϨϏϡʔͷදࣔ w "S'SBHNFOUΛ-BZPVUʹ ΈࠐΉ͚ͩ
ςΩετͱΠϝʔδͷΤΞλά 7JFX3FOEFSBCMFͰ࡞
ςΩετλά༻ 7JFX3FOEFSBCMF 7JFX3FOEFSBCMFCVJMEFS TFU7JFX UIJT 3MBZPVUUFYU@UBH CVJME CBDLHSPVOE ʢؙ֯ɺಁ໌ͷ੨৭ʣ
UFYU@UBHYNM "1*
Πϝʔδλά༻ 7JFX3FOEFSBCMF 7JFX3FOEFSBCMFCVJMEFS TFU7JFX UIJT 3MBZPVUJNBHF@UBH CVJME CBDLHSPVOE ʢؙ֯ɺಁ໌ͷ৭ʣ
JNBHF@UBHYNM "1*
ΤΞλάͷ࡞ૢ࡞ w ΠϚ෩ʹ'"#Ͱ w ֊ԼʹςΩετΧϝϥͷΞΠίϯ
ςΩετೖྗμΠΞϩάͰ
ࣸਅͷࡱӨํ๏ w "S4DFOF7JFXWJFX BS'SBHNFOUHFU"S4DFOF7JFX w "3ը໘ͷ7JFXΛऔಘ w 1JYFM$PQZSFRVFTU WJFX
CJUNBQ DPQZ3FTVMU \ʜ w WJFXͷΩϟϓνϟΠϝʔδΛऔಘ w ΤΞλάͱഎܠ͕߹͞Εͨঢ়ଶͷΠϝʔ δΛ࡞͢ΔͨΊ w (PPHMFͷ4DFOFGPSNͷίʔυϥϘΛࢀߟ
Ґஔใؔ࿈
ݱࡏҐஔͷऔಘ w 5BLB.J[VUPSJ͞Μ͕NFEJVNͰ·ͱΊ͍ͯ ͨʮҐஔใΛਖ਼֬ʹτϥοΩϯά͢Δٕ ज़JO,PUMJOʯΛࢀߟʹ͠·ͨ͠ w IUUQTNFEJVNDPNMPDBUJPOUSBDLJOH UFDI w औಘ࣌ͷਫ਼λΠϛϯάΛࡉ੍͔͘ޚ͠
͔ͨͬͨͨΊ w ΤΞλάϦετͷߋ৽λΠϛϯάͷ੍ޚ
σʔλͷอଘɺαʔόʔपΓ
αʔόʔଆ'JSFCBTFΛ༻ w ࠓճαʔόʔଆͷίʔυҰॻ͍ ͍ͯ·ͤΜ w ʢ͍·ͷͱ͜Ζʜʣ IUUQTpSFCBTFHPPHMFDPN
ΤΞλάσʔλͷอଘ w $MPVE'JSFTUPSF w (FP'JSFTUPSFͷϥΠϒϥϦΛ༻ w IUUQTHJUIVCDPNJNQFSJVNMBCT(FP'JSFTUPSF"OESPJE
$MPVE'JSFTUPSF w /P42-υΩϡϝϯτσʔλϕʔε w άϩʔόϧεέʔϧͰϞόΠϧΞϓϦΣ ϒΞϓϦͷσʔλΛ؆୯ʹอଘɺಉظɺর ձ w ίϨΫγϣϯͱυΩϡϝϯτΛ༻ͯ͠σʔ λΛ؆୯ʹߏԽ
IUUQTpSFCBTFHPPHMFDPNQSPEVDUTpSFTUPSF
'JSFTUPSFʹอଘ͞Εͨσʔλ
ςΩετλάอଘͷίʔυ %PDVNFOU3FGFSFODFOFX5BH3FGECDPMMFDUJPO "JS5BHT EPDVNFOU .BQ4USJOH 0CKFDUEBUBOFX)BTI.BQ EBUBQVU NFTTBHF
NTH EBUBQVU UZQF OFX5BH3FGTFU EBUB 4USJOHEPD*EOFX5BH3FGHFU*E HFP'JSFTUPSFTFU-PDBUJPO EPD*E DVSSFOU1PJOU
ΤΞλά܈ͷऔಘ w ݱࡏҐஔΛத৺ʹܘʁNͱ͍͏Ϋ ΤϦʔͰऔಘ͢Δඞཁ͕͋Δ ը૾IUUQTpSFCBTFHPPHMFCMPHDPNHFPpSFHPFTNPCJMFIUNMΑΓ
ΤΞλά܈औಘ࣌ͷίʔυ ʢΫΤϦʔʣ w HFP2VFSZHFP'JSFTUPSFRVFSZ"U-PDBUJPO QPJOU SBEJVT
ΤΞλά܈औಘ࣌ͷίʔυ ʢϦεφʔʣ QVCMJDWPJEPO%PDVNFOU&OUFSFE %PDVNFOU4OBQTIPUEPDVNFOU4OBQTIPU (FP1PJOUQPJOU \ USZ\ .BQ4USJOH 0CKFDUEBUBEPDVNFOU4OBQTIPUHFU%BUB
4USJOHNFTTBHF 4USJOH EBUBHFU NFTTBHF MPO-BU5P9: QPJOU ʜʜ ^DBUDI /VMM1PJOUFS&YDFQUJPOF \ -PHE %0$6.&/5@&3303 FHFU-PDBMJ[FE.FTTBHF ^DBUDI $MBTT$BTU&YDFQUJPOF \ -PHE %0$6.&/5@&3303 FHFU-PDBMJ[FE.FTTBHF ^ ^
Ϣʔβʔೝূ
'JSFCBTF"VUIFOUJDBUJPO w ҆શͳೝূγεςϜΛ؆୯ʹߏங w ΤϯυϢʔβʔͷϩάΠϯॳظొͷૢ ࡞Λ͍͘͢͢Δ w ϩάΠϯɹ w ϝʔϧΞυϨεͱύεϫʔυ
w ిೝূ w (PPHMF w 5XJUUFS 'BDFCPPL (JU)VCαϙʔτ IUUQTpSFCBTFHPPHMFDPNQSPEVDUTBVUI
(PPHMFΞΧϯτʹΑΔϩάΠϯ 'JSFCBTF"VUIBVUI'JSFCBTF"VUIHFU*OTUBODF 'JSFCBTF6TFSVTFSBVUIHFU$VSSFOU6TFS JG VTFSOVMM \ ʜ ^FMTF\
-JTU"VUI6**EQ$POpHQSPWJEFST"SSBZTBT-JTU OFX"VUI6**EQ$POpH(PPHMF#VJMEFS CVJME TUBSU"DUJWJUZ'PS3FTVMU "VUI6*HFU*OTUBODF DSFBUF4JHO*O*OUFOU#VJMEFS TFU"WBJMBCMF1SPWJEFST QSPWJEFST CVJME 3$@4*(/@*/ ^
$MPVE"ODIPSTʹΑΔ"3ۭؒڞ༗
ͳͥ"3ۭؒͷڞ༗͕ඞཁͳͷ͔
௨ৗ֤ࣗͷεϚϗͷதͰดͨ͡"3ۭؒ ʢݟ͍ͯΔΦϒδΣΫτڞ༗͞Ε͍ͯͳ͍ʣ
$MPVE"ODIPSTΛ͏ͱʜ
$MPVE"ODIPSTʹ͍ͭͯͷϝϞ w $MPVE"ODIPSTͰొͨ͠ΞϯΧʔͷ༗ޮ࣌ؒ࣌ؒ w ظؒͷڞ༗ʹ͑ͳ͍ w ҢܦʹΑΔҐஔใͰͷอଘ͕ඞཁ w Ңܦʴ"ODIPS*%Λอଘ͓͖ͯ͠ɺແޮͳΒҢܦͷΈͰஔ͢Δ
$MPVE"ODIPSTʹ͍ͭͯͷϝϞ w ఏڙ͞ΕΔͷɹ w पғͷಛใ w "ODIPSΦϒδΣΫτʢҐஔɺ࢟ʣ w ԿΛͦ͜ʹஔ͢Δ͔ɺΞχϝʔγϣϯͷ੍ޚͳͲࣗલͰ࣮͢Δඞཁ͋Γ
$MPVE"ODIPSTʹ͍ͭͯͷϝϞ w ࣮ݧதͷ༻్ w ΠϕϯτͰಉ͡෦ʹ͍Δ߹ʹϓϩϑΟʔϧදࣔΛτϥοΩϯάදࣔ͢ Δ w ΞϯΧʔΛಉظ͢Δ͜ͱͰ࠲ඪܥΛἧ͑ΒΕΔ
ͷҐஔτϥοΩϯάใͷऔಘ 'SBNFGSBNFBS'SBHNFOUHFU"S4DFOF7JFX HFU"S'SBNF CPPMFBOXBT5SBDLJOHJT5SBDLJOH JT5SBDLJOHGSBNFOVMM GSBNFHFU$BNFSB HFU5SBDLJOH4UBUF 5SBDLJOH4UBUF53"$,*/( 1PTFDBNFSB1PTFGSBNFHFU$BNFSB
HFU1PTF
4DFOFGPSNͷίʔυϥϘ w ຊՈʢӳޠ൛ʣ w IUUQTDPEFMBCTEFWFMPQFSTHPPHMFDPN DPEFMBCTTDFOFGPSNJOUSP w ຊޠ൛ʢ!FHB͞ΜͱߴڮʹΑΔ༁ʣ w IUUQTLUBLBHJUIVCJPDPEFMBC
TDFOFGPSNBSKB
࡞ͷՃ՝͋Γ·͢ IUUQTLUBLBHJUIVCJPDPEFMBCWJFXSFOEFSBCMF
ηογϣϯͷϑΟʔυόοΫ ૯߹ධՁͰΛ͍͖ͨͩ·ͨ͠ʂ