Storyboard vs Code - Why I use Storyboards

Sdílet
Vložit
  • čas přidán 16. 07. 2024
  • Wondering if you should build your UI with storyboards vs programmatically? I’ll tell you when it’s better to use interface builder and storyboards and when it’s better to use code to build your user interface.
    Most of the articles I’ve read on this topic lean heavily towards doing everything programmatically while bashing storyboards.
    In actual fact, it’s a pretty evenly divided between the two methods. Paul Hudson recently tweeted a poll and I was pretty surprised by how close the results were!
    So if you’re wondering which is better: storyboards vs code in Swift, then let me settle the debate for you once and for all!
    Links mentioned in the video:
    Brian Voong - Storyboards vs Code: Which is faster?
    • Storyboard vs Code Spe...
    Sean Allen - Skeletal Storyboards
    • Xcode 10 - Interface B...
    Get a customized roadmap for your app and start building it in 7 days:
    ⚡codewithchris.com/actionplan
    My guide for Xcode on Windows:
    💻codewithchris.com/xcode-for-w...
    New to app development?
    Check out my step by step beginner series right here (no programming experience required!):
    🎞 • How to Make an App for...
    This video series will teach a beginner how to code and make apps. These videos assume that the student has no prior coding knowledge and is starting from scratch.
    Need motivation?
    Here's just a sample of the success stories my students have sent in:
    👩‍💻 codewithchris.com/success-sto...
    For more tutorials on how to build iPhone apps, make sure you subscribe and visit my site where you'll find a community of like minded learners! Learning something new is always more fun with other people!
    Website: codewithchris.com
    Twitter: / codewithchris
    Community: codewithchris.com/community
    Instagram: / codewithchris
    CodeWithChris is dedicated to teaching beginners and non-programmers all about how to make an app. On the site, you'll find a ton of free resources and tutorials to aid you on your journey to learn iOS development. Many people have successfully picked up Swift 4, Xcode 10 and app building from my course and materials!
    About this video:
    The debate on storyboards or code for your UI has always been a hot one. In this video, I’ll share why I was a huge advocate of building your UI programmatically but now, I’m a huge fan of using Interface Builder and storyboards in Xcode.
    #CodeWithChris #TeamStoryboard #TeamCodeUI

