Doing some playing with react native at the moment and can say it's refreshing (although Swift is nice to use, especially compared to the bloat that is Java for Android)
I used to do native iOS apps in the past, but I've always been more of a web developer than native. This winter, I did a client project in React Native (http://goshakkk.name/works/12min-mobile/) and the experience has been very positive on the iOS side (RN + Android is another story...)
Almost everything you know about React.js holds true in RN. The CSS-like styling and layout with Flexbox are a godsend. ES6 with Flow is type safe, mostly.
The tooling in general around swift still feels a bit "in progress" imo but it's defo the future, and for me, the present.
Also Apple is very clear about that in their documentation.
Additionally, once you start coding in it, you'll likely find it's a joy compared to Obj-C.
1) The app will rely heavily on outside libraries or codebases that are Obj-C, to the extent that it will be annoying even though Swift-ObjC interop is pretty OK, and
2) You (or your developer(s)) are grizzled Obj-C veterans, haven't yet learned Swift, and you are in a rush and don't want to waste time learning stuff
Swift has some warts still, but the show-stoppers like "all your code will break in the next release" are over (well not on Linux yet, maybe, but on iOS for sure). Swift is better than Obj-C in almost every way you could think up, even if thinking them up was the whole point of a drinking game. (And I say that as somebody who did Obj-C programming for 19 years and Swift only 2 so far.)
So it's pretty much truck-vs-horse at this point. The horse will still let you ford that river after a flood, and you can eat it if you get trapped for weeks by a blizzard or something... but basically the truck is gonna be better for almost anything unless your app is really unusual.
Even allowing for the re-learning time and rustiness, there was such a sharp contrast. Swift is just so much more fluid, productive, expressive, and a joy to use.
Yep, there are plenty of issues, stability isn't 100%. Despite that, it is well worth the jump.
And stick with Swift 3.0
I absolutely adored Objective-C. But there were a few things I never felt comfortable with and just drank the Kool-Aid on.
1. Message passing to `nil`. Sure it's nice that you can safely pass a message to nil, but the idiom is a little weird. `guard` and `defer` have completely changed the way I write code in functions to exit safely.
2. Protocol Oriented Programming. This has changed the way I architect my applications for the better. I end up with less code over all and fewer Unit Tests in particular.
3. Associated Value Enums. Another big win over Objective-C. Now I can have a type and value all wrapped in one little package for my switch statements. It sounds minor, but it minimizes cyclomatic complexity.
4. It's going to be very good to know this language in 2 years. Javascript has owned the browser for too long.
But it still beats Obj C by a longshot.
then consider Obj-C.
Would go pretty far to use Swift over Obj-C anyway, so I can deal with both 1) and 2) and still use Swift. It will just get better, so probably best to go Swift sooner than later.
Then, it's debatable, whether you bet on the swift tool suite to fix all the compiler crashes and compile time issues before your code base reaches the critical point.
Also note that it's trivial to manually convert small blocks and idioms from Objective-C to Swift.
And that you can include Objective-C libraries and classes/files and call them from Swift.
Swift - Do I want to attract young developers in a near future? Do I value awesome user interface over app stability?
Objective-c - Am I looking to collaborate with Sr. developers? Do I need tones of support and documentation on the Web?
Other than that, it really doesn't matter even in 2017.
And to adapt to new syntax whenever a new Swift version come out... is painful