Application Starter Stack for Livecode

Welcome

* We are currently awaiting DUNS verification so that we may sign our executables for Windows and OS X.  Until then, there may be security issues running the stack on a recent MAC OS.  (If you really want to try to run it, here is how.  The AppStarter Demo stack is safe to run.)

AppStarterStack helps software entrepreneurs / developers to create production-ready multi-platform applications using the Livecode Engine. 

Every software needs an overall architecture for its user interface.  Settings, screen responsiveness, forms, editors, wizards, disk & http IO, error-checking,  and a multitude of other things.  Without a well thought-out architecture to house your application, you will inevitably suffer with lost time, increased cost and lost revenue.

No matter how “simple” and how powerful Livecode is, creating feature-complete professional software, for multiple platforms, is still quite time consuming, and filled with potential landmines.  Why not start with an architecture but retain total flexibility and control over the final product and the code you ship? 

The AppStarterStack saves you the time and effort of building those critical functions which house and support your application’s actual feature set. 

It was built with patience and with foresight, to enable us to build great software products quickly without rebuilding a similar architecture each and every time.

You can benefit from our care and diligence by having not a blank canvas to work with, but an application architecture that lets you focus almost entirely on the user inputs, outputs and processes that your full application or MVP needs. 

With Livecode and the AppStarterStack, you can prove your idea or create production ready software while others are still debating which platform to use.

Time-Saving Benefits

"Its not a library, its a starter stack."

Every application requires many of the same components, and no matter how great a tool you are using, there are lots of things to think about and plan.


With the AppStarterStack your starting point is different.  You are not starting with a blank canvas, but instead you are starting with a powerful architecture for production-ready, multi-platform applications.


See the Features list to learn what features your application already has the day you start.

Aside from its initial learning curve, the development journey with the AppStarterStack is solely focused on defining the interfaces and functions that your application needs and your users will love. 💗

The AppStarterStack is an architecture template for professional, multi-platform software.  If you know what you want to build, you can get straight to building your idea, its look, its interfaces and functions. 

The AppStarterStack is built for :

  • Continuous uptime
  • Non-blocking, Real Time Interfaces
  • Responsive UI
  • One codebase, all platforms
  • Complete flexibility 

It also contains lots of wrapped functions, referred to as one-liners, which help you use the power of the Livecode engine to turn your idea into reality even faster.

  • The entire AppStarterStack file is open, there are no encrypted script libraries
  • Your application's codebase will always be under your control.
  • You can easily change its default appearance, and make sweeping visual changes easily using code.
  • No limits are placed on what you do with your stack and the Livecode Engine.

  • Your application will look and function consistently on each platform for which it is built.
  • Your file will be able to test and build on all 5 major platforms.
  • So far, AppStarterStack has been built and tested on:
    ✔ Desktop Platforms: Windows, Mac OS X, Linux 'should work'  to the exclusion of the browser widget)
    ✔ Android: Several physical devices all the way back to Android 7
  • iOS builds will be tested and completed in June of 2022, but we expect everything to run well and similar to Android.
  • All tests went as expected and all stack functions preformed well.  Issues have been noted and will be fixed.

Stack Features

The AppStarterStack was designed from scratch to be a software architecture which enables us .. to build and iterate on simple or complex software projects in parallel.

  • It was built so we never start from scratch and never build the same basic features twice.
  • It was built to be performant and to use the Livecode Engine's strengths and avoid its ..... quirks.
  • It was built to build to all platforms from one file from the start and to always be ready to be built into a standalone for testing and demoing.  This enables faster feedback loops from users.
  • It was built to be so flexible that we could make completely unique applications while using the same underlying architecture.
  • It was created to enable a developer experience where one is making constant forward progress on the actual functions and interfaces of the software ; Almost from the very beginning.

There are many ways of building an architecture such as this, and all of them can work.  This one is not perfect, but it serves its purpose well, hopefully it can same you time and effort in your software development journey.

When we designed it we focused on these attributes

  • Having a robust feature set of stack functions that are common to a very wide range of applications.
  • Functional integrity and indefinite uptime
  • For sweeping visual changes across the entire application using code for easy theming.

The following is the architecture design ....  designed to give you as much freedom as possible.

 

Functionality Isolation

