IOS swift - Tracking used apps - ios

I'm currently looking for a way to track user activity. I'm working on an IOS app using swift and i need stats of apps usage. basically I want to get-make a tracking of the used apps. Data like opened apps, start time and shut down time... I know that for get all stats, maybe is necessary run a backgroud service, but, this is another problem that i think to solve after. for now i want to know if it's posible, if there is some way to get stats for used apps. I know that the UIApplication class call the UIApplicationMain function when an app is launched. Maybe, from my app, there is a way for access this info?... Thanks, i have been a long time reading but really, i can't see some clear option.

If (as David has interpreted your question in the comments) you are trying to track usage of other apps that aren't yours, he's right; you can only track your own app's usage.
If you are needing to track events in your own app, there are a good number of analytic frameworks available to do exactly what you are needing to do.
Flurry is one I've used in the past with success, and is one of the more well know solutions. I've also utilized Google's analytics framework. Both are pretty straightforward to integrate into your app and to track the sort of fine grained events you are looking to capture. You can't go wrong with either one of those.
Here is a (slightly old) list of additional tracking/analytics options beyond Flurry and Google's offerings.

You can record your feedback and user experiences, and bug reports with lookback.io

Related

iOS - make changes to app without requiring update via app store?

This may seem like an odd question, but I'm in the middle of creating an iOS app, and was wondering if there is a way to, in the future, roll out changes to the app without requiring all of the users to download an update.
I've noticed that Snapchat can do this with their filters - new filters are added regularly, without me updating the app.
I've read into 'Cloud code', something Parse had that apparently let you accomplish this. Obviously that's no longer an option.
Also, do Apple even allow this? Seeing as they need to approve every app before letting it onto the App Store, it would seem like they would need to approve any changes first too.
I've thought of strange things like storing a function in a database, then getting the app to download that function and run it - naturally if I were to now change the function in the database, it would change on all users devices instantly. Just how ridiculous is that idea? Thanks!
Depends on how much flexibility you want.
For example, Spotify does this for UI mainly - backend-driven UI, as they call it. They send a kind of layout from the server and convert it to a real iOS layout, based of a predefined mapping. You can find pretty more details in the Spotify's presentation.
Slides: http://www.slideshare.net/JohnSundell/backenddriven-native-uis
Video (more details): http://www.downvids.net/backend-driven-native-uis-john-sundell-and-diego-cristina-ca--777281.html
So actions can also be divided in similar pieces and abstractions, received from the server and interpreted - sort of scripting is needed. You can't compile and run arbitrary functions on the fly.
Hope it'll give you some ideas you can think of.
See Apple's app store review guidelines: https://developer.apple.com/app-store/review/guidelines/ section 2.4.5 (iv). Apps are not supposed to download code or resources to add functionality or significantly change the app from what Apple sees during the review process. And executable memory isn't even writable by sandboxed apps, which makes downloading compiled functions fairly useless. But downloading Javascript that complies with the above guidelines seems to be allowed.

Accessing data from HealthKit with Swift

