Many of us would ask me, what’s new about the monthly version of react-native.I was also banging my head into the wall to reply them. Now I am happy to report bunch of lists. One among them is support of iPhone X.I am really fascinated to see how react-native app works on iPhone X.
Immediately I searched google to see how it works, got some component named SafeAreaView
Unfortunately I couldn’t find SafeAreaView in React-native documentation,I read some post about usage of it.Immediately I get into my code editor and check how it works.I tried importing the component like Text
import {SafeAreaView} from 'react-native';
Then I have added the component SafeAreaView as the root for all the components as below.
render() {
return (
<SafeAreaView style={styles.safeArea}>
<App/>
</SafeAreaView>
);
}
I have styled the component with flex:1 and backgroundColor. But the problem I faced is with SafeAreaView in iphone X is it has some color(given in styles) in both header as well as in the footer like below.

I don’t want footer as above. Also the safeArea and header overlap with each other. We were thinking off to get this to be resolved.
Then I tried to use normal View as root component by using the complementation of device-info library. The idea is just to style the safeArea(header) alone. So make use of padding property.
import DeviceInfo from 'react-native-device-info'
....
export default class Root extends Component<{}> {
render() {
return (
);
}
}
const styles = StyleSheet.create({
safeArea: {
backgroundColor: '#df6b2e',
paddingTop: (DeviceInfo.getModel() == 'iPhone X') ? 30: 0,
flex: 1,
},
....
});
I had a discussion with my friend Prabakaran Marimuthu. He encouraged me with an idea of styling the header of each page since we are maintaining a header as a component. We need to change the style at once which will be reflected in all screens.
const styles = StyleSheet.create({
header: {
flex: 0.1,
backgroundColor: '#df6b2e',
alignItems: 'center',
flexDirection: 'row',
paddingTop: (DeviceInfo.getModel() == 'iPhone X') ? 30 : 0
}
...
})This is our desired result.

This is how I made our app to support for iPhone X. Thanks everyone. Kindly visit Spritle Software website to know more.