Individual application "tools (pages, sections)" are isolated to Livecode cards, making it easy to maintain distinct aspects of your app.

  • Card
    • Shared Background (Shared across all cards on the stack)
      • Background Image
      • Background Gradient
      • Array of 1 or more Browser Widgets
    • Card Content (The controls for the current tool)
    • Shared User Interface (Shared across all cards on the stack)
      • ...
      • Editors
      • Navigation Icons
      • ...
    • Datagrids (For technical reasons, Datagrids are kept in the top level of the hierarchy of each card)

  • Easily define multiple Navigation Bars and items using script
  • Easily switch between different navigation bars and layouts
  • Display up to 4 at one time (left,top,right,bottom)
  • Resizable
  • Navigation Items can include a Label, SVG Icon, or Image Icon

  • You can make your stack look the way you need to match your style, branding and color scheme.
  • You can use a background image or gradient that resize smartly to cover your stack without stretching.
  • Default appearances of buttons and controls are set using code, so you can quickly make sweeping visual changes across your stack.
  • You can use transparency to create interesting effects in the appearance of your stack

The AppStarterStack has a Task Scheduler which processes:

  • Loading / Saving Files in Chunks
  • Downloading HTTP (REST) Requests (returning Livecode array)
  • Downloading Internet Files (Into memory & to File)
  • S3 Object Upload / Download

There are also functions available for:

  • CRUD SQLite Key/Value Database
  • Blocking File Load
  • Blocking File Save

You can view the history and progress of all scheduled tasks using the Grid on the Engine Info card.

A "heartbeat" loop helps your user interface to update as soon as new data becomes available using update subscriptions.

  • Easily update cards, grids, or individual controls whenever an update is available.
  • Built to use concurrency, to be non-blocking, where loading and processing of data can occur while the user is navigating the stack and its various cards / tools.

The AppStarterStack has tons of helper functions to make your life easier, the stack itself contains examples and demos of all of them.  You will love the one liners that can do so much.

  • Alignment & Resizing of Controls
  • Hashing
  • Centering Text Vertical
  • Getting File Information
  • Setting Cursors
  • System Shell
  • Continuous Update Loop
  • Easy Encrypt / Decrypt functions
  • Auto File Processing on Load/Save
  • SetFont
  • Isolated & Global Flags
  • Auto Text Resizing
  • & lots more

 

  • Bandges are easy really easy. They are 'registered', on a per-card basis, using a single line of code.
  • They are updated just as easily with a single line of code

  • Show a custom Right-Click menu anywhere, anytime
  • All right-click commands are defined using code and  then simply triggered by a button on the right-click menu
  • With the AppStarterStack you get to customize a Right-Click menu and trigger it with a single line of code.

A Livecode "SuperGrid" is a Data-grid object that is:

  • Used to display several, completeley unique datagrids
  • It uses just a single "universal column"
  • This helps speed up datagrid development and re-usability.
  • It also helps in the performance of the Datagrid

The 3 datagrids on the Info card are an example of a Supergrid.

Easily communicate with your user by displaying an Overlay message which appears on top of every other control on your card.

  • Optional action button, triggers a command you specify.
  • If multiple messages are sent, one goes before the other.
  • Specify the color of the overlay's background
  • Specify the vertical position of the overlay message (top,center,bottom)

  • Display or Update a progress bar with 1 line of code.
  • The color of the progress bar goes from yellow to green. 
  • Set a progress bar's message and the units it uses
  • Have as many progress bars as you need, as they are addressed individually

  • If you change the image "Application Logo" of the about page, you can click it, to imbed it into the stack.  The same code will work on any image as long as it contains that snippet.
  • Double Right Click on a navigation icon to open the card script.
  • Don't create controls from scratch but copy existing ones.
  • If you want to create brand new unique controls to your project, use the "ResizeCard" handler on each card to work out its size and alignment when the size of the stack changes.
  • When modifying working on alignment of controls, save before you test the resize handler.
  • Always create the sizing and alignment of your UI elements first.  Then work on the functionality.
  • Feel free to delete all the cards you do not need except for the Resources card.  Its recommended to keep the "Info" card around, as it can help you to find problems.  Those cards are there are examples to learn from, so while you are learning the stack, it may be helpful to keep the example cards around.

The AppStarterStack includes a custom component called "Display Canvas" which was presented at the 2022 developer conference.  It is as yet undocumented and in some extreme conditions effects the stability of the Livecode engine in a really bad way.

For now, use this component at your own risk.

 The developer palette is a additional stack which contains some helpers to the functions of the AppStarterStack.  It is very simple and little work has been put into its appearance

It is intended to help you to accomplish some of the tasks easier.  But it kind of sucks.


This palette has been moved to become a AppStarterStack Developer Plugin, which can be updated and improved without affecting your code base.

 

I will be using the AppStarterStack for years to come, so I will definitely be updating this plugin on a regular basis to add functionality and time saving shortcuts.  Perhaps even other functionality I have not thought of yet.


I will use this to
improve my own and your developer experience for years to come.

Hello Visitor, welcome to the AppStarterStack website. This site is still under development, so please excuse any styling errors or still missing content.