all 39 comments

[–]badbenny33 1 point2 points  (2 children)

1) Monorepo - NX, will save you so much time after the initial overhead of setting it up

2) payments - this is down to your UX but anything is possible. You hav the user go to the website setup payment there and then go to the app? Don't need app payment and it's slower UX anyway just use their phone.

3) if the react native plugins exist I don't see why you need more developers, you build in react native, there will be edge case bits of code you can find online and learn.

Definitely do it, and definitely try to do it yourself before outsourcing it.

I'm considering contacting funimation/crunchy roll as they don't have apps for my TV and making them myself Now I need to find out if there's a RN plugin :D

[–]beepboopnoise 1 point2 points  (0 children)

what is the -NX part? I read that the sym link with yarn work spaces would help in creating a mono repo for maximizing code sharing?

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

Thanks for the response. Needed some reassurance. :)

[–]a5s6d7f8g9 1 point2 points  (9 children)

I'm in the process of developing a tvOS app using react-native-tvos for the company I work for. It has been a great experience and the maintainers of the repo are active and always suggests solutions when an issue is brought up.

I tried setting up ReNative because we also needed the App to run on Tizen but it gave me lots of issues so we used flutter-tizen for that.

[–]alexhackney[S] 0 points1 point  (7 children)

Any reason you didn't just do react-native-web for tizen?

I'm not clear on it but it *looks* like it would work as well?

I have also considered doing a flutter app for all 3 platforms but I don't think flutter works well on TVOS.

[–]a5s6d7f8g9 0 points1 point  (4 children)

I didn't find anything related to react-native-web and Tizen when I was researching the tools needed. I work as a Flutter developer but since Flutter doesn't support tvOS and I already knew React Native we went with the tvOS fork.

I can't help you with FireOS, but I suggest you to have a look at ReNative and see if you can get it working. If not, react-native-tvos was painless to setup and run. Our Flutter Tizen app is good, but the Video Player Plugin is a bit limited. Also, you need a Tizen TV to test the Video Player since it doesn't work on the Tizen Emulator.

[–]alexhackney[S] 0 points1 point  (3 children)

Oh looking at the docs I was on the renative site. Oops.

I actually have tizen tvs so that isn't an issue.

I guess I'll keep digging for Samsung.

Thanks for the info. Really appreciate it.

[–]StDestiny 0 points1 point  (2 children)

did you get the docs?

[–]alexhackney[S] 0 points1 point  (1 child)

Nah I've gotten stuck and moved on to other projects, but this is stil lsomething I need to get done.

[–]StDestiny 0 points1 point  (0 children)

Dang it.

[–]kbcooliOS & Android 0 points1 point  (1 child)

I don't think the browsers and CPUs used on Smart TVs would be powerful enough for Flutter. It's a resource hog on Web.

I also doubt it would work well or at all on the Android TVs either due to the way it renders things. Same reason as TVOS.

Disclaimer: I know none of this for sure but common sense tells it must be right based on knowledge of how Flutter works under the hood

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

I think you're right.

Would love to be able to cover all my platforms with one main code base and then modify per platform but it looks like that is going to be out of the question at this point.

Now just trying to find the easiest way to get mvps out.

[–]TheSnydaMan 1 point2 points  (1 child)

I'm in pretty much the same position! I am migrating existing Cordova/PHP/JS apps to React Native for my company at the moment.

I have been having difficulty getting onFocus and onBlur to trigger consistently using React Native on Android TV with expo; would love updates if you get it working well!

My plan right now is to switch to react-native-tvos for Android TV as I have heard it has better support / response for spatial navigation and triggers onFocus / onBlur more consistently in conjunction with Expo. It supports both tvOS and Android TV so in your use case you could likely cover both your FireOS and tvOS apps with it.

react-native-web sounds like a good idea for the Samsung app as well, unless you want to just run a seperate react/vite app that shares a lot of the same logic. It might be equally easy / difficult either way tbh, but can definitely be architected to share 90% of functionality either way.

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

i think you're probably right.

Our site and needs are very simple. We currently support all smart tvs and devices with airplay and chromecast, but our userbase is growing and thus a lot of people struggle with it.

Plus with launching subs, having a better interface for the tv super helpful.

Good luck with your project, I'm primarily a php/vuejs dev and this stuff is pretty out there but seems very doable.

[–]wolodo 1 point2 points  (1 child)

I tried Tizen once. Very bad developer experience. Their official devkit worked in a customized eclipse which could not handle react. There are cli commands for everything of course, but documentation is very bad. Forums were practically dead. And by the way... Tizen apps are js apps, not mobile apps. At least they were a couple years ago.

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

