Codeless Creation of Decentralized Apps using the Crowd App Studio (Part 1)

BLOG: Part 1 of this 2 part series describes how the components of the Crowd App Studio enable codeless creation of decentralized apps

Craig Sproule — 12 February 2018

Creating Decentralized Apps using the Crowd App Studio

Crowd Machine is decentralizing centralized infrastructure and allowing anyone to participate in the decentralized economy. The Crowd Machine technology consists of a decentralized peer-to-peer network called the Crowd Computer.

The Crowd Computer is an app creation, deployment and execution platform. It enables developers and non-developers to create sophisticated blockchain and decentralized apps. Embedded within the Crowd Computer is a development technology called the Crowd App Studio.

The Crowd App Studio has removed the need to understand how to write code, and allows anyone to deliver sophisticated decentralized apps that meet any requirement. For future reference, we’ll refer to anyone who uses the Crowd App Studio as a developer, regardless of whether they know how to write code or not.

The Crowd App Studio: A Codeless App Development Environment

The Crowd App Studio is the user interface that allows developers to create and manage apps on the Crowd Computer. It’s a comprehensive development environment that provides all the tools necessary to build any type of decentralized app required.

The Crowd App Studio removes the need to understand how to write code by introducing a natural language expression capability.

The Crowd App Studio allows developers to draw their logic on the screen as a series of steps replacing the need to write code. For each step, they can add additional capability by having the Crowd App Studio ask questions that helps it understand what specific things they want the app to do.

The developer can run the question-answer process as many times as they want and each time they do so an additional piece of logic is created. The questions themselves are simple to understand and the logic that is created can be read like a sentence. The whole process makes it much easier to create sophisticated apps and it’s very fast to create them, up to 45x faster in some cases.

Patterns, Activities and Packages replace code

All apps exhibit behaviors where each behavior represents some form of functionality. In traditional app development, developers interpret requirements and then write lines of code in a development environment to implement functionality.

Patterns

The Crowd App Studio is different, it allows developers to model behaviors as a Pattern, rather than writing code. Patterns are a diagrammatic presentation of logic that represents an app requirement. They are composed of one or more abstract types known as an Activity.

Activities and Packages

An Activity is a logical block that acts on one or more sets of data. The data containers applied to an Activity are known as Packages and they contain artefacts of data termed an Attribute. The approach allows a ‘class’ like representation to be modelled, against which executable logic can be applied. Furthermore, Packages can be sourced from external systems and represented virtually within the Activity. This allows execution of remote system functionality and corresponding data.

The following diagram depicts the relationship between Patterns, Activities, Packages and Attributes. Each Pattern contains at least one Activity, which in turn contains one or more Packages. Packages are intelligent containers that hold Attributes of data. The approach provides a method of modelling relationships. An Activity can contain multiple top-level Packages, which act independently of one another. Where a Package is hierarchically related to another Package, a relationship is formed that causes automated linking of data and functionality.

By combining a set of Patterns, an app is formed. The unique approach removes the requirement to understand any form of computer language or the traditional intricacies of app development. This accelerates the pace of app delivery by removing the development and unit testing steps of the app lifecycle, allowing a developer to go directly from requirements to user acceptance testing.

Activities can be joined together using Links. Links allow unlimited ‘if-then-else’ type logic to be applied to the movement between Activities and define the pathway through which runtime execution will occur. They also provide a means by which exception conditions can be modelled. The approach enables visualization of conditional branching within a Pattern.

Each Activity type contains a set of preformed capabilities native to that type. Activity types are described in the table below.

Activities act to reduce the amount of effort required to create functionality in an app. They are templates that allow a developer to define Activity specific properties that drive their final behavior. By defining the properties, an Activity will function in the Pattern as instructed.

The following screen capture illustrates a Pattern. Each Activity in a Pattern acts as a template for a specific behavior. Developers configure an Activity to perform the desired task instead of writing code.

Natural Language Expressions

All Activities enable logic to be defined against them. The logic takes the form of a natural language expression where the expression utilizes the developer-defined properties to act upon the Activity Definition — the Packages and Attributes associated with the Activity.

Crowd Machine’s natural expression logic alleviates the need to understand a computer language and dramatically accelerates the implementation of an app. It is comprehensive and unlimited in its capacity to define any form of logic required. It is driven by an expert-system style approach whereby the developer responds to questions posed based upon responses to previous questions and Package relationship context. All expressions begin with a root node question set and branch conditionally from that point. Complex expressions are also supported and include access to a vast library of internal and third-party methods that may be applied. The expert system driving the construction of an expression restricts the developer from creating code bugs. It enforces strict type checking and removes the ability to create problematic conditions such as infinite loops.

Crowd Machine contains many pre-built expressions that accelerate the development process. It also allows for third party expressions to be called giving the developer access to any external services they require.

Expression dependency analysis is undertaken on behalf of the developer. This allows the developer to focus on the logic and not on the sequence in which it must be applied. Orphaned expressions are also identified automatically and excluded from the execution process.

UI Design

The Crowd App Studio contains a forms design environment for the creation of any ‘look and feel’ required. The forms designer allows complete customization of experience across multiple form factors. It natively supports responsive design against specific device resolutions.

Class definitions and style sheets can be graphically defined and applied to form controls. Natural expression logic can also be used to customize user experience at runtime. There is a large library of native form control types that can be drawn upon during the design experience to ensure that developers can accommodate a variety of design outcomes.

The following screen capture is of the Crowd Machine Page Designer. It is a comprehensive design interface allowing any form of UI to be created. The Crowd Virtual Machine supports responsive design when rendering experiences.