Simulating a larger number of simultaneous users on iphone chat app - iphone

I'm making an iOS app like Kik messenger.
I'm worried that the chat will slow down once many users come on it.
How would you simulate this type of simultaneous condition at a super-early stage? I want to measure the delay time and see at what point things would slow down?
My backend is PHP/LampStack on a Linux RedHat server in the US. Many of my users will be out of the country and I'll be testing this out of country as well. (if this fact matter at all)

Did you try out services such as DeviceAnywhere?

Related

iOS give users default downloadable content

I'm facing this problem while designing my iOS app. Suppose that a user purchases an app and downloads it to the iPhone. I would like to provide him with a default consumable item the first time he runs the app to use whenever he wants , however I would also like to track if the user has already consumed the item. This way if he decides to reinstall the app we can restore the transactions (if he used the item) or we can avoid possible intents to download different kind of content by reinstalling app and consuming default items each time. (Guess NSUserDefaults is not an option here).
One approach that came to my mind was using UDID(or any iOS 6 alternatives) to keep a record on server of the user's device the moment he uses the default item. But this will limit items just to the device from which they consumed content.
It would be great to support all the user's devices (like inAppPurchases), but I can't figure out a way to implement this.
Any suggestions or help would be great.
Thanks a lot.
In order to tie information to a user (not just a device she used at one time), you'll need to ask the user to identify herself and save it someplace other than the device. In other words, a backend that implements registration and login.
From scratch, this can be a lot of effort that an iOS developer didn't count on. Fortunately, there are several services in the world that provide a substantial head start. Here's a nice round-up. I've had direct experience only with Parse.com, and think it's excellent.

How To Record/Track User Actions in iPhone.....?

Is there any easy and effective way to track user activities from my iPhone app. I have to record all actions performed by user in my application without any performance/frozen problems. There should be no limits like per second hits etc.... App is global and cross platform. It is better if I can write my own custom algorithm to make this functional.
You can also use google analytics
https://developers.google.com/analytics/devguides/collection/ios/
We use a service called Flurry Analytics. It works on all mobile platforms and we have had great experiences with it. Free too!
http://www.flurry.com/flurry-analytics.html
The app can collect all kinds of information in a very versatile manner and is efficient in when it sends the data back the the server. I believe it's only when the app terminates.
On the device side it is super easy to set up and beginning tracking user events.

Monitor App Utilisation

Is there any way to track iPhone app utilisation? I'd like to know every time a user has opened or interacted with my app. I don't want any other information about the user or their device. I don't even need to identify the user. I just want to monitor frequency of use and inactivity.
I thought of possibly creating a unique ID using time in seconds and then writing some code in viewWillAppear that sends an email containing the unique ID. But I don't even know if my App will be approved for sale in the AppStore with this function.
Any suggestions would be welcome - thanks you very much in advance for any effort spent on answering this question...
just use Flurry in you App
Flurry Analytics delivers powerful insight into how consumers interact with your mobile applications in real-time. Over 60,000 companies have chosen Flurry Analytics to use in more than 150,000 applications across iOS, Android, Blackberry, Windows Phone, JavaME and HTML5.
Flurry Analytics helps mobile application developers make better apps, deepen consumer engagement and improve monetization of their applications. The service is free, cross-platform, easy to integrate, able to handle data loads of any size application and frequently updated with new, advanced features.
You can use Google Analytics to track these figures.
https://developers.google.com/analytics/devguides/collection/ios/

How to implement and create a central Scoring server using iPhones to send updates

I have been searching and googling different ways to build a central scoring server for a golf tournament but have not found any dead set answers on how I can do this. What I'm looking for is some advice on how I should implement this. I do have a background in programming in Objective-C as I have created a couple of iPhone apps and I'm not afraid of trying and learning new things. I will explain what I envision and if I could get some suggestions on how to start, that would be great.
a. My golf tournament would have about 80 people playing in it.
b. I would have 5 volunteers with iPhones stationed around the golf course to collect scores from the players as they finish a couple of holes.
c. The volunteer would enter the scores into an app on the iPhone. The app would then send the scores to the central scoring server to update a giant leader board at the clubhouse.
My questions are what kind of database should I use? I'll need something that is very user friendly as I'll need to be able to make quick changes to the database on the fly if required. The iPhones will not share the same network as the central server as they would most likely be on 3G out on the golf course. For now, the iPhone app that is sending scores to the server, will not be in the app store as I will build the app through an ad Hoc profile.
Any help, suggestions or advice would greatly be appreciated.
You would presumably need a hosted service of some sort that each instance of your iPhone app would send its data to. Typically those hosted services are implemented in other languages/technology stacks like Java, PHP, or Ruby/Rails. The server app would then persist data into a database: MySQL is a commonly used solution, but there are a lot of options with different strengths and weaknesses depending on your specific requirements.
If a hosted server application isn't somewhere you want to go, and if your requirements are simple enough, you could look into a file-based server solution. For example, you could build your iPhone app to place scores in a small file on a Dropbox folder and then write a standalone app that collects those small files and does whatever you want with the data.
Hope that helps
If you have little experience with servers, you might also consider one of the new server-in-a-can services like parse, stackmob, or kinverse. There's quite a bit involved in building/maintaining a server, especially if you need it to scale.

iPhone app with a RoR 3 web service

I am in the process of building an iPhone app with a RoR 3 web service on the back end. The app is a fairly simple peer-to-peer game. I would really appreciate it if someone could share some pointers and tips on how to best divide the operations between the web service and locally on the iPhone.
For example, chess or backgammon, is the current state of the game being constantly saved and retrieved from the server? or is it stored locally on the iPhones of the players?
Thanks!
This will vary wildly depending on how you want to program the application and what your needs are. You could constantly save and retrieve game state from the server, you could synchronize game state at certain intervals determined by game play, or you could run mostly local. It all depends on your requirements. In general cell networks should be considered slow and unreliable (even though this isn't always true). Keeping data transfer to the minimum required to accomplish your goals makes your app feel more responsive and users happier (especially those in poor coverage areas and those who do not have unlimited data plans).
That depends on whether it's a game against another player or against a computer opponent. If it's against another player, then the state would be updated on and retrieved from the server. If it's against a built-in AI, there would be no reason to send that state to the server, unless your AI is inside your webservice instead of including it in the actual application. It's really a design decision based on what you're trying to accomplish. Generally I would recommend keeping as much as possible local to the app, unless there's a reason to do it on the server, but if there's any competitive aspect to your game, you definitely want to keep control of any calculations on your server. Keep in mind that someone can always try to decompile your application or call your webservices directly passing in false data.