Build your first iOS app with SwiftUI
HTML-код
- Опубликовано: 29 авг 2024
- In this livestream I'll show you how to build a complete SwiftUI app from scratch, while also teaching you the basics of Swift. Along the way I'll be answering questions that you might have, and also providing quizzes to help test your learning.
To follow along, you'll need to install Xcode from the Mac App Store. I'll be using Xcode 12.3, but any version of Xcode after 12.0 should be fine.
* You can download the finished project source code here: github.com/two...
* You can get the assets used in this video from here: www.hackingwit...
* You can download the free SF Symbols app from Apple here: developer.appl...
As well as helping absolute beginners learn some SwiftUI, this livestream is also taking place in aid of Julian House - a UK charity that provides support for vulnerable and at-risk individuals. These include men, women and young people experiencing homelessness, women and children escaping domestic abuse, adults with learning difficulties and people who need support after leaving prison.
You can donate to my fundraising effort here: justgiving.com/...
If you've watched this and decided you want to continue learning SwiftUI, I have great news: I have a 100% free series of tutorials that teach you everything you need to know, including lots of videos, interactive tests, challenges, and more. It's called the 100 Days of SwiftUI, and you can find it here: www.hackingwithswift.com/100/swiftui
Thank you so much for the videos and I gladly appreciate the knowledge. However my flags are lining up in the wrong countries. Anyway I could fix that issue?
hello paul whats your social media account and email i need your help please.
Mkmmmm
쑛
nice vro
My guy is giving everything he earns with his hard work to the charity this is what i call a humble person
I wonder why would someone came and dislike the video, Paul took his time to do Swift beginner a favor. We gained many knowledge from Paul's web too, big thanks to Paul.
Lucifero got big mad
you cant be this dense and stupid.. practically every video on youtube has at least a few dislikes especially those with as many views as 200k, the vast majority of us appreciate the effort he took to put this out, quit living under a rock
Totally agree, I mean this person took from his own time to gather and put this material and sat for 3 hours trying to simplify it for no charge, if you don't like it just skip ahead, no need to be a douchebag
Lol this is RUclips. Someone could post a video saying they beat cancer and it'll still have dislikes. Thats not even an exaggeration lmao
Well that’s why RUclips removed it lmao!
Phenomenal video - I've been trying to learn Swift for a while now and your instruction was just so very clear... you've kicked open the door open for me. Thank you!
As a second semester student how just started to learn swift, I thank you so much for all this. All the knowledge shared here makes me always come back to learn more during my free time.
This has finally cleared my confusion about structs, classes, ContentViews, parameters, etc. I always conceptualized structs and classes as these crazy scary things, but your explanation of them as data structures made perfect sense. I was so confused whenever someone in a tutorial made a custom data type, but no longer! I would pay for more walk throughs like these.
Hello
I think Paul is one of the best know and most respected teachers of Swift and SwiftUI in the English speaking world, as he should be. So not 'terribly underrated.'
Bro, why are you doing this?
this is incredible, very easy to follow, you speak concisely and the pace of this is just amazing
I appreciate it, man
I was able to complete this project on the iPad using Swift Playgrounds. I had to make a few tweaks here and there. I’m lucky I’m already a JavaScript goat. So I was able to figure out why images and flags weren’t showing at first. Thank you so much for making this tutorial. I feel like I can get a lot of app ideas made now on my iPad Pro confidently.
Could you please make me understand the flag part because I’m not able to display them
No problem with people posting quiz answers on the chat window because you went full screen. Writing after quiz 1 - this is just what I was looking for - something to make a bridge from Swift Playgrounds to something rather more practical and useful. Very clearly put across. Thank you!
Teaching us on his birthday while making charity stream. WHAT A LEGEND!!!!!
You are one of the best teachers I've ever had the privilege to watch. Thank you, Paul!
11/10 video... sick easy app, alongside fantastic descriptions of each of the associated concepts!
As a person who has never used SwiftUI before (even with a programming background) this video was soooooo helpful and it really helped me kickstart my iOS development a buuuunch.
Thank you so so much Paul! :)
(Hope you had a nice birthday
Released by first app and already made a few sales. Coudn't have done it without you Paul. Thanks for all your tutorials!
How has your sales grown? I'm looking to get into coding
@@JamesQHolden First month around 50 euros, then 100, then 200, then 300. Now back to 200. Haven't done any marketing though. And it's nice to earn some money on the side :). Will start with marketing in a month and see if I can 10x it.
What a great human being you are Paul! Thank you.
I'm 30 min into the video and I can already say, I like it VERY MUCH. It's very informative. Definitely giving a like!!
What a brilliant introduction to Swift:SwiftUI. Excited to build my first app🎉 belated happy birthday dude
Great way to start understading SwiftUI, thank you 😃
Today i have finished all my exams soo i decided what a better thing to do than creating my own app. I heard ios app would be easier and funnyer than android, and I also have an iphone.
Having a windows pc my self i took 4 hours to install mac os on a VM and then found your amazing video and watch it all, lovethe dogs and your daughter is soo cute. Soon i will create an app like Tinder, but way better and cheaper, TY.
Gosh I love watching you get mad at the comments when people don't follow your directions. And that Azat was cracking me up. but this video is great. Thanks so much!
Best for beginners without any coding experience. Thank you Paul!
Thank you for walking me through my first app! Great video, can't wait to continue making apps.
Thank you for this very helpful course! I have just started to get into Swift and was able to follow this course well and had a working app as a result! The concept of learning on a concrete task is very good. More of this please!
Great content to get started with development in Swift, simple to follow and I actually managed to get the code working on my own simulated iPhone11. Big thanks!
I loved this video! As a final touch-up, I also added a bit of code to make the discover tab a random location from the bunch, so as to transmit the "discovery" of a new place to the user
This is truly awesome Paul...I have to admit, you have way more patience than I do, I would be playing wack-a-mole in the chat section with these idiots just disrupting everybody else's studying and trying to follow your great content...it's just insane to me how some people can be that inconsiderate...many thanks again!
Thank you Paul! Awesome teaching. I am really happy to stumble upon your videos at the beginning of my swiftUI journey
Sir Paul Hudson, you're an inspiration. I've been watching your tutorials for 2 years now and have learned SwiftUI solely through your videos and website. I'm stunned that you don't have any courses for sale on Udemy. You'd easily outrank the top teachers currently listed for iOS development.
This is such an excellent resource for those new to coding! Clearly, your site and YT channel will prove to be key in my journey. ✌🏼🖖🏼
This is fantastic and you're phenomenal teacher. Bravo. Can't express how helpful this was.
Best beginner tutorial on YT
Paul, excellent tutorial. I will be back for PLENTY more!
Insanely helpful for getting a general overview for a variety of different topics (@Bindings, Navigation and Tab View, etc. Really great Video, and you are really nice
beautiful tutorial, fantastic, beautifully conducted, I think the best on the web, compliments Mr. Hudson
Many thanks for the great tutorial, Paul!
I ran into an error with the JSONDecoder and it seems that the data was not formatted as "Codable". In Xcode 13.2.1 in January 2022, I found out that adding "Codable" as following in the file Location.swift
struct Location: Codable {
let id: Int
let name: String
etc...
}
solved my problem.
I hope that it can help others too.
Great Stuff from a seemingly great individual. Giving to others as a present to himself.
I've just started to learn.. found your vids.. and its very helpful in my learning. Thank you very much.. although I knew my appreciation is not enough.. thank you again.. wish you well ..
Really glad I stumbled upon this video. Paul is an amazing teacher and equally nice human being. Thanks.
Brilliant, thanks Paul. This takes me back to the mid ‘90s when I fist learnt to program on Mac Quadras and Performas using Thinks Pascal, ResEdit for the GUI and the Apple QuickDraw toolbox. Thanks again, Dave.
Wonderful session. Thank you very much for putting this tutorial together. It was awesome. I am a newbie and learned quite a lot from this tutorial. I will check out the other tutorials that you mentioned. God bless you!
This video alone is an incredible source of info! Thank you Paul for sharing your hard work.
Thank you so much!!! Been looking for a detailed tutorial like this.. Thanks one again bro..
I learned a lot in this video. I'm excited to watch your other ones.
This is a great introduction to SwiftUI. Thank you for this applied knowledge!
Paul, Thank You.
Absolutely love the beginner tutorial. Works well in Xcode 14.3 and IOS . One quick question would be, how to associate Tips with each of the locations on scree. Synopsis: When I am on Smoky Mountains, I would have a different array of tips specific to the Smoky Mountains, versus tips that would appear for the screen displaying content for, say, Kyoto Japan...
Please select a charity I could send 100.$ to, once answered.
Cant stress enough how cool this lesson is! Thnx
One of the basics in programming print ("Hello world")
Paul Hudson: HELLO DOGS HAHAHAH
a live mais top que ja vi, olha o pet lá no fundo que lindo..... top.....
such a great video, it's like telling a story and all make sense when the story came to an end, would kindly request an advanced topic on how to connect to a database.
This stream is brilliant! Thank you very much!
I loved it amazing experience definitely going to check out the course in comment 100 days of swiftui
For anybody following along but using their own data - When you get to decode the JSON file, I kept running into errors. I looked over my code and everything was the same as Paul's but still I kept getting 'no key' errors and also 'Expected an array but got a dictionary' errors. This is to do with your actual JSON data file! Open Paul's example data from this tutorial and compare it against your own. Turns out I had caps in the column names that shouldn't have been there and that was enough to stop the whole project! Once I sorted my JSON file out, the project worked no problem so it wasn't a coding error, just a heads up to everyone.
Incredible SwiftUI primer 👏🏽👏🏽👏🏽👏🏽👏🏽👏🏽👏🏽👏🏽
Watching from UK Sound level is fine
I just love SwiftUI, so elegant and simple
Best SwiftUI tutorial ever!
How can I pass in multiple objects into ContentView without assigning each one of them such as example? Is it possible to iterate through places and assign each place as a new object?
Hey Paul, while probably too much to ask I’ll try my hand anyway :D
Would it be possible to get a sort of extension video on pulling these data points from some sort of database (fire base, even just a google sheet or whatever)?
Need more videos about creating apps using swift playground in ipad and if there is way to create internal database for the app to store pdf files or videos or any information that can be stored and used offline
I just followed this whole tutorial that was meant for Xcode using the Swift Playground app on iPad Pro. I was able to successfully reproduce the app except for the part on the map where the markers are loaded up. I’m still debugging why those markers aren’t displaying. I got everything else working though.
Amazin Lesson, this is my first Swift Api
Your dogs are unique and so cute. Please don't get rid of them at any cost.
this is so so so helpful for beginners, thank you Paul for the lesson!
Coming from a full-stack web dev background, it's crazy how Swift and SwiftUI is essentially an html, CSS, JS, and backend all in one language, along with a JS framework like React.
You explain very well, I love the way you doit.congrats
ดีมากครับ ผมชอบวิธีการสอนแบบ เริ่มจากศูนย์ เพราะทำให้เข้าใจถึงปัจจัยพื้นฐานต่าง ๆ ก่อนที่จะทำงานที่ซับซ้อนต่อไป
At point of adding, let location: Location, it says, ‘Cannot find Location in scope’
Paul, thank you very much! Your video and the course are very helpful!
Woah, this video is incredible, I've learned so much stuff !
Love your video's. For total beginners (like me), I would recommend not starting in this video (even though the title is encouraging). Start with day 1 of Paul his 100 day blog. It builds up better, which makes it easier to understand.
Hello, can you make a beginners video for turning website into iso app? Xcode 14.2
I going through the Unwrap course. Does someone have the solution to:
Write code that reads the “name” key.
let details = [“name”: “Sophie”]
] “Unknown” details[ “name” , default: =
name let
I tried every combination of I could think of.
I’m completely stumped. Thanks.
1:09:40 ah I see, in Web development have padding and margin, but in SwiftUI there are only padding(). good to know
what a fantastic walkthrough. Thank you very much Paul! I am new to Swift, and I can't say I understood everything a 100%, but I was able to follow for the most part (gotta start somewhere, right? ;-). This was the first tutorial I ever watched, the first app I ever compiled in Xcode, and even though it was just a copy&paste from your video, it was still ME writing all those lines! ;-)
I'm gonna show this to all my friends - that first app I ever made (all by myself, with no help at all of course :-b).
Really made me feel like I achieved something. Liked & subscribed!
Your daughter is very cute. Also this is a great video as I am starting to dip my toes in SwiftUI.
Hi Paul, after this tutorial, which videos would you recommend next. Need more practice.
thank you Paul, and happy birthday :)
Very good start to xcopy SwiftUI , could you (PAUL) recommend some Xcode and Swift 14 books I could buy, I did coding but that was 60 years ago ( age 83).
AMAZING SIR ...thanks for what your doing it's really outstanding
Around the “if tip.children!= nil {Label(tip.text, systemImage: ....” it cited that comparing non-optional value of type [Tip] to nil always returns true.
@152:10 mark (ish) I am getting a fatal error from the try due to lat/long being nil? Not sure why I am not able to build it here like you are, any sugestions? it has the ".decode" underlined, and gives this error: "
won't let me include the error :#
Have you found solution?
@@user-qy5lj1fm3q not to this specific video. I did the 100 days of SwiftUI on hackingwithswift and was able to learn how to do the equivalent by the end of it. I think I was starting too far ahead with this, and learning it all in order helped a lot.
Thank Paul. It was really interesting and I learned a lot
I love the quizzes sir! i just cover the chat box hehe,
Great tutorial and I have learnt more stuff.
Hi Paul, I’m having issues when trying to build the project at 1:52:27. Error message:
Thread 1: Fatal error: 'try!' expression unexpectedly raised an error:
Swift.DecodingError.key NotFound (CodingKeys (string Value: "longtitude", intValue: nil),
Swift.DecodingError.Context (codingPath: L_JSONKey (string Value: "Index O", intValue: 0)],
debugDescription: "No value associated with key CodingKeys (string Value: ("longtitude)",
intValue: nil) ("longtitude) ").", underlyingError: nil))
I am having the same issue. I restarted Xcode and "magically" it worked. Same code.
is anyone else getting " argument passed to call that takes no argument " error in the TrekrApp file, 1:52:29 seconds in? line 15
Awesome session. Definitely great exposure to what it can do and makes me want to dive in more. Ran into an issue on the tips display but after a bit of review, I saw that I neglected to add the else for the tips.children check. Curious about setting up json for custom data. Is that something covered in 100 days of Swift or is that more of an independent exploration on json? Thanks again!
This video was really helpful, thank you!
thank you for great videos you made SwiftUI very easy in your website send you best greetings
SwiftUI Guru!
Thank you Paul! I really enjoyed this stream and for sure I will follow 100 Days if SwiftUI.
Just one question (I am completely new to programming) - As mouse lcok is not available in pointer settings in iOS, recently I decided to write an app for iPhone that would allow to initiate it in specific applications. But now I am not sure if it is possible to do such app. I do not know if it's limited to the iPad version of iOS, or maybe the devs didn't add it yet. Could you please give me an advice on it? Thanks!
Did Paul ever say where he got that Mac app that shows the live chat on screen? I couldn't find it, and I could use that app as well.
“Please! Do not answer in the chat!”
*a thousand answers in the chat later*
“sigh"
Sound issues is (someone brought it up in stream chat) is caused by XCode 12 on Catalina... no real fix other than restarting the CoreAudiod process
Asking for a friend: which software did you use to manage your stream? OBS? And did you have issues with MacBook fans "polluting" the sound capture? 🤔
I use Ecamm Live, and have a shotgun microphone to reduce noise from my fans 👍
@@twostraws I didn’t know Ecamm Live! Will check it out, thanks for the answer Paul!
@@v_pradeilles It's not only the most amazing software in the world, it's made by my dearest friends the Twins Ken & Glen. They must be the nicest Mac devs on this planet :)
Wonderful stuff Paul, thank you. Wondered if you might do something in a future live stream similar to your Guess the Flags game, but in SwiftUI instead?
I already remade Guess the Flag using SwiftUI, although it wasn't a livestream. Find the articles/videos starting here: www.hackingwithswift.com/books/ios-swiftui/guess-the-flag-introduction
@@twostraws Oh heck! Very sorry Paul, I have missed this. Will take a look now - thank you for getting back to me so quickly too, much appreciated.
Is it possible to create an app for iOS without a Mac PC?
I wrote the tabview under the Navigation view and it still works why is that
Hi! Loving the tutorial. For some reason, around an hour and a half in, I’m having difficulty. It said there was an issue with location being out of scope. I finally copied and pasted everything from the location.swift file into the contentview.swift file and got it to work. Did I do something wrong when adding the new file that caused it to be out of scope? Very new to Xcode.. and macs.. and programming 😅 thanks again for the great tutorial!
Can someone please explain why we have "location: location" here?
I think I'm confused bc we named our variable 'location', and here, ContentView() is expecting a value for the keyword argument 'location'. So essentially Xcode is asking -- what location should I show? And we unfortunately named our location class instance (aka object) as 'location'. Is my understanding correct?
NavigationLink(
destination: ContentView(location: location)) {
Image(location.country)
.resizable()
.cornerRadius(10)
.frame(width: 80, height: 40)
.shadow(radius: 3)