Blog

mobile

Improve Your Native and Hybrid Mobile App User Experience

October 10, 2018 · by Paul Hirst ·

I’m happy to announce the launch of three exciting tech preview features for Akamai’s Ion Mobile Application Performance SDK (MAP SDK). If you’re asking yourself, “What’s MAP SDK?” please click this link to learn more about how MAP SDK helps improve the user experience for your native/hybrid app. If you want to connect with our MAP SDK experts then email us - mapsdk-sme@akamai.com. Now, let’s dive right into these three cool new features.

Adaptive Prefetching for Instant Response Times

MAP SDK’s Adaptive Prefetching capability intelligently downloads the most popular, cacheable objects when the app comes to the foreground. Users experience faster load times with no interruption to their current screen experience, while avoiding unnecessary bandwidth charges.

If that’s all a bit too theoretical, let’s take an example of a car buying app, and imagine your user opens the app to look for a red car. The MAP SDK servers have already computed the top requested cacheable objects for the app in the last 24 hours (based on a list of hostnames provided by the app developer). Once the user opens the app and it comes to the foreground, the MAP SDK downloads a manifest from the MAP SDK server and starts to cache these objects before the app requests them. This all happens intelligently without impacting the user’s experience.

For objects that are already cached, the MAP SDK serves these from the cache instantly. Well not exactly instantly, but on the order of 16 milliseconds or less. The objects are stored in the cache as per caching rules, so if the user closes the app (or if the app goes to the background), then opens the app again bringing it to the foreground, these objects are still present in the cache.

Configuring Adaptive Prefetching is easy via the Luna control panel and requires toggling the feature on and adding the hostnames (1st or 3rd party hostnames) that are used to determine the top requested cacheable objects. By cacheable objects, I mean there’s a cache control header set. The MAP SDK servers will update the top 100 objects in a predetermined 24 hour period.

To take advantage of this feature you will need to integrate MAP SDK version 19.2.2 or greater, but I recommend integrating with 19.3.1 or the latest version at the time you’re reading this so that you can view Adaptive Prefetching stats in the Offload Report, a new validation report accessible via the Luna portal.

Prefetech

Adaptive Network Optimization (ANO) and QUIC

With MAP SDK version 19.2.2 or greater, MAP SDK’s ANO feature now supports QUIC.

MAP SDK’s Adaptive Network Optimization feature (ANO) speeds up your mobile native/hybrid app by reducing time to first byte (TTFB), total download time (TDT), reduces both packet loss and bandwidth-clogging retransmits, and improves throughput for app requests.

ANO accomplishes this by providing data from the user’s device to the Akamai Edge Server which is then used to select the best congestion-control algorithm and configuration settings between the device and the server. Akamai’s Edge Servers select from the optimal flavor of TCP, and now QUIC, based on historical data as well as real-time factors such as the device type, network connection type, carrier, and the real-time and historical network conditions provided by the device.

ANO is a key optimization capability of the MAP SDK and is therefore configured automatically and adapts to changing conditions. ANO is on by default, but in order to optimize using the QUIC transport layer protocol, you must integrate the Cronet library with the app. Naturally, we’ve included the Cronet library in the MAP SDK zip file to make the integration easier. In addition, HTTPS Option with SNI-deployed certificates is required. For more info, jump to the configuration guide and review the section on Adaptive Network Optimization.

MAP and mPulse Together to Monitor, Optimize, and Validate Your Mobile App

We now have a technology Proof of Concept program which allows you to pair the optimization capability of the MAP SDK with the monitoring and validation capabilities of mPulse for Native Monitoring through a single SDK integration. As a result, app owners, product managers, and mobile app developers, will have the ability to correlate the app performance benefits of the Mobile Performance SDK, with business Key Performance Indicators (KPI) such as engagement, revenue, and conversions. This allows you to identify app views that matter the most and confidently report your ROI of app performance optimizations; no more guessing!

The program’s current functionality allows for:

Auto Instrumentation:

  • All HTTP/HTTPS requests, including many 3rd party open-source libraries

  • Request duration, URL, HTTP status and error codes

  • Network request filtering

Session Metrics:

  • Number of sessions

  • Average session duration

  • New installs

Custom Instrumentation:

  • Custom metrics, timers, and dimensions via API

  • View groups (equivalent to page groups)

To take advantage of these features, you need to integrate MAP SDK version 19.2.2 or greater. mPulse is available as an optional library in the MAP SDK zip file. The available metrics are expected to include the following: http://docs.soasta.com/beacon-api/#introduction.

Also, mPulse is required, and if you don’t have an mPulse contract, you can take advantage of the free trial of mPulse up front that will revert to mPulse Lite after 30 days.. This program is at zero cost. Please contact the MAP SDK experts at mapsdk-sme@akamai.com if you’d like to participate.