How to choose between a window , view or a navigation based application while developing for the iphone? - iphone

I am a complete newbie(as is already evident) and I can't just figure out when to choose what. I have been through countless googling operations but found no help on the said question, hence had to ask here. It would be great if any of you could explain or even point me to some online resource which does it. Thanks again for your time.

It depends what your app needs. I've made an app which is a series of questions in a survey. For that I used a navigation based app.
However I'm now working on a complicated app which uses a series of navigation controllers within a UITabBarController. So for that I chose to start a window based application because there was going to be a lot of custom programming involved and that was the "cleanest slate" available.
Think about what you need your app to do, and remember the different projects you can start are all basically the same and you can always change them to suit your needs, its just what they all start with included thats different.

I would always recommend to start with Window based application template.
From a window based iPhone app, you can make any kind of iPhone application.
To learn:
I would recommend iPhone Programming: The Big Nerd Ranch Guide
Get the Kindle version for your Mac - Kindle for Mac
alt text http://img408.imageshack.us/img408/3245/bnr.th.jpg

Related

iPhone framework for presenting lists and details about sales items

Instead of starting from scratch, I was wondering if there were any ready made iPhone functionality for presenting a store's item lists (small picture and main info) and detail pages (all images and full info).
All data is already stored in an online database and setting up Web Services or the like for communication is not a problem, but iPhone development experience is limited.
Do you know of anything of that nature that I might utilize?
Sounds like the perfect opportunity to develop a web application specifically for the iPhone. I can't remember the name of the book off the top of my head, but do know that it's offered by O'Reilly. The other upside is you will now have an app that's accessible by other devices also.
Here's the book, it even includes the hooks to interface natively to the iPhone.
A good place to start is looking through some of the code examples available at Apple's iOS developer site. I believe there is a 'Recipe List' example that might be similar to what you are looking to do. Hope that helps!

How can I combine multiple iPhone applications in to one application?

At the moment I have 2 completed iPhone applications. Both these applications must be contained in to one application. I can't have multiple apps on the app store and to avoid confusion among people using these apps I must have them contained to a single application that gives the user the capability to launch any application in the wrapper.
How can I go about doing this. Some of the ideas that crossed my mind are:
Building a Framework, or building a library. But Im not even sure if I'm heading in the right direction.
It seems a little strange to me to want to combine two applications into one, but if your individual applications are reasonably well factored, this should be trivial. Figure out the UI presentation you're going to use to switch between the two applications (tabs, or a list view, or whatever), then set up a navigation controller, adding the "main" views of the two applications.
You then provide a way for the user to transition between the two applications. Piece of cake.
Why not just build a plugin architecture as your application, and let the plugins interface with it, creating what you need? There are many applications on the store which take a similar approach.
Have a look at the three20 library. It provides a useful Launcher View which allows you to create a view similar to the standard iphone home screen with pages and icons. To add a new application you just add a new icon and point it at the first view controller for your app

How to port existing iPhone application to iPad

I have an iPhone application, now i want to convert that application to a universal application which runs on all the devices iPhone/iPod/iPad.
So, where to start, what things i need to do?
Any help, link, sample app, anything, will be highly appreciated.
Thanks in advance :)
I've done that recently, it's actually much simpler than it would seem. I recommend you read the iPad programming guide from Apple, it's about 100 pages in PDF (and you don't need to read all of it). Basically, you need to:
run a command in Xcode that automatically converts your project to Universal
add support for orientation changes, if you haven't done that earlier (it's required on iPad)
go through the app, see what's broken and fix it (e.g. it's likely that you'll see some places where you need to fix autoresize settings for controls)
That's of course if you don't want to redesign the UI for iPad, which you'll probably want to do in the end (e.g. use split views, popup dialogs and various modals, and do less full screen view transitions). The UI that you'll get by going through this steps won't feel 100% iPad-y, but it will work, and will look much better than an iPhone-only app zoomed in, so it's a good start.

iPhone & iPad versions of same app?

I have an iPhone app and would like to create iPad version of it. What is the best way to setup the project when you want an iPhone and iPad version of the app?
I don't see that I'm able to use the same code base since the iPad version will have features in it that the iPhone version doesn't. It seems as though maintenance is going to go up with two similar code bases for the same app.
Refactor the common portions out and create a new target. You're the only one who really knows what the best way to do that is.
I just went through this thought process this week myself, having a published iPad app which I wanted to create an iPhone version of, and I decided on using the universal app approach. I found it worked extremely well for my needs. Once you get past the project setup issues, and the tactics of design decisions of where and how you are going to split up your iPad/iPhone specific code, the universal app framework is pretty fabulous.
Along the way, I created a reusable universal app project template, which I then used as the starting point for my universal app. The code is open source, hosted on github, I encourage you to take a look at it as one way to approach your problem, knowing that it is a tested solution that worked for me. (Additionally, I welcome any contributions from anyone wanting to help make it a more useful project)
The github link is: http://github.com/ryanscott/rcloudlib/tree/master/Samples/rcuniversaltemplate/
In terms of maintenance, I am extremely happy with the minimal added work it takes to support both devices. Sure, it's more work than supporting just one or the other, but it is significantly less maintenance than two separate codebases, where the business & app logic is almost identical.
In summary: I strongly believe that using a universal app is the best approach to creating an app that runs on on both the iPad and the iPhone.
Since the features should be similar but the layout is separate, code base s/b ok but the ib should change - making things far simpler; now v4.0 is a different answer :)
Maintenance would go up a bit. But if you have your app written abstractly enough, it should be fairly easy to port it to other devices. (For example, if you never assume that you will always know the screen size, you should be able to change that fairly easily).
For other things, it may be a bit difficult. However, if you use the Model View Controller (MVC) paradigm of thinking, you should be able to develop both apps simultaneously with only about 1/3 of the extra work. (Keeping the same model and controller, and only swapping out the view, alternatively, you could include the controller in there, but I wouldn't).

How To Make Multi-view Apps?

I learn x-code first time. X-code is very complicated!
Would you tell me how to make multi-view apps?
(Step by step)
I created a step by step guideline to create a multiview application here: Multiview iPhone.pdf
Michael Tuszynski's vimeo tutorial (http://vimeo.com/8930397) is helpful but has some flaws (like creating view instances whenever switching)
apple does an excellent job with their documentation. There is a TON of reference material that answers your question. they provide step by step guides for building apps with multiple views:
http://developer.apple.com/iphone/library/navigation/index.html?section=Resource+Types&topic=Getting+Started
Personally I don't like Apple's documentation because it almost seems to assume that you already code for cocoa on os x.
The easiest way to create a multi-view app is to start a new Tab Bar Controller based application using the template, then drag however many View Controllers you want onto the tab bar controller icon. You can set set the icons and titles on their navigation items and just design and code the view controllers just like you would if each view controller were the only one, except that you probably want to connect them somehow to some shared resource.
Check out the book Beginning iPhone 3 Development as it has excellent step-by-step tutorials on how to do several kinds of multi-view applications. It's well worth the money especially if you get it from a discount book store online or something.
Apress Beginning iPhone 3 Development Exploring the iPhone SDK Jul.2009, By Dave and Jeff. They have given a wonderful tutorial for many types of applications including multiview apps