mate you are the best, there is no teacher like u. we need people like you in this world. you got a lifetime loyal subscriber. keep doing what you are doing. thank you soo much.
@SwiftfulThinking
3 жыл бұрын
Thanks Amith! 😃 More videos coming soon!
@udonthavasoul
2 жыл бұрын
I followed all the tutorials thus far, coded the app in this video 4 times... I think I'm ready for the next lesson. Thank you
@tomb.6995
Жыл бұрын
I have done all 26 parts of SwiftUI Continued Learning and must say it was an excellent structured and high-quality course. everything worked without hiccups technically. Recommend Nick and his teaching style.
@MosabbirSadman
2 жыл бұрын
Thank you so much for this Nick! You are helping out the community to an extent you cannot even imagine! ❤
@jp_0
Жыл бұрын
Dear, Nick: I feel in debt with you. Thank you for putting so much time in delivering such a quality training for us. I don't know what else to say. God bless you.
@Dois-
2 жыл бұрын
I can't describe how much did I learn from this playlist. Thank you Nick!
@kdtechniquesofficial6153
2 жыл бұрын
I just finished watching this playlist. Learned so many new things. Very useful for my app that I’m currently working on. Thank you so much nick. You’re an awesome human being.. Love you brother.❤️😘
@Stevesvideoshelf
2 жыл бұрын
Whew! Great course Nick! Looking forward to diving into the next lessons!
@chandan589
3 жыл бұрын
What can be better than this explanation while choosing cache and file manager!!! Great content which I must say man!!! Please keep continuing the same. :)
@SwiftfulThinking
3 жыл бұрын
Haha happy to help! Thanks for watching Manish
@manfredkernMK
Жыл бұрын
I made it thru the beginners and intermediates series. Easy to follow and I could also apply some tipps to my own small (MacOS) apps. Thank you so much for your work. 👍👍👍
@SwiftfulThinking
Жыл бұрын
Thanks! I’m very happy to hear this 👍
@AZMerf
3 жыл бұрын
Great video and teaching. I am so excited to have debugged my first SwiftUI app. I forgot to put the ! in front of the FileManager folder check. Took me an hour and I cheated by rewatching some of the video but I knew where to look and immediately figured it out when I stepped through it. I even added some logging and debug statements. Thanks for all your help.
@SwiftfulThinking
3 жыл бұрын
Ahhh good catch. Yea sometimes printing to debug is the best route!
@Nunny25
2 жыл бұрын
Hi Nick, I finally went through this video. I spent several hours with him to understand everything. My way of thinking and programming is definitely changing. Thank you and see you at the next video :-)
@NoName-yg7te
2 жыл бұрын
Thank you, Nick, so much. Cannot show how much I do appreciate your help. Your fan from Uzbekistan!
@yokohibarashi1386
3 жыл бұрын
Great of knowledge you’re blessing us with! Thank you.
@SwiftfulThinking
3 жыл бұрын
Hi Yoko! Thanks again :)
@olepetersen4460
3 жыл бұрын
This is good. I mean really good! You provide structure, clarity and a great set of tools. I have watched and recoded most of your videos just to get the hang of this. I learn a lot. Thank you again for your insight and friendly and thorough lectures!
@SwiftfulThinking
3 жыл бұрын
Thanks for watching Ole! I've seen you comment on a few videos now and it seems like you're progressing 😄
@julianm080808
6 ай бұрын
Hey nick what a piece of art thanks for teaching me all this valuable stuff, you are badass. God bless you
@SwiftfulThinking
6 ай бұрын
Thanks man glad it helps
@sols.2525
3 жыл бұрын
Amazing stuff. Thanks so much Nick. I love your teaching style and can't wait for your next series of videos!
@SwiftfulThinking
3 жыл бұрын
Thanks Scott! I'm almost done with the next playlist :)
@sols.2525
3 жыл бұрын
@@SwiftfulThinking awesome, can't wait!
@Kevalkorat
2 жыл бұрын
Dude, your videos are really great and in-depth and covers so many edge cases for newcomers like me. Thanks for the great content and please don't stop what you are doing.
@SwiftfulThinking
2 жыл бұрын
Hi Keval! Haha I'm glad you like them. More videos coming soon don't worry 🤓
@julianm080808
6 ай бұрын
Hey nick I really want to become iOS Developer because a colleague from my company inspired me learn Swift and I am watching all your videos in order to study, you are awesome..
@hamzasipraa744
4 ай бұрын
thanks you ❤..you are hardworking and you are a good teacher...❤
@yasseraltamimi6171
2 жыл бұрын
Hey Nick, I really can't thank you enough for what you're doing in these courses. I've Watched all the SwiftUI Bootcamp series and this series as well and every video I fell I'm learning something very important. Thank you again and I would love if there was a way to support this channel through Patreon or something like that. Thanks again!
@SwiftfulThinking
2 жыл бұрын
Yasser!! I'm just glad you are enjoying the vids 😎
@mithunmadhav8716
11 ай бұрын
Great tutorial. A major caveat is that, with the NSCache implementation, if we put the app in the background and the cache evicts everything. So you can see all the images being downloaded again. Came here searching for the solution for this, but my search continues
@samarghourab5545
2 жыл бұрын
Thank you Nick! This course was very helpful.
@bobbynwm
Жыл бұрын
Excellent video Nick! Thanks a lot!
@Sfstboy
2 жыл бұрын
Best wholistic SwiftUI tutorial
@dre5671
Жыл бұрын
Dang bro, you're amazing haha Can't get enough of your content. Currently prepping for a take home proj, and if it goes well, I owe you a beer!
@lotpb
3 жыл бұрын
Keep them coming Nick, did you go into a slumber LOLLLL
@SwiftfulThinking
3 жыл бұрын
😂 Hahaha I'm hibernating! No I've actually been working on the next playlist that should be coming out this week!! We're going to build a whole app together, so I wanted to record all of the videos beforehand since they are all connected... I was going to send an update to my KZitem community but unfortunately I need 1,000 subscribers before I can use that feature lol 😩
@dugrut1325
2 жыл бұрын
I learnt, loved it, a great teacher!
@tbg6nb
Жыл бұрын
superb video, very informative ! please remove background noise if possible, it was not that loud in the first hour but became especially audible starting at 1:03:00
@chrisstromberg6527
Жыл бұрын
I couldn’t hear any background noise, I’m guessing it was noise in your background!
@tbg6nb
Жыл бұрын
@@chrisstromberg6527 no, I checked it now as well on both laptop and mobile phone and there is clearly audible white noise. As a music producer I am probably more aware of this than other people though...so I understand if some people don't notice this...
@Seepho
2 жыл бұрын
YOU ARE AWESOME! THANK YOU SO MUCH!!!
@highRider72
2 жыл бұрын
great tutorial - thank you!
@emdutt4012
Жыл бұрын
if you know about async image you can use async image to download those images in a convenient way.
@TechRagh
3 жыл бұрын
Thank you Nick 🤩
@SwiftfulThinking
3 жыл бұрын
Thanks Tech Rag!!
@1slyboy
11 ай бұрын
One suggestion, is don't forget to delete the folder created by the simulator when done so that the files don't take up your HD space. 🙂
@mig12394
3 жыл бұрын
very impressive demonstration !
@SwiftfulThinking
3 жыл бұрын
Thanks again Michel!
@alexeylobankov
2 жыл бұрын
Thanks for your content. Keep it going!
@mkpwnz6256
3 жыл бұрын
Thank you for your videos! When will you publish new one? Can't wait)
@SwiftfulThinking
3 жыл бұрын
Haha thanks for watching mkpwnz! I just finished editing my next course and will post it this week :) 25+ videos 🥳
@williamwildsmith5162
2 жыл бұрын
Great Nick, however my teeny weeny brain struggles to get a good understanding of it all. Going to watch it 10 times - 9 to go!
@williamwildsmith5162
2 жыл бұрын
6 to go!
@williamwildsmith5162
2 жыл бұрын
5 watches done, and moving on now. Great video!
@dugrut1325
2 жыл бұрын
I'll leave my bottom HELP messages, because maybe it will help someone else. In the PhotModelFileManager when we are checking to see if folder doesn't exist, well I didn't put in the ! [not]: if !FileManger.default.fileExists(atPath: url.path), it took awhile to spot it but I was persistent. I did what you said, I went through every file and made comments on each one with comments for each function. To see your logic. It makes the models very robust. As you're talking it is all very overwhelming but when I look back at the code and type out the explanation above each items it seems to make sense. I will will never be able to write code from route like you, I'll just have to steal it from your lessons. Anyway it's a start.
@jpcg007
2 жыл бұрын
Excellent tutorial!!!
@SwiftfulThinking
2 жыл бұрын
Thank you! Cheers!
@chrisstromberg6527
Жыл бұрын
Another phenomenal video on SwiftUI, well done. I had to watch this video about three times, it makes sense now and it answers many questions I had. Do you know if AsyncImage utilizes the cache directory? I see some discussion where users state that it does cache images, yet the documentation does not state this.
@SwiftfulThinking
Жыл бұрын
I believe AsyncImage caches part of the http request but not the image itself. Honestly I’m not super familiar with it, since I don’t use AsyncImage in production. I’ve been using Nuke SDK which has highly customizable caching behavior.
@dugrut1325
2 жыл бұрын
HELP! The key is different for the Cache and the FileManager. The Filemanager is expecting the image name + .png not a imageKey which is 1, 2, 3 etc. I'm referring to the PhotoModelFileManger: private func getImagePath where it return folder.appendingPathComponent(key = ".png"). Here this key value is displayed as the .id Int value and not the imageName. How can this be fixed?????
@lizakryshkovskaya7412
Жыл бұрын
Thank you! 😍😍😍
@SwiftfulThinking
Жыл бұрын
You're welcome 😊
@alooshman
Ай бұрын
how is it that we're only downloading images for the rows on the screen? why isn't it downloading all the images even for the rows that are off screen? asking because im assuming the data, such as title, has already been downloaded and set for all rows, even those off screen.
@andresraigoza2082
2 жыл бұрын
This is great!!! Thank you so much
@oleg991
Жыл бұрын
Hi, Nick! The video is great! Could you explain why you decided to use FileManager? Caching works with a single "var cache" property.
@SwiftfulThinking
Жыл бұрын
A "var cache" would save it to memory, which does not persist across app launches. If you restart the app, the "var cache" will reset, where the FileManager will save
@oleg991
Жыл бұрын
@@SwiftfulThinking Oh well, this is true of course. Maybe I did not get the point of caching images? We use cache not to persist images after app relaunch but to avoid downloading duplicates multiple times in one working session. Am I right?) I watched the last part of the video and found an answer for my question. You basically gave two examples of saving images (cache and filemanager), they are different and should be used in different cases 👌
@thedrenkemp124
3 жыл бұрын
Hi love the video. Can u answer a question for me? How do I us textview(UITextView, shouldChangeTextin: NSRange , replacementText: String) I don’t know what to replace UiTextView, NsRange or string with. I want to added limited character to a textview. But I don’t know how to use the following code.
@SwiftfulThinking
3 жыл бұрын
Hi Thedren, I'm not sure what that is. UITextView sounds like something from UIKit and not SwiftUI. I would recommend looking into TextField() and TextEditor() in SwiftUI! I covered them in the SwiftUI Bootcamp playlist.
@manasvijaywargiya8218
2 жыл бұрын
Hi Nick, Thanks for the wonderful course 😀.I've learned so much new things in this playlist. Is it possible to create an app to store online data json with images and close it and reopen the app with no internet access, will it get the data back stored in FileManager to the UI ?
@stolenhen
3 жыл бұрын
Thank you for the video bro! Could you tell is it possible to use url cache with combine (instead of fileManager or NSCsche? I tried but it appears to be impossible ( maybe I did something wrong or this feature is not available with combine at this moment.
@SwiftfulThinking
3 жыл бұрын
Hi Stolenhen, you could do something like this? www.swiftbysundell.com/tips/constant-combine-publishers/
@stolenhen
3 жыл бұрын
@@SwiftfulThinking this is nscache isn’t it?
@SwiftfulThinking
3 жыл бұрын
@@stolenhen Yea I think it's a good alternative solution though?
@wandahu8058
Жыл бұрын
Good!
@j1nMatt
3 жыл бұрын
Hey Nick for some reason I had to init the photo cache inside the private init for PhotoModelCacheManager
@AlexanderFarber
3 жыл бұрын
Hi Nick, your tutorial is awesome. Please consider extending your app to store the downloaded JSON objects in Core Data?
@SwiftfulThinking
3 жыл бұрын
Hi Alexander! This isa great comment. The code is essentially the same as we did here, except instead of getting the image data, you save JSON data. This might help: programmingwithswift.com/how-to-save-json-to-file-with-swift/
@rwilson1125
2 жыл бұрын
aside from me typing poorly, i enjoy following along on these videos. I am half way through this one and it runs but does not show the list of images. the error is " I am presuming this is networks issues but I can see the the page with the list of images. the simulator fails similarly. Is there a setting hidden somewhere that is stopping this from working?
@SwiftfulThinking
2 жыл бұрын
What error are u getting?
@rwilson1125
2 жыл бұрын
@@SwiftfulThinking Arggghhh. cut and pasta failure:::
@rwilson1125
2 жыл бұрын
@@SwiftfulThinking The data couldn't be read because it is missing.
@kasper3845
2 жыл бұрын
Hi Nick! Did you figure out how to get rid of repeated viewModels. I mean if you open tree of objects you will see that there n repeated imageDownloadViewModels in your app
@SwiftfulThinking
2 жыл бұрын
Hi Kasper, Yes this is possible but I haven't covered it yet on this channel. Adding a class to download each image isn't that performance heavy. Obviously we can improve on it, but this is only an "intermediate" playlist haha
@fre.helfer
Жыл бұрын
I love you
@dugrut1325
2 жыл бұрын
Here is the error message: Error saving to file manager. Error Domain=NScocoaErrorDomain Code=4 "The file "8.png" doesn't exist. etc. 6, 7, 8, 9 etc
@mokanoir
Жыл бұрын
You probably missed the exclamation mark (!) in line 23 (if-statement) in the file "PhotoModalFileManger.swift" :-)
@ThePhotodiver
3 жыл бұрын
I am up to the point where we get our first data returned in the List view, and I am not getting any data. I added a print("Status code: \(response.statusCode)") in the handleOutput function and I get status code 200. I Then add a print("Success") in the case . finished: line in the URLSession for the downloadData() function and it returns a success. I Went to the DownloadingImagesBootcamp view and added this: Text("\(vm.dataArray.count)") which returns 0 for the dataArray. Not sure what is causing this not to work. I verified the URL for the data and it is correct. I went over all code and is the same.
@SwiftfulThinking
3 жыл бұрын
Can you try printing the "returnedPhotoModels" in the PhotoModelDataService as well as the DownloadImagesViewModel. Is the data showing both times?
@ThePhotodiver
3 жыл бұрын
@@SwiftfulThinking I tried that and in the debug window nothing shows up, but there are a lot up blank lines between the top of the output and the Success print.
@SwiftfulThinking
3 жыл бұрын
@@ThePhotodiver Nothing is being printed for the "returnedPhotoModels"? Maybe you mistyped something in the PhotoModel and it's not decoding correctly? You must have missed something haha. I uploaded the project to my Github if you want to compare code: github.com/SwiftfulThinking
@ThePhotodiver
3 жыл бұрын
@@SwiftfulThinking Thanks. I checked the PhotoModel and it is correct. I didn't see the DownloadingImage project in any of the files.
@SwiftfulThinking
3 жыл бұрын
@@ThePhotodiver My mistake, try now!
@savagedirk9267
2 жыл бұрын
Cache is pronounced like cash or cashay not catch. Great vid
Пікірлер: 101