Creating a Registration Screen
Instagram Firebase
We'll start off the course by creating a clean and easy layout for our user to enter their registration information. In order to achieve precision with the layout information, I'll show you how to do this using the programmatic approach of layout anchors. It's really fun once you get the hang of it so I think you'll enjoy all the layout techniques in this lesson.

Xcode 11.3+ SceneDelegate Update 4/20/2020

As most of you are probably aware by now, starting with Xcode 11.3, Single View Application projects are now created with a SceneDelegate file. This file is used to manange the scenes in your application and thus also contains the entry point of your app. Because of this change, we'll need to go about setting up our project using SceneDelegate instead of AppDelegate. More specifically, you want to leave AppDelegate alone and instead make the following changes in SceneDelegate:

class SceneDelegate: UIResponder, UIWindowSceneDelegate {    var window: UIWindow?        func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {        if let windowScene = scene as? UIWindowScene {            let window = UIWindow(windowScene: windowScene)            window.rootViewController = MainTabBarController()            self.window = window window.makeKeyAndVisible()        }    }}

Comments (128)
johnrm9
6 years ago
This is kinda cute - let emailTextField: UITextField = { (placeHolderText: String) in let textField = UITextField() textField.placeholder = placeHolderText return textField }("Email")
Brian Voong
6 years ago
mattweil
6 years ago
Why is it for money? Lol, I know you do a great job, it's just i would like this for free so that I can customize Instagram​ all i want.
Brian Voong
6 years ago
atrusniak
6 years ago
Is this a serious comment? You should be thanking Brian to load this course for only 50 bucks. The lessons and knowledge you can gain from him are worth far more!
Tashinyima
6 years ago
Hi Brian, This what I have done to avoid code repeation :) Please shout if I am doing something wrong. lazy var emailTextField: UITextField = self.setTextField(placeholder: "Email", isSecureText: false) lazy var userNameTextField: UITextField = self.setTextField(placeholder: "UserName", isSecureText: false) lazy var passwordTextField: UITextField = self.setTextField(placeholder: "Password", isSecureText: true) lazy var stackView: UIStackView = { let stackview = UIStackView(arrangedSubviews: [self.emailTextField, self.userNameTextField, self.passwordTextField, self.signUpButton]) stackview.distribution = .fillEqually stackview.axis = .vertical stackview.spacing = 10 stackview.translatesAutoresizingMaskIntoConstraints = false return stackview }() fileprivate func setTextField(placeholder: String, isSecureText: Bool) -> UITextField { let textField: UITextField = { let textField = UITextField() textField.placeholder = placeholder textField.isSecureTextEntry = isSecureText textField.backgroundColor = UIColor(white: 0, alpha: 0.03) textField.borderStyle = .roundedRect textField.font = UIFont.systemFont(ofSize: 14) textField.translatesAutoresizingMaskIntoConstraints = false return textField }() return textField }
Brian Voong
6 years ago
Tashinyima
6 years ago
Thanks Brian. Appreciated :)
weare99
6 years ago
Hi Brian, Thanks for this amazing Video Session. i have added this function to my textFields. But I don't know how can I change the textFieldBorder Color as soon as the textField.text is > 0. Can you give me an advise ? func textFieldShouldReturn(_ textField: UITextField) -> Bool { if textField.text != "" { textField.layer.borderColor = UIColor(red:0.39, green:0.87, blue:0.65, alpha:1.0).cgColor }else { textField.layer.borderColor = UIColor(red: 149/255, green: 204/255, blue: 244/255, alpha: 1).cgColor } textField.resignFirstResponder() return true } func textFieldDidEndEditing(_ textField: UITextField, reason: UITextFieldDidEndEditingReason) { if textField.text != "" { textField.layer.borderColor = UIColor(red:0.39, green:0.87, blue:0.65, alpha:1.0).cgColor }else { textField.layer.borderColor = UIColor(red: 149/255, green: 204/255, blue: 244/255, alpha: 1).cgColor } }
Brian Voong
6 years ago
weare99
6 years ago
Hi Brian thanks for your advice. I have added a target to each text field and call a function. tf.addTarget(self, action: #selector(textFieldDidChange), for: UIControlEvents.editingChanged) func textFieldDidChange(_ textField: UITextField) { if textField.text != "" { textField.layer.borderColor = UIColor(red:0.39, green:0.87, blue:0.65, alpha:1.0).cgColor }else { textField.layer.borderColor = UIColor.rgb(red: 149, green: 204, blue: 244).cgColor } } Is there a better solution ? Best regards
Tokyojogo
5 years ago
can you show us how to do this delegate method? Thanks.
Tokyojogo
5 years ago
Hi Brian, can you please show us how to implement this delegate method? Thanks.
rogerbayarea
6 years ago
Thank you for showing and sharing me your coding style. I'd been a lot in tuts, no wonder I never gain confident to develop app because of storyboard which I found it hard and a lot of waste of my time to debug and not grow to code. Am now much gain my confident to finish my startup on iOS next is my Android Studio (still I can't fine which one Java, Kotlin, etc), then Unity 3D on C# for my AV/AR feature in my app business. Please keep up the good heart in sharing us. roger of bayarea
Brian Voong
6 years ago
gymmilo
6 years ago
New course from the master! Thanks again for sharing your passion for programming. Isn’t it possible to put just one sample video of this course on the YouTube channel? I think many subscribers like me never know if it weren’t a feed from the YouTube channel. Adding just one that doesn’t reveal too much code would be sufficient. I’d also like to petition either a map-based app or back-end stuff for future course material. We haven’t covered those areas so it would be NEW. And map itself is fun and because back-end is not fun, you can help us to find some fun. Great respect to the master and please excuse me for this irrelevant comment. I would delete this once Brian the Brain seems to check this.
Brian Voong
6 years ago
Lord Raim
6 years ago
Hello, Brian, hope you are doing well! I.m from Kazakhstan, and how can I pay for this course, same like others? cause something gone wrong, when I hit the green button about purchasing this course best regards, looking forward for your early reply
Eric Yu
6 years ago
You got a very good programming style going on here I love it.
Brian Voong
6 years ago
Amaechi Osazuwa Desmond
6 years ago
Hello Brian, My name is desmond, am 25 and am from africa, i have been following all of your courses on youtube for a while now. i will really love to be a professional like you and will really love to take the instagram course and produce apps that can change lives here in africa. please if you do have a scholarship program, please i will love to be one of the lucky people to partake in it and i promise when am done with this course i will send you amazing projects i will coin out of it. please i will really love to take this course and start freelancing so i can help others like myself. please brian be a part of my success story.
Jesus Adolfo
6 years ago
I wish you gave us all the images for future videos that are not even out yet. That way, we could download all assets and import them just once. I guess, I will just go to the last video that is out and drag the assets from there but I will have to keep doing it when new tutorials come out too.
Brian Voong
6 years ago
atrusniak
6 years ago
Excellent videos, both quality and instruction. The best I have found for explaining the UI development without using Storyboard. Thanks Brian, subscribed! -Adam
parth
6 years ago
have been watching your videos since you had 1000 subs. As soon as I got time to pursue this course, it didn't take me even 1 minute to think if I should buy this or not because i know i would learn a lot from each video of yours.
Brian Voong
6 years ago
Fabrício Beltran
6 years ago
Brian Id like to ask you if you made a real app using firebase and if firebase handle heavy loads with a huge user base. All I ve found about firebase in productiins is that its not a good choice. PLease give me your thoughts about it cause i didnt found it in your channel. TKS
Brian Voong
6 years ago
Riley Wilkinson
6 years ago
Fantastic first class! Great work.
antdwash
6 years ago
Thanks, Brain, definitely loving coding the UI now. Storyboards were actually giving me a hard time understanding the Autolayout concept in general, seeing it this way eased my understanding of Autolayout and constraints in one video. #NoMoreStoryBoards -- Keep up the good work!
Volkan Gürol
6 years ago
Hi Brian, i want to make this view scrollable so that, smaller size phone can reach register button easily. I initiliazed the scrollview, attached to view and arrange other components' restrictions according to scrollview but no luck. Any help is appreciated.
Brian Voong
6 years ago
Heriberto Cantu
5 years ago
Thank you Brian for this excellent course, this works for me for scrolling. Use view for left and right anchor for stackView: ```swift let scrollView: UIScrollView = { let v = UIScrollView() return v }() override func viewDidLoad() { super.viewDidLoad() view.addSubview(scrollView) scrollView.alwaysBounceHorizontal = false scrollView.contentSize = CGSize(width: view.frame.width, height: view.frame.height*1.4) scrollView.anchor(top: view.topAnchor, left: view.leftAnchor, bottom: view.bottomAnchor, right: view.rightAnchor, paddingTop: 0, paddingLeft: 0, paddingBottom: 0, paddingRight: 0, width: 0, height: 0) scrollView.addSubview(plusPhotoButton) plusPhotoButton.centerXAnchor.constraint(equalTo: scrollView.centerXAnchor).isActive = true plusPhotoButton.anchor(top: scrollView.topAnchor, left: nil, bottom: nil, right: nil, paddingTop: 40, paddingLeft: 0, paddingBottom: 0, paddingRight: 0, width: 140, height: 140) let stackView = UIStackView(arrangedSubviews: [emailTextField, usernameTextField, passwordTextField, signupButton]) stackView.distribution = .fillEqually stackView.axis = .vertical stackView.spacing = 10 scrollView.addSubview(stackView) stackView.anchor(top: plusPhotoButton.bottomAnchor, left: view.leftAnchor, bottom: nil, right: view.rightAnchor, paddingTop: 50, paddingLeft: 40, paddingBottom: 0, paddingRight: -40, width: 0, height: 200) } override var supportedInterfaceOrientations: UIInterfaceOrientationMask { return .all } ```
Heriberto Cantu
5 years ago
To adjust scrollView on Orientation changes: override func viewWillLayoutSubviews() { scrollView.contentSize = CGSize(width: view.frame.width, height: view.frame.height*1.4) }
Razzor Owa
6 years ago
Interesting first class!
Paradox_Gods
6 years ago
Hey Brian, just wondering do you make your own assets for your projects, and if so what do you make them in or get them from? Thanks, great first video!
Brian Voong
6 years ago
josephlausf
6 years ago
5/5!
0zgur
6 years ago
Thanks, Brain
cramirez
6 years ago
what xcode version was used in making this project?
Brian Voong
6 years ago
edward
6 years ago
Hi Brian, really excited for this course. Keep up the awesome work #allAboutProgrammaticConstraints Out of curiosity how come for your constraints of x and y axis you are using leftAnchor and rightAnchor instead of leadingAnchor and trailingAnchor?
Tokyojogo
5 years ago
I think this was made before that came out. But from what I know, leadingAnchor and trailingAnchor is how it should be done now. Please correct me Brian if I am wrong.
rehan1531
5 years ago
Yes I agree with you @Tokyojoogo . In his latest video about constraints, Brian also recommended to use leading and trailing anchor. It is useful for the languages like Arabic which start from right to left.
Antonio Di Francesco
6 years ago
I noticed that you did not set the "translateAutoresizingMaskIntoConstraints" to false for the sign up button but it seemed to work fine. So I tried to remove that from every StackView arranged views and they keep working fine and resizing as I turn the screen. So I checked out and yes, when adding elements to the Stack View, it is enough to set that property to false just for the stack view itself. A nice bonus from this lesson :)
yaostyle
6 years ago
Hi Brian, I can't wait to complete this new app course with Firebase integration. You've been my great teacher for iOS development. Keep it up and I'll follow alone with your great tutorials. **Something off the topic of the lesson: I figured you visited Taiwan recently. How do you like the trip? Hope you enjoyed the trip.
Maxi Wainberg
6 years ago
You are just Amazing Brian! Thank you! :)
wasim
6 years ago
First Lesson! Your 20 minutes video would take at least 1 hour from other teachers!
Brian Voong
6 years ago
Pavel Bogart
6 years ago
great stuff, Brian!
xd573797483
6 years ago
great start.
Sean Moriarity
6 years ago
Amount of fluff or BS: none. Great pacing and concise explanation of content... I assume the rest of the videos will be as good!
Adam El-Kadi
5 years ago
Very True
tazi_hosni_omar
6 years ago
thank you a lot sensei for this great course .
digimarktech
6 years ago
You tricky one you! I really like the implementation of stack views to group the textfields. This was WAY EASIER than using the previous methodology in your earlier videos by adding constraints for each individual view.
Terry CK
6 years ago
great course! thanks brain
Brian Voong
6 years ago
ajeya
6 years ago
Just started iOS programming and I learnt more in 22 minutes than I did in the last few weeks. Thank you, Brian
Brian Voong
6 years ago
stonypig1
6 years ago
how to make a back-end for the builder, i mean if some user reports someone misuse or abuse the app, how can i sort the database quickly and find that user and delete that user. just a suggestion how for future videos. thanks
smiller193
6 years ago
Is anyone having an issue with the input accessory view getting stuck at the bottom? When exiting comment screen
ywang354
6 years ago
Hi, I have a question. You create a plusPhotoButton like this: let plusPhotoButton: UIButton = { let button = UIButton() button.backgroundColor = .red return button }() Why don't you just create the button like var plusPhotoButton = UIButton(), And then change the background color or something else.
lbta
6 years ago
Thomas David
6 years ago
Hi Brian, Nice tutorial! I just have one little advice, can you make the video a little bigger? I'm using a 27" iMac, but it still looks too small. I don't want to make it full screen because I prefer coding with you step by step. If I make it full screen, I have to switch between xcode and your video.
Adam El-Kadi
5 years ago
My God, I honestly learned so much today more than YouTube x5. I love the way you use the constraints through code, this way its sooooo much easier.
Adam El-Kadi
5 years ago
Guys I have a suggestion for you, when doing the emailTextField and stuff it automatically checks for spelling, and it autocaps just add this to your code... tf.autocorrectionType = .no tf.autocapitalizationType = .none tf.spellCheckingType = .no Add this for each one, emailTextField, passwordTextField, and usernameTextField :)
Adam El-Kadi
5 years ago
This should solve the issue
akositotoybibo
5 years ago
awesome
perry1732
5 years ago
Thank you
mattphelps
5 years ago
Thanks mate!
akositotoybibo
5 years ago
love the way you demo all the scenarios of using constraints and stack views.
Nikhil Patil
5 years ago
hey, i just purchased this course, just wanted to know how much far behind it is in comparison to new IOS-11 and Iphone X??
Brian Voong
5 years ago
Mer Cedes PC
5 years ago
Hi Brian, I've loved this first lesson. I'm learning a lot. Thank you
ohyeyoye
5 years ago
Hey Brian, the lecture is very straightforward and concise. Thank you. A couple of questions arose: 1. Are the layouts of the subviews' completely dependent on the size of the stackView? For example, what should I do if I want the signUpButton to have the width of 50% of the stackView's width? 2. Is it possible to declare the sizes of subviews(textfields, button) and then add them to the stackView, thereby letting the stackView to determine its own width and height given the sizes of its subviews?
Brian Voong
5 years ago
timboehm
5 years ago
How do I place the title within each separate UITextField? Like maybe I want it to be left justified or centered. The code doesn't seem to reflect this. Any help would be appreciate.
Brian Voong
5 years ago
pdefilippi
5 years ago
Brian, lets say I want to drop an email image in the email text field, like an envelope icon png. on the left side. I come from using Interface Builder but want to learn tasks like I am mentioning and complete them programmatically. Any suggestions? thanks
Brian Voong
5 years ago
pdefilippi
5 years ago
thanks Brian
charan
5 years ago
Hi Brian, I'm loving these lessons and learning a lot at the same time. I have a question on the error handling in most of these completion blocks when we call firebase APIs. Most of the time we are printing the error and exiting from the API. How does it work in production app. I know there are 3rd party frameworks you can embed and it will log to some kinda database where you can check, if these error happen on a actual users device. Can you please elaborate and tell us how these error need to be handled. Thanks
Jafar
5 years ago
Hi Brian, I'm getting an error when running the app about halfway through this video. It says Thread 1: signal SIGABRT. I've seen this error before, but only when I use storyboard for design. However, since we are using pure code to design the visuals, I don't think I should have gotten that error to begin with.
Brian Voong
5 years ago
Jafar
5 years ago
After some digging, I found the real reason behind the error. It had nothing to do with the code, and actually had to do with the default settings I changed a week ago. I reset the settings and got it to work thanks to documentation from the apple website. Shouldn't have posted so soon. Thanks for replying though!
charan
5 years ago
Hi Brian, Happy new year!. I was talking about "Crash reporting" . Hope you can share some light on this as to how this is usually implemented in production iOS apps. Thanks
Brian Voong
5 years ago
charan
5 years ago
Thanks Brian.
Michael Evans
5 years ago
Hi Brian I've followed the tutorial and everything looks good but I am getting the following int the console: 2018-01-04 23:06:57.225099-0500 Instagram Firebase[64017:31453840] [MC] Lazy loading NSBundle MobileCoreServices.framework 2018-01-04 23:06:57.226176-0500 Instagram Firebase[64017:31453840] [MC] Loaded MobileCoreServices.framework Should I just ignore, or do I need to address something? Thanks
Brian Voong
5 years ago
Sanket Ray
5 years ago
Just starting out with the course :D....Is the course optimized for all the screens like 4.7" , 5.5", iPads etc?
Brian Voong
5 years ago
hyunah
5 years ago
Thank you for your best lecture
Gurmukh
5 years ago
Hello Brian, could you explain why there is a "?" in this line of code: button.titleLabel?.font = UIFont.boldSystemFont(ofSize: 14) Thanks
Brian Voong
5 years ago
Aivars
5 years ago
Hi Brian, Thanks for creating such good product. I don't have any problems with following at least till Ep 10 :) but have a question related to the registration form. What would be the best way to add images to the text input fields? Like email icon before "Email" placeholder text. Should it be "flying over" image with anchor targeted to the emailTextField (UITextField). And one more side question. If the registration form is too long to fit screen, would you recommend to use scroll view or collection view to make it scrollable? Thanks, Aivars
Brian Voong
5 years ago
Aivars
5 years ago
Thanks for the link, exactly what was needed. Works perfectly
albert
5 years ago
Hey Brian, long time no see! Chinese New Year is approaching, now that I can learn something new finally! I believe it will be the best course! Thank you for doing this! Albert.
ansonngch
5 years ago
Hi brain, I am currently trying to create an application, and I noticed that there is a lot of repeated UILabel used, is there any ways to make the declaration neater?
Brian Voong
5 years ago
Amit
5 years ago
Hey Brian, I am just getting started with your course. The content is great. I'd like to make one request though. Is there any way to fetch the user current city/country automatically, while doing the signup process ? what are the best practices for doing this. It would be great if you can show it (here or in one of your youtube videos).
Brian Voong
5 years ago
Yoel Lev
5 years ago
Hi there Amit, you can use the reverseGeocodeLocation method from the CoreLocation framework. 1.You should fetch users location coordinates 2.Enter those coordinates in the reverseGeocodeLocation 3.Using the Placemark result from the above method & discover the current City/Country of user Hope it helps (:
Amit
5 years ago
Thank you Yoel, I will give it a try
Kotamoss
5 years ago
How's it going Brian, I was wondering how exactly you change the font itself say, from System to Avenir. I can't seem to get the syntax right.
Brian Voong
5 years ago
Kotamoss
5 years ago
Thanks Brian! Appreciate your help!
Shahrukh Mohammad
5 years ago
Hey Brian, Fantastic like always. I have one question: when I use a custom logo for the upload photo button, setting the UIButton’s type as system results in a blue rectangle. I’ve been having this problem every time I set a custom image to a button. Your clarification will provide a much needed relief. Thank you once again.
Brian Voong
5 years ago
Shahrukh Mohammad
5 years ago
Thanks, it worked
rehan1531
5 years ago
how to pass a string value in closure , i want to pass placeholder in closure let emailTextField: UITextField = { let textField = UITextField() textField.placeholder = "Email" textField.backgroundColor = UIColor(white: 0 , alpha: 0.04) textField.borderStyle = .roundedRect textField.translatesAutoresizingMaskIntoConstraints = false textField.font = UIFont.systemFont(ofSize: 14) return textField }()
Hwang Shi
5 years ago
Hi Brian, is it Ok to use the assets in my own projects?
Brian Voong
5 years ago
omari
5 years ago
if you set the background photo of the button you can also click the button outside of the circle . How to handle that issue ?
Brian Voong
5 years ago
darren100
5 years ago
I am really hoping you start placing the files in MVC or some format as the series go on... On ep1.. liking it so far!
Ushasree Kondapi
5 years ago
Hi Brain, this instagram course is intense as a bootcamp. liked it a lot. I am already happy with 6th video... my target it is to complete it by end of this month (April'18). U have one doubt here... what are the implications for the following code in AppDelegate.swift import UIKit.UIResponder import UIKit.UIApplication class MyAppDelegate: UIResponder, UIApplicationDelegate { var window: UIWindow? = { let window: UIWindow? = UIWindow(frame: UIScreen.main.bounds) window?.makeKeyAndVisible() window?.backgroundColor = .white window?.rootViewController = UIViewController() return window }() func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey : Any]? = nil) -> Bool { window?.backgroundColor = .red return true } } --- because the console shows: [ApplicationLifecycle] Windows were created before application initialzation completed. This may result in incorrect visual appearance. what is this error?
Ushasree Kondapi
5 years ago
it working fine no errors, no warnings, except this message in the console.
Ushasree Kondapi
5 years ago
also, UIWindow() vs UIWindow(frame: UIScreen.main.bounds)
Brian Voong
5 years ago
Ushasree Kondapi
5 years ago
thanks for the reply so instantly. I posted my doubt just before lunch, i got it just after. frame: UIScreen.main is default for UIWindow. have a very nice time brian. keep up the good work.
Ushasree Kondapi
5 years ago
Hi window.backgroundcolor vs myViewController.View.backgroundcolor vs myViewController.view.layer.backgroundcolor all the same?
shubham gupta
5 years ago
One thing i observe, the view must be scrollable as for iphone5s when we rotate the phone, not able to view the complete stack view
AlfieLBTA
5 years ago
Hey Brian Just stated the course today, i'm a frontend developer with a keen eye for design and i was wondering if there's a way to make the texfields custom texfields with the posibility of returning by default some presets for things like: the font size/color , border color/width, etc.. in order to avoid repeating the same code over and over for each text field?
Brian Voong
5 years ago
masonbose
5 years ago
Hey Brian, I'm a relative new-ish iOS dev, and am loving the course so far! I have one question tho as of now: What's the benefit of making functions fileprivate vs not giving them any access control keywords? I read up on it, but I still don't quite wrap my head around it and was wondering if you could shed some light on it. Thanks!
Brian Voong
5 years ago
Tokyojogo
5 years ago
Hi Brian, I took this course before and I'm revisiting it. I have a question I want to ask you but don't know where to do it so sorry to do it here. I'm trying to put 12 buttons on a screen. I will have a 3 horizontal stackviews w/ 4 buttons inside each one and the 3 horizontal stackviews will be inside a vertical stackview. The buttons will be identical in appearance except for the text (say numbers 1-12). What is the best way to go about this? I don't think making 12 button variables is good. I was thinking of making an array but I'm kinda lost on how to implement it and how to lay it out on the stackviews. Would appreciate your help on this or if there's a similar thing further on this course, can you please direct me on which one? Thank you so much.
Brian Voong
5 years ago
Tokyojogo
5 years ago
Thank you Brian. I'll check out that vid again and re-familiarize myself on how to go about it.
pdefilippi
5 years ago
Hey Brian, love the new site. Not exactly sure how to contact you anymore except for here. Do you have any new courses coming up besides podcasts? Will you ever do a course on ARKit and coding an AR app programmatically?
Devwei
5 years ago
Hi Brian,可以加字幕吗?
Brian Voong
5 years ago
Devwei
5 years ago
完全可以听懂的,就是觉得少些什么。没有字幕也没关系的
Ezekiel
5 years ago
I just purchased this course! I can’t wait to get started!
Christian O. Vargas
5 years ago
1/4 training done! Brian!, You sir are the best swift instructor out there! Can't wait to start this course already!!
willzhang007
5 years ago
very well done!!!Keep it up!!!
thtg
5 years ago
Hi Brian, I am a big fan of your YouTube channel and looking to purchase this tutorial to learn advance techniques on building a social app with similar functionalities mentioned in this tutorial using firebase as a backend. I’ve been doing some research into firebase and it’s limitation compared to MySQL database. I was wondering if in this tutorial are you using the “fanout” approach recommend by firebase to implement features such as following, followers, likes etc. https://firebase.googleblog.com/2015/10/client-side-fan-out-for-data-consistency_73.html?m=1
Brian Voong
5 years ago
thtg
5 years ago
Thanks for the clarity.
paul18
5 years ago
Hi Brian, Every time I add an image for my "assets", I receive an error stating "Use of unresolved identifier 'plus_photo'" - I have added the image to my assets but clearly I am missing something - any advice?
Brian Voong
5 years ago
seventhaxis
5 years ago
Paul, can you paste the line where you're initializing that `UIImage`? That error code means that you're trying to use an object that has not declaration. See the following example: ``` let foo = "This is a string." print(foo) print(fooo) // Results in error: Use of unresolved identifier `fooo`. ```
Lance
5 years ago
Hi Brian, 我的听力并不是特别的好,希望可以加上英文字幕,这样我就可以看字幕了。(Sorry, Brian, my english Listening skill is not very well so that I could not understand what you are speaking sometimes. So can you add subtitle?)
Brian Voong
5 years ago
Lance
5 years ago
Ok, thank you.
Rashid Abbas
5 years ago
Hi Brian, I have learned more and more from your tutorials. I have a request to make some videos on AsyncDisplayKit .So can you do...?
daishengliang@gmail.com
5 years ago
Hi Brian, could you add a Video about using phone number to log in? Thanks!
beto123
5 years ago
Thanks A Lot Brian!
Brian Voong
5 years ago
junkain
5 years ago
hi Brian, can u tell me what lesson i need to learn from basic to advance ?, i just watched your video and do the same, it's actually improve me a lot but i can not write my own code with out your project and your video, cause i just learning code online with your video and some other developer, thanks you !!!
ncelq
5 years ago
Hi Brain, great job!!! i purchased the courses and it is enjoying. However, i am not so sure if i go for firebase. I am wonderful if you will have another series for using aws mobile hub? also, what tool / sdk is used normally for tracking user activities? thx
Brian Voong
5 years ago
daishengliang@gmail.com
5 years ago
Hi Brian, I am wondering if you are interested in opening a course about Firebase e-commerce app? THANKS!
Jubal Thang
5 years ago
Hi Brian, I am agree with Daishengliang. That will be really great if you make Firebase e-commerce app. I really like all your courses.
Putte
4 years ago
Xcode 10 does not recognize images in the way in this video, please use: button.setImage(Image Literal, for: .normal) And then choose your image by clicking the icon that is generated in the editor.
martingrasso
4 years ago
This got me closer, but I can't seem to actually select the image literal when it pops-up. I can see it as my only literal, but doesn't allow me to select it.
Brian Voong
4 years ago
martingrasso
4 years ago
Thanks Brian. I was coming back to say that too. :)
lythonik
4 years ago
Thank You your answer helped me!
powerpuffs
4 years ago
hi! Where can we find the source code and image assets?? Love the course my man
Brian Voong
4 years ago
khanhnguyen
4 years ago
Hi Brian, can you help me How I can implement backgroundColor textfield.backgroundColor = UIColor(white: 0, alpha: 0.03) using interface builder. I chose many background colors, but background color and placeholder color aren't the same as using above code.
Brian Voong
4 years ago
daishengliang@gmail.com
4 years ago
Hi Brian, I am wondering if you can add a bonus lesson about Firebase phone number login? The phone number login involves the area code of different countries. I don't know how to build an Instagram phone number login UI with code. Thanks!
benpalmer661
4 years ago
Hi Brian , I am wanting to buy the tinder coarse, the videos all say coming soon, Im guessing you have built the app and now need to film the video lessons one by one. could you please confirm this is true? ben - brp_661@hotmail.com
Brian Voong
4 years ago
benpalmer661
4 years ago
Ok thanks not sure if you have seen my other comment above yet though if I purchase now Can I get the source code I’m not worried about a few bugs, I’m just wanting to see how you stack the cards and load an array of users on to the cards? as well as the heaps of other nice features I’ve seen in the preview video
Brian Voong
4 years ago
benpalmer661
4 years ago
Thanks Ive just made the purchase via visa card.
landahoy55
4 years ago
Hi Brian, I see you put a Youtube video up on linked lists. Do you use the technique in the Tinder course?
benpalmer661
4 years ago
Hi Brian me again when we purchased the tinder coarse do we get the whole project straight away ? please confirm and I will purchase straight away. Ben - brp_661@hotmail.com
Christian O. Vargas
4 years ago
Hi Brian, I noted that when typing my user textfield if I type too much words keep appearing even that the textfield ended...Do you know a way to fix this?
Christian O. Vargas
4 years ago
I think someone else has told this previously anyways, found the fix class LeftPaddedTextField: UITextField { override func textRect(forBounds bounds: CGRect) -> CGRect { return CGRect(x: bounds.origin.x + 10, y: bounds.origin.y, width: bounds.width - 10, height: bounds.height) } override func editingRect(forBounds bounds: CGRect) -> CGRect { return CGRect(x: bounds.origin.x + 10, y: bounds.origin.y, width: bounds.width - 10, height: bounds.height) } }
flashtrend
4 years ago
Hi Brian, I have been following along the tinder videos and I like the new Firestore datebase I was wondering if it would be possible to follow along these videos while attempting to use Firestore rather than RTDB. Would that be possible or would it be too hard to follow.
djibh
4 years ago
Hi, I can’t comment in #50 page so I put it here. One proposal for future extra content: create a video session to capture and send the content, and then close the session. Nice content here Brian. The best even for non English native speakers. Have a great day!
Stephan Dowless
4 years ago
email me at dowless.stephan@gmail.com for how to paginate home feed, implement hashtags/mentions and more
fkeebie
4 years ago
I have just started this great video tutorial. This is the first time I took up the paid tutorial. I did free trainings of Firebase Chat Messenger and several episodes of YouTube as well as other short video tutorials uploaded onto YouTube. That is why I find this video tutorial very easy to follow and understand. There are yet tons and tons of things I learn from tutorials. Hats off to Brian's energetic work!
MaxApp
4 years ago
Hey Brian, I'm trying to set the image for button.setImage(plus_photo, for: .normal) but it does not work and I get an error that said (Use of unresolved identifier 'plus_photo') Do you have any idea on how to fix this? Thanks
Brian Voong
4 years ago
Copytan
4 years ago
Howdy Brian Voong, I tried using both way that you explained but it gives me the message "Editor placeholder in source file." Please can you help me out. Thank you. Rowland Ramos
Brian Voong
4 years ago
Copytan
4 years ago
Never mind I found the problem! Sorry.
Legolas
4 years ago
Same problem here. I typed the "image literal" instead, works pretty much the same:D
sbedx4
4 years ago
Hi Do you know how to add a skip button to the project to bypass login and disable certain tabs from being selected by the user? Thanks
AbdullahTH
4 years ago
Hey Brian, Can you provide a folder that contains all the assets used in this project? It's a bit hard to dig into project files and extract the assets files from each lesson. Thanks,
Bervell666
4 years ago
Hey Brian am in Ghana and we dont use credit cards and PayPal here,I want to ask if you accept Bitcoin as payment plan so that we can also benefit . Please reply me and let me start with the Instagram course. Thank you!.
NikolaBG
4 years ago
Hello, Brian! Do you have an episode where you cover how to block users and mute and report posts?
Clint Larenz Nurse
4 years ago
Hey Brain, Just purchased your course. I was skimming through the lessons to see what the things I need to learn. Do you cover the direct messaging system? Also I see you cover push notifications, does it also include the in app notifications as well? Thank you.
Egya Eshun
4 years ago
Hey Brian how can I download the icons for the project?
valdezr
4 years ago
Not the same icons as he uses, but you can use https://useiconic.com/open to download several types of icons
valdezr
4 years ago
Also, you can download his project and copy his assets if you want to use the same ones he does
Eugeneberezin
4 years ago
Hey, Brian, I was wondering if the code and Firebase version are compatible with Xcode 10.2.1 and Swift 5?
james91
4 years ago
Hi Brian, This is a bit of random question to ask on a Swift course but I was wondering if you planned to ever put together a course similar to this one but using Kotlin/Android. I know you have a few old Kotlin tutorials on your website. The problem is there are not many people doing Android courses using programmatic UI so they all feel a bit amateurish. If you did an Android course there would surely be a market for it don't you think? Also what about building web apps with technologies such as React, are you ever considering doing anything like that? Or do you just see yourself doing iOS courses exclusively? (I know you've just released an iOS/nodeJS course). I think your teaching style is probably the best out there right now for beginners through to current professionals.
Brandon.zappia
4 years ago
please help I put plus_photo and it says incorrect identifier
Brian Voong
4 years ago
dblockmoreau
4 years ago
Hey Brian, whenever I try to do the : plusPhotoButton.heightAnchor.constraint(equalToConstant: 140).isActive = true plusPhotoButton.widthAnchor.constraint(equalToConstant: 140).isActive = true plusPhotoButton.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true plusPhotoButton.topAnchor.constraint(equalTo: view.topAnchor, constant: 40).isActive = true I get a "Thread 1: EXC_BAD_ACCESS (code=EXC_I386_GPFLT)" I can run it without the .isActive = true but when I do the square is somewhat hidden in the top right corner. thanks
Brian Voong
4 years ago
dblockmoreau
4 years ago
hey man, yeah I was able to figure it out. The only other problem I'm having with that portion of the lesson is linking the "plus_photo" to the image button. For some reason xcode wont recognize the image when I say "button.setImage(plus_photo) etc. i guess the synthax was changed for adding images to a button programatically.. any ideas?
Brian Voong
4 years ago
jdhindsa
4 years ago
Brian, I landed a job on July 8th as an iOS developer simply because of your tutorials! You have helped me get into my dream career! Thank you so much!
dneckles
4 years ago
What other training have you done or is Brians training all of the training you did?
jdhindsa
4 years ago
To be honest, Brian's training brought a lot of concepts together and made them clearer. I was using RayWenderlich.com alot, but Brian's courses help more because he walks you through building an app from start to finish. Lynda.com, RayWenderlich.com and Brian's site are all great resources.
dneckles
4 years ago
If you dont mind me asking.. how many courses did you purchase... Im going through his youtube and bought one so far...but I'm curious about the updated versions of his older beginerrish tuts.
Brian Voong
4 years ago
jdhindsa
3 years ago
Sorry for the extremely late reply. I've bought 3 or 4 courses. I'm planning on buying the SwiftUI course too. Try to soak up as much knowledge as you can. It sounds sort of stupid, but that's what it's about. Watch YouTube tutorials (from Brian and others), keep trying to write code, read blog posts. I still feel like I know maybe 0.000000000000001% of iOS Development, but I'm not giving up. Just soak up everything and practice!
Lai Yit Ming
3 years ago
Hi Brain, Just purchased your course. I followed your steps in lesson #1 using xcode 11.1 to generate new swift project. However, the result generated code is different from your video that uses xcode version 10 at minute 1:29. My generated xcode contain "SceneDelegate.swift" files and yours don't. May I know the steps that I should do to remove it and still able to continue working on your lesson using my xcode? Thank you.
Brian Voong
3 years ago
Lai Yit Ming
3 years ago
Hi Brian, Thanks for your prompt response. I tried your code in my new app, it did not work on Lesson #1 minute 6:42, where I see full red screen instead of red square box in white screen. I think it is due to the code you provided above "mainController.view.backgroundColor = .red" in SceneDelegate. I tried changing "mainController.view.backgroundColor = .red" to ".blue" the whole screen turn blue. I tried adding a print() statement in ViewController ( see print(".....NOT WORKING HERE....") below ) and run it again. The result shows that plusPhotoButton in ViewController was not triggered. Therefore, Is there any where I should change in my code to get the tutorial function coded below triggered in ViewController (at Lesson #1 minute 6:42) ? let plusPhotoButton: UIButton = { let button = UIButton() button.backgroundColor = .red button.translatesAutoresizingMaskIntoConstraints = false return button }() override func viewDidLoad() { super.viewDidLoad() print(".....NOT WORKING HERE....") view.addSubview(plusPhotoButton) plusPhotoButton.heightAnchor.constraint(equalToConstant: 140).isActive = true plusPhotoButton.widthAnchor.constraint(equalToConstant: 140).isActive = true plusPhotoButton.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true plusPhotoButton.topAnchor.constraint(equalTo: view.topAnchor, constant: 40).isActive = true } Thank you.
Brian Voong
3 years ago
Lai Yit Ming
3 years ago
Hi Brain, Many thanks for your help. After changing the code based on your input above, I can run my new app along with this lesson using Xcode 11.1 .
learnberry
3 years ago
Hi Brian, I'm using your LBTA tools for this project and for some reason I'm getting an unresolved identifier 'stack' issue when trying to use your stack() function. It works on my other projects but not this one. I created the podfile with it, imported LBTATools, and then wrote let stackView = stack(usernameTextField, emailTextField, passwordTextField, spacing: 12), but it seems it doesn't recognize stack(). I upgraded to XCode 11.2.1 today if that makes any difference.
Brian Voong
3 years ago
learnberry
3 years ago
Thanks for the exceptionally quick reply, that solved the issue. Really appreciate it. Will go on with the lessons now!
Brian Voong
3 years ago
Dino32
3 years ago
This maybe helpful. Set up the window in SceneDelegate guard let windowScene = (scene as? UIWindowScene) else { return } window = UIWindow(frame: windowScene.coordinateSpace.bounds) window?.windowScene = windowScene window?.rootViewController = UINavigationController(rootViewController: LoginController()) window?.makeKeyAndVisible()
johnicode101
3 years ago
i got stuck at the button.setImage(photo_plus) part because for some reason the code didn't get the image i put onto assets.xcassets . so it didn't show the image icon when done :( i tried looking for the solution everywhere but couldn't find it.
Brian Voong
3 years ago
lukez
3 years ago
can I know how to download the images for Assets??
Brian Voong
3 years ago
nawinest27
3 years ago
Hello Brian, If I want to make a swippable of that 3 tab (Like a real instagram app) from grid view -> list view -> bookmark or bookmark -> list view -> grid view, How to do that? ( Sorry for ask outside course's scope, but I buy your course for this section. I don't realize that you just toggle of the way to render cell.)
jdhindsa
3 years ago
Watching Brian code makes me feel like such a noob. :(
Brian Voong
3 years ago
Hassan Qureshi
3 years ago
Does anyone can share Push notification section videos . Some of my videos are stuck at some point. Thanks in advance
abdul_basit
3 years ago
Same Issue here
MaxApp
3 years ago
Thanks for the update for Xcode 11! I wish if you can redo an Instagram course with SwiftUI or TikTok
Brian Voong
3 years ago
MaxApp
3 years ago
Omg thank you Brian so much! ?
Julyan Farias
3 years ago
Wow!! :Clap
Jp1478
3 years ago
I'm not sure what i am doing wrong. i must of bought this course when the new update of Xcode wasn't out. My page isn't loading i created a project as swift UI
Jp1478
3 years ago
when i did my view controller it did not upload the little square
Brian Voong
3 years ago
Jp1478
3 years ago
it matches, thank you
Jp1478
3 years ago
Quick question for the simulator, the oldest simulator version they have is 8. It wouldn't affect it much as I continue this course? or should I try to adjust to its own constraints when building the "plusPhototButton" based on the iPhone 8 display?
Jp1478
3 years ago
nevermind i got it everything seems to be working fine I've made it this far
Jp1478
3 years ago
Jp1478
3 years ago
ahh.. wrote to soon , but at 11:13 after putting the fileprivate fund for setupInputFields(){ and error besides pops up " All paths through this function will call itself
Jp1478
3 years ago
are you going to come out with new courses ??
Jp1478
3 years ago
I'm ready to purchase
Jilly
3 years ago
Hello, Should I remove the rest of the file? func sceneDidDisconnect(_ scene: UIScene) { func sceneDidBecomeActive(_ scene: UIScene) { ... so only the 'func scene' part is left in SceneDelegate?
Brian Voong
3 years ago
jason.chiu
3 years ago
Hey Brian - just brought the course. Enjoying it so far! On the first few steps (for adding the + photo) It seems that the image asset auto-complete doesn't seem to exist, so I had to provide a 'Image literal' and then use the file picker to find my asset. As a slob who prefers to drag and drop stuff, this was really eye opening - thanks!
abdul_basit
3 years ago
Push notification videos are not working properly....
dannyp75
3 years ago
Is this course relevant to the latest version of Swift and XCode 11.6?
GoldenRules
3 years ago
Hi Brian, I would like to publish my app on the app store, so I'm currently implementing Google Native Ads on the feed collectionview. As I'm new on this I made some research on google and stackoverflow but couldn't find anything exhaustive for an implementation without the xib. Do you have in mind to make a course on Google AdMob programmatically with Native ads, or make a free tutorial about it. I believe it would be very helpful. Thank you
GoldenRules
3 years ago
Solved ? thank you anyway
Duyệt Trần
3 years ago
111
Lee Ming-Wei
2 years ago
Is this project using MVVM or MVC?
Kingsley Charles Jnr
2 years ago
Is this course updated for Xcode 5 as I want to purchase it now
johnicode101
2 years ago
hey brian im trying to put a different image for the button but i cant seem to make it bigger ..
frankusu
2 years ago
Error cuz of SceneDelegate? Search 'Main' and delete both instances in Info.plist go to Targets(Instagram firebase)->General->Deployment Info->Main Interface-> and remove 'Main'
HELP & SUPPORT