Ruby on Rails + Cloud Firestore のハイブリッド構成で構築するリアルタイム・チャット機能

0b8ad408b31cb9d5cff2828086c65d58?s=47 temoki
September 20, 2019

Ruby on Rails + Cloud Firestore のハイブリッド構成で構築するリアルタイム・チャット機能

Mobile Act OSAKA #11 の発表資料です。
https://mobileact.connpass.com/event/141009/

iOSDC 2019 のプロポーザルで採択されなかった方です。
https://fortee.jp/iosdc-japan-2019/proposal/32e83116-d340-431b-9603-7d891a355926

0b8ad408b31cb9d5cff2828086c65d58?s=128

temoki

September 20, 2019
Tweet

Transcript

  1. 3P3 $MPVE'JSFTUPSFͷ ϋΠϒϦουߏ੒Ͱߏங͢Δ ϦΞϧλΠϜɾνϟοτػೳ .PCJMF"DU04","  5PNPLJ,PCBZBTIJ!UFNPLJ

  2. ࣗݾ঺հ

  3. $PQZSJHIU˜TUNO JOD"MMSJHIUTSFTFSWFE ࣗݾ঺հ 3 Tomoki Kobayashi Twitter/GitHub @temoki 2009.1 iPhone

    3GͰΞϓϦͷ։ൃΛ࢝ΊΔ 2015.1 ϑΣϯϦϧגࣜձࣾʹೖࣾ ໊ݹ԰ࢧࣾͰΞϓϦͷڞಉ։ൃʹैࣄ Mobile Act NAGOYA Λ্ཱͪ͛ 2018.10 גࣜձࣾελϝϯʹೖࣾ ૑ۀࣄۀ TUNAG ͷΞϓϦ։ൃʹैࣄ
  4. IUUQTDUZPIBUFOBCMPHDPNFOUSZOBHPZB@JU@NBQ@ <ग़య>$ZDMF5FDI-PH αΠΫϧςοΫϩά !D@UZP ໊ݹ԰ωοτܥϕϯνϟʔ஍ਤΛඳ͍ͯΈͨ य़

  5. $PQZSJHIU˜TUNO JOD"MMSJHIUTSFTFSWFE גࣜձࣾελϝϯ 5 w ૑ۀɿ೥݄ w ໊ࣾɿ4UBS.FNCFST w ਓ਺ɿ໊ʙ

    w ຊࣾɿ໊ݹ԰ ُౡ  w ࢧࣾɿ౦ژେࡕ෱Ԭ w ࣄۀɿ56/"(
  6. None
  7. $PQZSJHIU˜TUNO JOD"MMSJHIUTSFTFSWFE ૑ۀࣄۀ56/"(ʢπφάʣ 7 wࣾ಺੍౓Λத৺ʹͨ͠اۀ޲͚4/4 wΤϯήʔδϝϯτܦӦʹΑΓʮਓͱ૊৫ʯΛڧ͘͢Δ wಋೖاۀ͸ࣾΛ௒͑ɺ ਺ສਓͷϢʔβʔ͕ར༻த

  8. 8

  9. ຊ೔ͷςʔϚ

  10. $PQZSJHIU˜TUNO JOD"MMSJHIUTSFTFSWFE ຊ೔ͷςʔϚ 10 J04%$Ͱ ࠾୒͞Εͳ͔ͬͨํͷ ϓϩϙʔβϧͷڙཆ

  11. $PQZSJHIU˜TUNO JOD"MMSJHIUTSFTFSWFE ࠾୒͞Εͨํ 11

  12. 56/"(J04ΞϓϦ νϟοτػೳͷϦϓϨʔε

  13. $PQZSJHIU˜TUNO JOD"MMSJHIUTSFTFSWFE νϟοτػೳͷϦϓϨʔε 13 w56/"(͸3VCZPO3BJMT 3FBDUͰߏ੒ wJ04"OESPJEΞϓϦ͸શͯΨϫωΠςΟϒͩͬͨ wνϟοτػೳ͔ΒωΠςΟϒԽΛਐΊΔ

  14. $PQZSJHIU˜TUNO JOD"MMSJHIUTSFTFSWFE νϟοτػೳͷϦϓϨʔε 14 νϟοτͷ࠷ॏཁ՝୊ ʮϦΞϧλΠϜߋ৽ʯ

  15. $PQZSJHIU˜TUNO JOD"MMSJHIUTSFTFSWFE νϟοτػೳͷϦϓϨʔεϦΞϧλΠϜߋ৽ 15 wϙʔϦϯάʢݱঢ় ʣ wϓογϡ௨஌ʢ0''ʹͰ͖Δ ʣ w8FC4PDLFUʢ࣮૷ίετେ͖Ί ʣ

    wϦΞϧλΠϜ%#Ϋϥ΢υαʔϏε
  16. $PQZSJHIU˜TUNO JOD"MMSJHIUTSFTFSWFE νϟοτػೳͷϦϓϨʔεϦΞϧλΠϜߋ৽ 16

  17. $PQZSJHIU˜TUNO JOD"MMSJHIUTSFTFSWFE νϟοτػೳͷϦϓϨʔε$MPVE'JSFTUPSF 17 wεέʔϥϒϧ  wϦΞϧλΠϜΞοϓσʔτ  wΦϑϥΠϯαϙʔτ

  18. $PQZSJHIU˜TUNO JOD"MMSJHIUTSFTFSWFE νϟοτػೳͷϦϓϨʔε$MPVE'JSFTUPSF 18 3P3Ͱ%#ɾ3&45"1* ͢Ͱʹ͋Δ

  19. 3P3 $MPVE'JSFTUPSF ϋΠϒϦουߏ੒

  20. $PQZSJHIU˜TUNO JOD"MMSJHIUTSFTFSWFE 3P3 'JSFTUPSFϋΠϒϦουߏ੒ 20 wσʔλߋ৽ طଘͷ3&45"1* wσʔλࢀর $MPVE'JSFTUPSF wσʔλͷྲྀΕ͕Ұํ޲

  21. $PQZSJHIU˜TUNO JOD"MMSJHIUTSFTFSWFE 3P3 'JSFTUPSFϋΠϒϦουߏ੒ 21 3&45"1* σʔλࢀরܥ "1* σʔλߋ৽ܥ "1*

    "84 "VSPSB 8PSLFS σʔλಉظ༻ δϣϒىಈ $MPVE 'JSFTUPSF ಉظ ϦΞϧλΠϜɾΞοϓσʔτ
  22. $PQZSJHIU˜TUNO JOD"MMSJHIUTSFTFSWFE 3P3 'JSFTUPSFϋΠϒϦουߏ੒ 22 ࣮૷ͷϙΠϯτ

  23. $PQZSJHIU˜TUNO JOD"MMSJHIUTSFTFSWFE ϋΠϒϦουߏ੒ͷ࣮૷ϙΠϯτ 23 ΞϓϦଆͰͷ+0*/ $MPVE'JSFTUPSF΁ͷಉظ ಉظλΠϜϥάˍσʔλ؂ࢹൣғ

  24. $PQZSJHIU˜TUNO JOD"MMSJHIUTSFTFSWFE ϋΠϒϦουߏ੒ͷ࣮૷ϙΠϯτ 24 ΞϓϦଆͰͷ+0*/ $MPVE'JSFTUPSF΁ͷಉظ ಉظλΠϜϥάˍσʔλ؂ࢹൣғ

  25. $PQZSJHIU˜TUNO JOD"MMSJHIUTSFTFSWFE ϋΠϒϦουߏ੒ͷ࣮૷ϙΠϯτ'JSFTUPSF΁ͷಉظ 25 wηΩϡϦςΟϧʔϧઃఆͰΞΫηε੍ݶ wσʔλಉظࣦഊ΁ͷߟྀʢϦτϥΠલఏʣ w/P42- σʔλ͸ฏୱԽʢ ΍Γ͗͢஫ҙʣ Ϣʔβʔςʔϒϧ

    *% ໊લ  ՖՐചਓ  Րༀ࡞ਓ  Ϛϧνଠ࿠ Ϣʔβʔ෦ॺϚοϓ Ϣʔβʔ *% ෦ॺ*%         ෦ॺςʔϒϧ *% ໊લ  ՖՐ෦  Րༀ෦ Ϣʔβʔ ίϨΫγϣϯ *% ໊લ ෦ॺ  ՖՐചਓ <ՖՐ෦>  Րༀ࡞ਓ <Րༀ෦>  Ϛϧνଠ࿠ <ՖՐ෦ Րༀ෦> "84"VSPSB 42- $MPVE'JSFTUPSF /P42-
  26. $PQZSJHIU˜TUNO JOD"MMSJHIUTSFTFSWFE ϋΠϒϦουߏ੒ͷ࣮૷ϙΠϯτ 26 ΞϓϦଆͰͷ+0*/ $MPVE'JSFTUPSF΁ͷಉظ ಉظλΠϜϥάˍσʔλ؂ࢹൣғ

  27. $PQZSJHIU˜TUNO JOD"MMSJHIUTSFTFSWFE ϋΠϒϦουߏ੒ͷ࣮૷ϙΠϯτΞϓϦଆͰͷδϣΠϯ 27 ֤σʔλͷ4OBQTIPU-JTUFOFS 3Y4XJGUͷετϦʔϜʹม׵ ߹੒ܥͷΦϖϨʔλͰδϣΠϯ 4OBQTIPU -JTUFOFS 4OBQTIPU

    -JTUFOFS 4OBQTIPU -JTUFOFS Ϣʔβʔ Ұཡ ॴଐ͢Δ ϧʔϜҰཡ ϧʔϜผ طಡ৘ใ ϧʔϜҰཡ ը໘༻σʔλ $PNCJOF -BUFTU 0CTFSWBCMF 0CTFSWBCMF 0CTFSWBCMF
  28. $PQZSJHIU˜TUNO JOD"MMSJHIUTSFTFSWFE ϋΠϒϦουߏ੒ͷ࣮૷ϙΠϯτ 28 ΞϓϦଆͰͷ+0*/ $MPVE'JSFTUPSF΁ͷಉظ ಉظλΠϜϥάˍσʔλ؂ࢹൣғ

  29. $PQZSJHIU˜TUNO JOD"MMSJHIUTSFTFSWFE ϋΠϒϦουߏ੒ͷ࣮૷ϙΠϯτλΠϜϥάͱ؂ࢹൣғ 29 wಉظͷλΠϜϥά ‣ ϝοηʔδૹ৴ ԾͰද͔ࣔͯ͠ΒಉظΛ଴ػ ‣ ϧʔϜ࡞੒

    ಉظΛ଴ػͯ͠ϧʔϜը໘΁ wσʔλͷ؂ࢹൣғ ‣ ϧʔϜ಺ͷ਺ઍϝοηʔδͷ؂ࢹ͸ʜ  ‣ ࠷৽/݅ ৽ن௥ՃϝοηʔδͷΈߋ৽Λ؂ࢹ ‣ ݹ͍ϝοηʔδ͸ϖʔδωʔγϣϯ
  30. ฐࣾϒϩάͰ͞Βʹৄ͘͠

  31. $PQZSJHIU˜TUNO JOD"MMSJHIUTSFTFSWFE $MPVE'JSFTUPSFͰطଘػೳͷҰ෦ΛϦϓϨʔε͠·ͨ͠ 31 IUUQTTUNODPKQUFDI

  32. $PQZSJHIU˜TUNO JOD"MMSJHIUTSFTFSWFE νϟοτػೳΛ7*1&3ΞʔΩςΫνϟͰ։ൃͨ͠࿩ 32 56/"(J04ΞϓϦͷ IUUQTTUNODPKQUFDI

  33. ࠓޙ΋.PCJMF"DUΛ ΑΖ͓͘͠ئ͍͠·͢