This is the multi-page printable view of this section. Click here to print.

Return to the regular view of this page.

Overview of Logiak

Overview

1 - Logiak Overview

What is Logiak?

Logiak

Logiak is a lightweight 100% No Code system with which you can rapidly and robustly build cross-platform Apps without programming.

Logiak allows you to

Logiak Products

This is what Logiak consists in

  • a web application. This is where you login to create and manage project configurations, available as SaaS or on-prem,
  • Runner Apps for iOS and Android. With these Apps your configurations are transformed into running Apps.

Logiak-created Apps are available for web, iOS and Android (with Supabase ) and iOS and Android (with Firebase )

Benefits (in short)

  • Quick!
  • Fun!
  • Powerful!
  • Robust!

Key feature: Systems, not just Apps

When we say that Logiak allows you to build systems and not just Apps, we are referring to the fact that Logiak supports projects which involve various types of users collaborating together.

These users need to share a common database, but have different access to it, and different functionality.

Key feature: Declarative Logic

One of the main reasons why experts, for example those with specialist medical or legal knowledge, have been so able to create systems with Logiak is because at the heart of the system is the ability to express knowledge declaratively.

What is Logiak good for?

Logiak is good for when you have data, collect data, and want non-aggregate data to be processed in particular ways.

Let us call that Data Management

One might also use the term Case Management: when you deal with certain things or events and need to register/record them, and then process them individually in certain specified ways.

And Logiak is particularly useful when you need to have close attention to and reasonably complex processing of individual cases.

The clearest example of this is when you set out to provide Decision Support

Benefits (longer)

  • Building an App with Logiak is rapid and is therefore highly cost-effective
  • Using pre-existing components means you are not dealing with the fragility of new code ( robustness)
  • Logiak automatically prevents you making some of the mistakes common to programming. This also enhances robustness
  • Apps can be constructed by analytically-minded people without experience in programming, so this widens the pool of people within your organization who can do this. If someone can use Excel effectively, they are likely to find it possible to do the same with Logiak.
  • Sometimes there is knowledge/expertise which you want to build into an App and the very best way is to have the expert(s) themselves do that. Having an the expert communicate the knowledge to a programmer, brings communication and interpretation challenges which create inefficiencies at best, but which can prove to be insurmountable at worst.

Logiak Overview

Get started for FREE

You can get started with Logiak for FREE .

First thing to do is to build a functioning data managment App in three minutes !

2 - Logiak Approach

Logiak design philosophy

Pragmatism and detail

Everything is a trade-off, and Logiak embodies one particular trade-off. Which is it?

Many No Code systems focus on presentation and lack logical power. They may look exciting initially, but you can’t achieve the processing you need. You can link screens, but there is often not much more to it than that.

Logiak is the counter to this. It offers components which are not low-level UI components but high-level packets of functionality, from which Apps can be assembled in no time.

And, importantly, one of those Components is there to include Processes in the mix, and in a Logiak Process one is able to do very fine grained processing and updating of data.

In a Process, you can achieve logial complexity in a scaleable and maintainable way. It has been demonstrated that analytically minded non-programming experts can fashion their knowledge into useful interactive applications by developing Logiak Processes.

We think that Logiak is appropriate for organization-internal Applications.

Logiak is for programmers and non-programmers alike. Programmers will be aware of what time this saves them. Programmers will be aware not only of costs saved in building a system, but in maintaining one.

Logiak has two main user categories:

  • Those who want to create data handling Apps rapidly, robustly, flexibly
  • Those who want to create knowledge-based Apps, for example embodying regulatory or diagnostic knowledge and who need non-programming experts to be involved in their construction.

Logiak is for you if you need logically expressive and presentationally pragmatic.

Logically expressive

What we mean by this is: with Logiak, in particular with Processes, you can do a lot of the logical computation and numerical calculation you might want to do with code.

Logiak is expressive in that sense.

The Logic Just Flows

Process Logic is fine-grained, but there are logical possibilities not only in the Processes, but also in the Components and in their Flow .

  • So you can configure field conditions for Lists and Data Tables.

  • You can use switches in Actions components to enable and disable options for the user.

  • You can display/hide elements with Custom Layouts, based again on Switches.

  • You can also use Switches to make the Component Flow itself adaptive to the state of the data.

Software is hard

Logiak is offered with keen awareness of just how difficult building software is.

While programming languages and techniques are involving and improving all the time, programming remains, quite frankly, humbling.

No programming language which makes it easy. Some languages make it incrementally, marginally, easier.

At the same time, the demands for software are in a permanent exponential increase.

Logiak makes things easier

Logiak eases some of the complexity by removing coding from the equation.

Logiak doesn’t make your problem easier

Having said this, its important to say that Logiak doesn’t make the actual problem you are addressing simpler though.

You still need to be pretty analytically minded in order to successfully tackle problems of any complexity.

What does 100% NO CODE mean?

No code means you do NOT have to learn:

  • JavaScript
  • CSS
  • Python
  • React
  • Java

… or whatever

If you know some HTML you can use it, but you don’t need to.

If you know some Markdown, you can use it, but you don’t need to.

Logiak is a Lightweight SaaS

What we mean by this is Logiak seeks to keep out of your way.

It doesn’t want to be a burden for you, nor a chain around your neck.

