Q: What is iSimulate?
A: iSimulate is an application/library pair designed to solve the issue of not being able to use multi-touch, the accelerometer and compass in the iPhone Simulator. Now, with iSimulate on your iPhone or iPod Touch, it will wirelessly send multi-touch events, the accelerometer and compass events, and the GPS location to the iPhone Simulator.
Q: How does iSimulate work?
A: When added to your project, the iSimulate SDK library creates a listening server on your iPhone Simulator that waits for a connection from an iPhone/iPod running the iSimulate client. When such connection is established, the iSimulate client running on your iPhone/iPod captures all data from the accelerometer sensor, the touch events, the location and device ID and streams them to the server. The iSimulate SDK library then recreates all input events synthetically. This is entirely transparent to your application and does not interfere with your application's functionality.
Q: How does iSimulate speed up development?
A: You can save more than 80% of the compilation time if you run and compile your application on the iPhone Simulator. For instance if you are developing a game and your project builds to about 20MB, a clean build would take 40 seconds to compile and run on a development provisioned iPhone/iPod, while it would take less than 15 seconds to build and run on the iPhone Simulator. The numbers are more drastic for an incremental build, which would be the case most of the time; a change in one code file for the same game would build and run on the iPhone Simulator in about 6 seconds, but it would take about 36 seconds if you are installing it on a provisioned device.
Q: Do I have to modify my application's code to use iSimulate?
A: No. All you would do is to add the iSimulate SDK library to your project.
Q: What applications can I develop using iSimulate?
A: You can develop virtually all types of applications using iSimulate, benefiting from the multi-touch, accelerometer and compass capabilities of your iPhone/iPod on the iPhone Simulator. You can also benefit from it when testing any application that uses location services or requires testing multiple device IDs.
Q: Which versions of the iPhone SDK is the iSimulate SDK compatible with?
A: The iSimulate SDK library can be used to develop applications to run on iPhone OS 3.0 and higher. As of iSimulate 1.5, the SDK for iPhone OS 2.x will no longer be maintained, but the latest version is kept available.
Q: Does iSimulate send all multi-touch events?
A: Yes, as of iSimulate 1.5, there are no limitations on the use of UIKit. All touches are transferred to all types of UIKit objects, so you can use iSimulate to develop virtually any OpenGL or UIKit application.
Q: Will the iSimulate SDK library be linked into my released application?
A: No, the iSimulate SDK library will be linked to only when the application is compiled for the iPhone Simulator. When you build the application and install it on a device, the iSimulate SDK would not have been compiled into it.
Q: How about the performance of iSimulate?
A: iSimulate brings you the performance of your iPhone/iPod to the iPhone Simulator. A small lag might be experienced when using the accelerometer at high frequencies while at the same time using multi-touch.
Q: When in Capture or Viewing mode, how can I select another computer to connect to or open the Options?
A: You cannot go back from either the Capture or Viewing modes, because all touch events need to be captured from the screen and displayed/sent. To go back to either the computer list or the Options you will have to restart the application, or in case of the Capture mode, close the application in the iPhone Simulator.
Q: How does iSimulate connect to the iPhone Simulator?
A: iSimulate requires that both your iPhone/iPod be connected on the same wireless network. If not, you will need to create an Adhoc network (computer-to-computer network) on your Mac and connect to it from your iPhone/iPod. Adhoc connections have been reported to have less performance than WiFi connections through a router if you're using 3.0 on an iPhone (iPods not affected).
Q: I don't see my computer in the list in iSimulate.
A: Step 1: Make sure "-ObjC" is in both the Target and Project Settings, and for "All Configurations".
A: Step 2: In the Console output, there should be a line: "iSimulate: Started publishing service. Waiting for connecting device..." If not, make sure you've followed all the instructions properly, as this line will be printed when the iSimulate library is linked to your application.
A: Step 3: Make sure your Mac OS X's firewall is disabled, in System Preferences > Security > Firewall.
Q: I am experiencing lags in multi-touches and/or the accelerometer.
A: Step 1: If you're running OS 3.0+ on iPhone 2G, 3G or 3GS, try connecting through a Wifi-router and not through an Ad Hoc Wireless connection.
A: Step 2: If you are already connected via a Wifi router and still experiencing lags, try disabling Bluetooth if you are using an iPhone 3G or 3GS.
A: Step 3: Try testing Apple's sample applications: Touches and GLPaint. There should be no lagging with them.
Q: I am experiencing disconnects.
A: Make sure you are running the latest version of the iSimulate SDK. In the Console output, there should be a line that reads like: "iSimulate: You are running SDK version 20100104 with OpenGL support". Make sure the library version is the most recent library available on the download page and that you are updated to the latest version of iSimulate.
Q: I don't receive any GPS data!
A: Make sure you do not discard GPS data with too old time stamp.
Q: I receive an error related to ".objc_class_name_EAGLContext"!
A: Make sure you have downloaded iSimulate SDK without OpenGL support.
Q: I have got more questions. How can I find answers?
A: If you have more questions, please contact the support.
Q: How long did it take iSimulate to get approved by Apple for the App Store?
A: We are asked this question a lot. 3 months. It took three long months!