Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Electron, Cordova, PWA – was, wann, wie und warum

Thorsten Hans
September 26, 2019

Electron, Cordova, PWA – was, wann, wie und warum

Slides from our Electron / Cordova / PWA talk at BASTA!2019 in Mainz

Write once, run anywhere – dieser alte Java-Traum ist dank Webtechnologien längst Realität geworden. Neuerdings haben Cross-Platform-Entwickler aber die Wahl zwischen altbewährten Ansätzen wie Apache Cordova und GitHub Electron, bei denen Web-Apps in native Container verpackt werden, und den neuen Progressive Web Apps (PWA), bei denen eine Webanwendung aus dem Browser heraus installiert wird. Optisch geben sich beide Methoden nicht viel, doch sie unterscheiden sich hinsichtlich der Verteilung und im Funktionsumfang. Electron-Experte Thorsten Hans und PWA-Professional Christian Liebel erklären Ihnen, für welche Anwendungsfälle sich PWAs eignen und wann Sie ergänzend oder alternativ zu Electron oder Cordova greifen sollten.

Thorsten Hans

September 26, 2019
Tweet

More Decks by Thorsten Hans

Other Decks in Technology

Transcript

  1. Electron, Cordova, PWA Was, wann, wie und warum Thorsten Hans

    @ThorstenHans Consultant Christian Liebel @christianliebel Consultant
  2. Hello, it’s me. Electron, Cordova, PWA Was, wann, wie und

    warum Christian Liebel Follow me: @christianliebel Blog: christianliebel.com Email: christian.liebel @thinktecture.com Cross-Platform & Serverless
  3. Focus: Cloud Native & Infrastructure as Code Consultant @ Thinktecture

    AG [email protected] [email protected] thinktecture.com thorsten-hans.com https://thns.io/slides @ThorstenHans Thorsten Hans Was, wann, wie und warum Electron, Cordova, PWA
  4. Electron, Cordova, PWA Was, wann, wie und warum BASTA! Spring

    2013 »Cross-platform and cross-device development will become the norm in the next few years.« Christian Weyer, 2014
  5. In 2019, the cross-platform story still works out – and

    it’s better than ever! Electron, Cordova, PWA Was, wann, wie und warum BASTA! 2019 One team One codebase Maximum reach
  6. Electron, Cordova, PWA Was, wann, wie und warum Responsive Linkable

    Discoverable Installable App-like Connectivity Independent Fresh Safe Re-engageable Progressive
  7. Cross-Vendor Initiative Led By… Electron, Cordova, PWA Was, wann, wie

    und warum Project Fugu – A More Capable Web »Let’s bring the web back – API by API« Thomas Steiner, Google
  8. Electron, Cordova, PWA Was, wann, wie und warum Project Fugu

    Contacts Picker Wake Lock API Picture in picture Native File System API Capability missing? http://bit.ly/new-fugu-request
  9. Example: Native File System API if ('chooseFileSystemEntries' in window) {

    const handle = await window.chooseFileSystemEntries(); const file = await handle.getFile(); // do something with the file } else { // use fallback API or disable feature in app } Electron, Cordova, PWA Was, wann, wie und warum Project Fugu Feature Detection Browser takes care of calling OS-level APIs
  10. - One single codebase, maximum reach - No app store,

    installation, third-party software, … required - Super easy deployment (FTP is enough, no app store reviews, redeployment via MSI, …) - App Store support for Microsoft Store & Google Play Store (TWA) - Fully backwards compatible Electron, Cordova, PWA Was, wann, wie und warum Advantages
  11. - No Apple App Store support (uploading PWAs is discouraged)

    - Web App Gap - not all native APIs are available on the web platform - expected to get smaller thanks to Project Fugu - not all web APIs are available in every browser - No control over execution environment - Requires an up-to-date browser If that’s an issue, web apps are still an option! Electron, Cordova, PWA Was, wann, wie und warum Disadvantages
  12. - Many desktop target platforms - Windows 7+, macOS 10.10+,

    Ubuntu, Debian, Fedora - macOS App Store, Microsoft Store, Snapcraft - Access to all native APIs - Well-defined runtime environment (Chromium and Node.js) - Integration scenarios with native applications Electron, Cordova, PWA Was, wann, wie und warum Advantages
  13. - Wrapper is large in size (“hello world” starts with

    ~100 MB) - Outdated Node.js & Chromium versions may pose security risks to users – developers have to take care of regular updates of the wrapper - Each Electron instance leads to RAM overhead (e.g. Slack) Electron, Cordova, PWA Was, wann, wie und warum Disadvantages
  14. - Supports app development for iOS, Android, macOS, UWP -

    Access to all native APIs - Official store deployments Electron, Cordova, PWA Was, wann, wie und warum Advantages
  15. - Plug-ins are often outdated - Cordova’s web and Electron

    platforms are inconvenient to use - Dependent on guidelines and goodwill of platform provider Electron, Cordova, PWA Was, wann, wie und warum Disadvantages
  16. Electron, Cordova, PWA Was, wann, wie und warum Target Platforms

    PROGRESSIVE WEB APPS CORDOVA ELECTRON + cars, smart fridges, …
  17. - Developers should aim for Progressive Web Apps - If

    required, web apps can be (additionally) wrapped in a Cordova or Electron container à your web app investment always pays off! - Consider Cordova and Electron as “uber-polyfills” that might become increasingly irrelevant in the future - Feature-detect modern web APIs and use them, fall back to Electron/Cordova APIs or alternatives if unavailable - Report your use cases and missing web capabilities Electron, Cordova, PWA Was, wann, wie und warum Recap