Forms, Reports, Apps

Build and deploy rapidly. Use offline, online, on-premises.

  Blog

Blog
Friday, January 19, 2018PrintSubscribe
Dark Theme and Client/Server Configuration

Code On Time release 8.6.12.0 introduces the new Theme Engine with support for custom themes. The new engine comes with new “Dark” theme. Now developers can choose from 70 color combinations provided by 2 themes and 35 accents.

We have also renamed Settings/ Web Server Configuration section Settings / Client & Server.

We have extended the client framework with the foundation for “inline editing” in grids/cards/list. Keep reading to find more.

Dark Theme

An example of  Dark theme with Construction accent.

An example of  Dark theme with Construction accent in app with Touch UI.

This is an app with Dark theme in Vantage accent.

This is an app with Dark theme in Vantage accent. The app was created with Code On Time app generator.

Here is a bootstrap-based page in an app with Dark theme and Aquarium accent. We have implemented new “software breakpoints” for bootstrap content to enable correct rendering of bootstrap content in modal pages and the upcoming split screens. The menu is not displayed on the toolbar if every page with icon is referenced in the Tab Bar at the bottom of the screen.

Here is a bootstrap-based page in an app with Dark theme and Aquarium accent.  The app is implemented with Touch UI.

Client & Server

Project configuration section in Settings previously called Web Server Configuration is now called Client & Server.

image

Client & Server section allows selecting the front end for your app. The default option is the Web Browser. This option is already familiar to developer using Code On Time. The app generator will start the default web browser of the operating system.

image

Two additional options Generic App and Custom App will start a native app either based on Chromium Embedded Framework (all versions of Windows with API compatible with Windows 7) or Universal Windows Platform (Windows 10 and above).

image

The native custom or generic app will install JavaScript, CSS, HTML, Fonts, and Images of your application on the device by downloading them from the server. IIS Express is the server that developers work with to test their applications.

Entire application framework is installed on the device in the native mode. Native app loads local pages in a platform-specific web view. Local pages will request data from the remote server (IIS Express in development mode). The main advantage of native apps is faster load time and ability to interact with the device.

We are launching a new product called Offline Sync Add-On that will enable native app to work in a completely disconnected or “offline” mode. It will perform preemptive downloading of data on the device. No changes to the server-side application will be requires. Any app created with Code On Time and deployed to a server will work in a completely offline mode with the help of the add-on.

The rollout of native apps will begin with Generic App for Windows 7 and Universal Windows Platform.

Custom apps for the same platform will become available in February of 2018. Offline Sync Add-On is expected to become available in the same time frame.

Generic and Custom apps for iOS will become available in March 2018, which will be followed by Android and MacOS.

Release Summary

The following features and enhancements are included in the release:

  • Theme engine has been extended to support multiple themes with accents. The new theme called Dark is introduced. It can be combined with any of the 35 accents.
  • Data fields with HyperlinkFormatString are displays as links in forms. TouchUI
  • SQL business rules use the connection string name specified in the data controller if any.
  • Bootstrap responsiveness is now based on "software" breakpoints calculated for each page in Touch UI.
  • Bootstrap responsiveness is fixed app-min-lg in Classic UI.
  • Method dataView.tagged() does not assign tag cache if there are no tags defined
  • Any view tagged as history-search-none will not retain values in filter, quick find, advanced search and will also forget selected view if different from the default.
  • The following configuration of ~touch-settings.json will disable the search history globally in the lookups.
    {
      "history": {
        "lookup": {
          "search": false
        }
      }
    }
    
  • Section on the project settings Web Server Configuration has been renamed to Client & Server. It allows configuring the front-end on the development that will be used to preview the app. Supported options “Browser”, “Generic”, and “Custom” apps.
  • Running an app created with Unlimited Edition in debug mode of Visual Studio will automatically link “debugging” versions of the JavaScript libraries.
  • Client library now includes uniqcode.js to allow better parsing of text with non-Latin characters.
  • Removed the code related to the legacy transaction management in the server-side framework. It will be replaced with the new code to support ODP (Offline Data Processor).
  • Menu strip is not displayed in the toolbar if all menu items have icons and the Tab Bar is visible. Touch UI
  • Menu strip is not displayed in the toolbar if all menu items have icons and the all icons are visible at the bottom of the sidebar. TouchUI
  • Touch devices with small form factor do not reduce density of summary views anymore.
  • Added "beforeusercontextshow.app" event to add user context menu items in sidebar, menu bar, user dropdown. Touch UI
  • Fixed issue with Web App Factory projects not finding "Template.xslt" file.
  • Password character is now rendered as "black circle" character. Touch UI
  • Tooltip for Boolean values in grids displays values as Yes and No. Touch UI
  • Added CSS minification to theme stylesheet generator. Touch UI
  • Removed the limits on the width of app name in the toolbar when sidebar is minimized. Touch UI
  • View Selector on action bar has the same color as actions and groups. Touch UI
  • Switching between Charts and [ViewStyle+Aggregates] correctly resets the page height. Touch UI
  • Method $app.touch.resetPageHeight will reset the height of the current page. Touch UI
  • Fixed security issue with anonymous access to controller XML in apps with HTML implementation.

