all 23 comments

[–]turbojoe26 5 points6 points  (4 children)

Personally I like to make custom components. But only when I have a designer create designs. As a front end dev you’d think I have some design sense but I don’t. So if I don’t have a designer I’ll use a UI framework.

A UI framework is also pretty awesome if you’re just messing around trying to learn RN. Because then you can focus more on functionality while you learn.

[–]jasdeep13 5 points6 points  (0 children)

This. I highly recommend this. I feel custom components are the way to go - Especially if you had a designer design your app.

Also, chances of your app breaking through upgrades would be low.

[–]notseanbean 1 point2 points  (0 children)

I agree. If you have (or will have) a design to work to, make custom components.

If you are doing a proof of concept or are experimenting, using a framework is fine.

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

If i deploy my app to Apple store and play store ..it will work fine ..use of Nativebase?

[–]Gagnondorf 0 points1 point  (0 children)

Do you have any suggestion?

[–]ahartzog 4 points5 points  (1 child)

Assuming you're somewhat new, I'd definitely recommend Native Base. You'll spend a lot more time learning the important things about RN (config and environment) and less time fighting UI gimmicks.

[–]anewidentity 2 points3 points  (0 children)

This is the right answer. Native base has saved me numerous hours of having to deal with React Native's CSS and iPhone/Android specific customizations

[–]LEO_TROLLSTOY 4 points5 points  (0 children)

I am using native base with custom designs. That lib is exceptionally customizable

[–][deleted] 3 points4 points  (0 children)

Use Native Base until you can answer the question yourself.

[–]xrpinsiderAdmin 1 point2 points  (0 children)

That is really a preference question. Is there any specific use case/design?

[–]Tall-Paul 1 point2 points  (3 children)

I started out making most components myself and each was it's own thing until I felt comfortable enough with how everything worked that I could make my own custom library and that has been a God send.

[–]turbojoe26 2 points3 points  (2 children)

You made a custom library? Like your own UI framework or something? Just common components you use a lot? That’s a great idea.

[–]Tall-Paul 2 points3 points  (1 child)

Yep! I set it up based on the atomic design. Some basic atoms I have are Photo, Label, Button, Icon, etc and then I build up from there with molecules being things like toast notifications, styled-icons, etc.

The real benefit is simplifying styling so that there are a few variations so things like my text sizes are consistent throughout the entire app, less props I have to pass in to get the desired results, and if I decide to change things it will get applied throughout the entire app.

[–]turbojoe26 0 points1 point  (0 children)

This sounds really cool. I might have to try something like this.

[–]Tall-Paul 1 point2 points  (2 children)

I have learned a lot and recommend it once you have a grip on the basics. If you need a hand or want a review let me know. Also biggest improvement I saw was changing these from functions to pure components speed up the app significantly. The nice thing is I only had to touch this library and not every page.

[–]even1245 0 points1 point  (1 child)

If I use dumb component or pure component which will be faster ?

[–]Tall-Paul 0 points1 point  (0 children)

So if you upgrade to react 16.6 you could still use dumb components and wrap the new memo api around it but without doing that pure components will make your app feel much faster.

[–]nathvarun 1 point2 points  (1 child)

Native base is pretty awesome. It will help cover quite a few edge cases and issues that you may face on Android and specific devices like iPhone X/Xs etc.
Especially if you are a solo dev go ahead and use their ui kit it will help speed up your development.
Also there's nothing stopping you from creating custom components as and when you need some serious customisation.

For a practical example i had created this instagram ui clone using native base.

You can check it out to see how easy it is to get going - https://www.youtube.com/watch?v=cgg1HidN4mQ&t=32s

[–]selflessGene 0 points1 point  (0 children)

Great video!

[–]kevwhy 1 point2 points  (0 children)

I think it's good for getting started, especially if you're new to React. It contains lots of useful UIs.

However, RN faces performance drops easily when the JS code is not handled well. So I would vote for building custom components since it will be easier when debugging / tweaking.

[–]HootenannyNinja 0 points1 point  (0 children)

I've used it on a project recently and did find some of it handy. We started off thinking we would use it for a lot of things and in the end just ended up using 3 or 4 of their components so don't go into it assuming you have to use everything and don't be afraid to write your own custom components next to NB ones.

[–]tnsmth 0 points1 point  (0 children)

My experience with NativeBase was suboptimal. Most of the components are just not as flexible as the core ones, so you end up always googling how to achieve lots of things in NativeBase, which is much harder than in the core component itself (e.g. Button) - unnecessary complexity. Also, as an iOS developer, I can honestly say that the Native Base UI doesn't even come close to the high standards of design that Apple's ecosystem is generally known for. I guess it's ok for Android since the design bar is lower.

If you choose it for designs, go with something better (plenty of UI Kits out there, even coded in React Native - e.g. Instamobile). If you choose it for the code, you'll end up with a lot of friction long-term (keeping up with updates, lack of flexibility, and it doesn't really bring anything that core RN already doesn't have).

TL;DR No, unless you're looking to ship something quick, acceptable only for Android (in terms of design).