74

Cross-Platform Desktop Apps with Electron (CodeStock Edition)

Embed Size (px)

Citation preview

Page 1: Cross-Platform Desktop Apps with Electron (CodeStock Edition)
Page 2: Cross-Platform Desktop Apps with Electron (CodeStock Edition)

Up Ahead

• What is Electron?

• Why desktop?

• Crash course

• Tips

Page 3: Cross-Platform Desktop Apps with Electron (CodeStock Edition)

.NET + Mono + Xamarin

Pros:• Shared .NET code base

Cons:• Xamarin Mac !== Xamarin iOS/Android

• Native UI is hard• Deployment• Licensing

Page 4: Cross-Platform Desktop Apps with Electron (CodeStock Edition)
Page 5: Cross-Platform Desktop Apps with Electron (CodeStock Edition)

Electron

Pros:

• HTML + CSS + JavaScript

• Node.js + Chrome

• No deployment dependencies

Page 6: Cross-Platform Desktop Apps with Electron (CodeStock Edition)
Page 7: Cross-Platform Desktop Apps with Electron (CodeStock Edition)

Electron

Cons:

• HTML + CSS + JavaScript

Page 8: Cross-Platform Desktop Apps with Electron (CodeStock Edition)

History

• Created by GitHub for Atom

• Formerly Atom Shell

• Active since January 2013

• 1.0 release May 2016

• 1.2.6 release July 6th

Page 9: Cross-Platform Desktop Apps with Electron (CodeStock Edition)

Electron Features

• Rapid development

• Themes

• Shared code/UI

• Deployment + “silent” updates

• Native UX

Page 10: Cross-Platform Desktop Apps with Electron (CodeStock Edition)

Why Desktop Apps?

• Offline• Printers, devices,

other local hardware

• On-premises• Internal, LOB

• Edit local files

• App Store• Kiosk

• Desktop > Intranet

• Sometimes it “just feels right”

Page 11: Cross-Platform Desktop Apps with Electron (CodeStock Edition)

Desktop App Ideas• Disconnected data entry• Editor• Time management• Media player• Email client• Messaging, collaboration• Kiosk• Mapping, route planner• Social media client• Calendar

• Bulk media editor• File management, backup• Document generation,

reading• Audio/video conferencing• Games

Page 12: Cross-Platform Desktop Apps with Electron (CodeStock Edition)

Atom

Page 13: Cross-Platform Desktop Apps with Electron (CodeStock Edition)
Page 14: Cross-Platform Desktop Apps with Electron (CodeStock Edition)
Page 15: Cross-Platform Desktop Apps with Electron (CodeStock Edition)
Page 16: Cross-Platform Desktop Apps with Electron (CodeStock Edition)

Nylas N1

Page 17: Cross-Platform Desktop Apps with Electron (CodeStock Edition)
Page 18: Cross-Platform Desktop Apps with Electron (CodeStock Edition)
Page 19: Cross-Platform Desktop Apps with Electron (CodeStock Edition)
Page 20: Cross-Platform Desktop Apps with Electron (CodeStock Edition)

> npm install electron-prebuilt> touch main.js> touch index.html

Page 21: Cross-Platform Desktop Apps with Electron (CodeStock Edition)

( main.js )

Page 22: Cross-Platform Desktop Apps with Electron (CodeStock Edition)

( main.js )

Page 23: Cross-Platform Desktop Apps with Electron (CodeStock Edition)

( main.js )

( index.html )

Page 24: Cross-Platform Desktop Apps with Electron (CodeStock Edition)

( main.js )

( home.html )( editor.html )( settings.html )

Page 25: Cross-Platform Desktop Apps with Electron (CodeStock Edition)

main.js

Page 26: Cross-Platform Desktop Apps with Electron (CodeStock Edition)

main.js

Page 27: Cross-Platform Desktop Apps with Electron (CodeStock Edition)

main.js

Page 28: Cross-Platform Desktop Apps with Electron (CodeStock Edition)

main.js

Page 29: Cross-Platform Desktop Apps with Electron (CodeStock Edition)

main.js

Page 30: Cross-Platform Desktop Apps with Electron (CodeStock Edition)

main.js

Page 31: Cross-Platform Desktop Apps with Electron (CodeStock Edition)

main.js

Page 32: Cross-Platform Desktop Apps with Electron (CodeStock Edition)

main.js

Page 33: Cross-Platform Desktop Apps with Electron (CodeStock Edition)

index.html

Page 34: Cross-Platform Desktop Apps with Electron (CodeStock Edition)

index.html

> electron main.js

Page 35: Cross-Platform Desktop Apps with Electron (CodeStock Edition)

index.html

Page 36: Cross-Platform Desktop Apps with Electron (CodeStock Edition)

index.html

Page 37: Cross-Platform Desktop Apps with Electron (CodeStock Edition)

