So you’ve wanted to get into mobile development and decided that iOS is the way to go. Until recently the choice was fairly straightforward – iOS development included one or two types of devices and a single programming language that had a rich 30-year history. There was no confusion, like with the web, where you had to decide first which language you wanted to learn, then a framework, and so on. Moreover, there were plenty of great resources on how to learn Objective-C and get started with iOS development.
The arrival of Swift on the scene changed everything. Now, not only do we have two languages to choose from when writing iOS apps, but we also have a language that is starting to show signs of usage in web development.
Does this mean Objective-C is dead? Does this mean we should only learn Swift? And which version of Swift should we learn? So many questions! Thankfully, our job here at Treehouse is to make that process much easier for you.
Contents
What Makes Treehouse Different?
While Swift is certainly the future, this doesn’t mean Objective-C is the past. Based on available jobs and input from the iOS community, our recommendation is that you learn to write code in both languages. With that said, let’s take a look at what you’ll be learning.
[Tweet “”While Swift is certainly the future, this doesn’t mean Objective-C is the past.””]
For those of you who only want to learn Swift – for example, if you already have iOS development experience – we have a brand new track for learning the Swift programming language. The goal of the track is to take you from zero knowledge of programming to being completely comfortable with the Swift language. We’ll cover a range of topics over the following courses:
- Swift Basics
- Collections and Control Flow in Swift
- Functions in Swift
- Object Oriented Swift
- Enumerations and Optionals (coming soon)
- Protocols in Swift (coming soon)
- Error Handling (coming soon)
- Intermediate Swift (coming soon)
- Generics (coming soon)
- Closures (coming soon)
There will also be additional courses including some introductory algorithm, data structures, and design patterns content. We’ll build on top of this standalone language content to cover iOS development, and in the near future, server side web development as well.
In addition to Swift, if you truly want to be a competent iOS developer, then for the foreseeable future a thorough knowledge of Objective-C is required as well. To aid in this task, students can work through our Objective-C track which includes courses like:
- Objective-C Basics
- Object Oriented Objective-C
- Objective-C for Swift Developers (coming soon)
Our main focus at Treehouse is Swift and we’ll be doing nearly all of our iOS development with Swift as the primary language. As a result, we’ll only go as deep as we need to with our Objective-C content.
If you truly want to be a competent iOS developer, then for the foreseeable future a thorough knowledge of Objective-C is required as well.
A Structured Learning Path
But let’s be real: the main reason we’re learning Swift is so we can build apps for the iPhone and iPad, along with the rest of Apple’s devices. To do that, you can jump right into the Beginner iOS Development track without any prior knowledge or experience with Swift.
You don’t need to know all of Swift to get started writing simple apps, and as a result, the Beginner iOS track incorporates a subset of the Swift language track. Once we know just enough Swift, we’ll jump right into several projects, and by the time you’re done, you’ll have built several apps including one that generates random facts, and another that takes you on an interactive adventure.
Our courses are carefully planned as a cohesive unit that introduces important concepts and then reinforces them in various ways throughout later courses and projects. We’ve been teaching iOS development for years and have refined the curriculum to lead you naturally from one topic to the next. We’ll teach you a wide range of iOS and programming skills while showing you how to always continue learning on your own, which is essential as an iOS developer.
The real fun, however, begins with the Intermediate iOS Development track, and here we’ll incorporate our knowledge of intermediate Swift, along with some Objective-C, to create apps that communicate via the web, get the local weather, find restaurants near us, take selfies and add filters to them, and much more.
All in all, by the time you’re done you’ll have watched over 50 hours of content and have several projects to showcase.
What’s Next?
All of the content mentioned already lives in the Treehouse library using Swift 2 as the primary language. Apple released Swift 3 officially in September 2016, and we’ve updated many of our beginner level courses to Swift 3 already. We should be done updating all of our content by early 2017, and you can keep an eye on our schedule using our public roadmap.
Because many apps and projects out there already use Swift 2, we’ll keep both versions of the content up so that you can continue to learn if you’re already in progress. And if you’re already an expert with Swift 2, you can catch up on just the new differences with X and Y.
If for now, you’re interested in just learning the Swift language, start here. For those of you who want to make something tangible that you can play with, jump into our Beginner iOS track and get started!
Good luck and happy coding!
alert(“test”);
Thank a lot for this post that was very interesting. Keep posting like those amazing posts, this is really awesome
To have a promising future in ios app development, learning both Objective C and swift is important. I liked how properly you explained this point throughout the article. All the topics covered in your course are relevant and essential for improving ones app development skills.
Marcus Miller// Manager
Thanks for giving a detail understanding About difference between of Objective-C & Swift , its really helpful for Beginner iOS Developers .
Thanks
Shalie
I want to be a expert or a professional developer, not just an intermediate user. Will the tech degree help me fill the gaps?
Will I able to start making apps on my own with everything I learn in this course?
Yes! Most definitely 🙂