What is minimum hardware and software requirements for Iphone native apps development? - iphone

Can i develop and test iphone native applications on windows pc and testing in any iphone simulator? If no then, What is minimum hardware and software requirements for Iphone native apps development. I want to make development environment setup in minimum possible price.

Intel-based Mac (can be a Mac Mini; I prefer a MacBook Pro that I can take with me and develop in a variety of locations, office, a playground while kids play, when I travel...)
Xcode (free download)
Optional software I use all the time:
Adobe Photoshop (or similar bitmap
and/or vector based image editing
software)
Logic Pro (or similar sound editing software with a library of
sfx)
The optional stuff is not something I needed as much for other software development. It seems that on the iPhone, the audio/visual experience is as much a selling point as the functionality of the app.
As for whether a simulator is good enough, I have to say NO! The iPhone Simulator is adequate for simple apps, but it operates at a faster processing speed than iPhones and iPhone Touches, making your app run faster than it would in the real world. It also behaves differently in a number of ways, which makes it important to have a 'real' alternative. In fact, during a day of development, I may use the iPhone Simulator for 80% of the test builds, and an iPhone OS device for the other 20% in order to make sure I am on the right track. I have two iPhones with 3.0 and 2.0 software, plus two iPod Touches. The 2.0 iPhone is the 3G, which is the slowest, then the iPod Touches are a bit faster, and the iPhone 3Gs is the fastest of the bunch. I test with all to make sure the user experience doesn't get too sluggish on the slowest.

You basically need an Intel-based Mac. You can find used Mac mini's for cheap (and use an existing monitor and USB keyboard/mouse).

If you're serious about iPhone development, buy a refurbished Mac Mini and a refurbished iPhone to test it on. If you just want to play around first, search Stack Overflow for the thousand other questions that answer how to do iPhone development on windows.

If you're serious about iPhone development, buy a refurbished Mac Mini and a refurbished iPhone to test it on.I prefer to use mac-Mini or an intel based mac.You can do almost all testing on Simulator except these few which requires original hardware(Gps,Opening another iPhone app from your native app).In terms of memory simulator doesn't have it's own memory it depends on your hardware memory so if you want to develop a good bug free app go purchase an iPhone.

Related

Is it possible to build an iPad app on the iPad?