I'm a complete noob at Swift (and Xcode), as a matter of fact, the only programming language I (somewhat) know is Javascript.
I'm trying to make a Swift SpriteKit game, and I would like to access the number of calories burned in HealthKit.
The idea is that my game will provide more points the more calories you burn using other apps like Endomondo. My app does not actually track anything, I would just like to access other data left by other apps in the Health App.
Is this even possible? (I'm running the latest version of everything, from Mac OS X to Xcode)
Certainly. I don't think there is anything technically preventing you from making calls to the HealthKit APIs in your game. In fact, you're fairly free to mix and match the use of any public frameworks provided on iOS.
One thing to keep in mind is privacy and disclosure of the use of health data. The user will have to explicitly grant your app permission to see data.
HealthKit is a really rich API with lots of ways to access lots of different kinds of data, and you're really only interested in a small part right now, so a quick way to experiment is to create a new Swift SpriteKit game from the new project template in Xcode, do your research on HealthKit, and see if you can just log the number of calories burned since some time point while your app is running. If you can do that, the rest is details (as in, the entire app :-)).
Here are what I think might be some helpful links, good luck on your project!
https://itunes.apple.com/us/book/swift-programming-language/id881256329?mt=11
https://developer.apple.com/library/ios/documentation/HealthKit/Reference/HealthKit_Framework/index.html
You'll also find some good documentation on SpriteKit (references and guides) on the iOS Developer Library site.

Mobile iOS usage tracking

I'm currently looking for a way to track basic user data for mobile iOS application:
how many times the app was launched
what was the average/by session time spent in total while using app
what was the average/by session time spent on particular screen
Additionally, I'd like the solution to:
display a heatmaps or click/tap/maps (clickstreams), to show how users tried to interact with the interface
generate visit graphs (user started from this screen, then went to this screen, etc.)
The most important requirement is that this is for internal application testing (nothing malicious), and we want to categorize data by user logged in (so that we can gather data per user, not some general average).
Can anyone recommend a suitable tool? Price or paid, doesn't matter. Is Google Analytics up for the job, or do we need something else?
Youve got several options to track the user behavior in the app. You can use frameworks like :
Flurry (http://www.flurry.com/)
Mixpanel (http://mixpanel.com/)
Localytics (http://www.localytics.com/)
Google analytics
Im pretty sure there are more. Flurry is free (for now but you have some special paid features) and it´s broadly used. It´s the framework I use the most for my apps in these moments but it will depend of the client and the information you want to track. You can track events, events with information, see the stats of use, how the user has used the application, find dead holes in your app and broadly speaking, have a general idea about how your application has been used. The other frameworks are not free and you have to pay for the services but you can always use a trial version to see if this is what you want or not. Ive used localytics and its nice.
Ive tried all of them, and there are pros and cons, but to get a general idea about your application, everyone serves. Regarding heatmaps, Im not sure about that, I mean if some of the frameworks offer a solution like that, but you can always build your reports with the provided information (I know it´s not a straightforward thing or a 5 minutes thing).
Take a look, compare and decide which one can fit the best for you.
Well these days app analysis is very important and are of great help. There are large number of analytics tools available. Some of them are free some of them are paid.
below are some of them
Flurry
Google Analytics
Heatmaps
These are few which are used most. For most list visit this link
Hope this will help you. happy coding :)

How to track conversions for iphone apps?

Is there any way to track which visitors end up installing our iphone apps?
Basically conversion tracking for apps?
(I know linkshare is a possibility - but they're US only. I need it to be worldwide because 50%+ of our installs are from outside the US)
I bet a bunch of other developers are wondering too. Thanks for listening.
We just went through the same thing and we still haven't found a good solution. The most promising company we talked to was http://www.appsflyer.com/. We considered linkshare.com also but the solution is hacky to act as your own affiliate and they don't track free app conversions.
Take a look at Flurry.com they have a great tracking product. You can keep track of events within the app (like what buttons were clicked, which ViewControllers were shown... etc).
google mobile analytics
flurry analytics
both are useful products in usage tracking. flurry supports many platforms and google analytics has great interface.
http://www.positionapp.com/
used to be pretty good last time I used it.
Recently they deliver much slower responses, check them out anyways.
Flurry also has conversions to install tracking (outside the app).
Appsflyer and Mobileapptracking are also good solutions.
I have used distimo and I like their tracking system. You can also create campaigns with unique url and they will tell you, how many users did that particular campaign bring in.

Best analytics offering for iPhone

What is the best iPhone analytics offering out there? I've seen Pinchmedia but I'm not sure about it since the default application page says "Last Updated July 2008".
Nowadays Pinch Media has been merged into Flurry. Flurry is a decent choice.
If this is a quick project 'afterthought' you'll be pleased to know that basic Flurry integration is a one liner in the AppDelegate :)
I've tried several packages and Pinch Media is by far the best. I don't know where that July 2008 date comes from, they've been releasing updates regularly and are super-responsive to feedback and questions emailed to their support people. Whether by coincidence or not, several of my suggestions have made it into the current Pinch libraries
Aside from the excellent support, the reason I prefer pinch is that they seemed to be the only package that updates several times a day - usually once per hour. This is great if you're trying new advertising techniques, or just like obsessing over your sales figures (as every developer does at first :)
On the downside there are two issues I have with Pinch - their website can be a little clunky and isn't very iPhone friendly (ironic!), and at times they've had problems where stat updates aren't available due to hardware problems. I also wish they had an "overview" for all your applications.
It's worth pointing out that all of the analytics libraries are extremely easy to build into your application and all work with both the simulator and hardware so it's extremely easy to evaluate them to find the one you like best. It's even possible to use several at once - though I would only do this for testing.
Google :)
http://code.google.com/intl/fr-FR/apis/analytics/docs/tracking/mobileAppsTracking.html
Flurry is a very nice option. In my most recent app I have tried Appsee Mobile Analytics which I like if you're looking for something different - they give you video recordings of user sessions and heat maps. It's a little more interactive than other analytics
If you are interested in visual analytic tools, like heatmaps, or you want to get some inside on the way that your users use your app you should try heatma.ps
Quantcast, who is well know for audience demographics measurement for websites, launched it's Quantcast Measure for Mobile Apps program earlier this year. Their iOS, Android, and PhoneGap SDK is available on github.
At this point you may well want to roll your own - on a constrained device do you really want a third party library taking up an unknown amount of limited network bandwidth and processing power?

Resources