Tracking Application Usage in iOS and logging to file - iphone

I am developing an SDK for iOS. It basically help developers to use our service by placing button in any one of the screen. More than that, we are providing analytics.
In a website, I can provide a javascript snippet, which will help us track the usage and log it for analytics. Developers can place it in any template which is used universally (like in footer.html) and forget about it.
What would the ideal approach for the same in iOS. Basically I would like developers to init our service from AppDelegate or any one point and it should track the usage. Data that I would like to track are
User's id,app version, app id, etc. (Can be collected at the point the library is inited)
Usage time (time from the app was opened to went to background, which again can be tracked easily)
Viewcontrollers loaded and from where it was loaded (Couldn't find a solution unless developer extend viewcontroller from our class, or we write a category. Need a better solution as in AOP)
Button clicks (Same as 3rd point)
For all these, if we provide a solution like call [OurLibrary passFlag:VIEWCONTROLLERLOADED withViewController:self] will help it. But we don't want developers to do it explicitly.
Idea is to have our integration as easy as possible for the developers. Any ideas folks?

Related

Real time web page

I want to build simple web based app, where users, for example, could push the spacebar button, and then do something further, like answer a question, and while other users at the same time only sees that this question is not available any more for answer. When user submits answer, everyone see it.
All right, here is an example. I have seen TV shows, where four players have one button, if one or two of them know answer, they hit a button, and one lamp turns on and the first is allowed to answer, while other keeps their mouths shut. I want to build the same idea, but in the web.
But problem is that, I don't know where to start, what keywords I should search for help on google and so on. I see, that it might work on HTML5, maybe JavaScript and so on.
I have idea using Ajax, but request it every second to get latest actions made seems rubbish. Also I found one service called Pusher, but it has limited users in one time, which doesn't fit my needs.
I need just ideas. Thanks.
Before you read the rest, a disclaimer: I work for Realtime.co but I do believe I can help here so I'm not trying to "pitch a sale".
You can check out Realtime (www.realtime.co). It's basically a set of tools for developers to use real time technologies on their projects. It uses websockets but does fallback to whatever the user's browser supports (such as long polling, for example).
Behind Realtime you have a one-to-one/one-to-many/many-to-many messaging system that will transport your messages to and from your users.
There's also a plus which is the fact that the Realtime framework is actually cross-platform. This means that you can even have your web users communicate with iPhone users, Android, users, Windows Phone, desktop applications, server applications, etc..
You can learn about the JavaScript API here: http://docs.xrtml.org/getting_started/hello_message.html#javascript.
You only need to register at Realtime.co as a developer and start using the free license.
I really hope that helps.
Okey, I think I will go with node.js.
Writing all this previous post, made me think in right way :)

How do sites like tabsite automatically hook up with Facebook Developer to register new apps on the fly?

have developed some quite good basic Facebook App development experience, can hook apps up to databases, have different info installed and displayed on different tabs no probs. However, everything Ive been doing so far to date revolves around me manually going into my developer account and setting up each apps settings individually, one at a time. Am curious to figure out how people like tabsite have created an interface that captures users input data and displays on tabs (that part i understand) but also it registers new apps each time on the fly (this part am curious about how its done), allowing them to add individual app logos, tabnames etc without the user ever having to go anywhere near the developer set up. And how are tabsite getting data back from the developer such as app_id or app_secret??
Any insight much appreciated.
Regards Tony
As I recall there isn't a way to register an app using the API. They probably just use only one app, and then check the signed_request variable to get the Facebook Page ID, which they then link together with the data in the database.
https://developers.facebook.com/docs/authentication/signed_request/
You're allowed 2 tabs on a single page on their free account. But you can only add an app once. This implies they've either created a number of apps that are exactly the same(11 would be my guess as that's how many tabs their best plan offers) There used to be a way to do it using one of the old SDKS but as far as I was aware it was deprecated and is no longer available.
The fact that you say you can customise the tab image though, does imply that they're creating new apps, as far as I am aware you can only customise the image within the app settings in the developer app.
After a bit of investigation, this post may have more info
http://facebook.stackoverflow.com/questions/6264080/create-a-facebook-application-programmatically

Adding skins/themes to an iphone app

We've complete an app in iPhone. For the next version, we want to add skins/themes to the app. There are some good replies to similar posts that I read on stack overflow regarding this and different developers have given varying ways to solve the same. But anyone who's actually been able to accomplish this and get an acceptance from the app store, could he/she/they please post a solution to this?
You'll need to look into singletons. I don't know all that much about them, but they are basically information that any part of the app can access.
You would need to save the user's theme preference as a singleton, then in your scenes would need to get the information about the user's preference off that singleton, and run a method that would check what the preference was load up different background/images/sprites depending on that.

Web-based or App-based for an Events-tracker?

I'm trying to plan out an application on the iPhone/Android that could be used to track dates/locations of events and update them as necessarily but I really have no idea what kind of method I should take.
Currently, there's two ideas for methods in my head:
1) Make a mobile webpage/website that could be updated with the necessarily information, then display this particular webpage/website on the App for users to view.
2) Make an app in iOS/Android to do the above without displaying the webpage at all.
The first idea is the easiest for me to grasp, since I roughly know the procedures of setting this method up. Displaying the webpages on a iPhone/Android screen should be relatively easy and this also allows me to only update the webpage with the latest information and all without (hopefully) building some kind of update system for the app itself.
The second idea is probably the better of the two, since I can make use of all the nifty features in the iOS/Android to make some pretty cool (what are the cool things, i don't know yet) things. I'm not exactly experienced in the field of creating apps, and I really have no idea how to start some kind of self-update functionality on an app, seeing all the apps I've done thus far are offline-based apps that does not communicate with anything save for local files. Should I get the App upon startup to download a file (XML or whichever?) to "read" the contents then update as necessarily?
Or should I just go for the first method, since it can be more efficient than the second one?
I'm really lost here, can anyone offer some tips and advice?
I believe that the first approach is a good one but I would suggest the following:
1- Create the website that will do all the business in your mind then
2- Port out the application in an easy way to be a mobile application how? Please have a look into this http://www.appcelerator.com/
3- Another idea that would save you the pain of going into all the above is to create a facebook application, this way you can make use of the facebook infrastructure and you will have the viral effect as I guess thats what you are looking for.
I hope I've introduced a good tips for you.

Developing Geo-location apps for the iPhone

How does one build a directory of 'Spots' for users to check-in to in a native iPhone app? Or, does the developer borrow data from, let's say, Google Maps?
When you Use data obtained from another network or source, you take a risk that the data may change and or may not be accurate, The data may cease to exist, (more so with google, LOL, one minute they are there like gangbusters, the next they are like "Gone" no explanation no apologies, just missing in action, if your developing an application for a business its always best to use your own data sources.
That may be more expensive but its the only way you will have any kind of control over your application resources,.
You can go both ways, it depends on what you want to do and how you designed it to do it. You can have a prerecorded and static database of spots, or you can update it sometimes connecting to some server or you can do it all dynamically by loading each time data from the internet.
Which one to choose? first you shall design your app having in mind something like:
How many times will these datas change
How frequently will these changes happen
How much will it cost to do an update
and so on
Developing your own database of places is likely to be quite an undertaking (and your competitors have a big head start). Google is beginning to provide their Places API for "check-in" style applications, so you may be able to get in on their beta.