Do I need to buy Iphone for Iphone development? - iphone

Do I need to buy Iphone to develop Iphone applications on MacBook Pro? Or is Iphone SDK for the job?
Thanks.

Technically no, but obviously it would be handy.
Xcode provides an iPhone simulator that can handle most testing (but without support for accelerometer or microphone).
All in all, if you plan on doing iPhone development seriously - get an iPhone.

Technically you could use the emulator with the SDK but you really want some raw devices to test on due to subtle differences.

The iPod touch does a great job for testing apps on a real device. Its performances are very closed to the iPhone and it is much cheaper.

Technically no, unless you building apps related to accelerometer, microphone, sms or auto calling applications. The SDK comes with the iPhone simulator which is more than handy

You can use the Xcode iPhone simulator as well as the iPad simulator to test your code, all of which is free. The only issue will be accessing certain filemanagement which cannot be debugged on a simulator. However, you must have a computer running on Mac OS X and a valid Apple ID to download Xcode. Finally, in order to submit Apps into the App Store, you must buy a $100 developer's license with Apple.
Hope that help! And iPhone development is a ton of fun :)
Thommy

I highly recommend to get the device you're developing for. Since some issues will only will only come up by really using your app as intended.
The touchscreen and it's behavior for example can't really be testet in the simulator. If you want to do more than the next "Fart App" you should invest the money in at least one actuel iOS device.

I will speak from personal experience with a financial prespective
Can you afford it or is the short term compensation from the work going to cover the cost? The latest models are pretty expensive, so I would suggest looking for good deals on models that are a couple of years old. When I say short term, I mean 3 years or less. Because after that, there is a good chance that you are going to need to buy a newer model to take advantage of the SDK features available at that time.
Even if you can afford it do you need it immediately? Are you soon going to be developing features that are completely dependent on hardware and impossible with a simulator ? If no please push the purchase further down the line, by which time you would have made some money (or not) and you can buy a newer model.
Having a latest device gives you the freedom to try out and build apps using the latest SDK features that Apple rolls out, so you can stay ahead in the game. On the flip side, it would be good for development only as long as at least one of the apps that you are developing for runs the highest version of iOS supported by the device at any particular time. For example I bought an iPhone 5S some years ago and now none of the apps I am working on run on iOS 12. So I have very little use for it. Ah I guess the vicious upgrade cycle gets developers too :(

Related

IPhone app build and deliver to store without device

I have a simple question.
I use an old IPhone with ios version 3.1.3 and I have to deliver an app for the ios version 5.0.
Is it possible to build and deliver an 5.0 app to the store without the correct 5.0 device?
Problem is, it isn't really cheap to buy every single ios version device.
I know it is probably necessary to test on a real device, but I only want to know is it theoretically possible do develop and deliver without the device.
thanks for your help
Matthias
Yes, it's possible. Xcode comes with an iOS simulator that simulates iPhones and iPads running iOS 4.3 and 5.0. However these don't fully match real devices, so you really should be testing on real devices. There's an additional problem that a lot of functionality won't work on the simulator, such as in-app purchases and Game Center. But for basic applications, you can scrape by.
If you're looking to reduce costs, iPod touches are almost identical to iPhones and a lot cheaper, so that's the low cost way of testing on a real device. I would also upgrade your current device to iOS 4 if possible - iOS 3 is practically dead now, so it's better to test on a real device with iOS 4 than it is to try to support iOS 3.
Yes it is possible to deliver an app without the correct version.
I found out, that it is even possible to deliver apps without an iPhone.
even though you can deploy apps without having an iOS device ..or having a device with lower iOS version..
but in future and generally a good advice i will give is to find someone with correct iOS device version(any other version will work too) and get him to try your app using ad-hoc distribution..that way you can get feedback of how your app will perform..
Yes it's possible. You can anyway test most functionality by using the simulator.
With the new Xcode, you don't need the device when you are building for release.
What you need to do is select iOS Device in the menu, then Product -> Archive.
Then you will see the "Validate" and "Submit" options in your organizer.

Adobe Flash CS5 and iPod Touch/iPhone

As you may all know (if not, click here), Apple has finally decided to allow apps created using Adobe Flash CS5's iPod Packager on the store. Owning a PC and not a Mac, this is great news for me as I longed to give a crack to iPod development.
I did try to use a fake certificate (yes I admit it) to publish an app and test it on my brother's iPod Touch (running on iOS 4.0), but the app wouldn't install. Is it because the iPod detected the certificate, or does he need to update his device?
My real question, however, is if it's worth paying 99$ for a developper certificate or not now? I was leaning towards the idea but the restriction has just been relieved (if you'll allow me the expression).
Thanks.
-Christopher
I've done quite a bit of AS3 Hacking along with Objective-C hacking, and on a surface level, the workflows are somewhat similar. There are plenty of differences, for instance the syntax has quite a learning curve, and creating UI elements is a breeze in Xcode, and has to be done by hand in flash (unless you like the way flex looks), whereas tapping into opengl and even using core animation can be daunting to a flash developer used to animating things around the screen.
This is important, because I really don't think it's worth the $99 unless you plan on developing in Xcode. A ton of the power of being an apple developer is in that amazing IDE, and missing out on that makes iOS development sound terrible.
There is however, 1 reason I would still buy it: if you already have an app you'd like to release, and all you want to do is get it on the app store. If you have a game you'd like to try releasing, it's absolutely worth the $99. Even if you were to develop it in Obj-C, there's still no guarantee it'll make it through the apple approval process, so you're not really risking much more than any other developer. What you wouldn't want to do is pick up the certificate, then sit on it and wait for it to expire while you're working in an IDE that has no relation to the program.
Buy the certificate if:
a) You already have a mostly-complete app you'd like to release on iPhone.
or
b) You also plan on setting up a Mac dev environment (and probably not until you have it set up).
Don't buy it if:
a) You don't plan on buying a Mac, using Xcode, or releasing an Obj-C app.
or
b) You are just toying with the idea of making an iPhone app, and haven't made any steps towards it yet.
I would definitely not base your decision on if apple will rescind it's decision or not - it's unlikely that they will not allow adobe packaged apps without good reason, and even if they do, it's the same risk any developer takes when making an app for release on the apple store. Apple can just deny it if they feel like it, and there's not much you can do about it.
Think of the $99 as the cost of the privilege to submit an app to apple for review. Even if you plan on developing on a Mac, Xcode is free, and there's no real reason to get a certificate unless you plan on testing on an iPhone or releasing your app. If you're still in a planning stage, skip it until you're ready to go.
I was wondering the same thing. Looking at the way the Android vs. Apple app thing is moving, I'd say yes -- it's worth paying $99/year to be a real mac app dev.
However -- I don't think that developing on anything other than a Mac with XCode is worthwhile.
Adobe Flash Builder (used to be called Flex) 4.5 also exports to iOS apps ( http://www.adobe.com/devnet/air/articles/packaging-air-apps-ios.html), which is great and all, but the fact of the matter is
A) it requires the Adobe AIR runtime to be installed on the phone
B) memory management is a totally different story between as3 and ios
The result of an auto-conversion is bloated file size and poor performance (see comments here: http://www.adobe.com/devnet/flash/articles/optimize_content_ios.html). and related issue here: Size of the Flash Builder 4.5 application after packaging with iTunes
Not to mention there is no reliable emulator for iOS that you can legally get your hands on... I actually just got a mac mini and XCode -- mac mini ~$500... but XCode is a great SDK, and the emulators rock.
If you're serious about developing for the iPod I would get the developer license and at least a cheap Mac Mini. If you actually develop something you want to release you'll probably want it on the app store. It takes some time to get the license so you should just start the process.
If you like to tinker and don't plan to release anything (or don't want to have to use an app store) playing with Android might be more to your liking. There's no cost to get started or to put your apps on your own device other than actually having an Android device. (The same might be true for Windows Mobile, would have to double check).
I think, yes. It is still worth paying the amount...

