Develop Decentralized Cross-platform Apps - Software Engineering Exercise 2020-2021

Spring week 8

  • localnative_iced progress
  • Git branching management
    • Gitflow
    • AoneFlow
  • Code review
    • qrcode-rust
    • druid view_switcher, widget_gallery example

Spring week 7

  • git remote add upstream
  • demo runebender
  • Code review
    • iced tour example

Spring week 6

  • Code review
    • iced todos example
    • druid game_of_life example

Spring week 5

  • TodoMVC
  • Code review of iced qr_code example
    • Rust module, struct and trait

Spring week 4

  • git branch
    • tig, gitk
    • merge request

Spring week 3

  • Spike
    • druid layout
    • Windows registry
  • SMART goals framework

Spring week 2

  • OKR, Agile framework
  • Spike QR code in druid and iced

Spring week 1

  • Roles in software project
  • Software license
    • AGPL
  • Rust GUI frameworks
    • druid
    • iced
      • qr code

Fall week 15

  • Fall review
  • GitLab issues

Fall week 14

  • Electron
    • share V8 JavaScript Engine with Chrome
    • npm entry point
    • npm run start/dev
  • review n
    • N_PREFIX

Fall week 13

  • git
    • gitk
    • tig
    • merge vs rebase
  • build localnative-electron release artifact
  • n

Fall week 12

  • shell script $ variables
  • regex search and replace
  • lock file package-lock.json and Cargo.lock
  • script/release-appimage
    • ln -s /bin/sed gsed
    • n
    • npm i -g electron-builder

Fall week 11

  • Code review of browser extension
    • browser extension manifest.json
    • popup.html and popup.js
    • app manifest app.localnative.json setup
  • Software license
  • md5 code checksum

Fall week 10

  • Browser Extension Components & Data Flow
    • DOM (HTML, CSS, JavaScript)
    • Browser API
  • .idea folder
  • Markdown

Fall week 9

  • Introduction to Local Native desktop application
    • Electron
    • npm
    • Node.js
    • Neon
  • App manifest of browser extension
    • Location of native messaging app manifest file
    • Browser security

Fall week 8

  • Communication between web extension and localnative-web-ext-host binary - stdin, stdout
  • Review environment variable PATH
    • echo $PATH
    • export PATH in ~/.bashrc
    • env
    • source ~/.bashrc
  • Review IDEA Rust plugin to build Cargo targets
    • rustup
    • rustc
    • cargo clean, cargo build

Fall week 7

  • sqlite3 attach another database
    • Concept of consistency in ACID
  • Local Native table creation
    • SQLite table constraints
      • not null, unique, primary key, autoincrement
  • Linus Torvalds quotes on data structures

Fall week 6

  • SQLite
    • sqlite3 command line tool
    • DB Browser for SQLite
  • Concept of stdin, stdout
    • pipe |
    • output redirection >
  • Local Native demo syncing from iOS to Mac Desktop

Fall week 5

  • Local Native browser extension and desktop application demo
  • Local Native Rust core library entry point and crate type
  • Local Native build script
    • Atom editor
    • script/set-version example
      • Symbolic link: gsed example
      • Git GUI: tig, gitk, gitg

Fall week 4

  • git clone localnative repo
  • Setup rustup and cargo
  • Setup IDEA with Rust plugin
  • Environment variables and $PATH

Fall week 3

  • Setup dotfiles
    • git clone use https protocol
  • Install Toolbox
    • IDEA Community
    • Android Studio
    • PyCharm Community
  • Install Atom

Fall week 2

  • Install Ubuntu 20.04 LTS in VirtualBox 6.1
    • Unchecked Enable Audio
  • Installed Docker Desktop

Fall week 1

  • Introduction to Local Native Apps
  • Local Native high level diagrams
  • Ubuntu (Dual Boot preferred for student not using Mac) - video