UXcam logo
A blog about app User Experience
Why UXCam has one of the best performing SDKs in the mobile app market

Why UXCam has one of the best performing SDKs in the mobile app market

Find out why UXCam has the best performing SDK on the market.

August 25, 2022 by Jane Leung

Everything you need to know about UXCam SDK - feature image

Software development kits (SDK) help businesses build better apps. As mobile app functionality gets more sophisticated, thousands of different SDKs have exploded onto the scene. TL;DR, so what makes UXCam the best performing mobile app analytics SDK in the market?

  • The numbers don’t lie: Nearly 35,000 apps on the market have UXCam installed, the closest competitor has around 3000 apps with their SDK installed. 

  • Google has given our SDK a nod for our reliability and performance by listing us in their Google Play SDK Index, which was launched at the Google I/O conference in 2022. 

  • Our SDK is feather light: UXCam’s SDK uses less than 1MB of memory. 

  • Covers native and non-native tech stacks like Xamarin, Flutter, and React Native. 

  • A dedicated mobile SDK team is here for you: UXCam customer success engineers are there for you every step of the way, from integration to troubleshooting. 

  • Users love us: We’ve won awards on review site G2 including most Implementable and Best Results in the category of Mobile Analytics. 

Keep reading for more details on why UXCam has the best performing SDK in the mobile app analytics market. But now that we’ve had a quick introduction to UXCam’s SDK. Let's start at the top.

