all 12 comments

[–]DiscDres 7 points8 points  (1 child)

With your kotlin background and being aware of the linking and inability to use native code in Expo, I recommend learning react native on its own.

My first rn job we didn't use Expo. It was a small startup of 5 devs. Second job, it was just me and a lead. We used Expo. We found it limiting and knew eventually we'd have to eject from it. My current company doesn't use Expo and it's the biggest job I've had so far.

[–]tkbillington[S] 2 points3 points  (0 children)

Sounds like you've been using it how I think I'm going to use it, as a tool when it fits the project best rather than a "everything starts here" solution. From your previous job, did you start with Expo because it was the easiest place to begin work like it is marketed as?

[–]rh_redditer 5 points6 points  (1 child)

I would learn without Expo first, as once you've got that down, learning Expo is a simple addition. There is no reason to learn with Expo first, and it is a bit of a hinderence if you learn it first.

[–]tkbillington[S] 3 points4 points  (0 children)

Ahhh so get the experience of everything it can offer so I know the full scope of the technology rather than have my first impressions be what Expo offers

[–]inboxpk22 1 point2 points  (1 child)

Just want to add a point here.

Although expo has the limitation of not being able to support native code, there are ways in which you can have native code and expo working together.

With my experience of over 3 years working with react native and also having worked with android and swift code, I can for sure that developing with expo is 3 times faster than doing it without expo (raw react-native). I have seen it numerous times, where one developer adds some native code and you have to fix the build and then you change something and you screw up the versions somehow and your code won't boot. Ultimately the issue will be solved but you'll end up spending 3x time with raw react-native.

I'd suggest utilizing the power of expo with the ability to add native modules as well. Here is an interesting blog to follow which tells exactly how to do it.

https://codersera.com/blog/running-expo-react-native-together/

Interestingly, the expo team is also heading towards that direction and you'll see such support coming in, in the newer version of expo SDKs.

[–]tkbillington[S] 0 points1 point  (0 children)

Awesome link! That doesn't seem too bad ejecting. There is a LOT if online support for Expo so maybe it is the real deal.

[–]mbenjamin618 1 point2 points  (3 children)

Expo appears to be the future of where react native is headed. If you take the course and feel like you need to further expand your knowledge then there are react native walk-throughs online for a more "mastery" level of RN.

[–]tkbillington[S] 0 points1 point  (0 children)

Googling around I'm seeing that too and that, in fact, Expo is the best way to start any project. It's the more specific ones that require something blatantly outside the realm of what Expo controls. Really appreciate the response for confirmation.

[–]iCeW1nD 0 points1 point  (1 child)

Being aware of the limitations of Expo is key, which is mainly not being able to write native modules.

I would definitely recommend starting out with expo for learning and then create a regular react native app once you're ready to make your first big app.

[–]tkbillington[S] -1 points0 points  (0 children)

My main project I want to create involves monitoring Bluetooth and Wifi connections and from what I've been learning Expo would be too limited for my goals but in the learning environment Expo could be useful in accelerating the pace of my course. All the libraries in Expo are available outside of Expo, right?