You should consider the following aspects/limits when designing a Screen (especially Form screens):
- The memory and power of the devices running your Screens
Higher quality, better-equipped devices that have more memory and faster processors will obviously always run your apps better. That said, there is still a huge variety of options - particularly in Android - and so whenever possible you should specify known, tested devices for your users to procure.
- Total number of fields in the Screen
We support a maximum of 2,500 fields in a Form design. If you have a Form scenario which requires more fields, then we suggest breaking up the process into multiple Form screens.
- How these fields are distributed across Form pages
We recommend staying below 100 fields per page in your Form design since each field in a page has a device rendering cost that impacts memory usage and performance.
- The mix of field types in a Form page
Certain field types have heavier memory and performance impact than others. In particular, Media form fields (images, video, audio) incur higher overhead due to the inline display of image snapshots and associated editing functions. We recommend keeping the total number of Media fields under 100 in each Form screen you create.
- The total number of Data Sources involved and the number of rows in these Data Sources
While we don't have an upper limit on how many Data Sources can be linked to a Screen design, each additional Data Source that has to be loaded with your Screen will have a memory and performance impact. This impact increases with the number of rows and columns involved. So, for example, 50 Data Sources with an average of 100 rows each will have a lesser performance impact than 10 Data Sources with 50,000 rows each.
- The amount of time your Connectors may take to run
Every Form entry Connector job that runs on our servers is subject to a maximum time limit of 120 seconds. This is to safeguard our worker server resources and ensure all customers get equal access to resources. If your users are capturing massive Form entries (e.g., with hundreds of images or thousands of fields), then such entries may cause longer generation times for PDF and other Connector outputs, in turn failing to complete due to our 120 second timeout. A similar case would be your Word/Excel data templates used to generate PDFs being extremely lengthy (e.g., hundreds of pages) or complex.
Ultimately, the above are guidelines to building a high-performing, stable app on our platform. You should always test your designs on the types of devices you expect your users to have. This way you can gauge the performance and make tweaks to your designs as needed.
Also, whenever possible, you should recommend specific, tested devices for your users to purchase. By recommending trusted device types you can avoid the issues of the "wild west" of Android, where there are many poor (but very cheap) devices around which will run pretty much any kind of app badly.