How many bogomips (or any other relevant unit) can an iPhone or iPod touch deliver?
Is performance in larger applications, as on normal PCs, more limited to cache thrashing than to number of CPU instruction? Or is there some other limit?
What is a recommended total polybudget for a state-of-the-art game in a plain iPod touch (i.e. not iPhone 3GS)?
Does the ARM-11 in the iPod touch and the Samsung ARM in the iPhone have an FPU with the same performance as that of a normal PC, scaled to the core clock frequency?
The reason I'm asking is that I want to port a game with a physics engine (i'm using ODE). If you know anything else I should look out for, don't hesitate to mention it!
GLBenchmark has published a series of benchmarks for various mobile devices, including the iPhone, iPhone 3G, and iPhone 3GS. For example, the iPhone 3G appears to be capable of rendering 687,000 smooth shaded triangles per second (the best I've actually been able to get in my application is 460,000).
In regards to the CPU, the ARM processor on the iPhone has native floating point support, and even has a vector floating point unit. In comparison to a desktop, I ran a computationally intensive operation (NSDecimal addition) on both my desktop (in the iPhone simulator) and on the device (non-3G iPhone). The desktop (MacBook, white, 2.0 GHz Core 2 Duo) did 3344593 operations per second, where the iPhone did 281555. The desktop, which scored 2.64 Gflops on Xbench, was 11.88 times faster than the iPhone. Whether this means that the non-3G iPhone is capable of more than 220 Mflops would require more testing.
Related
I have been building on top of the iphone augmented reality framework found here
but sadly, on mobiles without gyro (namely the 3GS) it doesn't work (as it states.)
Does anyone know of a fix to make it work with the motion sensors and compass heading instead ? Or would anyone be so bounty-hungry to provide the codes to a such framework ?
I will need a way to either make the vectors work, and if it is not possible, I will need to push through and just use heading only.
CoreMotion do work in devices like 3GS. However, this Framework pARk is for devices with gyroscopes (Runtime Requirements: iPad 2 or iPhone 4 running iOS 5.0 or later)
Gyroscope is a fundamental piece of inertial navigation systems (INS) and thus without it you'll have a severe loss in precision.
Check the paper: "Usability of apple iPhones for inertial navigation systems" for a comparison of the performance of iPhone 3GS and iPhone 4. The author's conclusion is:
However, the tests show that even with the use of filters
it is challenging to build a precise INS using sensors from
common devices because of their inaccuracies and high
error rate. The results show that the iPhone 4 can provide
tolerable results for a short time, but then the deviation
becomes too high because of the error rate. Currently we are
implementing a multi-dimensional Kalman filter to examine
possible enhancements. Furthermore we try to improve the
system by using more sensors from the iPhone 4, e.g. light
sensors and camera.
I believe you should think your app to support only iPhone4 or newer.
My application requires at least 40MB of RAM, so earlier iPhones (like 3G, first iPod touch versions) just do not have it (they have max about 20MB for my app). Is there a proper way to disable installing it to 3G devices? I know UIRequiredDeviceCapabilities, but it does not have parameter for minimum available memory.
First, are you sure that your application actually uses 40 MB of RAM on the older devices? I've found (by using the Memory Monitor instrument) that the same application uses less RAM on my iPhone 3G than it does on my iPhone 4 or iPad. The latter two devices have more pixels within their interfaces, so my application chews up more memory when running on them.
If it does, figure out if you can optimize memory usage to get it within a safe (< 30 MB) range for the older hardware. If you can do this, I think you'll see an across-the-board performance improvement in your application, even on the newer hardware.
Finally, if you absolutely cannot run on an older iOS device, I'd recommend using the UIRequiredDeviceCapabilities keys armv7 or opengles-2. Either will filter for the newer (iPhone 3G S and greater) hardware. While not keyed on memory size, the iPhone 3G S launched with significantly more RAM than the older models, and not a device since has had less. It's hard to imagine Apple reducing this specification at any point in the future.
I'm developing a game for the iPhone and I've noticed a difference specific to the 3G iPhone. I have been testing the software all 3 versions of the iPhone - 2G, 3G and 3GS. The 2G and the 3GS work the same, but I find on the 3G that the swipes and touches are much slower to respond. At first I thought it might just be a CPU issue, but the 2G iphone is slower and works the same as the 3GS.
Is this a known issue? Is the 3G iphone known for having a different touch sensitivity?
I suggest you restart your device and see if it is more responsive.
I personnally did not feel any difference in my games applications.
Turns out the game was just chewing up CPU. When the iPhone is running at load, the touch performance goes down, making it seem sticky and less responsive. I've tuned the app and it now works the same on all the machines.
Essentially I'd like to know just how compatible are the iPhone and the iPod Touch. I would like to know if I could buy an iPod Touch (and thus save some cash) and develop iPhone apps on it or if I really should spend the extra money and put up with AT&T and get the iPhone.
What exactly is different between the two devices (other than the missing phone part in the iPod Touch).
Has anyone done this successfully? Or am I crazy for even thinking it?
EDIT
I've corrected the references to iPod Touch in the text so that #person-b won't strangle me..
Also, i would like to make sure that I point out the fact that I really am interesting in the feasibility of developing iPhone apps on an iPod Touch.
As #Chaos noted, the iPhone and iPod touch differ in their hardware features. The iPod touch lacks:
GPS
3G/EDGE cellular connection (that is, it can only connect to WiFi networks)
Compass
Camera
Built-in microphone (the second generation iPod touch supports external microphones; the first generation doesn't)
As for the CPU speeds, Apple doesn't publish any kind of spec for that. However, the iPhone 3GS is definitely faster than the current iPod touch, which is a bit faster than the original iPhone and the iPhone 3G. If your app is CPU-intensive, you should test it on an older iPhone.
Another important difference is the networking capabilities of the different devices. If your app never has to connect to the Internet, then an iPod touch is just fine. However, if you're using the network at all in your app, remember that WiFi connections are nice and stable and fast, but 3G and EDGE connections are slow and crappy and prone to intermittent failure. Your app needs to be able to deal with a crappy Internet connection. You don't actually need an iPhone to test this stuff, though; instead, you can write a script to artificially throttle or interrupt your development machine's network connection. Craig Hockenberry posted a good method for doing this, which you can find reproduced here.
As far as general software development goes, getting an iPod Touch is a fantastic way to get into iPhone app development. I live in Nebraska, where AT&T coverage is spotty at best (my friend's iPhone doesn't get a clear signal in my house). You won't get the bells and whistles of a 3GS, but you'll save on the up-front investment.
I recently purchased a MacBook and a 32GB iPod Touch to do just what you're suggesting - get into iPhone app development on a budget. In the end I plan to pickup several more devices, but just to get started it doesn't make sense to break the bank. I've developed Windows and Linux software but I'm new to Objective-C and the Mac platform in general, so I'm expecting a learning curve. I'd prefer not to be forking over $100 per month to AT&T while I get up to speed.
Here's what I paid for new-in-the-box hardware and software from Apple to get started:
MacBook - $1070
iPod Touch 32GB - $428
iPhone 3.0 OS upgrade - $10.70
All told I've spent $1500 (including tax) to have a viable development platform. According to BillShrink the TCO of a 16GB 3GS with an average usage plan is $2800 (http://www.billshrink.com/blog/iphone-versus-palm-pre-versus-android/). Add in the MacBook and you're up to nearly $4000 in the first two years. I got 2X the capacity for $440...
While I agree that going straight to the iPhone provides the most flexibility, I also think that the iPod Touch is a great introduction to Apple's new software platform. You can save up to $2400 (depending upon how much your current cell plan costs) while getting a feel for the development process.
Update:
One major reason to get the iPhone 3GS is to get OpenGL ES 2.0 support. If you want to do any advanced shader-based rendering, the 3GS is the only iPhone that will work. The 3GS is also nearly twice as fast as the 2G iPod Touch for OpenGL ES 1.1 code. Source: http://toucharcade.com/2009/06/20/iphone-3g-s-vs-ipod-touch-cpu-opengl-es-benchmarks/
No GPS
No 3G Chip
Different CPU Speed (depending on model)
No compass (if we're talking 3GS)
No camera.
Other than that, the apps I'm working on work as well on our graphics guy's iPod Touch as well as on the 3G/3GS
Aside from the other features lacking that other people have listed, the iPod Touch also lacks a built-in microphone, so apps relying on audio input are also a problem.
In general, though, the iPod Touch makes a great testing and development platform for general-purpose apps or games.
I started developing apps for the iPhone on my iPod Touch, here these gadgets are really expensive... and that is a bummer..
The only problem i have encountered while developing was the lack of 3G and the GPS because i wanted to see how my apps will work on 3G compared to WiFi and also i wanted to use the Maps Api but the Touch doesn't have the GPS and i had to find an iPhone to test my app..
If you want to start developing i think the ipod touch is a good starting point also, the 3GS is really expensive(here - Romania - is like 1100 euros - 2 year contracts) and the 3G also(still 600 - euros - 2 year).. so if you only want to play with cocoa and build small apps for free... keep in mind the costs.
The first generation of ipod touch didn't had the volume buttons, the second generation has them..just to confirm
One thing to bear in mind is that the second generation iPod Touch has a more powerful processor than the original and 3G iPhone. If the app you're making is a particularly CPU intense one, you may want to pick up an old iPhone to test against.
There are also a lot of used first generation iPhones out there. You don't need a plan to use them to run apps and get on the Internet via wi-fi. If you really need to test against the older iPhones, you should be able to get one used and not pay AT&T for a subscription.
Yes, this would work fine. They will be more even product lines after apple updates the ipod's to the same internal tech specs as the new iphone. The "iPod Touch" is just like the iphone software wise except for the hardware specific apps.
The iphone has a few more hardware features over the ipod touch like the cellular radios of course, camera, microphone, compass (3gs), and GPS.
So if you are not developing any application that uses any of those device features, the ipod touch should serve you well.
A quote from gizmodo.com
The iPod runs Mac OS X like the iPhone does and we have got unofficial word from inside Apple that it runs exactly the same applications. The exact quote: "they use the same damn binaries".
That quote is from an article that is almost two years old now, and I haven't seen anything to suggest it is incorrect.
So as has been said, as long as you aren't trying to develop hardware specific applications then using the iPod Touch should be fine. Though personally I believe if you intend to develop for a platform you should use that platform. I also understand the iPhone is expensive so I don't blame you for wanting to save some cash. :)
Many people have give pretty good answers. But they have really only pointed out the difference and have not said if you should get an iPod Touch or an iPhone.
GET AN IPHONE
It is simple as that.
It does more than an iPod touch as listed above.
You can use it as a phone and replace your existing phone.
Once your game actually sells you will end up getting an iPhone anyway because you are now making money, you will then need to sell you iPod touch at a loss (you dont really need it).
You will build more than one app in the next year and one of them might rely on the iPhone camera, GPS, or even Video, maybe even compass, you will need an iPhone for all this.
You will now want the internet where ever you are to check you sales stats every day when they come out.
Save you money, buy one device, buy an iPhone and sell your old phone.
The September 2010 iPod Touch has 2 cameras and a microphone. It has the same functionality as the iPhone4 apart from the phone part & doesn't have GPS.
I think it's better to spend money on a iPod Touch 4th gen than on an iPhone 4 (unless you need really accurate GPS coordinates in your app).
I am thinking about buying an iPod touch to make some money on developing apps for the iPhone. I like the concept of the App Store and had a quick look at it with iTunes.
Looks like applications are categorized, to be iPhone OR iPod applications.
Some apps which are free for the iPod seem to cost for iPhone users.
What is the difference of both platforms, or why is the App Store separating them ?
Does it make sense to develop for the iPhone using an iPod touch (beside phone/location related apps) ?
On developer.apple.com I can sign up for selling my Applications on the AppStore for 99$.
Do I have to expect any further costs ?
Is it a problem to develop from outside the US (in my case Germany) ?
The iPod touch is missing:
GPS
Bluetooth (iPod Touch 4G has Bluetooth)
Cellular network
Camera (iPod Touch 4G has front and back cameras)
Microphone (thanks John Topley) (iPod Touch 4G has headset with microphone)
Vibration
The 1G is lacking a speaker
On the plus side it weighs a bit less and is a bit smaller.. Other than that they are pretty much identical (no sarcasm here; it still has the same processor, OS, control system, and display) Personally I would get an iPhone, as you will probably end up getting one later on anyway. I have an iPod touch (bought first) and an iPhone. I never use the iPod anymore.
The iPod touch is obviously cheaper than the iPhone, and there is no contract necessary. However, at least in the UK you can get a contract-free iPhone, and you should be able to do so soon on AT&T in the USA.
There are no extra costs besides the $99 for application development (which is a yearly fee)
We are developing from the UK. One issue to be aware of when you eventually sell your application is tax withholding - Apple will retain 30% of your revenues. There are some forms you need to fill out - I dealt with this in another thread. Here's what I wrote there:
You need to fill out a W-8BEN and give it to Apple to avoid a 30% tax withholding. This requires that you have a SSN (Social Security Number). If, and only if, you do not have an SSN, you may supply an ITIN (Individual Taxpayer Identification Number) or an EIN (Employer ID Number).
To get an ITIN, you need to fill out form W7 and submit that to the IRS.
I currently use an iPod Touch for testing in development, but my application doesn't (currently) use any of the iPhone-only features (such as GPS or the camera).
Other than the hardware differences, the OS is the same, and the iPhone comes with a monthly fee from the cellphone carrier.
In the AppStore, you can mark your application as iPhone Only or iPod & iPhone. If you application needs detailed GPS, photo taking capability, etc you'll make it as iPhone only.
There is no way to set separate pricing for an app based on whether the user has an iPod or iPhone, unless you release two separate versions of the application.
iPod touch pros:
Less weight
Smaller size
Same OS & processor as iPhone
Cheaper than iPhone
iPod touch Cons:
No GPS
No Bluetooth (iPod Touch 4G has Bluetooth)
No Cellular network
No Camera (iPod Touch 4G has front and back cameras)
No Microphone (iPod Touch 4G has headset with microphone)
No Vibration
So, I will suggest going for iPhone.
In my opinion, developing an app both for iPhone and Touch will increase the market.
I use an iPhone 3G, iPhone 2G and an (original) iPod Touch for development. I really like to be able to test on ALL available devices.
The biggest problem I've found with using the iPod touch (2G) is that it's faster
than the iPhone. That's serious if you're working on a game. I've found the
iPhone 3G to be around 10fps slower than my iPod, so before submitting the app I'll probably have to shell out for an iPhone anyway. I'm really not looking forward to the sadomasochistic relationship that is your average telco contract.
I would recommend skipping the iPod Touch and going straight to the iPhone if development is your goal. It has more capabilities (GPS, Bluetooth, Cellular network and Camera) which makes for a wider range of potential applications that may actually be used.