.. index:: architecture, product Scolvo Development Platform ====================================== The Scolvo Development Platform is a mobile-specific application development platform that empowers any developer to build employee-facing mobile applications for enterprise clients radically faster. It also includes Scolvo script, a custom domain-specific, Javascript-like language powering the platform. .. index:: features Features ~~~~~~~~ * Pre-defined business objects - We have a list of building blocks - business objects, built-in functions - ready to be used shortening the development time. * Access native mobile functions - Without your developers needing to understand Android or iOS programming knowledge details. * Offline-first - Apps created with Scolvo Development Platform sync data when the devices are online, enabling you to use the full functionality of the last synced version offline as well (and sync data back as soon as the device comes back online again). * Flexible business logic - Depending on where a certain process is efficient to run you may implement it as a client or backend logic the same way. All the script features are available in all components. * Steep learning curve - The Scolvo language is a JavaScript-like language. With our documentation and learning materials, a team can be up and running in less than a week. * Suitable for web apps as well - Although we are primarily focused on building mobile apps, you can easily use the Scolvo Development Platform to create web apps. .. index:: architecture Architecture ~~~~~~~~~~~~~ The Scolvo Development Platform (in a standard set-up) consists of following components: - Nginx proxy (proxy in docker-compose) - Auth service (Keycloak) (auth in docker-compose) - Auth Database (used by Keycloak) (authdb in docker-compose) - Rabbit mq (mq in docker-compose) - Backend (be in docker-compose) - Backend Database (bedb in docker-compose) - Back-office server (admin in docker-compose) - Webview server (webapp in docker-compose) - Optionally Storage service (local file system as cloud function backend) (storage in docker-compose) - Android client - iOS client - Browser based client for back-office - Browser based client for mobile compatible responsive view. (*) .. image:: images/scolvo_high_level_architecture.png :width: 600 :alt: Scolvo Architecture :class: with-border Scolvo script, Interpreter, SVM, built-in functions --------------------------------------------------- Many of the clients contains Scolvo Interpreter supporting Scolvo scripts powered by many built-in functions: - The Interpreter component executes Scolvo scripts and supports many built-in functions (check details in :ref:`Interpreter built-in functions`). It is embedded by other components where project specific business logic is in use. - The Backend has an embedded Interpreter extended with many backend specific built-in functions (check details in :ref:`Backend built-in functions`). - The Scolvo Virtual Machine (further referred as SVM) component encapsulates an Interpreter, extending it with UI handling, native function callbacks and a set of built-in functions (check details in :ref:`Scolvo Virtual Machine built-in functions`). - A UI supporting client (Android, iOS, Back-office session, Webapp session) has an embedded SVM, and it implements the native function callbacks. One script to rule them all ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The features of the Scolvo Development Platform are implemented in all client types and these features are used by the Scolvo Scripts. You can focus on implementing the domain-specific part of your project while the platform masks the complexity of generating the frontend for mobile and web, plus creating a backend for your applications. This also means, if a business logic is implemented in one of the clients, then it is easy to move the code part to another client type. Design consistency across platforms ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The platform currently only supports material UI which means that the frontend elements you define look consistent without any extra effort.