index.html

Page 38: Cross-Platform Desktop Apps with Electron (CodeStock Edition)

index.html

Page 39: Cross-Platform Desktop Apps with Electron (CodeStock Edition)

index.html

Page 40: Cross-Platform Desktop Apps with Electron (CodeStock Edition)

index.html

Page 41: Cross-Platform Desktop Apps with Electron (CodeStock Edition)

index.html

Page 42: Cross-Platform Desktop Apps with Electron (CodeStock Edition)

index.html

Page 43: Cross-Platform Desktop Apps with Electron (CodeStock Edition)
Page 44: Cross-Platform Desktop Apps with Electron (CodeStock Edition)

main.js

Page 45: Cross-Platform Desktop Apps with Electron (CodeStock Edition)

main.js

Page 46: Cross-Platform Desktop Apps with Electron (CodeStock Edition)

main.js

Page 47: Cross-Platform Desktop Apps with Electron (CodeStock Edition)
Page 48: Cross-Platform Desktop Apps with Electron (CodeStock Edition)
Page 49: Cross-Platform Desktop Apps with Electron (CodeStock Edition)
Page 50: Cross-Platform Desktop Apps with Electron (CodeStock Edition)
Page 51: Cross-Platform Desktop Apps with Electron (CodeStock Edition)
Page 52: Cross-Platform Desktop Apps with Electron (CodeStock Edition)
Page 53: Cross-Platform Desktop Apps with Electron (CodeStock Edition)
Page 54: Cross-Platform Desktop Apps with Electron (CodeStock Edition)

Process modules

• app• ipc• dialog• menu, menu-item• power-monitor

• tray

Page 55: Cross-Platform Desktop Apps with Electron (CodeStock Edition)

Render modules

• ipc

• remote

• web-frame

Page 56: Cross-Platform Desktop Apps with Electron (CodeStock Edition)

Modules available to both

• clipboard

• crash-reporter

• native-image

• screen

• shell

Page 57: Cross-Platform Desktop Apps with Electron (CodeStock Edition)

Recommended Tools

• electron-debug• electron-reload• electron-packager• electron-builder• electron-updater• electron-mocha

Page 58: Cross-Platform Desktop Apps with Electron (CodeStock Edition)

Devtron

Page 59: Cross-Platform Desktop Apps with Electron (CodeStock Edition)

Test your app

Page 60: Cross-Platform Desktop Apps with Electron (CodeStock Edition)

Boilerplate Projects

• electron-boilerplate

• electron-react-boilerplate

Page 61: Cross-Platform Desktop Apps with Electron (CodeStock Edition)

electron-prebuilt-compile

• ES6/ES7 (Babel), TypeScript, CoffeeScript

• React.js

• LESS• Jade• CSON

Page 62: Cross-Platform Desktop Apps with Electron (CodeStock Edition)
Page 63: Cross-Platform Desktop Apps with Electron (CodeStock Edition)

photonkit.com

Page 64: Cross-Platform Desktop Apps with Electron (CodeStock Edition)
Page 65: Cross-Platform Desktop Apps with Electron (CodeStock Edition)

Building for Windows

• Windows 7/Server 2008 R2 minimum (https://dev.modern.ie)

• Visual Studio 2015 Community

• Python 2.7• Node.js• Git

Page 66: Cross-Platform Desktop Apps with Electron (CodeStock Edition)

Building for Mac

• OS X 10.8+

• Xcode 5.1+

• Node.js

• pyobjc (only if using Python installed with Homebrew)

Page 67: Cross-Platform Desktop Apps with Electron (CodeStock Edition)

Building for Linux

• Python 2.7

• Node.js

• Clang 3.4+

• GTK+ & libnotify dev headers

Page 68: Cross-Platform Desktop Apps with Electron (CodeStock Edition)

Tips

• Use CSS default cursor

• -webkit-user-drag:none• -webkit-user-drag:text• Keep windows open

Page 69: Cross-Platform Desktop Apps with Electron (CodeStock Edition)

Local Storage

• Read/write .json files – Pro tip: use fs-jetpack

• nedb

• pouchdb

Page 70: Cross-Platform Desktop Apps with Electron (CodeStock Edition)

Relational DB Storage

• seriate

• pg

• mysql

• oracledb

Page 71: Cross-Platform Desktop Apps with Electron (CodeStock Edition)

From here…

https://github.com/sindresorhus/awesome-electron

Pluralsight Course: Rob Conery’s “Electron Playbook”

http://electron.atom.io

Page 72: Cross-Platform Desktop Apps with Electron (CodeStock Edition)
Page 73: Cross-Platform Desktop Apps with Electron (CodeStock Edition)

12:55 PMRoom 200-C

Page 74: Cross-Platform Desktop Apps with Electron (CodeStock Edition)