Working with Multiple Views in Xcode 4? - iphone

I'm doing some tutorials on iPhone development and I am working with window based applications to create an app with multiple views (The tutorial I'm using is from TheNewBoston 21-26). I'm currently using Xcode 4 to make these apps but I'm having trouble because Bucky uses Xcode 3 and there seem to be some differences. Every time I try to make this app, I end up with a blank white screen. I follow the instructions correctly watched the videos multiple times but still nothing happens. Even when I make my own simple window based application it does not seem to work. I think it may have something to do with connecting the views with the MainWindow. If you have somehow gotten this to work using only the instructions from the video can you please give me a link to a website or video that has a simple multi-view tutorial. If Xcode 4 no longer allows this method of working than can you please explain how to get around it. Thanks so much, I really appreciate you helping me. I know I'm new and this is a really basic question but it has been giving me a hard time. Thanks again!

Welcome to iOS development! :) I haven't worked the specific tutorial which you mention, but there's certainly many many others around the web which you could refer to.
Here's just a couple off Google when I looked around a bit regarding handling multiple views through a NavigationController which look detailed enough with good guidelines;
http://www.icodeblog.com/2008/08/03/iphone-programming-tutorial-transitioning-between-views/
http://fuelyourcoding.com/iphone-view-switching-tutorial/
If you're totally new, I would totally recommend getting your hands on some iOS development book (its worth the investment!); there are many; and they outline the process in good detail from start to finish. If you're unfamiliar with the whole process, there are many minor things that can go wrong and create frustration.
Happy coding! :)

Related

What are some good developer resources to make the move to iOS 5?

With Lion and the new Xcode and ARC and Storyboard and the little glitches that many of us have found in trying to make the move into iOS 5, it can be quite intimidating for a junior developer to make the jump.
I know there are similar questions that touch on specific tasks related to making the switch, but not quite what I and probably others are looking for.
So, what are some good resources to help iOS 4 and Xcode 3 developers make the switch to the new technology?
I had quite some success switching using the Apple WWDC 2011 videos concerning new technologies, especially ARC. If you want to spend a few dollars, I also would recommend iOS 5 by tutorials by Ray Wenderlich. if you are already somewhat familiar with the iOS 4 technologies. The book currently is not done but digital buyers get the current beta version which is almost complete. You can see the introductory chapters on the site as well , category iOS 5, and depending on your needs this may already enough to get a jump start in the new technologies.
Watch some of the WWDC videos (which you can get by going to http://developer.apple.com/wwdc and clicking on the "WWDC Videos" at the bottom of the screen). As far as I know, these are free for registered developers.
The "Intro" talks are probably the most illuminating, for developers just getting started in the process of figuring out what to do with iOS 5.
Here are useful links to help implementing storyboard :
http://codingandcoffee.wordpress.com/2011/10/12/iphone-tutorial-one-introduction-to-storyboarding/
http://www.scott-sherwood.com/?p=219
Calling methods between view controllers using Storyboard
I have several iOS5 tutorials on my site and I have had extremely positive reactions to my Storyboard tutorial, it is slightly more in-depth that this previously mentioned. I also have a practical example with a Lamp backend that shows you how to communicate with an iOS device.
Would love to hear your thoughts on them.

Three20 pros and cons

I believe a lot of people have heard of and even used three20 library for building their apps. What's the pros and cons of using it? what's your experience so far - starting from ramping up, app design, building, to approval, and future maintains...
I am interested in picking it up, attracted by the UI elements that not easily get from the official SDK.
I've started developing a new app with Three20. Little note: I've started iPhone Development about one year ago.
I was attracted by the UI elements too, so i thought I'll give it a try.
Downloading the source is strait forward, but when it comes to integrating Three20 to an App it gets difficult. I think I've need about half a day to get it running. The big problem was, that I'm using XCode 3.2.3 with iOS SDK 4.0 and the source I've downloaded was set to run on iOS 3.2. After I read a lot of blog-posts and stuff like that, I finaly managed to run my app on the Simulator and on Device.
The next steps were kind of easy. You can use the UI-Elements and Core-Functions of Three20 easily. Build your app using the URL-based-navigation is great. So Three20 does at lot of things you normaly have to care of yourself. E.g. normaly you have to alloc and init your ViewController, push it to your NavigationController and release it. In Three20 you only have to "call a URL" and the rest is done by the library.
From this point of view Three20 is really great. The next problems I faced was, when you want to customize or change the standard-build-in-components. I've spend a lot of time reading through the class documentation on Three20.info until I've managed to build my own TableCell. I've faced the same Problem, when I want to load my data a different way to a TableView.
Until now I haven't got any problems with some other libraries in the same project.
I think Three20 is great and easy. On the other side it can be quite difficult. If you like the UI Elements, you should give it a try.
The main problem with Three20 is you have to take all of it or none of it - you can't easily just choose a part you'd like to use.
It's worth searching out other projects that do things you might want Three20 for - like photo browsing.
I used it for a few time. The main con is that you must develop the entire project with the three20 library else some bugs will appear.
I inherited a project that had Three20 integrated just for the networking and the message controller. I don't like it. If you just use the functionality it provides, it works, but when you want to modify something you find yourself drowning in spaghetti code. You also discover a lot of bad coding practices – my favorite was a BOOL value being cast to an object pointer. Some of it looks like it was ported from Javascript. I set an intern to work finding all the parts we don't ever call and commenting out as much Three20 code as possible, and at least I no longer drown in compiler warnings. Now we're spending the time to write our own message controller, and I am looking for a different networking stack.

How to choose between a window , view or a navigation based application while developing for the 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

I need help on how to start developing an iPhone application

I have been programming in Microsoft Dot net for the past 4 years. Now, I want to develop an iPhone application. I have no idea where to start. I do not know anything about MAC OSX or any other Apple "words":). Searches on the google about books and online articles fetch a lot of results which is confusing. It would be great if anybody can share their beginner's experience. Thank You.
I've learn all about iPhone programming with this great book: Beginning iPhone 3 Development.
I found it surprisingly easy to pick up. The Apple dev center includes a lot of sample code, and because it's the programming language du jour, there's a lot of forum links and StackOverflow questions about it, as well as plenty of people looking to answer new questions.
It's pretty satisfying to do too, if you've never done mobile development before.
Get yourself a machine and download XCode, the supplied Apple IDE. It's a bit lamer than Eclipse right now, but the new version which is on the verge of release looks much better. Grab yourself access to the developer center (which is worth the investment) and build a simple App or two. Get to know Interface Builder first, because you may not have worked with things like this before.
There are some idiosyncracies in the syntax and whatnot, but you get used to it pretty fast. And then come here and ask more questions. :)
I just ran through this tutorial to get familiar with XCode and Interface Builder.
Then joining a local group about it should be helpful - I'm a member of the Iphone London Users Group and chats with other developers is the most useful tool I have to find out how to do things.

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).