iOS Build a Photo Browser iPhone App Collection Views Introduction

No Storyboard? Really? No seriously, really?

The decision to do this series without Storyboard has to be one of the dumber things have run across recently. You know almost all of the paying customers here are BEGINNERS, right? And you know that beginners are likely using iOS 7 and have learned on Storyboard or maybe Interface Builder, right? And you know that beginners dont want to learn more sophisticated methods, like doing things programmatically, at least as they are learning the basics, right? And you know that going forward people are only going to use Storyboard, so why do a course without it, right? So why would you commission a course not using SB? Answer: poor management. This is why I will be cancelling my membership soon.

David Dong
David Dong
5,593 Points

Oh s*** One of THOSE people, eh?

11 Answers

Amit Bijlani
STAFF
Amit Bijlani
Treehouse Guest Teacher

We respect your opinion and I'm not going to try to persuade you one way or the other. However, the decision to make a course that teaches you programmatically was not made in a vacuum. Several students had expressed interest in wanting to learn to develop an app without using Storyboards. Who better than Sam Soffes to do such a course and I'd love for him to chime in too. In fact, he's written a blog post on the drawbacks of using interface builder (or storyboards).

The fact of the matter is that the course would have benefitted little from using a storyboard. You would setup a collection view controller and a detail view controller and then you would still have to write 98% of the code that was written throughout this course. I encourage you to go through the course and see if you still feel the same way. As a student it's important to learn the underlying mechanics of things so that when you do build that complex app you know how to diagnose a problem. It's like learning to be a mechanic without ever looking under the hood.

It may seem daunting but if you've been following the track then it really shouldn't be. We are here if you have any questions.

Sam Soffes
STAFF
Sam Soffes
Treehouse Guest Teacher

Dan,

Like, Amit Bijlani said, we thought about this for awhile. People were requesting a course without Storyboards and we thought this would be a good one. I don't consider not using Storyboards advanced. It can often be easier to do things in code.

In this case, we create a full screen collection view by inheriting from UICollectionViewController. There wasn't any extra work to set it up in code. For our cells, it's just an image view. Two lines to get that going vs making an outlet, connecting it, etc. The amount of work is very comparable.

I think seeing how to do things another way is very beneficial. Marshall Huss and I have had a very similar experience. In all of my professional work, I don't use Storyboards. No one I know that writes iOS software for a living uses Storyboards. When I set out to make this course with Amit, I said I wanted to make something as real-world as possible while still being easy enough to learn. We both agreed that doing it all in code was a key component to that.

As far as the course goes, you can definitely do all of it in Storyboards if you want. The key concepts around UICollectionView, UIKit Dynamics, gesture recognizers, custom view controller transitions, and networking can be learned either way. Most of these have nothing to do with Storyboards anyway.

I'm sorry you feel that this course isn't useful to you since it's not using Storyboards. We worked really hard to make it great for anyone wanting to go a little further. That's why it's marked advanced. I realize that "advanced" is a relative term. Basically, we just expect you to be familiar with UIKit and excited to learn something new. Every step of the way, I explain what I'm doing and how it works. There are only a handful of minutes that are different since we're not using Storyboards.

I'd really love to hear what you think about the course. Please let me know if you give it a shot. I'm personally very interested to hear what you think of all of the new concepts presented in the course and not just using code over Storyboards.

Thanks for the feedback Dan.

Sam

Jonathan Baker
Jonathan Baker
2,304 Points

Dan,

First off, take a deep breath.

