Flutter sur desktop Going beyond mobile 1 Qui suis-je ? Pierre - - PowerPoint PPT Presentation

flutter sur desktop
SMART_READER_LITE
LIVE PREVIEW

Flutter sur desktop Going beyond mobile 1 Qui suis-je ? Pierre - - PowerPoint PPT Presentation

Flutter sur desktop Going beyond mobile 1 Qui suis-je ? Pierre Champion @Drakirus tudiant : IA applique au Langage Naturel (NLP) Universit du Mans Background Mobile : Cordova Plugins Android Flutter :


slide-1
SLIDE 1

Flutter sur desktop

Going beyond mobile

1

slide-2
SLIDE 2

Qui suis-je ?

Pierre Champion @Drakirus Étudiant : IA appliquée au Langage Naturel (NLP) Université du Mans Background Mobile : Cordova Plugins Android Flutter : Drakirus/go-flutter-desktop-embedder

2

slide-3
SLIDE 3

Petit Rappel

3

slide-4
SLIDE 4

Nouveaux canaux de distribution

4

Flutter for :

  • Android
  • iOS
  • Linux
  • Windows
  • OSx

Exemple d'une application Flutter sur Linux

slide-5
SLIDE 5

Alternative viable à Electron ?

5

slide-6
SLIDE 6

Bénéfique pour le dev mobile

6

Émulateur :

  • Démarrage lent
  • Fixé à une résolution
  • RAM ~1 Go
  • App size ~700 Mo

Client Flutter Desktop :

  • Démarrage rapide
  • Runtime Redimensionnable
  • RAM ~100 Mo
  • App size ~20 Mo

Side Note: Development of Cordova plugins is a real pain.

slide-7
SLIDE 7

Architecture

7

Shells for :

  • Android
  • iOS

Embedder API Engine as a library API Developer Low level API

Engine + Embedder = Shell

slide-8
SLIDE 8

Let's build an simple Embedder !

8

slide-9
SLIDE 9

Compilation Flutter

9

Flutter uses Kernel Snapshot in the development stage.

4 files: isolate_snapshot_data ▪ vm_snapshot_data ▪ platform.dill ▪ kernel_blob.bin

slide-10
SLIDE 10

Compilation Flutter

10

slide-11
SLIDE 11

Flutter desktop requirements

11

  • Target Platform Override
slide-12
SLIDE 12

Flutter desktop requirements

12

  • Fonts
slide-13
SLIDE 13

Flutter desktop requirements

13

  • Platform Plugins
slide-14
SLIDE 14

Flutter application limitations

14

  • Dart VM Exceptions
  • Hovering / Cursor Changes / Scroll Wheel
slide-15
SLIDE 15

stateful hot reload ?!

15

Terminal - ✔ VS Code - ✔ IntelliJ - TBD

slide-16
SLIDE 16

Prebuild Embedders

16

google/flutter-desktop- embedding Drakirus/go-flutter-desk top-embedder gliheng/flutter-rs

Windows / Linux / Mac Windows / Linux / Mac Linux / Mac 1ans 6 mois 3 mois Plugins - ✔ Plugins - ✔✗ Plugins - ✔ @stuartmorgan @franciscojma86 @gliheng @Drakirus @GeertJohan

'PoolEvent'

slide-17
SLIDE 17

17

go embedder example

slide-18
SLIDE 18

18

go embedder example

slide-19
SLIDE 19

More to come

  • Texture API
  • AOT
  • Desktop look and feel
  • OSx Shell

19

slide-20
SLIDE 20

Sources

  • https://github.com/flutter/flutter/wiki/The-Engine-architecture
  • https://github.com/google/flutter-desktop-embedding
  • https://github.com/Drakirus/go-flutter-desktop-embedder
  • https://github.com/gliheng/flutter-rs
  • https://hackernoon.com/making-the-most-of-flutter-from-basics-to-customization-433171581d01
  • https://proandroiddev.com/flutters-compilation-patterns-24e139d14177
  • https://softwareengineeringdaily.com/2018/10/08/an-overview-of-flutter/
  • https://steveperkins.com/using-java-9-modularization-to-ship-zero-dependency-native-apps/
  • https://proandroiddev.com/flutters-compilation-patterns-24e139d14177

20

Questions ?