Contents

    What’s an SDK?

    An SDK is a downloadable set of tools developers use to create applications on specific platforms. At its core, an SDK is code that someone else wrote so you can perform a function in your mobile app. The beauty of such a kit is that a developer doesn’t have to build all the functions of a mobile app from scratch. The kit can include libraries, documentations, code samples, processes, and guides that developers can use to integrate into their own app. 

    Why is it critical to have a low-risk high performance SDK?

    App performance issues are often directly caused by the SDKs you put in your app. It’s critical to choose a low-risk and high-performance SDK because it has a direct impact on the end user’s experience of your app. A high-risk, poor-performing SDK can result in:

    • Slowing down your app

    • Bugs on the app

    • More crashes

    • Reduced functionality

    This can lead to user churn, poor app reviews, and if the SDK you’re using doesn’t follow the app store rules, your app could be removed from the app store. Ultimately, a low-risk high performance SDK will positively impact your business metrics like user retention, acquisition, and revenue. 

    Why does UXCam have the best performing SDK?

    We know mobile better than competitors. UXCam was built for mobile-specific data. Unlike competitors with hybrid web / mobile solutions, UXCam has been built for mobile since its inception in 2014. 

    Our SDK won’t slow down your app. With more details below, UXCam uses less than 1MB of memory. Our reliably lightweight SDK enabled UXCam to win the Google I/O performance award. 

    Our SDK is easy to implement. A basic integration takes a few minutes. Full integration depends on how big your customizations and needs are. A complete integration can be done in 30 minutes. That includes importing UXCam, creating the configuration object, starting the SDK. In fact, we won a “Most Implementable” badge in the category of Mobile Analytics from G2 user reviews. 

    We’re flexible! Our SDK covers native and non-native frameworks: 

    • iOS

    • Android

    • React native

    • Flutter

    • Nativescript

    • Cordova/ionic

    • Xamarin

    We have mobile SDK experts that are there to help you: UXCam customer success engineers are there for you every step of the way, from implementation to troubleshooting. We make sure your onboarding goes smoothly and are there to answer any questions. We offer technical calls to review documentation and APIs as well. Our customer success engineer team tests every platform and new SDK releases with demo apps to make sure the implementation works. We always provide detailed documents and examples.  We are officially registered in the Google SDK Index:  At the Google I/O conference in 2022, UXCam was featured as one of the top 80 SDKs on the Google SDK Index, a directory that helps developers choose the best apps for their platform. SDKs featured on this list are reliable and trusted by the mobile app developer community.

    SDK adoption by app installs found on the Google SDK Index

    Source: UXCam analytics on Google SDK Index

    We have market proof: Our SDK is mature, stable, and used on over 35,000 apps in the Google Play store and Apple App store. Trusted by thousands of businesses, here are the number of apps that use UXCam compared to our competitors. 

    UXCam:

    Android SDK: 32 797 apps have UXCam installed iOS SDK: 2297 apps have UXCam installed

    Fullstory:

    Android SDK: 628 apps have Fullstory installed iOS SDK: 414 apps have Fullstory installed

    Smartlook: 

    Android SDK: 2841 apps have Smartlook installed iOS SDK: 836 apps have Smartlook installed

    Why won’t UXCam slow down my app like other SDKs? How big is the UXCam SDK?

    UXCam is known around the mobile app industry for having an extremely lightweight mobile app.  Our performance stats below are based on the results of a test run on a mid-range Samsung device running a basic Android stub project. 

       UXCam Android SDK lib package (aar): 373 KB

       Test App without UXCam (apk):   5.4 MB 

       Test App with UXCam (apk): 6.1 MB

    How much memory is UXCam SDK taking?

    UXCam’s SDK uses less than 1MB of memory. 

    After tests on mid-range Samsung devices, the memory usage on the test app after integration of UXCam starts from 93MB and then gradually reaches 128 MB of heap memory which triggers garbage collection and resets back to 93 MB. 

    This cycle continues.

    Without UXCam: Usages 93 MB consistently as no garbage collection was triggered.

    Memory resets to a minimum after garbage collection is triggered

    Memory resets to a minimum after garbage collection is triggered.

    What’s UXCam’s main thread usage? 

    The main thread use is 19 ms on average per frame drawn. It’s when UXCam has to draw views into Bitmap. For the test app in default settings, the frame rate is 0.5 fps, so 19 ms is used per 2 sec to draw the view to Bitmap.

    What’s the CPU usage?

    The most CPU-intensive job of UXCam SDK is taking a screenshot and encoding it to the video file. This action is performed once every 2 seconds for the default recording settings. 

    Based on the test results, the CPU usage on mid-range Samsung devices ranged from 3 - 6% usage burst per 2 seconds.

    The peak of CPU usage on each frame drawn and rendered

    The peak of CPU usage on each frame drawn and rendered.

    What about bandwidth usage?

    UXCam has minimal impact on network bandwidth because it only performs network calls at the beginning of the app session, which has a minimum payload of 293 Bytes. And after the app goes to the background, which is used to send the data files. The payload for file upload requests depends on data and video file sizes - See more details below.

    Based on the test results the Verification Request has a 293 Bytes payload **without internal debug logs.

    However, for the Data Upload Request the payload depends on the data and video file size profiled below.

    Video / Data file Size

    Video size depends on the resolution of the video and the size of the frame being encoded. The result is simple plain UI elements with no interaction with the app.

        1 min session - Video: 13 KB        Data: 2KB

        5 min session - Video: 39 KB       Data: 2KB

        10 min session - Video: 70 KB        Data: 2KB

    ** Video and data files are both compressed and encrypted.

    Performance

    We have a very low crash according to a Google SDK Console report. Based on a 7 day report in 2022 and the stats below, we have a crash rate of 0.000018% per device

    Number of devices running UXCam Android SDK: ~9.5million (From our stats)

    Number of unhandled exceptions: 172 (From Google SDK Console)

    How are you constantly improving your SDK?

    We’re working around the clock to make sure that our SDK is serving mobile app teams in the best way possible. Here’s a look at something we’re working on under the hood: 

    Blur/Occlusion API: The Blur API allows you to hide sensitive information without losing visibility over your user's experience and interactions. Apply blur to the screens that contain PII data, so you can visualize all the elements of your screen, view user interactions, and gather useful insights with video replay while protecting your users' privacy and hiding all personal information.

    Improved Screen Recording: We’re using a PixelCopy-based approach which is efficient with main thread use and also natively supports capturing SurfaceViews so no custom implementation is required to support recording of map and video player views. We also made changes to support Mediacodec for video encoding on emulators which keeps video size lower and consumes less resources than JCodec.

    Decrease in main thread usage: This main thread, also known as the UI thread, is responsible for everything that happens on-screen. Understanding how it works can help you design your app to use the main thread for the best possible performance. This is the case when frames are skipped which will result in stutter while using the app. We have improved cold start time consumed by UXCam by about 200 ms (18 frames in 90hz screen). PixelCopy has also contributed to a decrease in main thread use.

    Jetpack Compose (Android) and SWIFT UI (iOS) support: We’re constantly adjusting and updating our SDK to support the latest libraries. 

    Flutter improvements: We have recently completed the implementation of supporting Flutter hybrid apps with multiple FlutterView on the same screen. All other performance improvements are for cross-platform plugins as well.

    App logs: All the information and context you need to improve error analysis and reduce debugging time. Improve the user experience, health, and performance of your application by analyzing application logs in combination with session replay. Empower your development team with all the tools they need to speed up the debugging process and fix bugs, crashes, and UI freezes in record time.

    Handled exceptions: Capture handled exceptions on UXCam to see how non-fatal exceptions impact your app performance and users' experience, prevent the propagation of errors, find the most common reasons and types of exceptions, watch the recordings to gather more insights, or send additional information for a deeper analysis.

    How much time will it take to integrate UXCam?

    A basic integration takes a few minutes. Full integration depends on how big your customizations and needs are. A complete integration can be done in 30 minutes. That includes importing UXCam, creating the configuration object, and starting the SDK. 

    Learn more about our SDK updates.

    How do you protect us and our users?

    We’re GDPR compliant. Any personally identifiable information (PII) in your app like email addresses and credit card numbers can be hidden with our API. 

    You can choose to hide:

    • Texts: when you only collect PII data with text fields

    • Screen Views: when you need to hide a specific section of your screen.

    • Screens: when you need to hide the whole screen, e.g. payment screen.

    We offer: 

    • Schematic recording

    • Blurring

    • Hiding sensitive information

    Sensitive information will be hidden under red boxes on the device before rendering the video and therefore never sent to UXCam. Make sure that all this info is hidden before releasing your app to production to make sure your users’ PII is never recorded.

    Commonly asked developer questions:

    Do we support Jetpack Compose? Yes, we do, from the latest versions of the SDK. It’s the same SDK for the android main SDK.

    Does my app need to wait for UXCam to be initialized before I can continue using the app and will this impact loading times? The short answer is no. UXCam performs its requests on a separate thread so there is no way for UXCam to slow it down. Once UXCam verifies the session it will startup independently of what your app is doing.

    Do I have to add a line every time I am triggering an event?

    No, you should only call it when you know it's going to be triggered, it's not by occurrence but by stance. You don’t have to call 1000 times to click ‘purchase’. You just have to add ‘purchase’ once. 

    Do I have to add events every time they are going to happen? 

    You only have to log events when they are going to be triggered and you only have to add one event per event category. e.g. click on purchase, log event, purchase. 

    Our users use our mobile app offline. Are sessions stored on the device until it connects to the Internet?

    Yes, we store the sessions until the user connects to the Internet. In the recording settings, you can also choose if you want to use only wifi or mobile data too. Click here to read more about how we store sessions. 

    Can I send information from Firebase to UXCam? No just from UXCam to Firebase.

    For the nitty-gritty details on our SDK, check out our developer docs and implementation guide. 

    Ready to see what all the hype is about? Try UXCam’s SDK for free today. 

    work pic
    AUTHOR

    Jane Leung

    Jane is the director of content at UXCam. She's been helping businesses drive value to their customers through content for the past 10 years. The former content manager, copywriter, and journalist specializes in researching content that helps customers better understand their painpoints and solutions.

    Optimize your user experience

    Try out UXCam today to get a 360-degree view of your app user behavior

    UXCam logo

    Products

    Compliancy

      Logo SOC2

      UXCam has successfully completed a SOC 2 Type 2 examination by Johanson Group.

    Sign up for our newsletter

    First name*
    Work email*
    By providing your email address, you give UXCam consent to receive announcements, updates, and product offers by email. You may unsubscribe at any time. More information can be found in the Privacy Policy.
    *Required
    Thanks for submitting the form.
    CONNECT WITH US:

    © 2022 UXCam. All rights reserved.

    Privacy policy.

    Terms of service.