4 ms·
For some definitions of "100% native UI." I'm a little concerned because, for example, a button is not implemented as a native UIButton, and a ListView doesn't
by TheMakeA 11y ago
For some definitions of "100% native UI."
I'm a little concerned because, for example, a button is not implemented as a native UIButton, and a ListView doesn't use UITableView. Instead they are composed of native UIViews with a lot of JavaScript glue.
That being said, Facebook has more experience writing iOS apps than me, so it may be possible that those things don't really matter (and doesn't preclude 1:1 components from being added down the road).
- woah 11y agoThe native uibutton is made of uiviews too
- TheMakeA 11y agoAbsolutely. My primary concern is with the controls feeling native. Reimplementing controls with UIViews doesn't seem much better than reimplementing them with HTML/CSS (save for performance). There's still surface area to break the illusion. Some food for thought: what if you kept HTML and CSS but instead of using a WebView to render it, you rendered the DOM manually using UIViews? You could even make overflow: scroll; turn into UIScrollViews automatically.
- ErikHuisman 11y agoIf you write JSX. What would be the benefit of using html anymore? Your own components can be the same on web or native. The base components might be a bit different but that isn't difficult to learn. <Carrousel> <Item></Item> <Item></Item> </Carrousel> On the web you might use a div with overflow:scroll on native a scrollView.
- kylebrown 11y agoOne of the big pieces in React Native was reimplementing flexbox positioning (they did it using randomly generated test cases in a TDD-based process; described in the "diving deeper" video iirc). So as long as you use flexbox to position your html, it should be pretty portable to react native.
- pikachu_is_cool 11y agoI mean... if you're talking about the entire HTML and CSS spec, then it'd be way, way, way ridiculously slower than just using a WebView.
- kylebrown 11y ago>Reimplementing controls with UIViews If it's using UIViews, it isn't reimplementing native controls. It's using native controls, same as if it was implemented with (interface builder) .nib files. That's like saying "reimplementing html/css with html/css".
- smackfu 11y agoIt may be a "native control" but if you reimplement UIBUtton and have to recreate what Apple did to create it in the first place, that's where things tend to fall apart.
- robterrell 11y agoI don't even see a button class in React Native... but if there was one and it was custom-made from UIViews, it's going to look and act differently than a native button. Turn on accessibility features -- does the button's title get read aloud? If you turn on button highlighting, does the button get an outline? If you turn on bold text or large text, does the text of the button change? I've spent 15 minutes with React Native so far, and as best I can figure, the answer is no. If they were building the GUI components from UIKit pieces, they'd get all of this for free. But I understand it would be pretty hard to get all this working with the flexible layout architecture they have... so I'm guessing they'll have to slow add all the accessibility features in over time.