Card Animation in SwiftUI
8:28
Жыл бұрын
Scratch Card Effect in SwiftUI
5:01
Пікірлер
@stemple03
@stemple03 8 күн бұрын
Wow!! this is awesome. I learned a few new things here
@swiftodyssey
@swiftodyssey 8 күн бұрын
Glad it was helpful!
@stemple03
@stemple03 8 күн бұрын
@ Would you be interesting in helping me with a couple scratch apps?
@swiftodyssey
@swiftodyssey 8 күн бұрын
I do paid consulting as well. Please reach out to me on my email in the channel bio with your requirement.
@cd78
@cd78 Ай бұрын
Not a full proof solution, it leaves a shadow around the bezel
@StudySessions-f4d
@StudySessions-f4d Ай бұрын
OG my man!
@swiftodyssey
@swiftodyssey Ай бұрын
Thank you ! 🙌🏼
@danielcrompton7818
@danielcrompton7818 Ай бұрын
Omg such a cool effect! Thank you! This is gonna be such a nice feature in my app, you’re a star!!!
@swiftodyssey
@swiftodyssey Ай бұрын
I'm glad you like it
@ikshitchaudhari2529
@ikshitchaudhari2529 Ай бұрын
Epic !❤
@swiftodyssey
@swiftodyssey Ай бұрын
Thank you!
@danielcrompton7818
@danielcrompton7818 Ай бұрын
Hi, this looks amazing!! I’m really bad at math so thanks for providing the code to rotate and scale the moon. Super creative SwiftUI solution and much better than creating in AE or Motion and creating a lottie file. Keep going!!
@swiftodyssey
@swiftodyssey Ай бұрын
Thank you. And yes, nowadays a lot of folks might prefer going the Lottie way but nothing like creating it natively using SwiftUI! I find it a fun little exercise to try every now and then :)
@danielcrompton7818
@danielcrompton7818 2 ай бұрын
Hey Swift Odyssey, thanks for another LIT tutorial, I really love the effects you create, especially the shine effect! I will DEFINITELY find a way to sneak it into my current project! I find it really interesting how you do the scratch card effect by gathering a list of points when it is dragged, then masking that with a thick line built with those points. Personally I’d use a completely different approach though: I’d use the PencilKit module which includes a PKCanvasView that allows the user to draw. It is a UIView so needs to be put in a UIViewRepresentable so it can be used in a SwiftUI context. It’s used in loads of different drawing apps and stuff, and how I’d do this create a FrontCardView with the rectangle and the pokemon logo, then a BackCardView which takes in the pokemon name (used to fetch image) and the colour. Then in the ZStack put the BackCardView on the bottom and the FrontCardView on top, and mask the front card view with a canvas view (PKCanvasView in a UIViewRepresentable). You can also set properties of the PKCanvasView in representable, such as the tool width to make your line thicker. This way, the front card only appears in the canvas view’s opaque areas and creates the look you want. If you’re mire interested in making the canvas view I write an article in how to use PKCanvasView with SwiftUI. (Just note your toolPickerShows would be .constant(false) and although I haven’t checked it, but I think you could either set the size of CanvasView with .frame or put it in the ZStack where it pushes out to the ZStack’s size. Article link: medium.com/@danielcrompton5/create-a-drawing-app-with-pencilkit-more-5c5a2a8a4738 Have a nice day!
@swiftodyssey
@swiftodyssey 2 ай бұрын
Hey Daniel, I read your article and it's an interesting approach! I haven't really used PencilKit to be honest but I do think that it lends itself naturally towards drawing apps. For the purpose of the scratch card, I wanted to show a simpler way to achieve the effect as the surface area is much smaller. One improvement would be to combine it with CAEmitter's to probably show the scratched off particles flying off in different directions. I haven't gotten to it yet, but I might with some more time on my hands :)
@Algorithmswithsubham
@Algorithmswithsubham 2 ай бұрын
woooooooow
@swiftodyssey
@swiftodyssey 2 ай бұрын
@@Algorithmswithsubham thank you! Do leave a like and consider subscribe if you haven't already.
@Algorithmswithsubham
@Algorithmswithsubham 2 ай бұрын
@@swiftodyssey i do
@AmineArfaoui
@AmineArfaoui 3 ай бұрын
Can you restrain the chatbot only to information in firebase ?
@swiftodyssey
@swiftodyssey 3 ай бұрын
Hi! As far as I know you can't. The extension acts as an intermediary to the LLM hence the information would not be restricted.
@laurentbennis
@laurentbennis 3 ай бұрын
awesome effect thank you :)
@swiftodyssey
@swiftodyssey 3 ай бұрын
Glad you like it! Do consider giving the video a like & subscribing to my channel 🙂
@swiftodyssey
@swiftodyssey 4 ай бұрын
Latest version 👉🏻 kzbin.info/www/bejne/epqrgWmNid2cp7c
@danielcrompton7818
@danielcrompton7818 4 ай бұрын
Awesome!! I love the motion tilt, it just makes apps so more dynamic
@swiftodyssey
@swiftodyssey 4 ай бұрын
Thank you! I agree, when done right it can transform user experience.
@danielcrompton7818
@danielcrompton7818 4 ай бұрын
@@swiftodyssey You may have heard of an app for Mac called CleanMyMacX (or even have it) but when it is ‘cleaning’ (or searching the hard disk) it shows an icon that loops round in circles with an animation and a shadow appears when the animation reaches the bottom half of the circle. I’m sorry if you can’t imaging what I mean, just don’t worry about it, but I feel inspired to make something like that in SwiftUI.
@swiftodyssey
@swiftodyssey 4 ай бұрын
Yeah I've heard of it but never used it so I'm having a hard time imagining 😁 Feel free to drop a video link if you can find one of the app in action or upload a short video and share it here. I'll probably look at some videos & see if I get what you mean.
@swiftodyssey
@swiftodyssey 2 ай бұрын
​@@danielcrompton7818I looked at a few videos on KZbin but none showed the animation you mentioned. Also it seems that the software has been updated. If you've got the version number of the app you use, I could download it and check out the animation.
@JetLagRecords
@JetLagRecords 4 ай бұрын
Swift Odyssey, yoo this video is heat
@swiftodyssey
@swiftodyssey 4 ай бұрын
Thank you for your kind words!
@sunderkarthik7407
@sunderkarthik7407 4 ай бұрын
OMG, you saved me SO MUCH TIME. Thank you very much for this.
@swiftodyssey
@swiftodyssey 4 ай бұрын
You're welcome! Do leave a like and consider subscribing 🙂
@SwiftCoding55-x9f
@SwiftCoding55-x9f 4 ай бұрын
Can yo do another video and show connecting to a quiz and then go to the next lesson like Duolingo for swiftUI please?
@swiftodyssey
@swiftodyssey 4 ай бұрын
@@SwiftCoding55-x9f Hi ! There are already solutions provided for your use case on StackOverflow. Check NavigationStack & NavigationLink
@SwiftCoding55-x9f
@SwiftCoding55-x9f 4 ай бұрын
@@swiftodyssey Can you provide the link please. Also, really good video you have gained a new subscriber.
@paschalkings8184
@paschalkings8184 4 ай бұрын
good video
@swiftodyssey
@swiftodyssey 4 ай бұрын
@@paschalkings8184 Thank you!
@danielcrompton7818
@danielcrompton7818 4 ай бұрын
Great looking app! I’d love a tutorial on how to make it!!
@swiftodyssey
@swiftodyssey 4 ай бұрын
Thank you Daniel ! The video is linked in the short, or you can click here for the full tutorial: kzbin.info/www/bejne/mn63ZYaKp8ykq7M
@danielcrompton7818
@danielcrompton7818 4 ай бұрын
@@swiftodyssey 😅😝😁 Thanks!! I didn’t notice
@Scatsky
@Scatsky 4 ай бұрын
This is awsome!?
@swiftodyssey
@swiftodyssey 4 ай бұрын
Thank you so much !
@Scatsky
@Scatsky 4 ай бұрын
@@swiftodyssey no problem!
@danielcrompton7818
@danielcrompton7818 4 ай бұрын
Very interesting solution and a really creative idea!! Thanks 🙏 for your time and efforts creating KZbin videos, worth a like and sub!
@swiftodyssey
@swiftodyssey 4 ай бұрын
Thank you Daniel ! I'm glad you liked the video & I appreciate your support 🙂
@PavelSelivanov-dd8os
@PavelSelivanov-dd8os 4 ай бұрын
👍
@swiftodyssey
@swiftodyssey 4 ай бұрын
Thank you ! Do leave a like and subscribe for more interesting content 🙂
@deepjyotibaishya7576
@deepjyotibaishya7576 5 ай бұрын
Hey, how to use tabview with tab ?? From recent new update
@swiftodyssey
@swiftodyssey 4 ай бұрын
Hi deepjyoti ! I believe there are already articles & videos on this topic. However, if you'd like me to create one, let me know.
@TopraKhann
@TopraKhann 6 ай бұрын
İ love your content❤
@swiftodyssey
@swiftodyssey 6 ай бұрын
Thank you my friend 🙂 Do subscribe if you haven't already & share with others too!
@swiftodyssey
@swiftodyssey 6 ай бұрын
· Get 10000 free mins with UIKits: bit.ly/3XBEuGk · Learn more about ZEGOCLOUD: bit.ly/45K5FR6 · 100% customized video call SDK: bit.ly/4clivrG · How to build iOS video call App: bit.ly/3VEHJKx ZEGOCLOUD video call SDK & API allows you to easily build your live video chat apps within minutes.
@grandeppieno
@grandeppieno 7 ай бұрын
Is it possible create an App Store Like App, with this metod ? 😮
@swiftodyssey
@swiftodyssey 7 ай бұрын
Hi ! Yeah of course. You could create a scroll/carousel of featured apps for example and on click use the zoom navigation transition to show an app details screen.
@RussChannel13
@RussChannel13 7 ай бұрын
Does not lool smooth. I think using matchedgeometryeffect would be way smoother
@swiftodyssey
@swiftodyssey 7 ай бұрын
Its true that it's sort of 'limited' in a sense. I also love MatchedGeometry & use it extensively, however I've often run into issues when using it inside NavigationStack for instance. I'm still playing around with it for now.
@RussChannel13
@RussChannel13 7 ай бұрын
@@swiftodyssey thanks for sharing new features
@swiftodyssey
@swiftodyssey 7 ай бұрын
@@RussChannel13 you're welcome, happy coding !
@olivierWOD
@olivierWOD 7 ай бұрын
great game i love it, thx for all
@swiftodyssey
@swiftodyssey 7 ай бұрын
You're welcome ! 🙂
@Navy-729
@Navy-729 7 ай бұрын
Hi, I'm getting the error Argument type 'ModelContent.Part' does not conform to expected type 'PartsRepresentable' in the compression code. Can you pls explain why?
@swiftodyssey
@swiftodyssey 7 ай бұрын
Hi @Navy-729 ! It seems the issue occurs in the latest version of the SDK v0.5.4 as of this writing while the tutorial used v0.4.4 when published. I've fixed the issue & pushed changes to use the latest version of the SDK here: github.com/anupdsouza/ios-gemini-chat/tree/multimodal Please take the latest source code from here. Hope this helps, & do consider subscribing to my channel if you found the content useful !
@Navy-729
@Navy-729 7 ай бұрын
@@swiftodyssey thanks a lot!!!
@swiftodyssey
@swiftodyssey 7 ай бұрын
@@Navy-729 you're welcome!
@Navy-729
@Navy-729 7 ай бұрын
@@swiftodyssey One more thing: while the code works and I tested it, the model does not keep track of the context of the previous messages and cannot build off of prior responses. I was thinking that I would append the history of each message prior to the user's message, but is there a more efficient way to do this?
@swiftodyssey
@swiftodyssey 7 ай бұрын
@@Navy-729 Yes, you can. You need to initialise a `Chat` instance for that. Take a look at the text-only chat with Gemini video here where I make use of it: kzbin.info/www/bejne/jICWinqEZ7qofsU At the time of that video, the SDK wouldn't support text & media based interactions but more recently, it seems that the SDK is able to manage it. You may need to play around a bit to figure things out. Here's how Google does it using the vertex sdk but the code is almost exactly the same firebase.google.com/docs/vertex-ai/chat?platform=ios. Also take a look at my vertex ai video on how to send photo & video media from this point onwards kzbin.info/www/bejne/l3aweIh8bLigqNE. Do note that the context for the model is limited to a certain extent depending on the gemini model you use such as pro or flash. I might update this sample when I get some time. In case I do, I'll drop a line here. Hope this helps!
@yashrajjadhav9839
@yashrajjadhav9839 8 ай бұрын
hey do you know how to upload image to the firebase like i want to use a profile image and want to use that images among the leaderboard of the active users
@swiftodyssey
@swiftodyssey 8 ай бұрын
Hey! That would require working with Firebase Storage. Check out the documentation here: firebase.google.com/docs/storage/ios/upload-files . Consider subscribing to my channel if you haven't 🙂
@yashrajjadhav9839
@yashrajjadhav9839 8 ай бұрын
@@swiftodyssey Thanks , I have subscribed already
@batuhanberkertekin9029
@batuhanberkertekin9029 8 ай бұрын
How can I do the same with UI kit ? Can you also do it with UI kit ?
@swiftodyssey
@swiftodyssey 8 ай бұрын
Hi ! The gemini SDK will work the same way with UIKit since the AI request code is not UIKit dependent. Once you get the AI response, you can display it in a UITextView or UILabel connected to, for instance an IBOutlet. Is there any particular challenge that you are facing? Let me know, and do subscribe to the channel if you haven't already :)
@tunaitech
@tunaitech 9 ай бұрын
I!m getting error creating story ,please try again later why ?
@swiftodyssey
@swiftodyssey 9 ай бұрын
Hi! There are a couple of reasons for this. #1. If there was an issue getting a story from Gemini API which could be due to incorrect api key, api response limits or incorrect json data OR #2. If there was an error retrieving images for the story received in step #1. This can happen if you dont have the a proper Open AI secret key, there is a rate limit or you don't have enough credits for Dall E to generate images. I'd advise setting a breakpoint in the code and checking the execution step by step.
@tunaitech
@tunaitech 9 ай бұрын
@@swiftodyssey Hello, -[RTIInputSystemClient remoteTextInputSessionWithID:performInputOperation:] perform input operation requires a valid sessionID. inputModality = Keyboard, inputOperation = <null selector>, customInfoType = UIEmojiSearchOperations im getting this error i search this error nothin help can you help please!
@swiftodyssey
@swiftodyssey 9 ай бұрын
That is unrelated to the issue. Set a breakpoint at line #49 here github.com/anupdsouza/ios-gemini-storybook/blob/main/Storybook/Storybook/Library.swift and check the response you receive from Gemini. If all is well, you should see the story printed via the print statement at line #63. Next, see if you get an error printing at line #73 & #88. That will execute if there was an issue creating images.
@tunaitech
@tunaitech 9 ай бұрын
@@swiftodyssey thank you it’s showing green thread 1 breakpoint 49,73 what does it mean
9 ай бұрын
very good bro but Dall-E very expensive , do you have any suggestions, an api where we can create a more appropriate picture?
@swiftodyssey
@swiftodyssey 9 ай бұрын
Hello! All the good ones are paid & lack a free trial.
@Decatilinae
@Decatilinae 10 ай бұрын
wow is very interesting... thanks for sharing
@swiftodyssey
@swiftodyssey 10 ай бұрын
Thank you! Do consider subscribing to the channel !
@OhadYaniv-z8v
@OhadYaniv-z8v 10 ай бұрын
It seeems something has changed in their API - it worked 2 weeks ago and now stopped working. You can chat but cannot get data on any image. Do you know something about it?
@swiftodyssey
@swiftodyssey 10 ай бұрын
Hi. Something is definitely broken with the SDK when using images. I've reported an issue on the SDK page on Github. Hopefully someone from the dev team can identify the problem. I will post an update here as & when I receive it. Thanks for bringing attention to this, also don't forget to subscribe to the channel :)
@swiftodyssey
@swiftodyssey 10 ай бұрын
Hi, I tested with both the 0.4.4 version of the SDK used in this video as well as the latest 0.4.8 and I no longer see error 500 in the responses. The issue was temporarily occurring due to service related issues which are now resolved: github.com/google/generative-ai-swift/issues/122
@gorkemsaka7196
@gorkemsaka7196 10 ай бұрын
I love it! Specially the way you use for saving api key helped a lot.
@swiftodyssey
@swiftodyssey 10 ай бұрын
Glad it helped!
@codeandvideography
@codeandvideography 4 ай бұрын
Yes, for sure! That is how it's recommended in the Gemini Documentation
@EnesTalhaUçar
@EnesTalhaUçar 11 ай бұрын
"APIKey" cannot find in scope , xcode said. But I already imported googlegenerativeAI to my chatService file. private var proVisionModel = GenerativeModel(name: "gemini-pro-vision", apiKey: APIKey.default) but this code is not working. It says cannot find in scope. I am not sure whre I put my API Key. Can you explain for me ?
@swiftodyssey
@swiftodyssey 11 ай бұрын
Hi ! So there are 2 parts to this. The first is a config plist file where the key is stored and the second part is the APIKey.swift helper file which helps to read the key from the plist. I have shown this in detail in my starter video here kzbin.info/www/bejne/jl7dpGCtlpudaJosi=vFy-0KAK1e4lP5ix & I'd highly recommend that you begin with that video first to understand the setup better. Alternatively, you can also download the code github.com/anupdsouza/ios-gemini-chat/tree/multimodal and copy your api key in the Generative AI plist file and play around. Hope this helps 🙂
@EnesTalhaUçar
@EnesTalhaUçar 11 ай бұрын
Thank you so much buddy. Appreciated :)@@swiftodyssey
@swiftodyssey
@swiftodyssey 11 ай бұрын
@@EnesTalhaUçar You're welcome! Do leave a like & consider subscribing if you found the videos helpful. 🙂