Expo Is Not Ready For Prime Time…Yet!

Image Source: Unsplash

Update Sep 04, 2o17: I tried Expo’s newly released SDK v20.0.0, and I still stick to my opinion. It’s been more that 2 hours and the Expo client is still stuck at loading screen and no errors are reported, so can’t really debug anything.

So, there is this new SDK on the block ‘Expo’, which claims to be a ‘Rails for React-Native’. You can build React-Native apps, using the platform.

I am not even sure, if it is the one which is new or I am the one who is new to this.

For my latest app, I’ve selected React-Native to be my SDK of choice, as it will allow me release code for both iOS and Android. Although I can develop native Android app but I’ve zero programming experience with iOS ecosystem and I seriously don’t have a bandwidth to learn a new tech stack, at this point of time.

Mind you, this will be my first exposure to React-Native. Researching more about React-Native (RN, from this point onwards), I got to know that although in RN allows you to write both iOS and Android apps simultaneously, you still have to write separate programs for iOS and Android systems.

So, I was like, hmm…can’t I just write one codebase, that can give me apps for both OSes? That’s when I came to know about Expo. From far away, it looks like a dream framework, that can be a very powerful tool for any mobile developer out there. You’ll be writing single codebase for two apps, in JavaScript. What else do you want?

The feature set looks great but the problems start appearing when you try to build any real-world app, using Expo.

Following are my gripes with the platform

  1. You cannot use native code, at all

You will be writing JavaScript, but if you cannot drop down to native, at any point. Your app runs in JavaScript environment. Well, if that’s the case, I am confused, where it’s truly a “native” app or just some JavaScript hybrid app like Cordova etc.

2. You cannot use other JavaScript/Node libraries, as well

So, you can just use whatever APIs are provided by Expo’s developers and that’s it. Although, there are APIs for almost everything like Camera, Push Notifications and all, but modern apps use quite a lot of different technologies to provide several kind of functionalities. In my project, Kiven Aa, I wanted to use MQTT plugin, but nothing is available, at this moment, so I am out of luck here. If you haven’t checked out my new app yet, it’s time to do it now!

3. No Google Ads component!

This can be a serious deal breaker for any independent developer or agency whose monetization model includes earning from Ads, shown inside the app. Unless, you are a company, which want to release an app, for brand awareness or you earn your profits from elsewhere, this thing sucks! There is a support for Facebook Ads, but most of people don’t have any experience with Facebook Ads.

Having said that, I would say that despite of having all of those issues, Expo can be a good option for use cases like taking a photo and posting online and there new tool ‘Snack’, is great for quickly prototyping a screen in React-Native.

4. Bugs!

The entire infrastructure is riddled with bugs. The packager which bundles your app, seems to fail without any errors. The Expo client gets stuck on loading screen, obviously, without any error.

I understand that the platform is very new but these sorts for bugs make it impossible to work with the platform.

Thanks for Reading. I’ll update this article, if there will be a change in my opinion.

Till next time…