Files
modernjs/chapter11/__BORRAME__
T
2018-09-02 13:40:27 -03:00

114 lines
2.4 KiB
Plaintext

http://iosres.com/
https://material.io/tools/devices/
http://screensiz.es/
https://www.sebastien-gabriel.com/designers-guide-to-dpi/
https://medium.com/@pnowelldesign/pixel-density-demystified-a4db63ba2922
POINTS in Apple, DIP (Density Independent Pixels) in Android
RN: unidad siempre es DIP, no se pone la unidad
import React from "react";
import PropTypes from "prop-types";
import { AppState, View } from "react-native";
class StatusHandler extends React.PureComponent {
static propTypes = {
setStatus: PropTypes.func.isRequired
};
componentDidMount() {
AppState.addEventListener("change", this.props.setStatus.bind(this));
this.props.setStatus(AppState.currentState);
}
render() {
return <View hidden />;
}
}
export { StatusHandler };
return (
<Provider>
<StatusBar hidden />
<ConnectedOnLayoutHandler />
<ConnectedOnStatusHandler />
<ConnectedKillSwitchHandler onSuccess={() => null} />
<TopLevelNavigator
ref={navigatorRef => NavigatorService.setContainer(navigatorRef)}
uriPrefix={Platform.OS == "android" ? "tbstntrn://tbstntrn/" : "tbstntrn://"}
/>
</Provider>
);
Todos los componentes que precisan estado se conectan a state.view.appLayout
import { HomeCardHandset } from "./homeCard.handset";
import { HomeCardTablet } from "./homeCard.tablet";
import { HomeCardTV } from "./homeCard.tv";
import { selectViewForFormFactor } from "../../utilities";
export const HomeCard = selectViewForFormFactor(HomeCardHandset, HomeCardTablet, HomeCardTV);
import React from "react";
import PropTypes from "prop-types";
// eslint-disable-next-line react/require-render-return
class HomeCardCommon extends React.PureComponent {
static propTypes = {
appLayout: PropTypes.string.isRequired,
...
};
render() {
throw new Error("MUST IMPLEMENT ABSTRACT render() METHOD");
}
}
export { HomeCardCommon };
action para layout:
export const resetLayout = ({ view: { ...rest } }) => ({
view: {
...rest,
appLayout: `${Dimensions.get("window").height}/${Dimensions.get("window").width}`
}
});
Todas las vistas son
render() { if FormFactor.isPortrait ... else ... }