First community-maintained Appcelerator module: Ti.Flurry

Open-source is a vital part of Appcelerator’s history and future. Titanium itself has always been open-source and about a year ago also most of Appcelerator’s own modules have been open-sourced at:

Recently Appcelerator approached community members asking if they would be interested in not just committing to, but actually maintaining one of these modules.

Ayorinde Adesugba was one of the first to respond and now released the first update to the Flurry module he maintains for Appcelerator. In this guest-blog Ayorinde shares some bits about his motivation and recent changes.

Take it away Ayorinde! – Fokke


I am a GIS Solutions Architect at the US Census Bureau. I spend my spare time on mobile and web projects, and have been using Titanium for about 3 years. I have helped answer a few Q&As, and also contributed some code to the Blackberry 10 SDK. I am honoured to be able to give back to this great community.

As part of Appcelerator’s philosophy, existing modules have been open-sourced, and a survey was sent out asking for Titans to become maintainers. I responded, and was contacted a few weeks ago about the Ti.Flurry iOS module.

Flurry

Flurry is a great service to use for analytics and it’s pretty robust as they recently announced they now measure over 500,000 apps:

This week, Flurry crossed another major milestone – we now measure over 500,000 apps! It is hard to believe that the mobile app economy began just over six years ago, given the many ways it now influences our daily lives. We are astounded and humbled by this massive achievement, but most of all grateful. To all of our customers who make it possible for us to be witness to and help aid the mobile revolution, we say THANK YOU. We wouldn’t be here without you. Here’s to the next 500,000!

Changes

For the first update I made the following changes:

  • Updated Flurry iOS SDK to latest version (v3.4.x). This fixes iOS7 deployment issues.
  • Added support for Android platform. The methods/properties are the same (see below for exceptions).

The 1st set of changes were committed to the repo, and I invite you all to test the module. The default stable branch still only has the iOS version. You can find the updated iOS module and the new Android module on master.

Or download the most recent Android and iOS release directly.

API Differences between iOS and Android

bool reportOnClose

iOS only

This option is on by default. When enabled, Flurry will attempt to send session data when the app is exited as well as it normally does when the app is started. This will improve the speed at which your application analytics are updated but can prolong the app termination process due to network latency. In some cases, the network latency can cause the app to crash.

bool sessionReportsOnPauseEnabled

iOS only

This option is off by default. When enabled, Flurry will attempt to send session data when the app is paused as well as it normally does when the app is started. This will improve the speed at which your application analytics are updated but can prolong the app pause process due to network latency. In some cases, the network latency can cause the app to crash.

bool reportLocation

Android only

Use this to allow Flurry to record location information in reports. Defaults to true.

logAllPageViews()

iOS only

Enables the Flurry agent to automatically detect and log page views. Flurry agent will create a delegate on your app to detect user interactions. Each detected user interaction will automatically be logged as a page view. This only needs to be called in your application once.

trackLocation(dictionary args)

iOS only

This allows you to set the current GPS location of the user. Flurry will keep only the last location information. WARNING: If your app does not use location services in a meaningful way, tracking the user’s location can result in Apple rejecting the app submission.

The passed in dictionary should contain the following keys:

  • float latitude
  • float longitude
  • float horizontalAccuracy
  • float verticalAccuracy

I am a GIS Solutions Architect at the US Census Bureau. I spend my spare time on mobile and web projects, and have been using Titanium for about 3 years.


Comments