Do I have to buy phone service to write applications for android/iphone?
I am interested in building applications for mobile devices, but concerned about the cost of having multiple lines of service. I would like to be able to test applications on multiple devices with varying screen resolutions without having to always use an emulator.
Will I be able to get by on new-or-used devices for which I have not purchase开发者_如何学运维d phone service?
I would beg to differ to most of the answers written here. You WILL need devices if you intend to provide solid products to your customers. The iOS simulator for example is ok (much better than all available driod emulators) but even for simple Apps you will find differences between simulator/emulator and device when it comes to finding bugs in your code.
Regarding your "service" question. Just get some simlock free devices and swap the sim-cards as needed. Most of the time, WiFi will be fine for developing. Once you need to test against real-world scenarios in terms of data throughput, do as suggested above.
Go get 1-2 iOS devices and at least 2-3 Droid devices. I am recommending more Droid devices because those tend to use variing screen aspect ratios, putting considerably larger efforts on your screen design.
However, for a start, just try it on the simulators/emulators and find out if that is the right market for you.
For iOS, you can buy an iPod touch. It's essentially an iPhone without the phone part.
You will not be able to properly test application that use SIM-specific services (such as 3G, texts, etc..).
For instance, when you're writing an app that relies on an internet web service, you should test both WiFi and 3G connectivity.
With regard to testing your app during phone events (e.g., incoming call), you will have to rely on the simulator.
Besides, as long as your devices are unlocked (i.e., not tied to a specific carrier), and as long as you do not need to use them at the same time, you do not need multiple lines of service. A single SIM can be easily shared (you might need a microSIM with an adapter for older SIM slots).
Emulators (or simulators) are wonderful approximations of real devices, but they have glitches and shortcomings; or, they can be unusually powerful. E.g., the iPhone simulator can make your app seem really, really fast - only because it's running on quite a different hardware. Plus, there's no way to properly test touch events with your fingers.
The answer to the title question is: no, you don't have to.
In my mobile experience (iOS/Android/WinMo/BB), a real device is useful, but a combination of simulator and ample beta testing generally works.
You can purchase unlocked Android devices on eBay - I've seen them. Or at the Google Market developer site, but it's around $400 over there.
Screen resolution has nothing to do with your cell provider contract so...I think you are good to go without the provider contract. ;)
In fact, you don't NEED a device, either as both dev environments come with emulators you can use (thought it's definitely nice to test on an actual device).
The phone is a simple hardware like a keyboard and/or a mouse. You just need to buy simlock free devices, than you can test with one valid sim card (if you want to test service based features of your application).
Options:
- Get unlocked phones (GSM) and share a SIM card
- Use WiFi-only for testing (if your app isn't too dependent on 3G/Edge network characteristics)
- Use something like http://www.deviceanywhere.com/ to test
- Leverage smart beta testers with different devices
You can test multiple GSM phones with a single line of service and a single SIM swapping between unlocked handsets. For the CDMA handsets (sprint/verizon) you're going to have to rely on the Emulator, or purchase handsets that are pretty much solely going to be wifi-reliant.
精彩评论