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
Webの技術スタックで マルチプラットフォームアプリ開発を可能にするElixirDeskto...
Search
Yuisho Takafuji
October 29, 2024
Programming
2
1k
Webの技術スタックで マルチプラットフォームアプリ開発を可能にするElixirDesktopの紹介
Yuisho Takafuji
October 29, 2024
Tweet
Share
More Decks by Yuisho Takafuji
See All by Yuisho Takafuji
Elixirでスマホ開発の現在
thehaigo
0
29
サクッと画像分類アプリを作ってみる
thehaigo
0
240
ElixirMobile#2 ElixirDesktopの前説
thehaigo
0
160
ElixirDesktop is Production Ready?
thehaigo
0
110
スマホで動く「GPS地図アプリ」はElixirDesktopで割とサックリ作れる
thehaigo
0
120
Phoenix 1.7とElixirDesktopでスマホアプリを作る セットアップ編
thehaigo
0
210
ElixirConf繋がりでLiveViewNativeやってみた
thehaigo
0
230
ElixirDesktop R&D 苦労話
thehaigo
1
94
AxonOnnxとLiveViewで作る AI・MLシステム
thehaigo
0
160
Other Decks in Programming
See All in Programming
Haze - Real time background blurring
chrisbanes
1
510
htmxって知っていますか?次世代のHTML
hiro_ghap1
0
340
testcontainers のススメ
sgash708
1
120
The Efficiency Paradox and How to Save Yourself and the World
hollycummins
1
440
Fibonacci Function Gallery - Part 1
philipschwarz
PRO
0
220
CSC305 Lecture 26
javiergs
PRO
0
140
useSyncExternalStoreを使いまくる
ssssota
6
1.1k
create_tableをしただけなのに〜囚われのuuid編〜
daisukeshinoku
0
260
range over funcの使い道と非同期N+1リゾルバーの夢 / about a range over func
mackee
0
110
快速入門可觀測性
blueswen
0
370
今年一番支援させていただいたのは認証系サービスでした
satoshi256kbyte
1
260
Monixと常駐プログラムの勘どころ / Scalaわいわい勉強会 #4
stoneream
0
280
Featured
See All Featured
The Cult of Friendly URLs
andyhume
78
6.1k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
132
33k
Optimizing for Happiness
mojombo
376
70k
Music & Morning Musume
bryan
46
6.2k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
665
120k
Raft: Consensus for Rubyists
vanstee
137
6.7k
How To Stay Up To Date on Web Technology
chriscoyier
789
250k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
45
2.2k
Put a Button on it: Removing Barriers to Going Fast.
kastner
59
3.6k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
6
520
Visualization
eitanlees
146
15k
Build The Right Thing And Hit Your Dates
maggiecrowley
33
2.4k
Transcript
8FCͷٕज़ελοΫͰ ϚϧνϓϥοτϑΥʔϜΞϓϦ։ൃΛՄೳʹ͢Δ &MJYJS%FTLUPQͷհ UIF@IBJHP
➤ Name: ོ౻།ষʢλΧϑδ ϢΠγϣʣ ➤ Twitter: @the_haigo ➤ Github: thehaigo
➤ Job: ૐཿ / ϑϦʔϥϯεΤϯδχΞ ➤ Title: ElixirMobileΦʔΨφΠβʔ ➤ Skill: Elixir, Phoenix, React, ReactNative ➤ ࠷ۙ࡞ͬͨͷ ➤ CallKitͱWebRTCΛ༻ͨ͠ΠϯλʔϗϯΞϓϦ About me
ຊΛࣥච͠·ͨ͠ʂʢڞஶͰʣ dষ"*.-ؔ࿈ ষύλʔϯϚονʹ͍ͭͯ ষೝূγεςϜʹ͍ͭͯ
ٕज़ॻలʢΦϯϥΠϯʣʹͩ͠·͢ʂ ͬͪ͜୯ஶ
&MJYJS.PCJMFͬͯͳΜͧʁ
ຊ
&MJYJSͰεϚϗΞϓϦΛ ࡞ΕΔͷΛ͝ଘͰ͔͢ʁ
&MJYJS%FTLUPQͱ &MJYS1IPFOJYͰϚϧνϓϥοτϑΥʔϜ։ൃ͕Ͱ͖ΔϥΠϒϥϦ܈ ֤04 で &MSBOHٴ び &MJYJSΛىಈ ͦͷ্Ͱ8FCΞ プ Ϧέʔγϣϯαʔ
バ ʔ1IPFOJYΛىಈ ֤04ͷ8FC7JFX(6*ϥΠ ブ ϥϦͷ8Y8JEHFU͔ΒΞΫηεͯ͠දࣔ ͍ΘΏΔ8FC7JFXΞϓϦέʔγϣϯܗࣜ ҧ͍දࣔ͢Δ8FCΞϓϦέʔγϣϯ͕ϩʔΧϧͰಈ͍͍ͯΔ͜ͱ
௨ৗ αʔόʔ 8FC7JFX 4XJGU,PUMJO &SMBOH7. ࣮ߦڥͷ7. &MJYJS ࣮ߦڥ 1IPFOJY 8"'
J04"OESPJE
&MJYJS%FTLUPQ J04"OESPJE 8FC7JFX 4XJGU,PUMJO &SMBOH7. ࣮ߦڥͷ7. &MJYJS ࣮ߦڥ 1IPFOJY 8"'
ϝϦοτ w 8"'ͷϦιʔεΛΫϥΠΞϯτଆ Ͱ͑Δ "-.-ʣ w ΦϑϥΠϯಈ࡞͕Մೳ w 8FCܥͷٕज़Ͱ։ൃͰ͖Δ w
ߏʹΑͬͯ"1*ෆཁ w 3/ 'MVUUFSʹൺͯωΠςΟϒ࿈ܞ ͕༰қ w ൿಗใͷѻ͍͕໘ w #DSZQUͳͲωΠςΟϒϥΠϒϥϦ ͷϥούʔϥΠϒϥϦ͕͑ͳ͍ w ग़དྷ͕ͯઙ͍ w όά͕͍ͬͯΔՄೳੑ w ظӡ༻Ͱͷϊϋෆ σϝϦοτ
ͲΜͳΈͰಈ͍͍ͯΔͷʁ w ֤04Ͱಈ͘&SMBOHϥϯλΠϜΛϏϧυ w /BUJWF#SJHF $ ܦ༝Ͱ&SMBOHΛىಈͦ͠ͷ্Ͱ&MJYJS 1IPFOJYΛىಈ w ϩʔΧϧωοτϫʔΫΛ্্ཱͪ͛ͯهʹίωΫγϣϯΛషΔ
w ֤8FC7JFXϥΠϒϥϦ͔Βଓ w ͋ͱͷࡉ͔͍ઃఆ8FC7JFXͱಉ͡
&MJYJS%FTLUPQ J04"OESPJE 8FC7JFX 4XJGU,PUMJO &SMBOH7. &MJYJS 1IPFOJY $ ܦ༝Ͱىಈ 7.্Ͱ&MJYJSىಈ
8FCαʔόʔىಈ 5$1ίωΫγϣϯΛషΔ
J04
"OESPJE
&SMBOHʹ͍ͭͯ w ฒߦॲཧࢦͷؔܕݴޠ w 04ͱผʹܰྔϓϩηεΛେྔʹ࡞Δ w Ϋϥογϡ͙ͯ͢͠࡞Γ͢ͷͰোੑ͕ߴ͘ϝϞϦޮྑ͍ w ฒྻॲཧΞΫλʔϞσϧΛ࠾༻ w
ͱిަػʢιχʔɾΤϦΫιϯʣͷγεςϜͰΘΕͨ w ࠷ۙ/JOUFOEPͷεϓϥτΡʔϯͰ࠾༻͞Ε͍ͯΔ
&MJYJSʹ͍ͭͯ w ฒྻॲཧࢦͷؔܕݴޠ w &SMBOH7. #&". ্Ͱಈ࡞͢Δ+BWBʹର͢Δ,PUMJOͳײ͡ w &SMBOHʹൺͯΏΔ;Θͳײ͡Ͱ3VCZʹ͍ۙॻ͖ຯ w
Ϋϥεແ͘ɺߏମͱॲཧϞδϡʔϧͷγϯϓϧͳߏ 8"'ͷ1IPFOJYɺ)PU8JSFܥͷ-JWF7JFXɺΈࠐΈͷ/FSWFT +VQZUFSܥͷ-JWFCPPLɺߦྻԋࢉ/Yɺσʔλॲཧ&YQMPSFSɺ"*.-"YPO
1IPFOJYʹ͍ͭͯ w ϑϧελοΫͳ8FCΞϓϦέʔγϣϯϑϨʔϜϫʔΫ w ϝϞϦޮ͕ྑ͘άϩʔεʹڧ͍ w 1JOUFSFTU1ZUIPO1IPFOJYͰΛʹू w 3FBDU7VFͰߏங͢ΔΑ͏ͳ41"ΛΑΓγϯϓϧʹߏஙͰ͖Δ-JWF7JFX w
ೝূػೳδΣωϨʔλΛඪ४ࡌ͠ɺࣗͰ؆୯ʹ֦ுՄೳ w 5BJMXJOEΛ࠾༻͠+4ͱͷ࿈ܞ༰қ
wγεςϜʹ&MJYJSΛಋೖ wNJMJPO ̏ԯԁʣઅ wαʔόʔΛݮগ wͷQZUIPOͷγεςϜΛ &MJYJS̐Ͱ͏ wγεςϜͷ৴པੑͱύϑΥʔϚ ϯεେ෯Ξοϓ &MJYJSΛಋೖͯ͠ίετݮ IUUQTQBSBYJBMJPCMPHFMJYJSTBWJOHT
ϑϩϯτΤϯυͷཱྀͷՌͯʹ-JWF7JFXʹͨͲΓண͍ͨ • 3FBDUKTͱ/FYUKTͰͷ։ൃʹർΕɺ γϯϓϧ͞ΛٻΊͯ3BJMTʹҠߦ • 3BJMTͰϑϩϯτΤϯυͱόοΫΤ ϯυͷ౷߹ͷ͠͞Λײ͡Δ • ࠷ऴతʹ&MJYJSͱ1IPFOJYΛબ͠ɺ γϯϓϧ͞ͱߴύϑΥʔϚϯεΛ࣮
ݱ • &MJYJSίʔυͷಡΈ֦͢͞ுੑ ͕͋Γɺ։ൃମݧ্͕ • ஶऀʹͱͬͯ&MJYJSཧతͳڥͱ ͳΓɺ3FBDUKTͷෛ୲ΛܰݮͰ͖ͨ IUUQTEFWUPEBOJFMCFSHIPM[GSPNOFYUKTUPSBJMTUIFOFMJYJSNZKPVSOFZUISPVHISFBDUKTCVSOPVUIE
&MJYJS%FTLUPQΞϓϦͷಛ w όοΫΤϯυ8FCΞϓϦͱಉ͡ݴޠɺಉٕ͡ज़ελοΫͰ։ൃՄೳ w -JWF7JFX 5BJMXJOEͰ֤छΞϓϦΛߏங w 5BJMXJOEͷࢿݯΛ͑ͯɺڞ௨ͨ͠6*Λૉૣ͘ߏங w QIYHFOMJWFͰ$36%ը໘ΛίϚϯυҰൃ
w QIYHFOBVUIͰೝূػೳίϚϯυҰൃ w ֎෦ͷ௨৴͕ͳ͚ΕΦϑϥΠϯͰಈ࡞Մೳ
̏ͭͷΞϓϦܗࣜ ελϯυΞϩϯߏ %#42-JUF
ΦϑϥΠϯͰಈ࡞Մೳ Ϋϥαόߏ "1*αʔόʔͱ ΫϥΠΞϯτΞϓϦͷ ैདྷͷΈ߹Θͤ "1*αʔόʔ ֎෦%#ΞΫηεߏ ΞϓϦͷσʔλϕʔεͷଓઌʹ֎෦ͷσʔλϕʔεΛࢦఆ͢Δ "1*࡞ෆཁ %#ෛՙΛߟྀͯ͠ಛఆػೳ͚ͩ"1*Λୟ͘͜ͱՄೳ ཧμογϡϘʔυ8FCΞϓϦΛσϓϩΠͯ͠ಉ࣌։ൃ͕༰қ
ωΠςΟϒͳػೳ༻Ͱ͖ͳ͍ʁ
/BUJWFػೳ+4֤04ͷ)PPLΛ༻ͯ͠Մೳ w +48FC"1* w Ґஔใ(FP-PDBUJPO"1* w ΧϝϥɺϚΠΫ.FEJB%FWJDFT"1* w δϟΠϩηϯα%FWJDF.PUJPO&WFOU w
֤04ͷIPPL w ,PUMJO8FC"QQ*OUFSGBDF w 4XJGU8,4DSJQU.FTTBHF)BOEMFS
1VTI௨ʁ
1VTI௨'JSFCBTFΛܦ༝ͯ͠৴Մೳ w &MJYJS%FTLUPQͱผʹ1IPFOJYαʔόʔΛཱͯΔ w "OESPJE J04Ͱ'JSFCBTF4%,ΛೖΕΔ w ৴༻σόΠετʔΫϯΛ1IPFOJYαʔόʔʹอଘ w ৴༻ͷϥΠϒϥϦ1JHFPOΛ༻֤ͯ͠ʹૹ৴
w ड৴࣌ʹ8FC7JFXͷಛఆͷϖʔδΛ։͘ॲཧΛߦ͏
࡞Γํ
w NJYQIYOFXCMPH w DECMPH w NJYFDUPNJHSBUF w ϥΠϒϥϦʹEFTLUPQ@TFUVQΛՃ w NJYEJQTHFU
w NJYEFTLUPQJOTUBMM w NJYEFTLUPQJPTTFUVQ w NJYEFTLUPQBOESPJETFUVQ δΣωϨʔλΛೖΕͯίϚϯυ͚ͩͰྃ
8FCΞϓϦέʔγϣϯϑϨʔϜϫʔΫ ʢ&MJYJS1IPFOJY Ͱ ຊ֨తͳεϚϗΞϓϦ͕࡞ΕΔʁʂ
࡞Γ·ͨ͠ "QQ4UPSF (PPHMF1MBZ
8FCμογϡϘʔυ͋ΔΑʂ IUUQTUSBSFDP fl ZEFW
ͲΜͳΞϓϦ͔ʁ w (PPHMF1MBDFT"1*Ͱݕࡧ͠ɺߦ͖͍ͨεϙοτɺߦͬͨεϙοτΛཧ w ֤04ωΠςΟϒػೳΛͬͯ(14ϩάΛऔಘ w (14ϩάΛ.BQ-JCSF্ʹϦΞϧλΠϜඳը͢Δ w อଘͨ͠εϙοτ͔ΒϓϥϯΛ࡞ w
νΣοΫΠϯػೳ w φϏήʔγϣϯػೳ
ΞϓϦߏ 1PTUHSF42- (14-PHHJOH ʢ%#ߴෛՙʣ "1* 8FC%BTICPBSE
&MJYJS%FTLUPQ`T1IPFOJY 4QPU 'PMEFS 3PVUF$36% %#ෛՙ
༻ͨ͠αʔϏε w 4FSWFS fl ZJP w %#IPTUJOH fl ZJP w
.BJM#SBWP w -PHPEFTJHODPN w %PNBJO͘͞ΒΠϯλʔωοτ
$*$%ʹ͍ͭͯ w $* w (JU)VC"DUJPOTͰ௨ৗͷ1IPFOJYΞϓϦέʔγϣϯͱͯ͠$*ΛճͤΔ w /BUJWFػೳʹؔͯ͠खಈςετ͔ΞϓϦ༻ͷϦϙδτϦΛ࡞͢Δඞཁ͕͋Δ w $% w
(JUIVC"DUJPOTجຊखಈͰߦͬͨͷͰະݕূ w "OESPJEΞϓϦॺ໊Λߦ͍BBCϑΝΠϧΛ"OESPJE4UVEJPͰ࡞ w J04ετΞϖʔδΛ࡞͠ɺ9DPEF͔Β"SDIJWFΛߦ͍JQBϑΝΠϧΛ࡞ɺΞοϓϩʔυ w 9DPEF$MPVEϑΥϧμߏతʹผϦϙδτϦΛ࡞͢Δඞཁ͕͋Δ
ϚωλΠζʹ͍ͭͯ w ՝ۚػೳࠓճ࡞͍ͯ͠ͳ͍͕ɺ8FCμογϡϘʔυ͕͋ΔͷͰ͔ͦ͜ Β4USJQF1BZNFOUΛ͏ͷ͕ແ w ֤ετΞͰ՝ۚΛߦ͏߹ωΠςΟϒػೳͱ࣮͕ͯ͠ඞཁ w ΞϑΣϦΤΠτϦϯΫ)5.-ͳͷͰσϑΥϧτͷϒϥβͰ։͘Α͏ʹ͢ Εେৎͦ͏
ηΩϡϦςΟ w "1*ΩʔͷൿಗใҰԠόΠφϦσʔλԽ͞Ε͍ͯΔ͕ɺΞϓϦϑΝΠϧʹಉ ࠝ͞Ε͍ͯΔͨΊൈ͔ΕΔඞཁ͕͋Δ w ରԠࡦɿಡԽ w ϥΠϒϥϦͰಡΈࠐΈ࣌ʹҎԼͷ༷ͳॲཧΛߦ͏ w ڥม໊Λແؔͳจࣈྻʹม͑Δ
w ൿಗใΛ҉߸Խ͠ɺϥΠϒϥϦ͔ΒಡΈऔΔࡍʹ෮߸ w ىಈ࣌ʹ҉߸Խͨ͠ใʹͯ͠औಘ w ىಈ࣌ʹ*%ΛTBMUʹͯ͠αʔόʔ͔Β҉߸Խ͞ΕͨൿಗใΛऔಘͯ͠෮߸