Logiak seeks to help you to be pragmatic, agile, efficient.

3 - Logiak and Data

Logiak is hands-off with your data

Logiak is lightweight

Logiak is a lightweight service with which you create Apps to deploy to your backends.

That is: Logiak does not control your data, you do!

You set up the backend (with support from Logiak), and you have full control over that backend. Logiak has zero control.

Backend Parameters

When you set up the backend, you enter some parameters from the backend into Logiak.

These parameters are required so that your Apps, and the Logiak server on your behalf, can communicate with your backend, and but we affirm that the parameters are used solely for the purposes of your project.

Logiak’s minimal constraints on data model

How about the data model, are there some proprietary aspects to that?

No!

Logiak is designed to be minimally intrusive in how your design your data.

Here are the extent of the constraints:

  1. Each table has to have a primary key (this is hardly a constraint: it is good practice)
  2. Primary keys cannot be composite
  3. A table cannot have more than one foreign key to the same table

logiak_version system table

To support remote deployment of new versions, Logiak requires the addition of a single system table called logiak_version to your database.

This table affects nothing else - has no relationship with any other table - and can simply be deleted without problem should you decide to stop using Logiak

No data lock-in!

We have done as much as possible to ensure there is no data lock-in with Logiak.

When you deploy Logiak, you are creating or using a totally normal database, designed by you, one that you can continue to use with other technologies should you decide to stop using Logiak.

An advantage of this is that Logiak is a conceivable solution for someone who wants to build Apps to make use of an existing database.

4 - Protecting References

References

Maintaining References

The challenge

A major source crashes in software is the unseen broken references.

For example, let us suppose I call a function foo somewhere in my code.

It can happen that I am working on the same code months later and delete that function, forgetting all about the reference I had made to it.

Subsequently, my code crashes because of the call to foo.

In programming, this kind of bug often surfaces as a so-called Null pointer error

Automatic protection of references

Logiak automatically keeps track of all the references you establish as you are building your App, and prevents any of those references getting broken.

So you may find that you go to delete something and you can’t. Why? It will be because Logiak knows that you still have a reference to that something, and it will usually be able to tell you where that reference is.

Example from Process

Look at an example here.

In this video you will see there are two input questions, asking values for weight and height from the user.

Then we introduce an Update variable action, and the expression we enter makes use of both weight and height.

Elements become undeletable when referenced

As soon as this action is added, the trash icons disappear from beside the two input questions: you can’t delete them just now, because otherwise the Update Variable Action would lack a value it needs and would crash.

But you don’t need to worry about the crashing because Logiak has made it impossible to make that mistake - you can’t delete either of the two input questions as long as they are used.

Then the video shows that as soon as the Update variable action is deleted, the two input questions once again become deletable.

Automatic protection of references

Showing references - so you can delete them if you want

When something is not deletable, Logiak will also tell you why not - i.e. where is this thing being used at the moment?

Then, if you delete the sources of those references, the element will become itself deletable.

Where is this thing being used?

5 - Data Types

Data Types

Each data value has a type.

For example, it is important to identify whether something is a number or not, so that we can determine whether it can be used in a calculation.

Six main Data Types in Logiak

Here are the main data types which Logiak defines:

Two ancillary Data Types

There are two other data types:

  • media url
  • object instance

All Object fields have a data type

When you add fields to an Object, you have to specify a type for each field you add

When you view fields of an Object, you will see their names are preceded by data type icons

Object fields alphabetically

By default they appear in alphabetical order

Object fields by type

You can switch to view them grouped by type

All Process values have a data type

As with Object fields, all values in a Process have an associated type.

For example, if you add a variable, you are asked to specify which type of data the variable will hold.

Process variables by type

As with Object fields, when you are viewing Process values, you can view them grouped by type

DATE data type

Internally, dates are represented with large numbers - the number of milliseconds since 1 January 1970.

This might sound strange but it is the commonest way of representing dates

Reducing dates to numbers means that it is easy to calculate with dates.

We can add a week to a date (represented as a number), by simple addition of (7 * 24 * 60 * 60 * 1000) milliseconds.

Logiak supports you in these kinds of calculations, via the Expression Wizard.

We mention this here so that you are not surprised when the Expression Wizard produces ugly-seeming expressions containing very large numbers.

Present time

The value of the time which represents the current time, at the moment the user is using the App, is a special variable called now.

This expression gets you “now”

{special:now}

Mapping requires data type matching

When we use Process actions to create or update data, we do this by mapping Process values to Object fields.

Data type plays an important role here in ensuring Object fields get the right kind of data.

Number values are possible candidates for number fields, but text values aren’t, etc.

Mapping Logiak data types to database types

Object field datatypes in Logiak are abstract. The concrete reality is when an App is running on a device, using a specific operating system and a specific database.

So Logiak types correspond one-to-one with types in SQLite (when running on a mobile device) and Postgres (when running as web app, and for the Supabase backend).

6 - Switches

Switches

Switches

What we mean by switches is simply this:

Values of true/false fields of Object instances.

Clearly, each value is in one of two states, like a switch:

  • true
  • false

Used in workflow and other conditional behaviours

Switches are used in many places in the Component Flow to help you implement conditional behaviours.

You can make your App’s structure and functioning adapt according to the state of the data which the user selects and passes downstream