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
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.
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
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
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.
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^^
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.
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.
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.
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
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?
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 ?
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
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?
"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"
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.
"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"
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 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.
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
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
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
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
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 ?
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
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
@@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.
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
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.
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
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
A trick : watch series at flixzone. Been using it for watching loads of movies lately.
Well said, Chris. And thanks for mentioning my Skeletal Storyboard approach!
Thanks for taking the time to watch and comment, Sean! Much appreciated!
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.
Yeah! I always send people your way who want to learn the tougher stuff! :)
Holy crap, that last slide (with the recommendations) was hella enlightening.
Thanks Chris!
Finally, someone has answered this question wisely, my thanks)
You're so welcome! -Arthur
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
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
WoW That Was Different !!!
Good Job Chris💙
Xibs are the greatest- it will fix all your slow storyboard problems. One screen xib for one viewcontroller.
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.
Agree!
@AdrienVillez
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.
Thanks for sharing!!
- Kat
CodeWithChris You’re welcome! I just wanted to share what method worked best for me!
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.
Yup, we are now producing more SwiftUI videos. But UIKit is important too!
chris thanks for sharing your knowledge!!
Welcome! Thanks for the support!
Kat
i am very lazy person i like storyboards.😛
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^^
3:52 And for the designers and some U/X people Storyboards are way better.
I agree with this video 100% 👍🏾 👍🏾 👍🏾 👍🏾 👍🏾 👍🏾 👍🏾 👍🏾
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.
A man talking from experience! Thanks for your input!
@AdrienVillez
SwiftUI, this needs a revisit. there is "Button" now for code and view stacks.
Thanks for pointing that out, Tyler!
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.
Great insights! Thanks for sharing these1 :) -Arthur
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.
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
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?
so if we decide to go with storyboard option we can not change it back ? or have both options anytime we want ?
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 ?
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
Bravo Chris👍👍👍
Thank you!
@AdrienVillez
Very cool!
Thank you!
- Kat
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?
I don't really like Storyboard. And it seems that on macOS, SwiftUI is still weak to achieve full functions.
"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"
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.
"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"
How come in CWC 14 day challenge we use swift UI instead of storyboards?
"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"
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.
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
@@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.
Here in 2021. Do you think that storyboard is still a valid option or do you think that SwiftUI is better?
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
5:38 Oh my god! That was literally me first year at college with C programming LOL. Brought some flashbacks.
Haha! But look at where you are now! :-) -Arthur
Seems like storyboards are the best option for quick and dirty prototyping, especially when launching your first MVP
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
Great video
Chris is it possible to create a UIPicker View not using storyboard?
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
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?
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
Swift ui and UI programmatically my preference
Awesome, thanks for watching! -Arthur
Could you please give me a name or a link to your keyboard from the video.
Like the kind of keyboard that Chris uses? -Arthur
@@CodeWithChris Yes
Are there any free software or apps similar to xcode so I can do the storyboard on windows?
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
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 ?
Should be no problem as Swift is just an extension of UIKit just written a bit differently :)
- Francis
but how about combine uikit and swiftui together?!
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
I think we need both UI and Storyboard
True! Learning both won't hurt! :) -Arthur
Then swift UI came in
Still recommend learning storyboards first. 😉
- Kat
xcode 11 is total messed up when opened.
plz help
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
0:12 it's Bob Lee
I have taken his udemy course
How was your experience with his course?
@AdrienVillez
@@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.
When I hit the breaking point I give in, learn the hard way...
But @ the end...you "Dont" use Story board and Interface Builder
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
@@CodeWithChris Thanks you for ur feedback
You saved my ass bruh
Glad to know. Thank you for appreciating our work! -Arthur
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.
Thanks for your feedback!
- Kat
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" 😂
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
It’s slow? Time to get the new Mac with the m1 chip 😁
Haha, nice rec! :-) -Arthur