Best practices to build high performance apps on DronaHQ Studio

Apps are powerful tools to grow your businesses. Your app performance is highly dependent on the app’s continuous high-quality performance. Building Apps on DronaHQ Studio requires few design principles in place for building top quality and high-performance apps.

Avoid duplicate calls

Avoid unnecessary Connectors and Sheet Calls. Make sure that your App logic is optimized to avoid unnecessary calls to an app. For example in multiform scenarios when using data from Sheets or APIs, you may need different types of data from the same source but using some transformation or filter. At times certain filters may not be supported by an API. So to avoid multiple API calls, it is better to use a Datastore which enables you to have multiple filters from the same source for different scenarios done locally.

Minimize dependent chains of references

When building apps, it is common to have a deep and complex chain of references to components and controls. It is better to design modular app logic which can involve using a single data source like a Datastore, using computed values with Variables and so on. You can also avoid loading too much information on a single page. It is a better practice to have an Overview page and allow the option to navigate to another page or simply show details with a popup for additional information.

Avoid overloading the frontend with large datasets

If you have multiple lines of data running in thousands going to your frontend, there is always a risk of recurring performance issues. Unless it is really necessary to add so much data in the browser for any specific visualizations, it is better to apply transformations and aggregation when fetching data using queries. Studio has features like server-side pagination in Table grid controls that can help resolve such overloading of the frontend.

Use caching to your advantage

Slower data loading times are a major performance barrier when using datasets. Studio enables caching remote data for mobile apps. You can find the Caching property for all the controls. It helps ensure that large datasets are fetched from the cache if the user is offline if the form has been opened at least once when the user is online so that the data can be cached.

Restrict the number of queries on page load

You can have queries that are triggered on page load typically in scenarios where you are creating a dashboard that always needs fresh data. However, this can overload the app. You can work around and run these queries when input changes or trigger it manually with the different types of events available for respective controls and forms.

Provide functionalities in the backend to handle complexity

Studio has features depending on the data to be displayed on the UI. When using data from APIs there are ways of building in functionalities within the backend that handle the complex data and return all relevant data without a need for calling Multiple APIs. You can add transformation logic in the backend in terms of improving your App performance.

Optimize data with client-side filters

When fetching data from Connectors using the BINDAPI() function, make use of the Filter parameter to get data. The filter applies to the data on the client-side thus enabling you to have optimized data as compared to using a Custom JavaScript code for data optimization.

Limit app size to ensure short load times

It is preferable to have modular apps rather than adding all functionality into a single App. You can arrange or reuse your App components like App screens & controls rather than putting too many in a single app. Optionally you can split the App into multiple MicroApps which would help speed up the app load time significantly.