Should I learn Swift?
If you’ve got some 30 minutes and interested in current technical status, I would strongly encourage your to watch this talk: Is It Time for Swift?
(FYI: I’ve developed an app called LiVE EVIL on App Store in Swift.)
There’s an analysis post “Are the Top Apps Using Swift?":
If you plan to work as an iOS developer in a few years
You may learn Swift to build some little interesting projects.
Swift is much easier to learn compared with Objective-C, and it’s clear that Swift is the future for Apple’s developers. At the time you’re looking for a job, Swift may become mainstream or even not yet, you can learn Objective-C for backward maintainability then.
Remember to keep your app on your device or make it on the App Store. Because when storm comes (something like Swift 3.0), you may not have time to modify your code to make it rebuildable 😂
If you’re looking for an iOS developer job
You’d better learn Objective-C first.
Since most projects and dependencies have been done in Objective-C, you may get stucked if you cannot write in Objective-C or understand how Objective-C works.
The only exception is you’re only interested in startup jobs, and they have built their product in Swift.
If you’re an iOS developer
Surely you should learn Swift ASAP, even if your company project doesn’t use Swift at all.
Objective-C has been around since NeXT era and has the legacy of C. There are some dangurous parts that experienced Objective-C developers would know how to better deal with, but with Swift, life’s just easier.
For example, in Objective-C, putting nil into NSDictionary(setObject) or NSArray(addObject) will just crash the app, and to represent null value element you should use `NSNULL`; in Swift, simply define the Dictionary/Array as optional type like [String: String?]/[String?] and you’re good to go.
What’s more, Swift encourages some modern concepts and fundamentally different approaches for programming: Dictionary and Array are value type (NSDictionary and NSArray are reference types, which may be released elsewhere if not well programmed), powerful enumeration, protocol-oriented programming, etc. And you may have heard Generics, which has been ported back to Objective-C, or functional programming is easier in Swift.
So you’ll learn something from Swift along the way, but be sure to learn its essence and rethink how you’ll structure the app. I personally discourage rewriting an exsiting project, but it’ll be cool to develop a new project in Swift :)