Do we need an iPhone/iPad for its development?

Today i was going through an website and found something over this iphone and ipad development projects. I had a question whether a developer requires an iphone to actually work with or is there any other simulator type device where we can test it out too.
It would be also great if you can share some docs on getting started.
Thanks.
We have applications that run without a problem on the simulator and crash on the device, so I'd say yes. You might delay it for a bit, and work on the main aspects and buy the device later, but you should have it.
You should start at the iPhone Dev center and depending on your knowledge of Objective C, try some tutorials for it. One of the first tutorials I read about Objective C, and which helped me a lot, is here
You can simulate certain gestures and actions while running the simulator: the developer.apple article is here
You can test many aspects without having an iPad.
There are, however, some that you cannot.
Touch
Acceleration sensor
3G internet
much more
I strongly recommend buying an iPad / iPhone to test the user interface. A PC and the iPad have very different user interaction models, it's hard to create a native feeling app without having an actual device.
You can develop with the iPhone SDK which include an emulator. http://developer.apple.com/iphone/index.action but you would probably be better off having one of the devices if your developing a complex application. For working with Camera's or sensors it's best to have a real device to test you code on.
I dont think there are any devices that run the iPhone system. If there are they are probably illegal.
There is emulator build in XCode.
You dont need a device to run your code etc, but try to test the touch and other sensors in the emulator.
So basically if you are planning on shipping something bigger than helloworld you probably should get the Apple device.
There must be an emulator (I'm not sure, that's a guess), but as with any other development you better have a real device as well so that you have better chances of reproducing problems customers will report.
For iPad development you must have Mac OS X 10.6 Snow Leopard

Will you publish your app without device testing?

