Skip to content
This repository was archived by the owner on Jan 29, 2021. It is now read-only.

Framework

Cornelius Kölbel edited this page Oct 25, 2019 · 12 revisions

Basic Idea

The usage of a framework should basically help us with two things:

  • Make development for iOS and Android simpler (reuse as much code as possible)
  • Customization

Review frameworks

  • Flutter (Google/ Dart - "Mixture of Java and JS", since 2018)

    • code is compiled in byte code (JIT during development, hot reloads)
    • Firebase without problems
    • Customization via Dart-File /Themes
    • Languages (Title, About) via JSON file
    • documentation: ++
    • IDE: Android Studio
    • BSD 3-clause
    • tests: integrated: Unit tests, Widget tests, Integration tests.
  • React-Native (Facebook/ Javascript, Typescript, since 2015)

    • Javascript interpreted
    • Firebase with plugin, which currently suffers a version change
    • Customization via kind-of-css
    • Languages (Title, About) via Plugin with Javascript Object
    • documentation: +
    • IDE: WebStorm (-)
    • MIT
    • tests via plugins
  • both

    • no template - UI is coded
    • QR Code via plugins
    • Secure Storage via plugins: TODO check a bit deeper?

Todos

  • Check the Secure Storage handling
  • PoC for style exchange

Requirements

Used components

The following components are used by the apps and must be doable with the framework:

  • Firebase (for push notifications)
    • reacting to events while the app is not running
  • Scanning QR-Codes
  • Secure Storage
  • asynchronous HTTPS Connection
  • converting e.g. Hex to binary

Customization

The framework should allow us to customize the app more freely, things that should be customizable are:

  • colors
  • icons / logos
  • position of screen elements
  • title of the app
  • "about" information (containing a custom text)
  • custom language
  • custom constrains: e.g. forcing to use password, constraining number / kind of tokens, constrain if tokens can be manually added, only allowing tokens from a specific source

For better user-experience the customization should be possible via a web page. Ideally a preview of the application is available.

Other Aspects

  • programming / template language
    • how is the UI created (e.g. html, xml, css, programing)
    • how common are the languages
  • documentation:
    • tutorials
    • sample code
    • articles
    • installation
  • IDE support for languages:
    • what IDEs support the framework
    • syntax highlighting
    • static code analysis
    • highlighting
    • code completion
    • debugging
  • on the market since when...
  • actively developed
  • license
  • maintainer
    • what additional services are offered (e.g. SLAs)
  • what other target devices are supported (e.g. web)
  • how are components (see) integrated
    • part of core library or through other libraries
    • how are they licensed
  • how are device features (storage, camera) accessed
  • what is the expected performance of the apps
    • ahead-of-time-compilation
    • just-in-time-compilation
    • interpreter
  • how are languages / translations handled
  • how big will the apps be
  • possibility to use android or iOS native UI elements / code
  • is testing supported (and if so how)
    • (J)Unit tests
    • UI tests
Clone this wiki locally