I would like to minimize the number of devices I would have to purchase to do iPad development so it would be nice if it did :)
I suspect the answer is no because I really doubt apple was kind enough to put an objective c compiler on the device. I guess an alternate question would be what is the cheapest apple platform I could use to build apps?
You are correct. Apple wants you to develop your apps on a Mac.
Here is a link to Apple's site describing what you need. A mac with xcode is a requirement.
No, there is neither a compiler nor and IDE available for the iPad. You need a Mac to do iOS development, but even a cheap used Mac Mini will do (and no, you cannot do iOS development on Windows, I'm afraid).
First to answer your "subject question": As far as I know, NO you cannot install Xcode development kit on an iPad and thereby producing new iPad software... Apple also would like you to buy a real Apple computer if you want to do real business with the platform.
BUT
With some effort and research, you can just buy an orignal Mac OSX 10.6 or newer. Then with some tweaking and fixes, you install this on ordinary PC hardware. This is because the Apple computers today also are running on Intel CPU's and PC motherboards.
Its not officially supported nor "okay" from Apple's licensing point of view, but once you get it running the computer / OS thinks its a real Mac and then you can run and compile Mac software as its running 100% as a Mac.
I've seen tests where the owner connected iPod and iPhones to iTunes and AppStore which didnt see anything unusual, so the owner was able to buy movies and music and applications as normally.
Same goes for installing pure Apple software such as Xcode and other Mac-Only software.
You can even install some boot-manager and be able to run Windows 7 and Mac OSX on a partioned harddrive I've been told.
The "thing" is called a Hackintosh. But I was warned that it is far from every piece of PC hardware that you can make run with Mac OSX, so a lot of studying is needed before succeeding I guess.
I am not sure if this app is compatible with ipad, but it can certainly MAKE your app. You still need the SDK to compile the code it generates, and you still need to purchase the dev program to release your app to the store.
Not to mention the functionality you can add is very limited, but it is the closest to developing on the device itself that you can get.
You could use the Notes app on an iPad, or a Javascript editing app, or a cloud hosted text editor from iPad Safari, to write HTML5/CSS/Javascript for a web app. Upload the resulting web app source text plus a manifest to some web server, go to it in Safari with your iPad, test it, and save it as a web clipping web app.
That's for a web app.
If you want to build native iOS/iPad apps you need an Intel Mac running OS X 10.6.x (but even a cheaper old used Mini or iMac will do, as long as it can run Snow Leopard 10.6).
Or at least fast network access to a Mac. You could remote access a Mac using one of the many VNC or other remote viewing apps for the iPad, and develop native iPad apps from an iPad that way, but it would still involve a Mac.

Best practices for iPhone apps on multiple OS versions

I'm developing an app that uses iOS4 features (like MFMessageComposeViewController), but I want to support iOS 3.1.x as well. I know how to do that in code and build settings, but it's getting hard to find devices to test on--I've upgraded my phone and so have most of my friends. And the simulator with XCode 3.2 doesn't support simulating 3.1 as far as I can tell.
When my apps are raking in money hand over fist, of course I'll invest in multiple devices to test different OS and hardware, but I'm wondering what people do when they're starting out and resources are limited. For example, to test an SMS-capable device with 3.1.x, I'd need not only a spare device, but I'd have to pay for a phone service plan as well.
A couple of things I've considered in the meantime:
Install an older version of XCode and use that simulator for 3.1 testing
Buy a used iPod touch and install OS 3.1 (but couldn't test SMS/GPS)
Other ideas? I'd love to hear what other people are doing.
What I do is keep one of each model of iPhone and iPod touch and install the latest version of the OS that runs on it. So I have iPhone 2G and iPod touch 1G with OS 3.1.3; iPhone 3GS, iPhone 4, and iPod touch 2G with OS 4.0; and a WiFi iPad with OS 3.2. Only one of the phones has cell phone service.
As for my builds, I build with SDK 4.0 and set OS 3.1.3 as the earliest target. If you claim to support a certain OS, you must have tested on the device with that OS.
We have a couple of devices at our startup company, and also have very old iPods. Perhaps you can get some for very little second hand?
OffTopic: I think supporting versions old of an OS when a free update is available shouldn't be done for too long. People need a bit of "help" updating. Must admit that iOS 4 might be an exception though, my iPod doesn't live for long with it installed. :(

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

iPhone: Software Development And Distribution

I have a few quick questions about the iPhone software development. I did some research about the topic, but there are a few specific things I would like to ask here, because I will have to estimate the cost of the required hardware and software, before I am allowed to buy anything. I never did any Mac development nor have I ever owned an iPhone, so needless to say this is quite hard for me.
I will buy an iMac mini with 2 GB RAM for iPhone development. I will have to use it at the same time as my regular PC, but the majority of the time I won't use the Mac at all. Do I have to buy an additional monitor, a mouse and a keyboard or is there a better solution?
I will have to port a C library to the iPhone platform and develop an iPhone application that uses the ported library. Do I need anything else than the iPhone SDK to do this?
If I use an external library (see above), can I test the application with the integrated emulator, or is it recommend to buy the device?
I will have to send data to a remote webservice. Aside from this I don't require any other features. Can I just buy the iPhone online from another country (the iPhones here are sim locked), or should I buy one with a contract?
When the application is ready, it will be installed on a few iPhones owned by our customer. Because of security reasons it is crucial that there is no third party involved in this process (i.e. the application should not be distributed on the app store). Is this possible?
If you don't use both computers at the same time it's perfectly possible to use the same monitor and keyboard / mouse for both computer
With the SDK you're set, also, you probably won't need to port the library since C is a subset of objective-C and your library will be available for use with the sdk right away.
The simulator can understand external library just fine
Countries like italy sell the iphone without a contract, you won't have any problem with those. Bear in mind that if all you need an iPhone with a camera then the 3g, 3gs and even the 2g will suit your needs, as all of those have cameras.
Yes, there's an option for distribution called "Ad hoc distribution". Using that you can install you app in your client phone without going thru the appstore

iPhone Programming in Mac OS X running not in a Mac Computer

I want to try some "programming for iphone".
For that I need a Mac OS X, no question about it.. But I have a problem I don't have a Mac Computer.
I have a Intel Dual-Core PC, running XP. Snow Leopard its for Intel, but for Intel Mac computers, right?.
If I manage to install Mac OS X Snow Leopard in my Notebook.
Do you think I can still install and do programming for Iphone, as well in a Mac Computer?
There will be any problems in the programming or debugging?
And there is another thing.. I don't have an iphone. That will may be a problem right?
Yes, as long as you got it installed correctly and it worked well with your hardware (drivers working correctly and hardware properly identified). http://osx86.thefreesuite.com/ If you are doing iPhone development, you need to pay special attention to making sure your USB drivers are working well to. This and other driver/hardware issues may give a headache trying to get things to not only work, but work well and properly.
That is not the easiest task though and can be a real pain in the anatomy. A used cheap intel mac is the way to go to get started. (mini, imac). Just make sure it is an intel mac.
If you dont have an iphone, then you would just use the simulator for all your testing. This is not ideal though as you could not test your app properly. You also cannot use all iphone features in the simulator. It can only simulate so much.
For more info on limitations of simulator. http://trailsinthesand.com/iphone-sdk-simulator-limitations/
Here is a discussion on why the mini is a good choice: Will a Mac Mini suffice for an iPhone Development machine?
Discussion on developing with Ipod Touch vs. Iphone for the Iphone: iPod Touch compared to iPhone as development platform for iPhone apps
And a question over at serverfault about os x install on pc: https://serverfault.com/questions/38496/mac-os-x-install-on-pc-hard-drive/38498#38498
This isn't the place, but providing you get OSX running then:
You need stable USB support for your MB
You might need to mix-up OSX and Darwin/Mach to get full hardware support
The iPhone emulator may well include hardware-checking code
It is cheaper to buy a second hand mac-mini
The questions already been answered but I want to add this to the overall topic.
I specifically bought a Mac to develop iPhone applications. What this single task opened up is far beyond what I was expecting. To list a few things:
I'm extremely impressed with the hardware. No hardware vendor competes with Mac's hardware from what I can tell.
The OS is sweet. I can't list all of the details but the virtual desktops alone is wonderful. Check out the Wikipedia page: http://en.wikipedia.org/wiki/Mac_OS_X
I run Windows Vista from VirtualBox and it works great.
Objective-C -- A very nice programming language; I which I could use it more on windows.
All in all, I can literally get rid of all of my non-apple hardware and run Mac OS X and Vista from the Mac hardware and everything would be great.
My point is, the Mac is worth the price.
Buying a $999 Mac may not be such a bad idea...
And please note, running the Mac OS on a non apple computer is technically a license violation. I don't agree it should be, but it technically is.
UPDATE: You said that you want to see how it is done. You don't need a Mac (or the OS) assuming that you don't want to compile and run programs. Visit the iPhone Developer page at apple. You can get some free samples just by doing the basic free registration (don't sign up for the paid one).
From there, you should be able to download a few samples and look though the source code. You won't be able to view Interface Builder files, but this would at least give you some idea of the Objective-C code.
You can further gather more information online by going to websites like:
iPhone Development Blog
iPhone Development
iPhone Development Bits
There's a commercial environment which allows to develop iPhone applications directly from a Windows machine. You might want to give it a look instead of going through the huge and illegal hassle of setting up a hacked version of OS X on your PC.
http://www.dragonfiresdk.com/index.htm
It was released recently and they claim that some applications produced with it have already been approved for release in the App Store.
From http://daringfireball.net/linked/2010/06/15/dragonfire-sdk :
Their pitch: write iPhone apps using C and C++ on Windows, using Visual Studio, using Zimusoft’s SDK and their own iPhone Simulator. Then you upload your project to Zimusoft’s servers, where they take the project and compile it using an actual Mac and Xcode. You can then submit the resulting “real” binary to the App Store yourself, or let Zimusoft publish it to the App Store themselves.
Try Hackint0sh VM-ware torrents, I haven't had any luck so I bought a iMac instead but I hear that this is an option.
For first testings and learning the language and the concepts this should work. Maybe you are even able to install mac os into a vmware or virtualbox virtualmachine don't know which program applies for your operating system. You should be able to run Xcode and the Simulator and learn all the basics.
But if you want to develop serious Iphone apps I think you need an Iphone because getting a feeling for performance, User Interaction with the touch screen and so on can only be tested on the device itself.
And by the way I think this the perfectly right place for this question.
Agreed with most of the above points.
Mac mini's have gotten cheaper as of late especially if you buy a used one. Think of it this way if you buy a mac mini your first goal as an app developer is to release a paid app that will pay for your mac mini. Making money on the app store is NOT rocket science. It just takes a decent product and some common sense.
Another solution instead of getting an iPhone is to get an iPod touch. It will gives you 80% of the iPhone functionality for development testing and you won't have to sign up for the monthly plan.
FYI if you want to build for Blackberry up until recently it was hard to do without Windows so its not as if Apple is the only one that forces you into certain hardware/software combos to build for their platform. If you want to build for Windows you need to run Windows.