プロトタイピングするならFirebaseを使ってみよう

 プロトタイピングするならFirebaseを使ってみよう

Firebaseが非常に便利になってきており、プロトタイピングをするのにもって来いです。社内ハッカソン(プロトタイピング)でFirebaseをフルに利用した時に感じたことについてです。

91d36c66b64ce58f3e749d9d921aae69?s=128

Shuichi Nagao

August 07, 2018
Tweet

Transcript

  1. ϓϩτλΠϐϯά͢ΔͳΒ FirebaseΛ࢖ͬͯΈΑ͏ @ngo275 2018.8.7 1

  2. ࣗݾ঺հ •໊લɿӬඌमҰ (@ngo275) •ձࣾɿAnyPay •޷͖ͳݴޠɿSwift •࠷ۙ৮Ε͍ͯΔݴޠɿJSɾதࠃޠ •ωΠςΟϒΞϓϦͷ։ൃ (Swift / React

    Native) ΛϝΠϯʹɺόοΫΤϯυͱ͔ॻ͍ͨΓͯ͠· ͢ •࠷ۙݸਓͰ΋ΞϓϦग़͠·ͨ͠(ϚοϋϦʔμʔ) 2
  3. Α͋͘Δ࿩ •ΞϓϦͷϓϩτλΠϓΛͱʹ͔͘ૣ ͘࡞Γ͍ͨ •ͱ͸͍͑ɺαʔόʔ΋ΞϓϦ΋̍ਓ Ͱॻ͘ͷ͸ྲྀੴʹΩπΠɻɻ •'JSFCBTF͕ศརΒ͍͠ •۩ମతʹԿΛ࢖͏ͷͩΖ͏ɻɻ •(͋ɺAnalytics͸࢖ͬͨ͜ͱ͋ΔΑ 3

  4. ࿩͢͜ͱ •Firebaseͷػೳ঺հ •֓ཁ •Α͘࢖ΘΕΔαʔϏεͨͪ •FirebaseͰͷϓϩτλΠϐϯάΛ۩ମྫͰݟͯ ͍͘ 4

  5. ࿩͢͜ͱ •Firebaseͷػೳ঺հ •֓ཁ •Α͘࢖ΘΕΔαʔϏεͨͪ •FirebaseͰͷϓϩτλΠϐϯάΛ۩ମྫͰݟͯ ͍͘ 5

  6. Firebaseͷ֓ཁ͓͞Β͍ •2011೥ʹ࢝·ͬͨmBaasͰɺ2014೥ʹGoogleʹ ങऩ͞Εͨ •2017೥ʹΫϥογϡϨϙʔτ(Crashlytics)΍ ϕʔλ഑৴(beta)ͷαʔϏεΛఏڙ͍ͯͨ͠ Fabric͕Googleʹങऩ͞ΕɺFirebaseʹ౷߹ •ϞόΠϧΞϓϦ։ൃʹඞཁͳػೳΛఏڙ͢Δαʔ Ϗε •ΞφϦςΟΫεɺΫϥογϡϨϙʔτɺϓογϡ௨ ஌ɺσʔλϕʔεɺೝূػೳɺετϨʔδ…

    6
  7. ࿩͢͜ͱ •Firebaseͷػೳ঺հ •֓ཁ •Α͘࢖ΘΕΔαʔϏεͨͪ •FirebaseͰͷϓϩτλΠϐϯάΛ۩ମྫͰݟͯ ͍͘ 7

  8. FirebaseͷαʔϏεͨͪ Grow your business Improve app quality Build better apps

    8
  9. FirebaseͷαʔϏεͨͪ Grow your business Improve app quality Build better apps

    ίίΒ΁Μ͸
 ͱΓ͋͑ͣ
 ೖΕΔ͜ͱ͕ଟ͍ 9
  10. FirebaseͷαʔϏεͨͪ Grow your business Improve app quality Build better apps

    ࠨ্Λ࢖ͬͯ
 ϓϩτλΠϐϯά
 ͍ͯ͘͠!! 10
  11. Cloud Firestoreͱ͸ •֓ཁ •ࡶʹݴ͏ͱRealtime Databaseͷ্Ґޓ׵ •Ϋϥ΢υͷDBͰ಺෦͸GoogleͷDatastore •DBͷߋ৽Λ؆୯ʹϦΞϧλΠϜͰड͚औΔ͜ͱ͕Ͱ ͖Δ (web socketͱ͔ΛΘ͟Θ͟ॻ͔ͳ͍͍ͯ͘)

    •ར༻ྫ •νϟοτػೳ •ϓϨθϯεݕ஌ (ΦϯϥΠϯ͔Ͳ͏͔) 11
  12. Cloud Functionsͱ͸ •֓ཁ •AWSͷLambdaͱಉ͡αʔόϨεͷόοΫΤϯυ •node.jsͰίʔυΛॻ͍ͯupload͢Δͱ೚ҙͷλΠϛ ϯάͰͦͷίʔυΛ࣮ߦͰ͖Δ •ઌ೔ϕʔλ͕ͱΕͨ •ར༻ྫ •Firestoreʹॻ͖ࠐΈ͕͋ͬͨΒɺϓογϡ௨஌Λૹ Δ

    12
  13. Firebase Authenticationͱ͸ •֓ཁ •ΞϓϦ΁ͷϩάΠϯػೳΛ਺ߦͰ࣮૷Ͱ͖ΔΑ͏ʹ ͳΔ •ϩάΠϯϓϩόΠμ͸๛෋ •ϝʔϧɾి࿩൪߸ɾGoogleɾPlayήʔϜɾFacebookɾ TwitterɾGitHubɾಗ໊ •ϝʔϧΛૹͬͯϦϯΫΛ౿·ͤΔɺSMSΛૹ৴ͯ͠ೝূ ίʔυΛૹΔɺͱ͍͏͜ͱ͕FirebaseͰ؆୯ʹͰ͖Δ

    •Cloud StorageͳͲͷݖݶ΋؅ཧ͠΍͍͢ 13
  14. Cloud Storageͱ͸ •֓ཁ •AWSͷS3ͱಉ͡ͰɺGoogle൛ͷετϨʔδ •FirebaseΛ࢖͏ͱɺϑΝΠϧΞοϓϩʔυʹ͓͚ΔΞ Ϋηείϯτϩʔϧ΍ɺΞοϓϩʔυઌͷURLͷऔ ಘɾอଘͳͲ͕γʔϜϨεʹͰ͖Δ •ར༻ྫ •ϢʔβͷϓϩϑΟʔϧը૾౳ͷอଘ 14

  15. ࿩͢͜ͱ •Firebaseͷػೳ঺հ •֓ཁ •Α͘࢖ΘΕΔαʔϏεͨͪ •FirebaseͰͷϓϩτλΠϐϯάΛ۩ମྫͰݟͯ ͍͘ 15

  16. ϓϩτλΠϐϯάͱ͸ •ػೳͷ࣮ݱՄೳੑ •ͦͷػೳ͕ຊ౰ʹϢʔβʹͱͬͯՁ஋͋Δ΋ͷ ͳͷ͔ ➡͜ΕΒΛݕূ͢Δ͜ͱ͕໨తͰ͋ͬͯɺ࡞Δ ͜ͱ͕໨తͰ͸ͳ͍

  17. IoT ✘ iOSͷϓϩτλΠϐϯά •࡞Γ͍ͨ΋ͷ •ϚΠίϯͰGPS৘ใΛऔಘͯ͠αʔόʹૹΓଓ͚ɺ ͦͷσʔλΛΞϓϦͰϦΞϧλΠϜͰද͍ࣔͨ͠ •ݕূ͍ͨ͜͠ͱ •࣮ݱՄೳ͔ɺ৺஍Α͘GPS৘ใΛఏڙͰ͖Δͷ͔ •αʔόͱΞϓϦ͸̍ਓͰ࣮૷͢Δ 17

  18. શମߏ੒ Cloud IoT Core Cloud PubSub MQTT GPS ͜͜ΛͲ͏͢Δͷ͔ 18

  19. ैདྷͷํ๏ͰϓϩτλΠϐϯά Cloud IoT Core Cloud PubSub MQTT GPS API DB

    Cloud Storage 19
  20. ैདྷͷํ๏ͰϓϩτλΠϐϯά Cloud IoT Core Cloud PubSub MQTT GPS API DB

    Cloud Storage 20 APIΛ࡞Δͱ࣮૷ྔ͕େ෯ʹ૿͑Δ ϓϩτλΠϐϯάͳͷʹ! (ೝূɺσʔλͷCRUDɺϦΞϧλΠϜ௨৴)
  21. FirebaseͰϓϩτλΠϐϯά Cloud IoT Core Cloud PubSub MQTT GPS 21

  22. FirebaseͰϓϩτλΠϐϯά Cloud IoT Core Cloud PubSub MQTT GPS 22 Firebase෦෼͸࣮૷ྔ͕΄ͱΜͲͳ͍

    ΞϓϦͷ։ൃʹूதͰ͖Δ (ೝূɺσʔλͷCRUDɺϦΞϧλΠϜ௨৴)
  23. ·ͱΊ •αʔόͷίʔυΛॻ͔ͳ͍͜ͱʹΑΓΞϓϦͷ ࣮૷ʹूதͰ͖Δ •ϓϩτλΠϓͰݕূ͍ͨ͜͠ͱʹ࣌ؒΛׂ͚Δ •ϓϩμΫγϣϯར༻ྫ͕গͳ͘ӡ༻্ͷ஌ݟ͕ গͳ͍ͨΊɺେ͖ͳมߋʹڧ͍ͷ͔ෆ҆ •DBͷॻ͖ࠐΈΛΞϓϦ͔Β௚઀ߦ͏ͷ͸ා͍ •ѱҙͷ͋ΔϢʔβΛ஄͘ͷ͕೉͍͠ 23

  24. ίʔυͷࢀߟྫ(ެ։ͨ͠ΞϓϦ) •Firebase •Cloud Firestore •ಗ໊ϩάΠϯ •Cloud Storage •Firebase Cloud Messaging

    •Cloud Functions •Pring 24 https://github.com/mach-team/mach-reader-ios