Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Webの技術スタックで マルチプラットフォームアプリ開発を可能にするElixirDeskto...
Search
Yuisho Takafuji
October 29, 2024
Programming
2
1.2k
Webの技術スタックで マルチプラットフォームアプリ開発を可能にするElixirDesktopの紹介
Yuisho Takafuji
October 29, 2024
Tweet
Share
More Decks by Yuisho Takafuji
See All by Yuisho Takafuji
Elixirでスマホ開発の現在
thehaigo
0
50
サクッと画像分類アプリを作ってみる
thehaigo
0
300
ElixirMobile#2 ElixirDesktopの前説
thehaigo
0
190
ElixirDesktop is Production Ready?
thehaigo
0
150
スマホで動く「GPS地図アプリ」はElixirDesktopで割とサックリ作れる
thehaigo
0
150
Phoenix 1.7とElixirDesktopでスマホアプリを作る セットアップ編
thehaigo
0
250
ElixirConf繋がりでLiveViewNativeやってみた
thehaigo
0
290
ElixirDesktop R&D 苦労話
thehaigo
1
120
AxonOnnxとLiveViewで作る AI・MLシステム
thehaigo
0
210
Other Decks in Programming
See All in Programming
AIコードレビューがチームの"文脈"を 読めるようになるまで
marutaku
0
310
Full-Cycle Reactivity in Angular: SignalStore mit Signal Forms und Resources
manfredsteyer
PRO
0
180
非同期処理の迷宮を抜ける: 初学者がつまづく構造的な原因
pd1xx
1
610
Microservices Platforms: When Team Topologies Meets Microservices Patterns
cer
PRO
1
930
ハイパーメディア駆動アプリケーションとIslandアーキテクチャ: htmxによるWebアプリケーション開発と動的UIの局所的適用
nowaki28
0
340
AI時代もSEOを頑張っている話
shirahama_x
0
230
CSC509 Lecture 14
javiergs
PRO
0
220
宅宅自以為的浪漫:跟 AI 一起為自己辦的研討會寫一個售票系統
eddie
0
480
新卒エンジニアのプルリクエスト with AI駆動
fukunaga2025
0
150
GeistFabrik and AI-augmented software development
adewale
PRO
0
260
CloudNative Days Winter 2025: 一週間で作る低レイヤコンテナランタイム
ternbusty
7
1.9k
なあ兄弟、 余白の意味を考えてから UI実装してくれ!
ktcryomm
10
11k
Featured
See All Featured
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
22k
It's Worth the Effort
3n
187
29k
The Language of Interfaces
destraynor
162
25k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.8k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.3k
Stop Working from a Prison Cell
hatefulcrawdad
273
21k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
132
19k
GraphQLの誤解/rethinking-graphql
sonatard
73
11k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.1k
BBQ
matthewcrist
89
9.9k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3.2k
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ʹͯ͠αʔόʔ͔Β҉߸Խ͞ΕͨൿಗใΛऔಘͯ͠෮߸