HACKER Q&A
📣 samvher

How do you manage your front-ends on multiple platforms?


Most of the software engineering in my organization has been back-end work so far. However, there is a push to start providing front-ends on many platforms (on- and offline Android & iOS, and web, likely including features such as image and location capture). I am worried about the need for many different technologies in a small team.

How do you manage this in your team? Do you hire people with a variety of skills? Do you use toolkits like Flutter/React Native? Are you happy with the decisions you've made on this?


  👤 dave_sid Accepted Answer ✓
In my opinion a catch-all framework such as React native (and even before that, Appcelerator) costs you more in the long run than just jumping in and developing natively for each platform. On the surface these frameworks look great, write once deploy anywhere etc etc. The trouble is that deliberately choosing to put a barrier like this between you and every platform means you are tied to the development progress of the intermediate platform. Its like sticking a plastic toy steering wheel on top of the steering wheel in your car. Also, I don’t think the promise of ‘write once’ is ever fulfilled. I think you will always find yourself with different edge cases for IOS, Android and Web that take up more time than its worth. You’ll spend more time dealing with edge cases than you saved by not just going native.

My opinion is to forget React native or any other framework that promises the world, and just get your team to build native IOS and Android apps. You have clever people that can handle both. Also, most mobile developers are proficient in Android and IOS.

Lastly, I think your team would likely enjoy the chance to learn Swift for IOS and continue using Java/Kotlin for Android. Give them a week and I bet they could build you two great looking demo apps in both platforms with no need for React native weighing them down. Try it. One or two weeks. See what your team can do. I bet it’s a lot.

Go for long term speed, efficiency, simplicity and core platform knowledge and drop the quick win, promise laden ball-and-chain frameworks such as react native. You don’t need it.

Just my opinion :-D