Second, the course you are referencing is listed as "Advanced". I think that establishes the fact from the beginning that this course may not be the best for beginners, and is tailored for more experienced iOS developers who want to learn more about a specific topic, such as UICollectionViews or Cocoapods. It is not intended for a new iOS developer, and may not (and doesn't have to) use storyboards, nibs, or any feature of the iOS development toolchain that isn't core to the point of the course. You could also say that the course should have used localized strings, but it didn't, and that's perfectly okay.

Lastly, and just my personal two cents, I have been an iOS developer since the SDK came out. I have worked on many projects new and old. I have never, ever used a storyboard. I have found they get in the way and actually make things more complicated, and often break down in more advanced scenarios. Not to mention the numerous radars (bug reports) I have seen that are related to storyboards. The same goes for nibs. Many developers prefer using code because it allows precise configuration and tends to be actually faster in terms of development time than fighting with Interface Builder.

For what it's worth I regret using storyboard on most apps I've done in the past. They've caused me more heaches then helped when trying to make reusable code or having to do updates.

The Treehouse iPad App doesn't use storyboards. The entire UI is done with code. Storyboards are not "the new way of doing it", they are simply an alternative.

Hi Dan,

First let me say that I can completely understand where you are coming from. Looking back I hated tutorials that left out storyboards. But as you become a more advanced developer you will start to leave behind the storyboards (it's like having training wheels on your bike). Yes, you are correct, a lot of the members here are new (myself included), but also keep in mind Treehouse has many members that are looking for more Advanced courses (me again). I think this is the BEST course on treehouse for iOS. However it's not for beginners. Treehouse has many beginner level courses for iOS. My advice, stay the course, and don't give up.

Vanessa Cantero Gómez
Vanessa Cantero Gómez
7,376 Points

Hi Dan. I am a student here and new in iOS Development, I have done all iOS Apps on Threehouse, the last one was "Photobomb" and I really like doing things in code because I know what I'm doing. I don't think it is more complicated (in fact, it is easier in my opinion). You have more control about everything. I think this is the best decision to approach iOS Development and I'm glad the team teaches us this way.

Thomas Nilsen
Thomas Nilsen
14,956 Points

I couldn't agree more with everyone. I was actually one of the students who's been requesting a project done in code, and not storyboards for quite a while. They did a great job with it too!

I'm fairly new to IOS, and I think it's important to learn both methods of doing things. Especially in code, to really learn how things work behind the scenes.

After doing this course, I changed my app (which is coming along), from storyboards to code. Why? Because it is a great learning experience.

So, Dan to be perfectly honest I think it's kind of petty of you to cancel the subscription to a GREAT source of learning, just because you were unhappy with the way one course was made.

At the very least - If you haven't already. Try it! Maybe you'll change your mind.

Thomas McCracken
Thomas McCracken
13,591 Points

I've really enjoyed not having a storyboard and doing things in code. It's helped me learn more about what all is going on in code when I do use the storyboard to make things and lot of times I've found that it's actually pretty easy to do in code. I think sometimes switching back and forth with storyboard and code and everything is more confusing than just explicitly saying it in the code. But that's just my opinion; I think it's important for Treehouse developers to make courses for people with different goals and I think they do a good job of it. Not every course needs to create an application using storyboard if that's not how developers do it in the real world.

Gabriel Kieruzel
PRO
Gabriel Kieruzel
Pro Student 19,655 Points

Hello,

I just spotted this topic, anyway this is a bit late to join, I would like to ask anyone from teamtreehouse guys if there are any chances for courses like this one ( without storyboard ) in the future ? I see this as great asset to be able to develop iOS app without IB tool, as recently I got stuck during iOS lessons somewhere else . The situation was I've had an remote access to mac with Xcode etc. And here is the point, it is almost impossible to use storyboard when you are connected remotely i.e. via RDP from windows workstation. The interface builder will not allow you move (drag into scene ) widgets (buttond, views etc.). This makes no sense to follow any tutorial about iOS dev as almost all of them are starting at IB builder.

To be honest I'm not even sure if this is worth considering from the courses point of view, but at least I've asked.

Regards.

Hi Jonathan, take a deep breath and think about who is using Treehouse; developers who are looking to expand their knowledge base or total newbies. Neither wants to learn an old style of doing things when the world has moved on to better methods (ie Storyboard), Given the time and costs, wasting the development of a new video series on an old methodology is a poor decision. I know this course is labeled "Advanced", but again, the topic is new to me, and hence, I am a beginner. By definition, anyone watching this video is a beginner, or they wouldnt be watching it. Congratulations on not using Stoyrboard - I prefer to make my life easier.

Treehouse is about coding not storyboards. You come here to learn Programming

bothxp
bothxp
16,429 Points

Hi Dan,

In my experience many programming courses start with a simple text editor and a command line compiler. This decision is made because the course is designed to teach you how to code in the language and the tutors believed that the many visual or drag & drop tools available just hide the complexity of what's really going on.

So the question is do you want to learn how to do things quickly or do you want to learn the actual detail of what's going on ?

Many visual tools will make your life easier right up until the moment when you need to be able to dive into all of the complex underlying code to fix an issue.

I believe that Sam's comment of "In all of my professional work, I don't use Storyboards. No one I know that writes iOS software for a living uses Storyboards. " really sums it up.