me and my friend develop iPad application (a lot of CoreGraphics stuff). But we can't find an agreement. I tell him that testing on device is essential, he tells me that testing on iPhone 3G/3GS will be enough (I have both devices). Can you tell me, probably we really can test our app on 3GS? The main thing is that interface will be iPad designed, so I even not sure how we'll do that...
UPDATED: It is iPad only software, UI is designed for 1024x768
For a high quality product, you have to test on the device. The performance of the iPad is different, and if you have any interaction which involves threading, that can lead to race conditions that you might not find on the iPhone (slower) or the simulator (too fast). I've also seen a number of students run into memory issues that they didn't find on simulator, but that they discover on device.
This doesn't mean you have to buy a device - you can either solicit a friend with an iPad to be a beta tester, or you can lurk in a Starbucks or Peet's. You'd be surprised how many people will bring in iPads, and how many of them are willing to try out a new application.
You can use the simulator, but that's not enough. It is essential that you test your app on an actual device, because the performance on the simulator is vastly different than the device.
If you don't have the money or the iPad isn't available where you are, then ask someone who has one to be a beta tester.
IMHO testing on the device is one of the first rules of developing for a mobile platform.
Apple strongly recommends you test on device before releasing. The iPad and the iPhone are running two different versions of the OS on two different hardwares. Some functions are not really emulated on the simulator. You're asking for trouble.
On the other hand, if you don't have an iPad and you need to ship, you can always roll the dice.
We've ended up having it fail on different devices. Being a small company (about 30 people), we have quite a few different iPhones floating around. Even though we have pretty much every version covered, we still don't cover all releases of the OS. We've caught several bugs internally but there still seem to be some that happen out in the wild that just require different hardware/software configurations. In short, test on as many as possible, but it is very unlikely that you will ever be able to test on all software/hardware combinations.
I'd recommend having the latest iPhone, one that is one or two generations old, and probably the same for the iPad (when it ends up having older hardware versions), but DEFINITELY have both one iPhone and one iPad (and maybe even an iPod touch).
Use the iPad simulator in the iPhone SDK 3.2.
While the performance level can vary, so it certainly would be best to test on the actual device, don't let it be a barrier. You can use the performance analysis tools in the SDK to find problems.
You might try a beta release anyway.
Not a must but highly recommended. I cannot imagine what is worse than someone reports a bug but you have no way to confirm it's true or false. The iPad is faster than 3Gs generally speaking. Of course, your partner may have a "time to market" concern. So, there is no fix answer to this question.
It can be done but is not recommended. I had a iPad app in the store on April 1 before the iPad was released on April 3. It had been tested on real iPhones and the iPad simulator in the SDK. I don't recommend it but there was no choice at the time.
If the performance is acceptable on an actual iPhone 3G, it should be fine on the iPad which has a faster CPU.
You can test your application on simulator. but it is not enough to upload your application on app store because some memory issues generated on device which cannot be produced on simulator. So, better to test your application at least once before uploading on app store. You have to also check your application under performance tools like "leaks".

What can I do with an iPhone and no service?

I'm interested in developing software for the iPhone camera, but I don't currently own an iPhone and don't really want to pay for service. If I were just doing general app development, I'd probably just pick up an iPod Touch, but the Touch doesn't have a camera.
I know I can walk into the AT&T store, buy an iPhone and immediately cancel service. But what can I do with the resulting iPhone? Can I:
... develop apps for it using the native SDK?
... download apps from the app store (over wifi)?
... use it for everything that I can do with an iPod Touch?
More generally, is this just a bad idea for some other reason?
You could jailbreak it and use it on a non-standard plan and pay less money.
You can still develop on a phone after it's jailbroken. You can also still develop on a phone after it has been unlocked. The difference is important:
Jailbreak: You can install applications not available in the app store.
Unlock: you can run the phone on other networks besides it's default carrier (AT&T when in the USA).
Note that you cannot at this time unlock an iPhone 3g running 2.2.1, which it almost definitely will be if you buy it new. You can jailbreak both iPhone and iPhone 3G.
Also be aware that if you buy a new phone, AT&T will charge you $200 to get OUT of your new contract. I think that goes down by 10 or 20$ each month, so that after a year, it's considerably less costly to get out of the plan.
What I suggest is buying a first generation iPhone on ebay or craigslist. First generation iPhones can all be unlocked, irrespective of whether the previous owner put 2.2.1 on them. Also they are much cheaper, have the camera and are totally fine for software development. I was able to find decent first generation iPhones in Seattle just 2 months ago for about $250 - $350 dollars depending on details. Unlocking/Jailbreaking takes a matter of minutes with QuickPwn, and the phone works great as a development platform.
I believe your iPhone must be activated to be used as a target device in xcode. While it would be activated after purchase you would have problems if you cancelled your account and then needed to restore it at somepoint.
If you do wish to support the camera its possible to develop on an iPod Touch - the mechanism for taking a photo is identical to selecting a picture from the library, you specify the source (camera/library) and the rest is handled by the OS with your code receiving the final picture.
If your app is going to be very camera-centric you should invest in an iPhone, but if it's for minor functionality you can probably get by with a touch.
I believe your iPhone must be
activated to be used as a target
device in xcode. While it would be
activated after purchase you would
have problems if you cancelled your
account and then needed to restore it
at somepoint.
No it does not. You can jailbreak to start and it will work fine.