Nick deservers more likes guys. This content is beyond amazing and insightful to such big components and he is doing all this for free. Really appreciate the content Nick
I am unaware of a way to force the decimal pad on iPad. That is probably because on that size screen it would look ridiculous unless it became like a floating smaller keypad. However, I do know that on the simulator you can switch between light and dark mode with "command-shift-a" instead of going through the settings screen.
Another great video Nick! I just noticed one little bug. If I go to the portfolio view in the simulator, press the + to choose a coin that's already in the portfolio and change the amount holding, as I save it and click the X to go back to the portfolio, the information in the list has not updated (the Portfolio value up in the right corner has updated though). If I then go back to live prices wait for a second and go back to the portfolio, the portfolio will have been updated.
Interesting. My math with the * 100 works. Portfolio Value (46417.79) - Previous Value (47088.15) = -670.36. Then -670.36 / 47088.15 = -0.14236. That * 100 = 1.42 which is correct. I ran with a bunch of print statements to show it works.
Between these videos, I had made a couple of other videos that I ended up removing from the course. There's a chance I had the issue only in my build lol Sorry guys!
I still use “initializing detail view” print statements from the video #18. And they were always called twice. (Xcode 12.4) However, .navigationViewStyle(StackNavigationViewStyle()) just solved this problem. Interesting…
Really glad you showed how to set the retries on the network call. When I started coding, I never got a failure, now, almost every time it runs, I get 1 or 2 failed before it loads the coin data. The response is "error code: 303 [4: -2201]). I even saw them happening with the "reload" button.... I actually set retry to 10, and now no problem. More coffee when I've finished the course!
Hey Nick. Loving the content. Just wanted to give you a heads up if you still want to update the app. So I noticed if you have nothing in your portfolio the percentageChange returns as 0 so here is my fix for that in the HomeViewModel: var percentageChange = ((portfolioValue - previousValue) / previousValue) if previousValue == 0.00 { percentageChange = 0.00 }
Nick, thank you for great course. Your teaching style amaze me. Maybe you could update the course networking part. You use codable, but in there is new solution async Api which I saw is very easy to use, but I would like to know more and I know you will do it 😀 Once again thank you for great job!!!
Thanks Raimonds!! I will cover the async api in it's own video after iOS 15 is released! However, I won't be updating the networking of this course because most production apps need to support older iOS versions and developers wont actually start using the async method for a few years. The way we're downloading also works very well for image caching and our app architecture.
It’s not your math error. the problem is in the priorities of the execution of operators, namely the operator “*” has a higher priority than the operator “??” Wrong: coin.priceChangePercentage24H ?? 0 / 100 Correctly: (coin.priceChangePercentage24H ?? 0) / 100
Nick deservers more likes guys. This content is beyond amazing and insightful to such big components and he is doing all this for free. Really appreciate the content Nick
I am unaware of a way to force the decimal pad on iPad. That is probably because on that size screen it would look ridiculous unless it became like a floating smaller keypad. However, I do know that on the simulator you can switch between light and dark mode with "command-shift-a" instead of going through the settings screen.
And that is the method I will be doing from now on haha
Another great video Nick! I just noticed one little bug. If I go to the portfolio view in the simulator, press the + to choose a coin that's already in the portfolio and change the amount holding, as I save it and click the X to go back to the portfolio, the information in the list has not updated (the Portfolio value up in the right corner has updated though). If I then go back to live prices wait for a second and go back to the portfolio, the portfolio will have been updated.
Interesting. My math with the * 100 works. Portfolio Value (46417.79) - Previous Value (47088.15) = -670.36. Then -670.36 / 47088.15 = -0.14236. That * 100 = 1.42 which is correct. I ran with a bunch of print statements to show it works.
Was going to say the same thing! Mine is fine as well. Odd...
Between these videos, I had made a couple of other videos that I ended up removing from the course. There's a chance I had the issue only in my build lol Sorry guys!
I agree other wise for 1 holding it will not match with portfolio change :)
Nice touches with those CPU improvements. Could really mean a lot in CPU-intensive apps. Thanks for the video Nick!
Yea, it didn't really affect our app much but it was good practice haha
I still use “initializing detail view” print statements from the video #18. And they were always called twice. (Xcode 12.4) However, .navigationViewStyle(StackNavigationViewStyle()) just solved this problem. Interesting…
Amazing attention to detail. Not sure what I'm going to do when I finish the next video :(
Really glad you showed how to set the retries on the network call. When I started coding, I never got a failure, now, almost every time it runs, I get 1 or 2 failed before it loads the coin data. The response is "error code: 303 [4: -2201]). I even saw them happening with the "reload" button.... I actually set retry to 10, and now no problem. More coffee when I've finished the course!
When will you make an advanced level app?
Thanks Nick.
Hi nick, cool course. Thanks! One question, wouldn’t it be better to decode directly on the network manager using a generic decodable?
Hey Nick. Loving the content.
Just wanted to give you a heads up if you still want to update the app.
So I noticed if you have nothing in your portfolio the percentageChange returns as 0 so here is my fix for that in the HomeViewModel:
var percentageChange = ((portfolioValue - previousValue) / previousValue)
if previousValue == 0.00 {
percentageChange = 0.00
}
You should do a video covering the new async await syntax in Swift. Forget @escaping completion handlers, these are the future.
That’s the whole next playlist 😂
@@SwiftfulThinking oh snap! You’re the man
interesting the explanation on threads
Nick, thank you for great course. Your teaching style amaze me. Maybe you could update the course networking part. You use codable, but in there is new solution async Api which I saw is very easy to use, but I would like to know more and I know you will do it 😀
Once again thank you for great job!!!
Thanks Raimonds!! I will cover the async api in it's own video after iOS 15 is released! However, I won't be updating the networking of this course because most production apps need to support older iOS versions and developers wont actually start using the async method for a few years. The way we're downloading also works very well for image caching and our app architecture.
It’s not your math error.
the problem is in the priorities of the execution of operators, namely the operator “*” has a higher priority than the operator “??”
Wrong: coin.priceChangePercentage24H ?? 0 / 100
Correctly: (coin.priceChangePercentage24H ?? 0) / 100