🔴 SwiftUI Threads Clone | iOS 17 | async/await | Firebase | 2023
ฝัง
- เผยแพร่เมื่อ 5 ส.ค. 2024
- Let's build Threads with SwiftUI!
🔴 Become a member to access Exclusive Content & Source Code :
www.stephancodes.com/plans-pr...
🔴 SwiftUI Threads Pro Course:
appstuff.teachable.com/p/swif...
🔴 SwiftUI Threads Pro Source Code:
www.stephancodes.com/product-...
🔴Async/Await:
• How to Network Like A ...
🔴 FREE Instagram Course with SwiftUI:
• 🔴 Build Instagram With...
🔴Navigation Stacks:
• This NEW SwiftUI Featu...
🔴@State vs @Binding video:
• NEVER Confuse @State v...
🖥️ ONLINE COURSES & APPS
👉 Pro Courses:
www.stephancodes.com/videos
👉 FREE UBER SwiftUI Course
• 🔴 Let's Build UBER wit...
👉 iOS App Templates:
www.stephancodes.com/shop
👉 FREE Twitter SwiftUI Course
• 🔴 Let's Build Twitter ...
Chapters
00:00 - Intro
01:02 - App Demo
03:26 - Project Setup
06:14 - Authentication UI
20:56 - Tab Bar Setup
31:42 - Feed View UI
42:52 - Explore View UI
52:40 - Profile View UI
1:12:47 - Edit Profile UI
1:23:45 - Create Thread UI
1:35:34 - Firebase Setup
1:47:04 - Creating A User
2:00:53 - Log in / Log out
2:16:47 - User Service & Data Model
2:36:05 - Updating User Profile
2:43:53 - Explore View Updates
2:57:47 - Profile Navigation & Refactor
3:15:56 - Edit Profile Photo
3:26:09 - Upload Images to Firebase Storage
3:44:05 - Load User Images
3:58:18 - Creating A Thread
4:15:21 - Fetching Threads For Feed
4:31:31 - Fetch User Threads
Social Media:
Instagram - @stephan.dowless - วิทยาศาสตร์และเทคโนโลยี
What I love about your content is that your code is always organised and there's just no bull****. Breaking down real apps into 5 hours of content is also my favourite thing to watch. It takes the apps off the pedestal, and you realise you can make them too. It's empowering. Please do more!
be aware of bad coding practices. He is using singletons all over his project and also the "Pro" content for this course available on his website is also continuing using singletons. This is a very bad practice and can influence your coding career also you can be rejected in coding interviews if they see you have a habit of using singletons. Be aware! I don't know why he didn't update this crap
In case some people don't know, a singleton looks like this : static let shared = ProfileViewModel().
hey just a shoutout, I like how you are able to simply explain the build of a full app, bringing together a lot of different parts and tips. Just amazing.
I thoroughly enjoyed this tutorial! I've just completed the video and I must say, the learning was fantastic. The project's structure is refreshingly simple and tidy. The method of segregating services with view models aligns perfectly with clean architecture principles. I'll definitely be keeping an eye out for your upcoming clones. I gained a wealth of knowledge from this one, and I'm genuinely excited. Thanks a ton for sharing!
I love it how you always show us the latest functionalities
Thanks bro for this ! I just starting out to learn Swift , this really helps me out 🙏🙏
What a video! Thank you for fantastic job It's phenomenal
Great tutorial buddy!!! Love the way you explained the topics in plain easy language. This is my 3rd app that I've built within last 5 days.. starting with a basic UI app with some logic, then a War card game and now just finished this one with all the running features and fixing bugs. This type of content needs more views and likes!! This won't be possible without your help man! I'm 20yr's now, a tech geek who loves web3 to solve real world problems. Let's connect buddy! whenever possible :) keep up the good work. Love from India
Excellent content. I love the focus on code organisation and structuring content
Following you as you build this Threads clone as well as the AirBnB clone gives me confidence to design and develop my own app from the ground up all the way to the publishing stage, thank you
.
this is super valuable - thank you for the time & effort that went into it!
Thanks for not overcomplicating stuff like 99% of other tutorials on TH-cam
I always try to follow KISS. Keep It Simple Stupid
Some improvements:
I've just noticed at time 27:30 that there is no need to set onAppear since tabView selection already takes care of that. Also, swiftui sets a .fill variant as the default value so in Image system name we can just leave it as systemName: "house"
I watched the whole thing!!!!!! over the course of a few days ✨✨✨✨ So good, thank you!!!!
I liked your course very much and decided to become your student. First of all, as a member of yours, I have completed your Threads course as of today and you have contributed a lot to me in my own project. I'm looking forward to the Threads Pro 2.0 version. :)
Hi, is the photos picker and saving image to firebase database work for you? I have been having trouble getting it to save the profileImageURL
Thanks a lot!! really appreciate!
Damn man this video is so good I learned so much from it you the best man ❤❤
Genuinely so impressed with the explanations! Took me a while to understand singletons and their uses. Your videos are amazing honestly. Been coding for 1 year and a half now and I’ve come to realise most of the code I utilise is based off the learning from your videos. P.s. I now also understand combine and how it can be used for the current user and user session! Thank you for this
Great content!
Giving this valuable work for is incredible. This is the best effort to grow iOS community..
Thanks bro your the best !
Thank You!
what a man! God bless
I love how you making things looks simple af
That's cool, I learned a lot.
I hope there are more tutorials like this but with rest API integration, for example authentication which has a bearer token and how to handle it
this is so damn excellent
Brilliant tutorials on SwiftUI! You're doing a great job explaining pretty complex concepts easily. So thank you very much for your work! I only wanted to add one thing about the Singleton pattern that you use for services. If we want to properly implement this pattern, it's a good idea to make the designated initializer private in order to make it impossible to construct an instance of that class. Thus we prevent the possibility to create an instance of that class and make it sure that we can only access those methods and properties through the static shared property.
You are right! I’ve actually started to move away from the singleton pattern. I find dependency injection to be much better
As you are experienced iOS dev, I have a question, is it better to be freelancer or just work in company?
great video, I was wondering how do you then include the threads and the threads response into the same forEach besides them being separate objects, or how do they display together following the timestamp
Wow🔥
Amazing! If I only want to fetch the currently logged in user's threads to the feed, how could I do that? Is there a way to come in contact with you for some assistance?
Hit to TOP
hi thank you for the video i am new so i have a question why you are using static width and height ? there should a way for dynamic width, height or font size. i have worked on real project using react native they provide a library for dynamic style.
If we wanted onboarding preview pages before the login and sign-up pages, in which folder would we place the pages and how would we route it?
Minor Improvement
In edit profile
The rectangle is rounded corners but the white background is coming out of it
As seen in simulator @ 1.23.23
Can you create a video wherein the authentication and backend is cloudkit please!!
28:38, we don't need to do selectedTab == 0 ? "house.fill": "house" as setting a different symbol variants in environment will do it automatically.
Can we say that this is production level code?
Also Stephen please upload regarding unit testing and everything.
Doing god's work btw! thanks😍
how can i enable bracket pair colorizer in xcode.?
hi i have one question brother , why don't we use environmentObject during user login and signup instead of subscribes
You should change your nickname to AwesomeStuff !
Not sure if this comment will be seen but i am having trouble setting up firebase storage and database.. It used to work with my old project but when i set out to remake everything it stopped working.. It is not able to upload image url, it dismisses the edit profile view immediately.
Thanks so much for the awesome tutorial - I'm learning a lot! :)
I'm still new to programming/swift and trying to wrap my head around best practices with passing data around in a swiftui project. Is static let shared = UserService a singleton? Everything I've read seems to emphasize staying away from singletons/shared instances and to only use dependency injection or environmentobjects.
In large-scale real world apps is using a shared instance like this just as optimal as dependency injection?
Your explanation in the video for using a shared instance totally made sense, I'm just confused why everything seems to say not to use them in the real world. Is there a reason a shared instance is optimal here despite what I seem to have read about using them?
There’s a time and place for singletons, and they solve some problems, but create others. Like any pattern, there’s benefits and drawbacks.
Ideally, you would use dependency injections instead. Apple doesn’t recommend excessive use of environment objects or singletons.
DI is a more testable, scalable and maintainable pattern. It’s just a lot more work
@@appstuff5778 Thanks for your input! Do any of your videos or paid courses show how to implement dependency injection?
See you on Monday
Thanks! do you have a tiktok or spotify tutorial?
I am currently finishing up a TikTok clone. Source code will be available on my site this week! Complete video tutorial will be available next month
I noticed we can't use the PreviewProvider extension with the new #Preview in XCode 15. Happen to know a way around that?
A WAY THROU use the old method to do preview in ios 16 for example replace your preview in UserCell with the code below
struct UserCellView_Previews: PreviewProvider {
static var previews: some View {
UserCellView(user: dev.user)
}
}
it work like magic and in case you cant do something in ios 17 try to use the method in ios 16 or 15 if, it not totally depreciated, just for learning purpose
if i know it all , can i be offered 100->200k usd ?
Shouldn't we delete the old profile image when the user uploads a new one? How would we do it? thanks a lot, this tutorial has been extremely useful!
Yes you should. Topics like that are covered in the Pro version of the course. Link is in the description!
Hey there AppStuff! Just wondering how I can add a verification checkmark for it. Unsure if it's in the video but yeah. Looking forward to hearing from you.
has the complete pro course been released??
Yes! Link is in description
@@appstuff5778what’s the difference between this free offering and the paid pro course?
3:44:00
Can you create one course without firebase, like using rest api, for auth
Calling them View Model's is confusing. View Models are supposed to define the logic between the data being represented in the view. Having asynchronous network calls in a view model does not make sense. something like "network interface" or "data provider" would be more appropriate, especially when it comes to writing tests for them.
You say tomato, I say tomato
Why do you need a login? iPhone already knows who you are, just open the app and use! Easy?
You wake up that day and proposed to say some dumb shit for the day right?
@@xVinoz Wrong, but your response makes me proud of you! We need more people like you, seriously.
looks like you are smarter than Apple
@@iLoveAppl3947 A nice sarcasm. Sure, you are very smart too.
So do people really get paid 200k just for this?! That's crazy!
Man if it was that easy you should go get a job making 200K now!
Looks like they don’t realise how long it actually takes to learn all this haha
i know it all , can i be offered 200k usd @@kndkillar2907
Woow😮