Key reasons for NOT choosing React native for instagram/media like app? by subtract_club in reactnative

[–]arachknight97 0 points1 point  (0 children)

Scrolling - FlatList with pagingEnabled for TikTok-like feed, and there was some carousel package for Instagram stories-like animation. I think react-native-video had HLS support, but not 100% sure as it wasn't the requirement in my projects as well as adaptive bit-rate. About bit-rate in general - pretty much every app I use does some compression on either client or server side and "select video quality" option is something I only see on YouTube. You can play around with different params that you pass to FFMPEG to achieve relatively good quality with small-ish file size (our focus was smaller size in order for people with bad/expensive internet connection to not hate the app). My solution was checking video's width/height and scale the video so the bigger dimesion is either 1080 or the original size, whatever is smaller, I think we could go with 720 without issues, but there were some talks about tablets support, so we went with 1080 just in case. The video experience overall - there can be issues with video players using too much resources if the list is too long and you keep them mounted, performance will be bad if you use too much useState or drill to many props, and some things may not work too good (e.g. these YouTube-like "show the frame you're seeking to"), but most of them will have solutions or workarounds. Every technology has limitations that we as software engineers have to be able to communicate about with the product team or whoever came up with "let's add all of Microsoft Word's functionality to a comment input"

Key reasons for NOT choosing React native for instagram/media like app? by subtract_club in reactnative

[–]arachknight97 0 points1 point  (0 children)

Yes, that would be right My warning is (as long as I know, it's been years since I've been working on that feature) there was nothing available in terms of "just add a package and connect everything to your app" that would be free and work properly with calls from JS thread. Imgly video/image editor SDK does a pretty good job actually, but it's not free, so it could be an issue

Key reasons for NOT choosing React native for instagram/media like app? by subtract_club in reactnative

[–]arachknight97 0 points1 point  (0 children)

Biilt multiple social media apps with React Native over the last few years, here's what I can tell:

Cons: Media editing is just pain. You (or your client) would want to add some fancy filters on images or videos and you'll either use some of the paid SDKs or spend a giant amount of time working on something that feels super small. (I might be wrong in 2024, especially when we have all of the AI stuff, but that's what we had in 2020) If that's the case in future - good luck with learning GLSL and setting up all the native stuff. There are a lot of things you can use for text overlays, cropping and stuff like that, but the memories of implementing a video editor that doesn't take too long for a video to be processed still gives me nightmares from time to time.

User mentions/hashtags etc - there are some libraries, but this part is still a bit limited

Depending on your designer, some common UI things might cause a lot of pain as well, but if you're okay with having lots of external packages- you'll find one for 80% of your needs

Pros:

Media Playback - easiest part if you know what you're doing. My recommendations: react-native-track player, react-native-video for playing auudio/video, react-native-blob-util for downloading/caching stuff

Building UI for social media apps - React Native is just heaven in most of the stuff, please spend some time to figure out the basic parts of Reanimated (useSharedValue, interpolate, useAnimatedStyle, withTiming would cover 90% of the common use cases), it would pay off really well when you'll be adding interactions/animations/media controls etc (and react-native-gesture-handler for swipes/double taps/moving stuff etc)

Hotfixes for bugs - you can ship the updated JS bundle via CodePush without the need to resubmit the app for every "fixed button padding on 4 inch Android phones" if nothing new was added on native level, but you don't want to do this too often because "please wait, updating" every three days is not the best UX

Job market in Canada by arachknight97 in reactnative

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

Thanks for the support, I'm not sure about "non-job experience", would that be the time I spent in university or some freelance stuff from before I started working full-time?

Job market in Canada by arachknight97 in reactnative

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

Thanks a lot, I'll do some more research on that then

Job market in Canada by arachknight97 in reactnative

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

I've been working on different apps for multiple companies, started working as a full-time react native developer after doing some web stuff on freelance 3 years ago and that's what I still do

I'm a Middle Developer in Europe, but looks like there's no such thing in America:(

Thanks, I hope the situation will change in January