When it comes to troubleshooting and debugging, the OutSystems platform and a modern web browser like Chrome or Safari already give you a significant amount of capabilities. This is a "standard Toolkit."
This fact alone should allow you to successfully vanquish the majority of bugs found. In this article, you can find a high-level recap of this Toolkit's capabilities.
Before you begin
Keep in mind that "an ounce of prevention is worth a pound of cure." This means that squashing a bug is satisfying, but given the choice, working on building new features and apps is time better spent.
So, before taking a detailed look into the Tools, you can do a couple of things that go a long way to ensure you can spend more time on building new apps:
Also, invest some more in a great Tech Talk about developing Mobile apps.
Make code reviews, especially code reviews with peers, a part of your standard development workflow (if you really don’t have anyone available, you can also try explaining your code to a rubber duck. This is actually a valid techinique).
Leverage tools like Architecture Dashboard that can perform automated analysis of your code base and flag potential issues before you deploy code beyond your development environment.
Using OutSystems Now in iOS requires a couple more steps.
The Tools that comprise the standard Toolkit are a mix between OutSystems native Tools and 3rd party Tools. Here, you can find detailed information on their capabilities.
Service Studio debugger
The debugger included in Service Studio is an extremely powerful Tool, so you should take the time to familiarize yourself with all its capabilities. The debugger enables you to:
Jump from client-side code to server-side code as you step through code
Look at the output of an Aggregate after it executes (in the ‘In Use’ tab of the Debugger panel)
While the debugger is running
Make a change to your code and publish that change, then continue debugging
Add/remove breakpoints (incl. breakpoints in events handlers)
Examine the values of the output parameters of a Plugin
Debug across multiple modules (don’t forget to set the correct entry point).
OS platform logs/Service Center monitoring/LifeTime analytics
By default, the OutSystems platform generates a rich set of logs that provide detailed information related to platform operations and applications execution. Applications are also instrumented by default, and prebuilt, low-code elements are available if you want to generate extra logging information.
Service Actions logs
Other logs are also generated, but tipically these are the most commonly used.
Note that Error and General logs include entries generated by the Native App Shell that underlines each OutSystem Mobile application, giving you some visibility into Mobile applications operations. Unfortunetly Mobile Apps don't generate entries in these logs when they operate in offline mode, so a different logging strategy might be required for offline applications. You can find more infomration on this in the Extending your toolbox article.
Chrome or Safari developer tools
The last component of your standard Toolkit is your favorite modern web browser. Both Chrome and Safari offer powerful Developer Tools that allow you to easily perform many sophisticated troubleshooting activities.
One great benefit of the fact that Mobile and Reactive Web Apps share a good portion of their underlying technology stack is that you can run your OutSystems Mobile Apps directly in an instance of Chrome or Safari on your computer. This execution model has some limitations (For example, plugins aren't available), but it still provides a first quick and easy way to start troubleshooting a Mobile App.
When troubleshooting a Mobile App, it's almost always a good idea to try to run the app directly in your computer browser first. Just to see if you can reproduce the issue there, because it's simpler to investigate with the app running in the browser.
However, keep in mind that fixing your code and testing it in your browser only won’t suffice. Always test it in a real device, as the behavior might be different.
In addition, the Chrome Dev Tools also allow you to inspect and debug the contents of the WebView displaying your Mobile App, while the app is running on a mobile device connected to the machine on which Chrome is running. You can find and overview of the related capabilities here.
Becoming proficient in the numerous capabilities offered by Chrome and Safari Developer Tools is a clear advantage when debugging Mobile and Reactive Web Apps.