Hacker News new | ask | show | jobs
by liampronan 1029 days ago
Some thoughts:

- RN is a good place to start if you have React experience. The instant feedback via hot-reloading for UI is quite nice and makes learning fun. Maintenance can be an issue but it's gotten better over the years. Expo is a really great platform, and using Expo helps avoid many maintenance issues as well as helps you stay in JS land (including avoiding Xcode). RN will give you cross-platform out-of-the-box while also increasing exposure to platform-specific issues. In my experience, RN works well a lot of the time but then sometimes you need to deep dive on some tricky issue, which may require native code or a hack.

- Swift is a nice language that'll be most performant + provide the most-true-to-platform iOS UX and there's a lot of nice online resources for learning native iOS. It's a bit tricky right now because there are two native iOS UI frameworks (UIKit, SwiftUI). SwiftUI is the newer approach to iOS dev but you still need to use/interface with UIKit for some things. I'm finding SwiftUI pretty great these days, especially because it allows for Live Previews of UI (similar to RN's live reload); again, this live code<->preview link helps make learning fun. Xcode is a bit of a beast but it's not so bad imo especially for if you aren't on a huge dev team/project.

- I haven't used Flutter much so skipping discussion of that.

- RN vs native can be a divisive issue for a variety of reasons. Both have pros/cons and you can learn a lot from them.

- The best way to start likely depends on where you're at and looking to accomplish. If you really want cross-platform and/or enjoy React, then I'd look at RN. If you're excited about a particular platform, then I'd say go with that native platform's approach.

- Recommended sites/tools: expo for RN (https://expo.dev/), 100 Days of SwiftUI (https://www.hackingwithswift.com/100/swiftui), Stanford's Developing Apps for iOS (https://cs193p.sites.stanford.edu/)