SAP Builders Discussions
Join the discussion -- ask questions and discuss how you and fellow SAP Builders are using SAP Build, SAP Build Apps, SAP Build Process Automation, and SAP Build Work Zone.
cancel
Showing results for 
Search instead for 
Did you mean: 

Degraded native app performance on iOS

Tinashe_Mukombe
Explorer
0 Kudos

Firstly I'd like to thank the team for constantly working on the Build apps platform, I'm sure there is a lot more that goes on behind the scenes when it comes to keeping a framework as complex as this running. I only say this because there has been some recent backlash towards the platform but I'd like to clarify that I only create this discussion post out of good faith to hopefully address some performance issues I have faced so that we as developers can release overall better quality products.

Runtime version 4.9.218 has addressed the issue with missing Siri usage string (hooray 🎉), however the celebration is only short-lived as I have noticed a severe reduction in native app performance and responsiveness since runtime 4.9.201. Perhaps It's only on my end so I would be curious to know if anyone else has also noticed poor iOS performance recently. I started noticing this difference on the newer runtimes after being able to add the required Siri usage string myself thanks to this workaround. Drawing a comparison between natively running and iOS preview, certain unchanged components are running significantly slower and sometimes unexpected anomalies happen. There is anywhere between 5 to 10 second delays with component taps and sometimes the app freezes entirely meanwhile the device is heating up significantly. Texts are changing to unassigned colours/alignment and images are setting themselves to different resize modes. Some Boolean variables have assigned themselves the opposite of their original state and Lottie animations seem to have resized themselves 😅

Here are some screenshots of these weird anomalies. Both screenshots are natively running builds. To the left of the image is always from older runtimes (4.9.121) and images to the right are built with runtime 4.9.218 running natively.  The screenshot comparisons are only of untouched properties which have somehow changed state.  If you wish to recreate these scenarios and draw a comparison in performance, here's some information: 

 

How the app is intended to run, look and perform  (Pre 4.9.201 Build on TestFlight)

How the app is running now (4.9.218 build through TestFlight)

App ID: 48782

 

Here's an example of text randomly assigning itself a different colour, the property has not been changed in both versions 

"By Fernando" has unexpectedly changed colour from white to black"By Fernando" has unexpectedly changed colour from white to black

 

The text color propertyThe text color property

 (Custom font SF Pro Rounded in both cases)

 

Images randomly changing resize modes

photo-output.jpegScreenshot 2024-03-28 at 7.20.55 PM.png

(Here I use a formula to achieve the same look on both iOS and Android builds as sometimes images behave differently on both platform. This property has been unchanged since 4.9.121) 

 

Unexpected gaps and components resizing. Also unchanged properties in both versions  

photo-output.jpeg

This page has become a nightmare. What was once a smooth simple process of posting an image has become extremely glitchy while the device lags and overheats. Problems arise when the keyboard is pulled up. First difference is that the keyboard changes colour. The contents seem to get compressed as a massive blank white space unexpectedly appears 

Screenshot 2024-03-28 at 7.34.25 PM.png

The Background image is in between two absolutely positioned containers so they should not interact with the image. The image itself is set to a relative position. Perhaps pulling up the keyboard when typing is causing this weird behaviour, however this was not an issue in previous builds

 

Boolean variables assigning themselves an opposite initial state

 photo-output.jpeg

 For context, when you click on "Change picture" or "Account verification", a process initiates which is indicated by a spinner. The spinner visibility is bound to a boolean pageVars with an initial value false. When the process starts, a formula changes this to true making the spinner visibleThe text in the button is also set to the same variable but with a not operator so that neither the text nor spinner are in the same visible state at any given point. However In this runtime they seem to have unexpectedly switched roles. I have not made any changes to the page in months which is very unusual .

 

iOS Preview app vs compiled app

Left is iOS preview. Middle is the compiled app build and right is the text property in composer proLeft is iOS preview. Middle is the compiled app build and right is the text property in composer pro

App is performing differently once compiled compared to the preview app. In this screenshot I made some changes to an image uploading page. In preview it performs as expected however afterwards, Text 8 unexpectedly changes font and colour despite its properties being set. Text on the button that indicates "done" has randomly assigned itself an opposite value of its Boolean state. These specific properties assigned to these texts have been untouched for months

In conclusion 

I'm not sure if I want to go ahead and make changes to my apps after this runtime to correct these anomalies without understanding what's causing them to happen in the first place. There is a significant effort retracing all these 'broken' features and even if I somehow correct them, it would be counter productive to see the features break again if the issues were ever addressed on the runtime build process. Furthermore with the degraded quality of my iOS apps from this runtime, I simply cannot rollout any updates due to below standard performance and must wait even longer. Perhaps it is just me and therefore I'd also like to find out from the community if anyone else has experienced these performance issues or perhaps anyone can point out anything I have done inefficiently or could do better/improve on

VG

 

 

2 REPLIES 2

Tinashe_Mukombe
Explorer
0 Kudos

Causes for some bugs and workarounds I've discovered so far

 

  • iOS Bug: Setting text visibility to a boolean variable now causes the text to change formatting. Current workaround: To change the text visibility in a dynamic environment without the text unexpectedly changing formatting, I set the variable assigned to the text to undefined then use the following formula as text content:Screenshot 2024-03-31 at 11.19.33 PM.png

     

  • iOS Bug: When the keyboard is in view through the Input field component and primitive, an empty space above the keyboard is created which blocks content on the page, sometimes blocking what the user is typing in real time. Current Workaround: Creating a mock container that mimics an input field. The container is designed to look exactly like an Input fields with text inside thats assigned to a variable. When a user clicks the container, a Promt text logic node is triggered. Prompt text is bug free thus far so after the user has entered their text, the node assigns that text to the same variable as the text inside the mock input field. This essentially mimics an input field without having the glitch. Here's how that looks like: Left image shows the bug that occurs when Input field is used. A blank space covers content on the screen. Middle is an alternative workaround for the bug with the use of the logic node Promt text. Right is using Promt text as a substitute for a Input field componentLeft image shows the bug that occurs when Input field is used. A blank space covers content on the screen. Middle is an alternative workaround for the bug with the use of the logic node Promt text. Right is using Promt text as a substitute for a Input field component

     

     

Tinashe_Mukombe
Explorer
0 Kudos

Has anyone from the team acknowledged some of these bugs ?

Especially the text and keyboard issues I left here on a comment