Im about to start self training on Swift. Any training resources you recommend? Also what development tools /software should I get my hands on early?
I’ve answered similar questions on here before, but the first question I always ask back is “Well do you want to learn Swift or learn programming? Learn programming and you can pick up any language in a weekend. Learn Swift and you many have the language fundamentals to write code, but no knowledge to structure it and make it maintainable long term.
I don’t necessarily think Swift is the best starting language. Aside from dabbling a bit before that I started in Java, with the book Object’s First with Java. Good beginner book I think. Honestly can even recommend it if Java isn’t a language you’ll ever write in just cause it’s good at presenting basic ideas. For further reading I recommend Flexible, Reliable Software. But anyways those books both focus on Java, though the mentality is applicable to any language basically. Well, in an object oriented approach anyway.
For Swift specifically, Apple has some good first party resources. There are some well written guides as part of the developer documentation that guide you through building an app for the first time, either with Cocoa Touch or SwiftUI. Available through Xcode’s Documentation menu or developer.apple.com. Swift Playgrounds on iPad/Catalina may work for you, but it’s too slow if you ask me, and more suited children.
And ultimately just throwing yourself in the deep end is a good way of getting started. Make your first dozen projects throwaways where you just make a bunch of mistakes and learn from them. Download some of Apple’s simpler code example projects and look at how things are structured. Don’t worry about whether you understand every part, but try and take in the overall structure.
As for tools, there’s nothing you really need if Swift is your target. Xcode is a pretty complete package. Though getting familiar with git wouldn’t hurt - Xcode has built-in git functionality though knowing how to use it on the Terminal, well to me anyway, is often just preferred. But using it with the GUI should work fine anyway, so just do what you want. Git is version control by the way. Letting you branch your code, revert to past versions, merge part of branches and is also a good collaboration tool. If you work solo it is less vital but still good to keep track of development.
Much appreciated and congrats on your first app!!
And as to that part... I don’t know what I’ve said, but I’ve been writing software for quite a while... I did fairly recently finish my first ever Android project so maybe that’s what you’re referring to? So thanks, haha