Inline Editing

The most frequently requested feature that we hear about from customers is the ability to edit data inline. The direct insertion of inputs in grid/list/cards view styles is complicated by the fact that these styles are displaying data inside of “A” tag. Our internal discussions have led to a conclusion that inline input will be integrated in the future rewrite of these view styles, further delaying availability.

Luckily our independent effort on Universal Input and Surveys allowed us to architect the method of inline editing in Touch UI apps compatible both with touch devices and device with keyboard/mouse input. The foundational components are already in place and will work with the current “link-based” implementation of grid/list/cards.

The complete integration of Inline Editing in the Touch UI in expected in a couple of weeks!!!

Monday, January 8, 2018PrintSubscribe
Dynamic Form Builder

Powerful custom data input forms with responsive design is the higlight of our product.

A modal master-detail form in the app with Touch UI.

A modal master-detail form in the app with Touch UI.

A fullscreen presentation of the same master-detail form in the app with Touch UI.

A fullscreen presentation of the same master-detail form in the app with Touch UI.

Developers can design forms with drag & drop operations.

Our team is working on further enhancing form development and making it possible creating forms at runtime. Our strategy is multi-pronged.

Assumptions:

Forms must allow collecting master-detail data that can be manipulated as a single complex entity. This requires enhancements in the Application Framework.

Form Builder must allow live preview of design changes in forms.

Form Builder can be a part of both design and runtime environment.

The Big Plan

1) Offline Data Processor (ODP) will make possible creating controllers that allow collecting data without posting records to the server. This enables createForm1 with visible child DataView fields in "New" mode. The new record with the child data is submitted to the server as single entity and saved to the database in the context of a database transaction. ODP will go live by the end of Junuary 2018.

2) Survey is a JavaScript definition of a data controller not based on a database entity. The framework reads definition and converts it into the data controller structures. Application Framework heavily utilizes surveys in Batch Edit, Quick Find, Advanced Search, Import, and OAuth registration forms.

3) ODP will make possible creating surveys with master-detail data collection.
Expected availability is February 2018.

4) ODP makes possible creating surveys and data controller forms collecting child data along with the master record.

5) ODP makes possible confirmation controllers with master-detail data. Child data will be accessible in business rules in JSON format. Expected availability is February 2018.

6) The framework will be extended with Data Driven Surveys. This is a simple but prominent feature on our Roadmap. In the nutshell, the purpose of Data Driven Surveys is to allow using surveys stored in the database to collect master-detail data at runtime. We already have prototypes of the technology and will have it integrated in the code generation library in the February 2018 when ODP is completed.

7) Next iteration of Code On Time is called "v9".  We are moving the design environment directly into the apps! The new Project Explorer is written in JavaScript and loads in live apps on-demand. Drag & Drop between the Project Explorer and live pages/forms will simplify development. Live inspection of pages will synchronize the selection in the Project Explorer. Build-in Object Inspector will make it easy learning about properties of selected objects. See our roadmap for details about Code On Time v9.

8) The forms of a Data Driven Surveys are stored in JSON format in the long text column of a dedicated table in the app. Application framework displays DDS as a textarea when the record is opened in an app. Developers can edit the definition of the survey directly or come up with their own "form builder" to do so.

Developers mark the corresponding data field with the tag "survey-form". The framework will activate the survey available in the same row when another field in a data controller marked with the tag "survey-data" is activated.

A new product called Form Builder Add-On will become available with the introduction of "v9". It includes the packaged design environment of "v9" activated at runtime in a live app. The add-on will cause the data field marked as "survey-form" to be rendered as “Design” button. Form Builder is displayed when the button is pressed.

