@thalion Thank you so much for reaching out to us! Every journey begins with a single step and we’re very excited that you’ve decided to learn iOS development. We’re honoured that you chose us as your vehicle to take you there!
The best analogy that I can give you about this journey is this:
Think of yourself as an aspiring author for the next great novel in French (assuming you don’t know French ). Before learning how to write a novel, you’d first need to have a strong grasp of the language. Once you have a strong foundation of the language, you can then learn how to write (since knowledge of the language itself is not enough to know how to write a novel in ANY language).
As you’ve correctly pointed out, yes, learning Swift would be your starting point, and yes, I would definitely recommend subscribing to the video tutorials (no bias…honest! I know some of the presenters in the videos personally and I definitely can vouch for their knowledge and character ). The benefit of the videos is that they provide an explanation from the ground up on the subject you are learning, and of course, with almost every lesson, there is accompanying source code as well as a challenge to help you apply the knowledge that you’ve received from that particular video.
Since you’re a beginner, I will try to help you out by concentrating on a few areas:
1.Swift 3
Swift 3 is most definitely relevant, and now the language is slowly maturing, and settling down now. The jump from Swift 2.2 to 3 was significant, but the jump from 3 to 4 is nowhere close to that, so you’re pretty safe with learning Swift 3. Please do note, that while Swift can be used as an Object Oriented language, it’s real power lies when it is is used as a FUNCTIONAL language. Functional programming is different from OOP, and RayWenderlich.com does have tutorials that discuss this topic.
2.UITableViews.
I can’t stress this enough, but UITableViews MUST be something you know inside out. And backwards. UITableViews are the foundation of almost every app, and because they incorporate so many areas of iOS development, you will many concepts that will overlap with other areas of iOS development. Make sure you learn how to use storyboards, .xib files, and of course, doing everything programmatically. Once you know how UITableViews work, it will be very straight forward to learn other, more complex concepts like UICollectionViews.
3.Auto Layout
If you’re going to build apps, you’re going to need to make sure your UI looks good, and appears consistent across all devices. This will not be possible without knowing Auto Layout, it’s that simple. This is a fundamental technology like UITableViews that you simply cannot ignore. Grab the bull by the horns. Please.
4.Networking (NSURLSession)
Very few apps today are islands (i.e. standalone apps that don’t require any external data). As devices evolve, and as apps become more and more complex, many elements of app development are moved out of the device and into the cloud. This means that your app will need to know how to communicate to a web service of some kind. Typically, this will be a REST API which will send data to you in JSON format (although other forms are indeed available, JSON is the most common). Therefore, you should definitely get a good understanding of how to communicate to an external resource on the web, and then process that data so that it can be used inside your app. The specific API in iOS to know this is NSURLSession. Yes, we have tutorials on this.
5.Multithreading (Grand Central Dispatch & Operations)
One of the more advanced concepts in iOS development that you definitely should know as your knowledge of iOS increases is multithreading. This concept allows you to run multiple tasks simultaneously on your device, while making sure that your user is constantly engaged with your app. Having a good understanding of this concept will allow you to efficiently use your iOS device’s resources, while at the same time providing a great experience for the user. We have a course dedicated to this also!
I think that is about it for now. There are many other “nice to know” areas as well (e.g. Core Data), but I think you have your hands full for the next while Definitely do check the forums to see what others are asking about, and of course feel free to post your own questions. We’re here to help! As an experienced iOS developer, I will say to you in all honesty that when I first got started in my learning of iOS, RayWenderlich.com was indeed one of the very first (and dare I say, the best) starting points on the web, so you’ve come to the right place!
Please feel free to post questions or comments that you may have, and we’ll do our best to answer them for you!
Happy learning, and take care!