Komentáře • 95

  • @CodeWithChris
    @CodeWithChris  Před 5 lety +3

    QOTD ⚡Do you prefer storyboards or the programmatic approach? Let me know below!👇 Kick start your own app with my free 7 Day App Action Plan ➡️ bit.ly/7dplan

    • @maximobriggs8499
      @maximobriggs8499 Před 3 lety

      A trick : watch series at flixzone. Been using it for watching loads of movies lately.

  • @seanallen
    @seanallen Před 5 lety +33

    Well said, Chris. And thanks for mentioning my Skeletal Storyboard approach!

    • @CodeWithChris
      @CodeWithChris  Před 5 lety +3

      Thanks for taking the time to watch and comment, Sean! Much appreciated!

  • @LetsBuildThatApp
    @LetsBuildThatApp Před 5 lety +40

    Yeah I think over the years the viewers on my channel are asking for even more and more advanced topics. I would also go crazy if I had to teach how to lay out buttons and tableviews again. Great to have a wide spectrum of available content nowadays.

    • @CodeWithChris
      @CodeWithChris  Před 5 lety +6

      Yeah! I always send people your way who want to learn the tougher stuff! :)

  • @johniiibibal8838
    @johniiibibal8838 Před 5 lety +1

    Holy crap, that last slide (with the recommendations) was hella enlightening.
    Thanks Chris!

  • @mehdiabdi3773
    @mehdiabdi3773 Před 5 lety +1

    WoW That Was Different !!!
    Good Job Chris💙

  • @Luism-tz2ey
    @Luism-tz2ey Před 4 lety +1

    chris thanks for sharing your knowledge!!

  • @alimkuprianov3294
    @alimkuprianov3294 Před 3 lety +1

    Finally, someone has answered this question wisely, my thanks)

  • @applepie7282
    @applepie7282 Před 4 lety +2

    thanks Chris. programmatic ui is inevitable at the end of the day. If you're an absolute beginner, I think you should also consider swiftUI as well as the storyboard approach nowadays

    • @CodeWithChris
      @CodeWithChris  Před 4 lety +1

      Hello, yes i think so as well in the future maybe swiftUI may be more dominant for "cross-platform" support, i think storyboard still has a long lifespan though and will not end anytime soon
      - Francis

  • @mrdavidrees
    @mrdavidrees Před 5 lety +9

    Xibs are the greatest- it will fix all your slow storyboard problems. One screen xib for one viewcontroller.

  • @scottcartwright9008
    @scottcartwright9008 Před 5 lety +1

    Great video

  • @rgenericson5361
    @rgenericson5361 Před 4 lety +1

    Very cool!

  • @ljukicar
    @ljukicar Před 5 lety +1

    Bravo Chris👍👍👍

  • @EduardoMoll7
    @EduardoMoll7 Před 5 lety +1

    I think is depends on what you trying to do. I love storyboards but I also like doing it programmatically. Sometimes we want to do dependency injection in an initializer and init from nibs won't let you do that and like you said storyboards should be broken down or else they would be a mess to work in a team environment.

    • @CodeWithChris
      @CodeWithChris  Před 5 lety +1

      A man talking from experience! Thanks for your input!
      @AdrienVillez

  • @MrIMacro
    @MrIMacro Před 3 lety

    Thank you so much Chris, but in your latest videos you are encouraging people to use swiftUI !!
    so did you change your mind? thank you so much.

    • @CodeWithChris
      @CodeWithChris  Před 3 lety

      Yup, we are now producing more SwiftUI videos. But UIKit is important too!

  • @followerOfJesus723
    @followerOfJesus723 Před 5 lety +1

    I agree with this video 100% 👍🏾 👍🏾 👍🏾 👍🏾 👍🏾 👍🏾 👍🏾 👍🏾

  • @tenzinmahabir4669
    @tenzinmahabir4669 Před 4 lety +1

    Hi Chris, I have 3+ years programming experience with Java, C and Python but I am new to Swift and I am wanting to build my first iOS app. In my case, do you suggest I build my app using programmatic UI? If so, does that mean I use swiftUI or is there another way to build an app in Xcode programmatically...because I understand that since SwiftUI is fairly new, it does not have a lot of resources at this time. Thus, I am not sure if SwiftUI is the way to go or not.

    • @CodeWithChris
      @CodeWithChris  Před 4 lety +1

      Hello, although swiftUI is new it will probably have more resources as time goes by especially because there is a lot of interest for it, it is also possible to do programatic UI in normal Swift storyboard but if you are using storyboard then its best to utilize the storyboard
      - Francis

    • @tenzinmahabir4669
      @tenzinmahabir4669 Před 4 lety

      CodeWithChris Thanks for replying, I have some other questions if you don’t mind answering :) 1) Aside from using SwiftUI, what are other ways of making programmatic UI? 2) Is SwiftUI the superior way to design a UI in general and programmatically?

  • @imacg5658
    @imacg5658 Před 3 lety +2

    When I built my 1st app, an app that calculates the amount of money you spend on 1/2 sheet cakes at either Walmart, Costco, or Target, Making a proper menu, about page and the UI itself was so easy in Interface Builder. I made it in 30 mins. I attempted doing it in SwiftUI code, but I always fell flat. I have decent experience with Python, but wow, IB is so much better for me.

    • @CodeWithChris
      @CodeWithChris  Před 3 lety

      Thanks for sharing!!
      - Kat

    • @imacg5658
      @imacg5658 Před 3 lety

      CodeWithChris You’re welcome! I just wanted to share what method worked best for me!

  • @MuhammadAli-zv5vz
    @MuhammadAli-zv5vz Před 5 lety +9

    i am very lazy person i like storyboards.😛

  • @user-vg2eq8ud9q
    @user-vg2eq8ud9q Před 3 lety

    Hi, Chris. Thanks for this video! I'm a college student with programming skills and I'm interested in macOS coded UI development. Could you please give me some advice about where to start? Or some recommended tutorials?

    • @user-vg2eq8ud9q
      @user-vg2eq8ud9q Před 3 lety

      I don't really like Storyboard. And it seems that on macOS, SwiftUI is still weak to achieve full functions.

    • @CodeWithChris
      @CodeWithChris  Před 3 lety +1

      "Hello, sadly we don't cover MacOS programming.. I think SwiftUI would be the better choice though because it would also make your app available on all platforms (phone, tablet, macOS), we recently just updated our course to full SwiftUI so maybe give a look at what we have to offer and see if you are interested.. head over to learn.codewithchris.com to know more about our paid membership and the courses
      - Francis"

  • @maxbudnik
    @maxbudnik Před 5 lety +2

    In my opinion - use the storyboard for MVP or small project. If project is too large and you are work in team use xib and programming UI in code.

  • @gjermundification
    @gjermundification Před 5 lety +1

    4:20 XCode 3 or 10 regardless; here is my 2 cents: everyone should write UI programmatically to learn; then use Storyboard to improve communication in teams. Note some parts have to be done programmatically no matter what. Skeletal Storyboards FTW^^

  • @WiggglezMr
    @WiggglezMr Před 4 lety +2

    SwiftUI, this needs a revisit. there is "Button" now for code and view stacks.

  • @diegoromero1927
    @diegoromero1927 Před 2 lety

    Hey Chris, quick question if I were to build one part with story board and another part programmatically can I connect the two in story board or not?

    • @CodeWithChris
      @CodeWithChris  Před 2 lety

      Hello, kindly post your question in our CodeCrew forum so that our technical support staff there can assist you. Go here: codecrew.codewithchris.com. Thanks for learning with us! -Arthur

  • @developer-juice-Khailenno

    Alright I like this argument. however using xibs and multiple story boards, can this be an option for an advanced dev teams? im talking about intermediate and senior devs.

    • @CodeWithChris
      @CodeWithChris  Před 3 lety

      "Hello, storyboard should be fine even if its a big team as long as only a few people manage the storyboard, but for that case i think it would be better to just build the UI programmatically to have better control and ownership, might i also suggest going SwiftUI to make it more up to date and easier
      - Francis"

  • @aloisohzh
    @aloisohzh Před 4 lety +1

    Are there any free software or apps similar to xcode so I can do the storyboard on windows?

    • @CodeWithChris
      @CodeWithChris  Před 4 lety +1

      You can use Android Studio on Windows so you can create Android apps. If you want to create iOS apps, you really have to use Xcode. Luckily, there are some ways you can get Xcode on Windows bit.ly/CWCWindows
      - Kat

  • @gjermundification
    @gjermundification Před 5 lety +4

    3:52 And for the designers and some U/X people Storyboards are way better.

  • @greyd
    @greyd Před 2 lety +1

    so if we decide to go with storyboard option we can not change it back ? or have both options anytime we want ?

    • @greyd
      @greyd Před 2 lety

      as a noob i am trying to understand but it feels like so if i choose storyboard will it all be just plug & play without serious coding experience? plus if we choose story board isnt it going to show the programitacly version on the side at the end or something ?

    • @CodeWithChris
      @CodeWithChris  Před 2 lety

      You can go back and forth, it's easier to go from a Storyboard to a coded UI app tho. When you go to File >> New, you can to create ay kind of files you want, even a new storyboard. You just need to link everything accordingly. For example, if you delete or decide to not use a storyboard anymore, you have to disconnect all your IBOutlet and create + connect them via code instead.
      As a beginner, I would suggest to stick to one method first, learn how everything works, then start to juggle around.
      Also, SwiftUI is the new kid on the block, check out our newest playlist.
      @AdrienVillez

  • @zenoromio538
    @zenoromio538 Před 3 lety

    Here in 2021. Do you think that storyboard is still a valid option or do you think that SwiftUI is better?

    • @CodeWithChris
      @CodeWithChris  Před 3 lety

      Yup, storyboard is still a valid option because it's been used by industries for a long time. SwiftUI is more of a newcomer. :-) -Arthur

  • @SuperMIKEBIKE1
    @SuperMIKEBIKE1 Před 2 lety

    Chris is it possible to create a UIPicker View not using storyboard?

    • @CodeWithChris
      @CodeWithChris  Před 2 lety

      Hi Miguel! Yes it is possible. You may check out this blog post for more info www.hackingwithswift.com/example-code/uikit/how-to-use-uipickerview.
      You can also post on our CodeCrew forum (codecrew.codewithchris.com) if you have more questions so our tech support staff can assist you further. :) - Pat

  • @frinkyutbe9725
    @frinkyutbe9725 Před 4 lety

    I'm a beginner comes from Android development, the Apple guides and many videos tell me to use the storyboard. But, as you said, the storyboard is not good at version control, I think the comparision of xml is harder to read than Android's, I will try to use the programmatic UI for the better control.

    • @CodeWithChris
      @CodeWithChris  Před 4 lety

      Hello, yes changes in UI will be hard to track on storyboard but you can always specify it in the comments of the version control push
      - Francis

    • @frinkyutbe9725
      @frinkyutbe9725 Před 4 lety

      @@CodeWithChris Thanks for your reply. Yes, we should always leave a clear comment for each commits. But someone may not keep the well commits, and we can't stop them because of some reasons, so I often have to compare the code without a good comment.

  • @Wutodouble
    @Wutodouble Před 3 lety

    How come in CWC 14 day challenge we use swift UI instead of storyboards?

    • @CodeWithChris
      @CodeWithChris  Před 3 lety

      "Hello, moving forward we will only be making tutorials only in SwiftUI now because it will be more and more relevant as time goes on
      - Francis"

  • @DoubleCheapBurger
    @DoubleCheapBurger Před 3 lety

    5:38 Oh my god! That was literally me first year at college with C programming LOL. Brought some flashbacks.

    • @CodeWithChris
      @CodeWithChris  Před 3 lety

      Haha! But look at where you are now! :-) -Arthur

  • @rupeshkadam9703
    @rupeshkadam9703 Před 4 lety +1

    xcode 11 is total messed up when opened.
    plz help

    • @CodeWithChris
      @CodeWithChris  Před 4 lety

      Hello, what problem are you having? We created a forum for people needing help. Could you share this to our CodeCrew Community codecrew.codewithchris.com/ with details and screenshots if possible? Thanks!
      -Kat

  • @sergeyyavorsky3903
    @sergeyyavorsky3903 Před 3 lety +1

    Could you please give me a name or a link to your keyboard from the video.

  • @Foxygrandpa2131
    @Foxygrandpa2131 Před 3 lety +1

    Seems like storyboards are the best option for quick and dirty prototyping, especially when launching your first MVP

    • @CodeWithChris
      @CodeWithChris  Před 3 lety +1

      Hello, yes it usually gives you are clear and easier overview on what you want to achieve, you can also make a wireframe in figma or some other app as well
      - Francis

  • @woolfel
    @woolfel Před 2 lety

    The big reason I use storyboard is the business users. I can show business users the code, but they won't understand. Something visual like a storyboard helps non-technical users understand how things flow in the app. Some people will argue, just run the simulator to show the flow. For small apps, that's fine, but if you have more than a dozen screens having a storyboard is much easier to see.
    It's the reason movie directors storyboard to work through the flow. UX designers prefer storyboard and it's for a good reason.

    • @CodeWithChris
      @CodeWithChris  Před 2 lety

      Great insights! Thanks for sharing these1 :) -Arthur

  • @MrGZM90
    @MrGZM90 Před 3 lety

    but how about combine uikit and swiftui together?!

    • @CodeWithChris
      @CodeWithChris  Před 3 lety

      Hello, UIKit can still be used by UIKit, the built-in functions will be the same, the main difference is how the data/UI is being built/presented but overall it still uses UIKit for the "logic" behind everything
      - Francis

  • @natgenesis5038
    @natgenesis5038 Před 2 lety

    Swift ui and UI programmatically my preference

  • @DNAatWork14
    @DNAatWork14 Před 5 lety +1

    When I hit the breaking point I give in, learn the hard way...

  • @TM-jb8bw
    @TM-jb8bw Před 4 lety +1

    So a new iOS deveper (frontend developer atm) i have to learn building apps using storyboards, UIKit with code and Swift UI. Thats crazy just to build a user interface. Right @CodeWithChris ?

    • @CodeWithChris
      @CodeWithChris  Před 4 lety +2

      Should be no problem as Swift is just an extension of UIKit just written a bit differently :)
      - Francis

  • @natgenesis5038
    @natgenesis5038 Před 2 lety

    I think we need both UI and Storyboard

  • @TonyDaExpert
    @TonyDaExpert Před 3 lety +3

    Then swift UI came in

    • @CodeWithChris
      @CodeWithChris  Před 3 lety +1

      Still recommend learning storyboards first. 😉
      - Kat

  • @pratikgupta7373
    @pratikgupta7373 Před 5 lety +1

    0:12 it's Bob Lee
    I have taken his udemy course

    • @CodeWithChris
      @CodeWithChris  Před 5 lety +1

      How was your experience with his course?
      @AdrienVillez

    • @rgenericson5361
      @rgenericson5361 Před 4 lety

      @@CodeWithChris Ya that's Bob Lee from back in the day! He ditched iOS during the Bitcoin boon a few years back. Haven't seen nor heard from him since. I bought his advanced Swift course. At the time it seemed that he was really on top of things, however after two years noodling with Swift and watching the vids on Udemy, he wasn't as polished as he could have been. A lot of spelling mistakes etc. Granted English wasn't his first language. The great part was that he focused solely on Swift not iOS. He could have really made a successful run had he stayed the course and expanded on his Swift courses. They were lacking exercises unfortunately. There is still tons of opportunity to create really good Swift only training content but 99% of instructors still only scratch the surface.

  • @the0dd1out_on_yt
    @the0dd1out_on_yt Před 2 lety +1

    You saved my ass bruh

    • @CodeWithChris
      @CodeWithChris  Před 2 lety

      Glad to know. Thank you for appreciating our work! -Arthur

  • @averoes4029
    @averoes4029 Před měsícem

    But @ the end...you "Dont" use Story board and Interface Builder

    • @CodeWithChris
      @CodeWithChris  Před měsícem

      This depends on your team, your practices, and your project.
      I have worked on projects where the standard is to use IB. Developers were assigned to work on different features to avoid or minimize the risk of having conflicts. The benefits of using IB is that views are easy to visualize and constraints are easier to manage especially when the app needs to support both iPhone and iPad (using vary for traits). The downside is obviously the nasty XML conflicts that is difficult to resolve when someone touches the same IB file as you have.
      I've also experienced working on a project with a team of iOS developers assigned to specific features. In this scenario, IB isn't practical because different developers working on the same feature may introduce conflicts. Programmatic UIKit is the preferred approach here. The only downside I observed is that it's challenging to visualize the views you create or update in this approach. For a very large project involving different teams, view file creation can go out of hand. Since its difficult to visualize a view from code alone, different teams (who seldomly communicate with one another) might develop different view files serving a single purpose (based from my experience). Additionally, assigning varying for traits auto-layout constraints can be hectic and verbose. However, this approach works well for teams aiming to avoid conflicts. - Iñaki

    • @averoes4029
      @averoes4029 Před měsícem

      @@CodeWithChris Thanks you for ur feedback

  • @ianosgnatiuc
    @ianosgnatiuc Před 4 lety +1

    All your points are "it's faster and easier for beginners". These aren't important. The points you put againsts the storyboards are real in any projects where there are more than one person who works on a project.

  • @Bazlightyear007
    @Bazlightyear007 Před 3 lety

    It’s slow? Time to get the new Mac with the m1 chip 😁

  • @guitaripod
    @guitaripod Před 4 lety

    Imo those two points for IB aren't really that strong. So TLDR for this video is kind of "Programmatic is better, but I do IB for views" 😂

    • @CodeWithChris
      @CodeWithChris  Před 4 lety

      Hello, ofcourse everything needs to be programmed (coded) but for the position/location, size, constraints of the UI element it can be easily edited and previewed using the storyboard, then you just use IBOutlet or IBAction to "connect" to it
      - Francis