Sunday, December 31, 2017PrintSubscribe
Offline, Online, On-Premises with Personal Assistant

Happy New Year to You, Code On Time enthusiasts!

Welcome to the new era of apps that work Offline, Online, and On-Premises.  The first quarter of 2018 will see seamless conversion of online apps into a hybrid mobile applications for modern phones and tablets. We are bringing a new meaning to “write once, run anywhere”. Now the client-side libraries of any Touch UI app can be automatically installed at runtime in a device by a native shell application for iOS, Android, and Windows. The native “shell” app will communicate with the online web app to read and write data. The “shell” app will display your data locally in a native Webview of the device.

The new product Offline Sync Add-On will extend your apps to enable pre-emptive downloading of data into the device to allow “always offline” mode of execution. Application users will work in a completely disconnected mode after the initial synchronization. Users can opt to sync data manually or whenever the online connection is detected.

Offline Data Processor is at the core of this amazing capability. Native and Online apps that do not need disconnected execution will also benefit from Transactional Data Input implemented in ODP.

Ten years ago we have embarked on building a framework that enables rapid application development with low code customization capabilities. We believed that it was possible to create a technology-agnostic meta description of a business database application that can survive the breakneck pace of advancements in software development. An application engine will interpret the meta description to render a user interface.  If proven correct, this would have enabled creating alternative implementations of application engine and reduce the cost of maintenance and development. The initial implementation of the user interface was modeled after Microsoft SharePoint. Today we offer a new engine called Touch UI that works great on both desktop and touch-enabled devices. Tomorrow (in the second quarter of 2018 to be precise) we are introducing the new application engine called Assistant UI.

Touch UI app with Dark theme shows the Assitant UI option in the context menu.

This new application engine does not require a display. Users will interact with their apps via voice, email, SMS, and built-in chat. The new UI engine will be delivered as Assistant UI Add-On. If installed, an app created with Code On Time can be connected to the cloud infrastructure of Assistant UI. Connected apps will expose “Assistant” context menu option opening a chat window. User can request creating a new supplier by typing in “create a new supplier” command. The personal assistant will recognize the user identity of the connected app and download  meta description of data controllers and pages. The description is converted in a conversation script, which will drive the responses from the assistant. The assistant will respond “What is the Company Name?”.

These amazing capabilities require no additional programming and tap into the power of natural language processing. Users of connected apps can also email assistant by sending their requests to a predefined email address or texting a message to a predefined number. The assistant will recognize the user identity and email or text back while maintaining the conversation context in the built-in CMS of the app. Multiple apps can be connected to the Assistant UI online service. We will also offer pre-built voice extensions for Google Voice and Amazon Alexa to enable voice conversations with the assistant.

Assistant UI uses a significant set of features that were designed for native apps. It requires no additional programming. This further proves that our approach with application meta descriptions does lead to significant savings in development costs.

Great technology requires great development tools. The new tooling will exponentially simplify development process with Code On Time and open our products to more potential customers.

The year 2018 will see a new development environment called Code On Time v9. All customers with valid activation codes that are not expired at the time of the release will automatically get access to the new software. The pricing will remain the same for 2018 for new purchases.

Version 9 integrates application customization tools directly into the app. It will come with three different backends to support integrated JavaScript IDE. The new development environment is built with Touch UI and transfers significant portion of design-time processing to the client. The application file structure will remain exactly the same. We are using Offline Data Processor to create better configuration screens in the new IDE. New Object Inspector will make it easy to discover available configuration properties. Integrated documentation and community/ticket system will benefit users with any level of experience.

Code On Time v9 backend is a Windows application with the built-in code generator from version 8. It does not have its own UI. The apps can be launched in either the default web browser or in the Native App for Windows 7/10.

Cloud On Time is a hosted version of Code On Time v9 backend. Built-in database designer enables creating cloud data tables and views. Developers will be able to customize their apps with SQL/JavaScript/Email business rules with instant online deployment. There is no software to install. This backend will have a subscription-based pricing model.

Cloud On Time Private Edition is the version of Cloud On Time backend that can run on-premises. This option is for the customers who cannot put their data online. This backend will be priced per-core of the processors on the deployment server.

Find more details on our roadmap, subscribe to our YouTube channel, and newsletter to stay in touch in 2018 and beyond.

Happy New Year!

Continue to Light and Dark