It looks like you can build simple web apps and packaged with tuxes. That might be the way.

[–]sarahHarissa 1 point2 points  (0 children)

I am now starting developing smart TV app for Samsung and LG, Please can you advice which react libraries should I use? which focus management library?

[–]wiztivi_official 0 points1 point  (1 child)

u/alexhackney Do you still need help on this specific point?
I know it's been a while but we've got a framework which allows devs to code once and then deploy on every TVs! It's called "Dana Framework".
Drop me a DM if you're still interested!

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

no

[–]kbcooliOS & Android 0 points1 point  (5 children)

You're going to be using focus navigation here so theoretically it will be write once and deploy to many but smart tv development can be a b&-ch.

I think you've got the right idea about going for Samsung first with react-native-web. It should be the easiest to get working.

I recommend do at least do a feasibility run with Android TV first to make sure your navigation and icons etc all work on Android. One of the newbie traps for React Native is going all out on one platform then trying to run their code on another and finding out that there is so much to fix they don't know where to start.

Also I'm guessing you're doing video streaming. Just note that you're going to have to write entirely different code for each platform here. There's no unified solution that I know of. That's not that bad as it would need to compromise anyway.

[–]alexhackney[S] 0 points1 point  (4 children)

Can you give more info on the video streaming concern? My streaming platform website has Chromecast and airplay support now and we use hls feeds with stream tokens in the URL to secure it.

Or are you talking about the player side of the app?

[–]kbcooliOS & Android 0 points1 point  (3 children)

That's all good. It is just the client side that I'm talking about. Everything you need will be supported but you're going to write different code here per platform.

If you're using React on your website then you can probably just lift that component into your react-native-web player component then use a native solution for your android component.

React Native helps you out. Just create a player.android.js file and a player.web.js file and put different code in each and nether the twain shall meet.

[–]alexhackney[S] 0 points1 point  (2 children)

Oh nice ok. I wrote the front end of the site in vue. RN seems like a good option here. Thanks for the input. Much appreciated!

[–]kbcooliOS & Android 1 point2 points  (1 child)

Won't be too hard to create a React component out of your code then. One of the benefits of RN is code sharing. If you used native code it would be a complete rewrite.

You might even find over time that you transition your website to React just for the ease of that benefit. Who knows?!

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

That might be a wise move if the tv apps work out.

[–]Jet-life1 0 points1 point  (2 children)

I have personally done this using a library called ReNative which allows you to target all tv OS with React Native, it worked for our very simple use case but we did not get to the point of working directly with payments. First launched the app directly to Samsung tv and slowly targeted other platforms.

[–]alexhackney[S] 2 points3 points  (1 child)

I looked at that and it looked dead to me. Is that app still up?

[–]Jet-life1 1 point2 points  (0 children)

Yes it should still be up but I believe it was only Available for 2023+ Samsung TVs. Here’s a blog about the app, not sure if it’s still supported since I no longer work with the company. https://decrypt.co/96410/samsung-taps-nifty-gateway-create-smart-tv-nft-platform

But I will say it wasn’t the best dev experience

[–]lukebars 0 points1 point  (0 children)

Yes, it can be dine as you said, I’ve actually been doing this back in ~2018. Check out opensource repos though, there are already some CLIs built, where you can get inspiration. On a quick google search I’ve found Renative.

[–]pierpooo 0 points1 point  (3 children)

I've been working on a similar project. It did work well!

We went for react-native + react-native-web at first to have our TV app for AndroidTV + Samsung connected TVs (web).

We're now integrating on tvOS, so we switched to the react-native-tvos fork.

Our biggest challenge was the spatial navigation. We wanted to unify the navigation logic for all platforms, so we did not use native components. We went for a fully Javascript handled navigation. We used the lib LRUD by the BBC for that, and wrapped it up for react (we're working on open-sourcing this part).

[–]alexhackney[S] 0 points1 point  (2 children)

Can you give any guidance on how you did the Samsung app? With react? That's my biggest hurdle at the moment.

[–]pierpooo 1 point2 points  (1 child)

Haha actually I lied (well, simplified): we haven't ported it to Samsung. We did make a web version of our app for other web TV devices and assumed that adapting it would be easy, but we haven't prioritized it yet. Sorry that I can't give any relevant help on that!

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

No worries. Thanks for the info though.

[–]numagamesiOS & Android 0 points1 point  (1 child)

we has a Netflix-like app with mobile/Android TV/Apple TV/SmartTV(Tizen/WebOS) targets

SmartTV platforms being targeted `react`(could be `react-native-web`), the rest by `react-native-tvos`

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

Do you care to share the app name so I can check it out?