Mobile app logging stats tools - Swift - ios

I am developing a mobile GPS tracking app and I would like to know if there are any classes available that output the mobile stats to a view? Memory, CPU etc. Similar to Hi-res-Stats in AS3.
I would like to see usage while the app is used however the only tool I know of is built in to xcode and it wouldn't really be feasible taking my mac with me.
Thanks

Related

Mobile app (iOS) security dump memory dump (Frida)

We have an issue with releasing our mobile app as user data have been found with the iOS memory, which is odd as we have used secure data storage though out the mobile app. Before we send the mobile app for a re-test we would like to understand in-house to verify our changes have fixed the issue.
Data has been found in the following locations:
/Data/Library/Preferences/XXX.plist
/Data/Library/Cachces/XXX/Cache.db-wal
/Data/Library/Cachces/XXX
After a lot of research we are still unclear how we can download the iOS memory, we are not sure if it's a major test development tool investigate or we can do it with Frida? Our development platform is Xamarin and I would think it would be possible to view the memory using a debugger via the simulator?
Just looking for advise if this is something very simple using a simple commercial
software/mobile app etc Or highly complex with specialist development tool.

Technical differences between PWA and Hybrid App

What are the differences between a PWA and a hybrid app? This question was asked before but I haven't found found a proper answer to my question.
I know a PWA runs in the browser and you get a hybrid app from an app store.
But both are using JavaScript with HTML and CSS and both enable offline support and I can access native features like camera and local storage.
Once I have added a PWA to my Homescreen, it uses a web view to render the app right? And a hybrid app uses a web view as well, so what exactly are the differences between PWA and a hybrid app?
With Ionic I can even use the exact same code for a pwa and a hybrid app...
Roughly it is like this below:
web app (PWA) is just a web-site that declares certain capabilities using manifest file etc which can get it some special treatments (like leverage service worker, sign up for web notifications, go full screen etc IF target browser supports it). As a web-app it is super limited in its "privileges" on a system level (like persistence quota etc)
hybrid app (like Cordova for example) is a binary code that is "wrapping" your web-code and exposes certain "native" SDK capabilities via plugins. You can potentially also write your own plugin and in theory access any native SDK API this way. But since your main app code is still a web-app that runs inside of a webview it still has a lot of penalties like performance etc. But at least you can get things like storage etc.
native app is a binary build using target platform's SDK. That in
theory gives you max access to capabilities and performance at
expense of having to write separate code for each platform.
Makes sense?
Progressive Apps
Today, these apps only work on Opera, Chrome, and the Samsung mobile browser. However, these browsers take up only less than half of the mobile browser market.
In some devices, some of the features will not work. For instance, notifications on iOS devices will not work.
In some apps, cameras, fingerprint scanner, and GPS may not work or work with glitches.
Cordova/ Ionic based hybrid apps
Making the hybrid apps run efficiently on multiple platforms is no easy task. In some instances, it could cost almost the same as running native apps. The cost will depend on how close you want to get to the native app experience.
Since these apps will launch using a browser-like component, they are only as good as the component on which they run. Earlier, Google and Apple did not agree on the WebView. While it has vastly been improved, it does not have the same efficiency as running a native app.

Debugging - How to profile react native memory usage

General question. I'm developing an app using React Native, and certain actions bring my app up to around 500MB of RAM, where it usually gets killed.
I've searched the web for good material on RN memory profiling but have found nothing. I've tried using Instruments, but it's output doesn't give me much insight as to what are my memory guzzling processes.
TL;DR: Do you have a good way of profiling memory usage in React Native?
P.S. currently focusing on iOS.
Thanks in advance!
Uri
If you shake the device you can bring up the debug menu and enable perf.
Additionally if you're on iOS, xcode comes with a set of performance tools. In spotlight, cmd + space, search for instruments, open it and select Activity Monitor.
Performance
App developer menu - toggle Show Perf Monitor
You can use Xcode and Android studio for this case.
On Xcode, you can check below screenshot.
Also for the Android Studio, you can open profiler on 'View->Tool Windows->Profiler'

iOS cordova app performance profiling

We have built a hybrid app for iOS using Cordova and now we would like to do some performance profiling in the actual device (specifically around Javascript execution time, DB access times etc). Are there any tools available in iOS that can be used for performance profiling of such apps ?
Microsoft has some documentation on measuring the performance of Cordova apps, including on iOS. It involves using Safari on desktop to connect to the Webview on iOS, and use the JavaScript timeline profiler:
https://learn.microsoft.com/en-us/visualstudio/cross-platform/tools-for-cordova/tips-workarounds/measuring-performance?view=toolsforcordova-2017

Collecting system data from iOS device during automated testing

We are trying to build a mobile automated testing lab that has 20 or 30 devices and want to capture the utilizations on each device during testing. I'm looking to start with iOS devices. The type of data in Xcode Debug Instruments would be ideal. However, I need to be able to capture and export this data automatically for many devices.
I'm thinking the best way to get that data from so many iOS devices would be to build an app. The app would capture the iOS device's CPU, memory, and battery life, disk usage and running processes (basically, the same statistics as are generated in the Debug Instruments in Xcode), and then send the data to a database.
What frameworks or tools would be helpful for this?
It sounds like you might be best off using a solution such as New Relic's mobile monitoring system. They allow you to monitor performance across devices, memory usage and time profiling and HTTP requests remotely just by dropping their SDK into your apps.

Resources