Flutter desktop embedding for Linux

2ddbd112dbc8c6572fe79821584c1465?s=47 Kurun
December 10, 2019
450

Flutter desktop embedding for Linux

2ddbd112dbc8c6572fe79821584c1465?s=128

Kurun

December 10, 2019
Tweet

Transcript

  1. Flutter desktop embedding for Linux Flutter Meetup Tokyo #13 (2019/12/10)

    @kurun_pan
  2. • ࣗݾ঺հ • Flutter desktop embedding֓ཁ • ൃද͔ΒҰ೥ܦͬͨݱঢ়ͷڞ༗ʢLinux൛, mac OS൛ͷΈʣ

    • FlutterΞϓϦ͕ಈ͘࢓૊ΈʢLinux൛ͷΈʣ • ·ͱΊ Agenda
  3. • ຊۀ ‣ Software Engineer ✓ Linux Kernel, Driver, Middleware,

    ApplicationͳͲ ✓ ϑϧελοΫʁԿͰ΋԰ʁ ✓ ࠷ۙ͸UIϑϨʔϜϫʔΫؔ࿈ͷ͓࢓ࣄ • ϓϥΠϕʔτ ‣ AndroidΞϓϦ։ൃͱ͔ίʔυॻ͍ͨΓ ‣ ϒϥ΢βͷϨϯμϦϯάΤϯδϯʹ͍ͭͯษڧத Self-introduction @kurun_pan @Kurun-pan
  4. • Flutter Live 18 (2018/12) Ͱൃද • Windows/Mac/LinuxͰFlutterσεΫτοϓΞϓϦ͕࡞੒Մೳʢ≠FlutterΞϓϦ͕ಈ͘ʣ • github

    repo ‣ https://github.com/google/flutter-desktop-embedding Flutter desktop embeddingͱ͸ʁ IUUQTEFWFMPQFSTHPPHMFDPNFWFOUTqVUUFSMJWF
  5. ͱΓ͋͑ͣެࣜgithubΛோΊͯΈΔ

  6. Flutter desktop embeddingൃද͔Β1೥ IUUQTHJUIVCDPNHPPHMFqVUUFSEFTLUPQFNCFEEJOH ෆ҆ఆ ·ͩϓϩμΫτʹ͸࢖͑ͳ͍ͱॻ͍ͯ͋Δʜ

  7. Flutter desktop embeddingൃද͔Β1೥ IUUQTHJUIVCDPNHPPHMFqVUUFSEFTLUPQFNCFEEJOH NBD04Ҏ֎͸EFCVHϞʔυͷΈରԠ ʢBTTFSU PCTFSWBUPSZͳͲ͕༗ޮΒ͍͠ʣ

  8. Flutter desktop embeddingൃද͔Β1೥ IUUQTHJUIVCDPNHPPHMFqVUUFSEFTLUPQFNCFEEJOHCMPCNBTUFSQMVHJOT3&"%.&NE ϓϥάΠϯ௥Ճʹؔͯ͠ɺNBD04͸QVCTQFDZBNMͷฤूͷΈ Ұํɺ-JOVY͸.BLFpMFΛखಈͰฤूඞཁʢ8JOEPXT΋ಉ༷ʹखಈରԠ͕ඞཁʣ

  9. ͱΓ͋͑ͣಈ͔ͯ͠Έͨ

  10. • Πϯετʔϧ౳ͷखॱ͸Qiitaʹ·ͱΊ·ͨ͠ʢ࣌ؒͷؔ܎ͰׂѪʣ ‣ Linux ✓ https://qiita.com/kurun_pan/items/47c25a4b2425725bc199 ‣ macOS ✓ https://qiita.com/kurun_pan/items/9ac5bd6b61fd6081bcf0

    ؀ڥߏஙखॱͱαϯϓϧͷ࣮ߦํ๏
  11. αϯϓϧˍϓϥάΠϯΛಈ͔ͯ͠Έͨ -JOVY NBD04 %&#6(ͷจࣈ͕දࣔ͞Εͳ͍ μʔΫϞʔυʹ΋ରԠ ϓϥάΠϯؚΊׂͯͱී௨ʹಈ͍ͨʂ

  12. • ·ͣɺpubspec.yamlϑΝΠϧ΁ͷ௥ՃʢmacOS͸͜Ε͚ͩͰOKʣ • Linux൛ͷ৔߹ɺݱ࣌఺Ͱ͸Makefileͷखमਖ਼͕ඞཁ ‣ جຊ͸ҎԼͷ2୒ • ϓϥάΠϯͷඞཁͳιʔείʔυΛMakefileʹ௥Ճ • ϓϥάΠϯΛ୯ମͰϏϧυͯ͠.soϑΝΠϧΛϦϯΫ

    ϓϥάΠϯ௥Ճ࣌ͷ஫ҙ఺
  13. LinuxͰಈ͘࢓૊ΈΛ௥ͬͯΈͨ

  14. Flutter desktop embedding for Linuxͷ࢓૊Έ %BSUGSBNFXPSL 6TFSqVUUFS"QQMJDBUJPO EBSU  (-'8

    MJOVYqVUUFSFQIFNFSBMMJCqVUUFS@MJOVY@HMGXTP 0QFO(- )8 (16 98JOEPX4ZTUFN 'MVUUFS 1MVHJOT 6TFSNBJOMPPQ DQQ 3FHJTUFS1MVHJOT DQQ $ ίʔυ͔Βɺ qVUUFS'MVUUFS8JOEPX$POUSPMMFSΫϥεͰ΢Π ϯυ΢Λੜ੒͓Αͼ%BSUଆͷίʔυΛ࣮ߦ lqVUUFSSVOz΋͘͠͸lqVUUFSCVJMEMJOVYzίϚ ϯυΛ࣮ߦ͢Δ͜ͱͰɺQVCTQFDZBNMʹ௥Ճ͠ ͨϓϥάΠϯͷొ࿥ίʔυΛࣗಈੜ੒ ݸผʹϏϧυͯ͠ɺTPϑΝΠϧԽͯ͠ ϦϯΫ΋Մೳ (%, (5, 6*ϑϨʔϜϫʔΫͱͯ͠͸ɺ(-'8Λ ར༻͠ɺ΢Πϯυ΢ੜ੒ͱ6*ը໘ͷඳ ը΍ೖग़ྗΠϕϯτΛ࣮ݱ ϓϥάΠϯͷத਎ͷ࣮ଶͱͯ͠ɺ (5,ϑϨʔϜϫʔΫΛར༻
  15. ·ͱΊ

  16. • ׂͱී௨ʹಈ͍ͨ❗ • ͨͩɺ·ͩ੡඼Ͱ࢖͑ΔϨϕϧʹୡ͍ͯ͠ͳ͍ ‣ macOS > Linux/Windowsͷ༏ઌॱং ‣ ࢖͑ΔϓϥάΠϯ͕গͳա͗

    ✓ ݱঢ়ɺhttps://pub.dev/flutterͰ͸ͳ͘ɺgithubͰ࢑ఆ؅ཧ • LinuxωΠςΟϒͷ࢓૊Έ͸γϯϓϧͰࠓޙʹظ଴ ‣ ࠓͷରԠ͸࢑ఆͩͱݴ͍ͬͯΔͷͰɺࠓޙେ͖͘มΘΔՄೳੑ͋Γ ‣ ίϯτϦϏϡʔγϣϯͷνϟϯε͕ଟ͋͘Γͦ͏ • Flutter desktopͷ͍· ‣ https://github.com/flutter/flutter/wiki/Desktop-shellsʹํ਑ͱ͔εςʔλεؚΊͯॻ͔Ε͍ͯΔͷͰɺ ख़ಡ͢΂͠ ·ͱΊ
  17. Appendix

  18. ࣮ߦόΠφϦͷμΠφϛοΫϦϯΫϥΠϒϥϦ MEECVJMEMJOVYEFCVHUFTUCFE  MJOVYWETPTP Y⒎EBCE   MJCqVUUFS@MJOVY@HMGXTPIPNFHVFTUXPSLTQBDFqVUUFSEFTLUPQFNCFEEJOHUFTUCFECVJMEMJOVYEFCVHMJCMJCqVUUFS@MJOVY@HMGXTP YGFD 

     MJCDPMPS@QBOFM@QMVHJOTPIPNFHVFTUXPSLTQBDFqVUUFSEFTLUPQFNCFEEJOHUFTUCFECVJMEMJOVYEFCVHMJCMJCDPMPS@QBOFM@QMVHJOTP YGFD   MJCpMF@DIPPTFS@QMVHJOTPIPNFHVFTUXPSLTQBDFqVUUFSEFTLUPQFNCFEEJOHUFTUCFECVJMEMJOVYEFCVHMJCMJCpMF@DIPPTFS@QMVHJOTP YGFDDG   MJCNFOVCBS@QMVHJOTPIPNFHVFTUXPSLTQBDFqVUUFSEFTLUPQFNCFEEJOHUFTUCFECVJMEMJOVYEFCVHMJCMJCNFOVCBS@QMVHJOTP YGFDC   MJCXJOEPX@TJ[F@QMVHJOTPIPNFHVFTUXPSLTQBDFqVUUFSEFTLUPQFNCFEEJOHUFTUCFECVJMEMJOVYEFCVHMJCMJCXJOEPX@TJ[F@QMVHJOTP YGFD   MJCVSM@MBVODIFS@QMVHJOTPIPNFHVFTUXPSLTQBDFqVUUFSEFTLUPQFNCFEEJOHUFTUCFECVJMEMJOVYEFCVHMJCMJCVSM@MBVODIFS@QMVHJOTP YGFCF   MJCFYBNQMF@QMVHJOTPIPNFHVFTUXPSLTQBDFqVUUFSEFTLUPQFNCFEEJOHUFTUCFECVJMEMJOVYEFCVHMJCMJCFYBNQMF@QMVHJOTP YGFCCD   MJCHULTPVTSMJCY@MJOVYHOVMJCHULTP YGFCCG   MJCHELTPVTSMJCY@MJOVYHOVMJCHELTP YGFBGD   MJCQBOHPDBJSPTPVTSMJCY@MJOVYHOVMJCQBOHPDBJSPTP YGFBECD   MJCQBOHPTPVTSMJCY@MJOVYHOVMJCQBOHPTP YGFBCG   MJCBULTPVTSMJCY@MJOVYHOVMJCBULTP YGFB   MJCDBJSPHPCKFDUTPVTSMJCY@MJOVYHOVMJCDBJSPHPCKFDUTP YGFB   MJCDBJSPTPVTSMJCY@MJOVYHOVMJCDBJSPTP YGFB   MJCHEL@QJYCVGTPVTSMJCY@MJOVYHOVMJCHEL@QJYCVGTP YGFB⒎   MJCHJPTPVTSMJCY@MJOVYHOVMJCHJPTP YGFF   MJCHPCKFDUTPVTSMJCY@MJOVYHOVMJCHPCKFDUTP YGFDD   MJCHMJCTPVTSMJCY@MJOVYHOVMJCHMJCTP YGFG   MJC9TPVTSMJCY@MJOVYHOVMJC9TP YGFCE   MJCTUED TPVTSMJCY@MJOVYHOVMJCTUED TP YGF   MJCNTPMJCY@MJOVYHOVMJCNTP YGFF   MJCHDD@TTPMJCY@MJOVYHOVMJCHDD@TTP YGFDF   MJCQUISFBETPMJCY@MJOVYHOVMJCQUISFBETP YGFBG   MJCDTPMJCY@MJOVYHOVMJCDTP YGFF   MJCEMTPMJCY@MJOVYHOVMJCEMTP YGFB   MJC(-TPVTSMJCY@MJOVYHOVMJC(-TP YGFEF   MJCSUTPMJCY@MJOVYHOVMJCSUTP YGFGE   MJC9DVSTPSTPVTSMJCY@MJOVYHOVMJC9DVSTPSTP YGFEDD   MJC9JOFSBNBTPVTSMJCY@MJOVYHOVMJC9JOFSBNBTP YGFCD   MJC9SBOESTPVTSMJCY@MJOVYHOVMJC9SBOESTP YGFCF   MJC9YGWNTPVTSMJCY@MJOVYHOVMJC9YGWNTP YGFC   MJCMEMJOVYYTP YGFF   MJCHNPEVMFTPVTSMJCY@MJOVYHOVMJCHNPEVMFTP YGFC   MJC9JTPVTSMJCY@MJOVYHOVMJC9JTP YGFB   MJC9pYFTTPVTSMJCY@MJOVYHOVMJC9pYFTTP YGFF   MJCBULCSJEHFTPVTSMJCY@MJOVYHOVMJCBULCSJEHFTP YGFGE   MJCFQPYZTPVTSMJCY@MJOVYHOVMJCFQPYZTP YGFDD   MJCQBOHPGUTPVTSMJCY@MJOVYHOVMJCQBOHPGUTP YGFB   MJCGPOUDPOpHTPVTSMJCY@MJOVYHOVMJCGPOUDPOpHTP YGF   MJC9DPNQPTJUFTPVTSMJCY@MJOVYHOVMJC9DPNQPTJUFTP YGFF   MJC9EBNBHFTPVTSMJCY@MJOVYHOVMJC9EBNBHFTP YGFC   MJCYLCDPNNPOTPVTSMJCY@MJOVYHOVMJCYLCDPNNPOTP YGFDD  MJCXBZMBOEDVSTPSTPVTSMJCY@MJOVYHOVMJCXBZMBOEDVSTPSTP YGFGD   MJCXBZMBOEFHMTPVTSMJCY@MJOVYHOVMJCXBZMBOEFHMTP YGFED   MJCXBZMBOEDMJFOUTPVTSMJCY@MJOVYHOVMJCXBZMBOEDMJFOUTP YGFCC   MJC9FYUTPVTSMJCY@MJOVYHOVMJC9FYUTP YGFB   MJCGSFFUZQFTPVTSMJCY@MJOVYHOVMJCGSFFUZQFTP YGFFE   MJCUIBJTPVTSMJCY@MJOVYHOVMJCUIBJTP YGFF   MJCQJYNBOTPVTSMJCY@MJOVYHOVMJCQJYNBOTP YGFG   MJCQOHTPVTSMJCY@MJOVYHOVMJCQOHTP YGFE   MJCYDCTINTPVTSMJCY@MJOVYHOVMJCYDCTINTP YGFFB   MJCYDCTPVTSMJCY@MJOVYHOVMJCYDCTP YGFCF   MJCYDCSFOEFSTPVTSMJCY@MJOVYHOVMJCYDCSFOEFSTP YGFE   MJC9SFOEFSTPVTSMJCY@MJOVYHOVMJC9SFOEFSTP YGFDC   MJC[TPMJCY@MJOVYHOVMJC[TP YGFBF   MJCTFMJOVYTPMJCY@MJOVYHOVMJCTFMJOVYTP YGF   MJCSFTPMWTPMJCY@MJOVYHOVMJCSFTPMWTP YGFC   MJCNPVOUTPMJCY@MJOVYHOVMJCNPVOUTP YGFG   MJC⒏TPVTSMJCY@MJOVYHOVMJC⒏TP YGFEG   MJCQDSFTPMJCY@MJOVYHOVMJCQDSFTP YGFBE   MJC(-9TPVTSMJCY@MJOVYHOVMJC(-9TP YGFD   MJC(-EJTQBUDITPVTSMJCY@MJOVYHOVMJC(-EJTQBUDITP YGFC   MJCECVTTPMJCY@MJOVYHOVMJCECVTTP YGF   MJCBUTQJTPVTSMJCY@MJOVYHOVMJCBUTQJTP YGF   MJCIBSGCV[[TPVTSMJCY@MJOVYHOVMJCIBSGCV[[TP YGFFC   MJCFYQBUTPMJCY@MJOVYHOVMJCFYQBUTP YGFD   MJCEBUSJFTPVTSMJCY@MJOVYHOVMJCEBUSJFTP YGFB   MJC9BVTPVTSMJCY@MJOVYHOVMJC9BVTP YGFF   MJC9ENDQTPVTSMJCY@MJOVYHOVMJC9ENDQTP YGF   MJCCMLJETPMJCY@MJOVYHOVMJCCMLJETP YGFC   MJCTZTUFNETPMJCY@MJOVYHOVMJCTZTUFNETP YGF   MJCHSBQIJUFTPVTSMJCY@MJOVYHOVMJCHSBQIJUFTP YGFGB   MJCCTETPMJCY@MJOVYHOVMJCCTETP YGFE   MJCVVJETPMJCY@MJOVYHOVMJCVVJETP YGFCF   MJCM[NBTPMJCY@MJOVYHOVMJCM[NBTP YGF   MJCM[TPVTSMJCY@MJOVYHOVMJCM[TP YGFGD   MJCHDSZQUTPMJCY@MJOVYHOVMJCHDSZQUTP YGFF   MJCHQHFSSPSTPMJCY@MJOVYHOVMJCHQHFSSPSTP YGFDD  ͪΐͬͱͨ͠αϯϓϧͰ΋ґଘϥΠϒϥϦ͕ଟ͋͘Γͦ͏