Skip to content
Damian Tarnawsky edited this page Oct 27, 2023 · 4 revisions

Extension for App Flow

Concept

The VS Code extension contains a set of rules that based on a project's package.json and other environmental files and settings it can make suggestions to fix common problems or help with migrations.

In App Flow there are also common problems with solutions that could be suggested that would help reduce the time to resolve an issue.

Design

App Flow requires a node console CLI application that can give these suggestions as part of the running of an app build. The VS Code Extension project can provide this by adding an additional project that imports the rules defined, takes inputs from App Flow and returns results (eg text suggestions).

Requirements

From App Flow we'll need:

  • The build output as text (which includes errors, warnings, etc)
  • Access to environment variables passed in that a node process may not have access to (to be determined but maybe the build stack name, etc)

MVP

A simple scenario is that errors are often embedded somewhere in the build logs. The output from a CLI tool could include the error in a standard json format or as text. Eg: { type: 'Swift Error', message: 'blar', location: { file: 'ios/blar.swift', line: 123, position: 0}}

Project Metrics

Concept

A project is built from dependencies like the framework (Angular, React etc.), the platform (Capacitor, Cordova), plugins and 3rd party dependencies. The health of the project is a summary of factors of those dependencies:

  • How far behind in major versions
  • Has an update been done to a dependency in the last year (does it look abandoned)
  • Is the dependency open source? commercially supported? internal? deprecated?

Based on these factors provide an overall health score (out of 100) for:

  • Platform
  • Framework
  • Plugins
  • Dependencies

Sample: metrics

Why

Quite often it is difficult for project owners to know when they should invest in maintenance of their application. Visually seeing this and setting a target can make the decision to improve easier and less bias to developer opinions. It can also be easy way for developers to argue that maintenance is important.

Clone this wiki locally