Présentations d'application natives de Common React page de connexion

Dans cette série, vous apprendrez à utiliser React Native pour créer des mises en page couramment utilisées dans les applications mobiles. Les présentations que vous allez créer ne seront pas fonctionnelles. L'objectif principal de cette série est de vous salir les mains lors de la présentation du contenu dans vos applications natives React. 

Si vous débutez dans la présentation d'applications React Native ou dans le style en général, consultez mon tutoriel précédent:

Pour suivre cette série, je vous mets au défi d'essayer de recréer chaque écran par vous-même d'abord, avant de lire mes instructions détaillées dans le didacticiel. Vous ne bénéficierez pas vraiment de ce tutoriel simplement en le lisant! Essayez d'abord avant de chercher les réponses ici. Si vous parvenez à ressembler à l'écran d'origine, comparez votre implémentation à la mienne. Ensuite, décidez vous-même lequel est le meilleur!

Dans cette première partie de la série, vous allez créer la page de connexion suivante:

La page de connexion est généralement utilisée comme page initiale pour les applications nécessitant un compte utilisateur..

Voici quelques exemples de ce type de mise en page à l'état sauvage:

Configuration du projet

La première étape consiste bien entendu à mettre en place un nouveau projet React Native:

réact-native init réag-native-common-screen

Une fois le projet configuré, ouvrez le index.android.js fichier et remplacez le code par défaut par ce qui suit:

importer Réagir, Composant de 'réagir'; importer AppRegistry de 'react-native'; importer le login depuis './src/pages/Login'; exporter la classe par défaut ReactNativeCommonScreens étend Component render () return (  )  AppRegistry.registerComponent ('ReactNativeCommonScreens', () => ReactNativeCommonScreens);

Créer un src / pages dossier et créer un Login.js déposer à l'intérieur.

Vous aurez aussi besoin du réagir-native-vector-icons paquet. Ceci est spécifiquement utilisé pour rendre l'icône Facebook pour le bouton de connexion Facebook.

npm install --save react-native-vector-icons

Ouvrez le android / app / build.gradle fichier et ajouter une référence au paquet:

dependencies // le reste des dépendances se trouvent ici dans le projet de compilation supérieur (': react-native-vector-icons') // add this

Faire la même chose avec le android / settings.gradle fichier en ajoutant ce qui suit en bas:

inclure le projet ': react-native-vector-icons' (': react-native-vector-icons'). projectDir = nouveau fichier (rootProject.projectDir, '… / node_modules / react-native-vector-icons / android')

Ouvrir android / app / src / main / java / com / react-natif-common-screens / MainApplication.java et importer le package:

importer java.util.Arrays; importer java.util.List; importer com.oblador.vectoricons.VectorIconsPackage; //Ajoute ça

Enfin, initialisez le paquet: 

@Override protected List getPackages () retourne des tableaux.asList (new MainReactPackage (), new VectorIconsPackage () // ajouter ceci); 

Création de la page de connexion

Bon, maintenant que vous avez essayé de coder vous-même la mise en page (pas de triche, pas vrai?), Je vais vous montrer comment j'ai construit mon implémentation. Ouvrez le src / pages / Login.js archivez et importez les choses dont vous aurez besoin:

importer Réagir, Composant de 'réagir'; importer StyleSheet, Text, View, TextInput, ScrollView de 'react-native'; importer l'icône de 'react-native-vector-icons / FontAwesome';

Mis à part les composants React par défaut et le réagir-native-vector-icons package, vous devez également inclure trois composants personnalisés:

importer un conteneur à partir de '… / components / Container'; bouton d'importation de '… / composants / Bouton'; importer une étiquette à partir de '… / components / Label';

Le premier est le Récipient (src / components / Container.js), dont le travail consiste à ajouter une marge inférieure à tout ce qu’elle recouvre. Cela semble trivial, et oui, vous pouvez réellement utiliser Vue et ajoutez les mêmes styles à chaque fois que vous souhaitez l’utiliser. L’avantage qu’il offre est que vous n’avez pas à appliquer les mêmes styles à un Vue plusieurs fois, et vous permet également de réutiliser le composant chaque fois que vous devez ajouter une marge inférieure à quelque chose.

importer Réagir, Composant de 'réagir'; importer StyleSheet, View de 'react-native'; const Container = (props) => return (  props.children  )  const styles = StyleSheet.create (labelContainer: marginBottom: 20); conteneur d'exportation par défaut;

le Bouton composant (src / components / Button.js), comme son nom l'indique, est utilisé pour créer des boutons. Si présent, cela crache tout composant enfant qui y est ajouté. Sinon, il génère un Texte composant qui montre le texte à l'intérieur du bouton. Un style par défaut est également ajouté, mais il ne sera pas utilisé si noDefaultStyles est présent dans les accessoires. Les styles de boutons uniques transmis depuis les accessoires sont également facultatifs.

importer Réagir, Composant de 'réagir'; importer StyleSheet, Text, TouchableHighlight, de 'react-native'; const Button = (props) => function getContent () if (props.children) return props.children;  revenir props.label  revenir (   Obtenir du contenu()   )  const styles = StyleSheet.create (button: alignItems: 'center', justificationContent: 'center', remplissage: 20,); bouton d'exportation par défaut;

Enfin, il y a le Étiquette composant (src / components / Label.js), qui est fondamentalement juste un Texte composant avec un style prédéfini.

importer Réagir, Composant de 'réagir'; importer StyleSheet, Text, de 'react-native'; const Label = (props) => return (  props.text  )  const styles = StyleSheet.create (textLabel: fontSize: 20, fontWeight: 'bold', fontFamily: 'Verdana', marginBottom: 10, color: '# 595856'); Exporter l'étiquette par défaut;

Vous pouvez maintenant passer à la page de connexion actuelle. À l'intérieur de rendre() méthode, tout envelopper dans un ScrollView composant. Ceci est très important si vous souhaitez que votre application puisse prendre en charge toutes sortes de dimensions de périphériques et d'orientations d'écran.. 

Le plus souvent, quel que soit le peu de hauteur que votre contenu va consommer, il y aura toujours un appareil qui ne pourra pas l'afficher complètement. Ainsi, la nécessité de barres de défilement pour faire défiler le contenu.

export default class Login Login étend Component render () return (  ) 

Ensuite, initialisez les styles:

const styles = StyleSheet.create ();

Appliquez les styles suivants à la ScrollViewflexDirection est facultatif, mais il est recommandé de le définir explicitement pour que les futurs développeurs sachent exactement comment le contenu principal de l'application est présenté simplement en jetant un coup d'œil au code..

scroll: backgroundColor: '# E1D7D8', remplissage: 30, flexDirection: 'column',

En regardant la capture d'écran de tout à l'heure, le premier élément de contenu que vous souhaitez ajouter est celui qui se trouve tout en haut, à savoir le bouton Mot de passe oublié. Notez que le onPress les accessoires sont fournis parce que le underlayColor ne sera pas réellement appliqué s'il n'y a pas de fonction fournie lorsque le bouton est enfoncé.

 

Les styles utilisés pour cela sont assez explicites, sauf pour le alignSelf: 'flex-end'. Cela indique à React Native de positionner l'élément à la toute fin de la ligne en cours.. s'aligner est l'équivalent de alignItems pour spécifier l'alignement de l'élément lui-même et non ses enfants. En utilisant extrémité flexible vous permet d'obtenir un effet similaire à celui de Flotter à droite en CSS.

label: color: '# 0d8898', fontSize: 20, alignRight: alignSelf: 'flex-end',

Suivant sont les deux champs de texte avec leurs étiquettes.

   

À ce stade, la page devrait maintenant ressembler à ceci:

Voici le style pour le saisie de texte

textInput: height: 80, fontSize: 30, backgroundColor: '#FFF',

Maintenant, vous avez peut-être commencé à remarquer pourquoi le Récipient composant est important. Il vous permet d'encapsuler les styles par défaut afin que vous ne finissiez pas par les déclarer à nouveau dans chaque fichier. C’est un principe fondamental de React: vous devez toujours vous efforcer de réutiliser les composants chaque fois que vous voyez une opportunité..

Le bouton pour vous connecter à Facebook est un peu différent des boutons que vous avez créés précédemment. Cette fois, il contient un contenu qui affiche une icône avec du texte. Ceux-ci sont ajoutés à la place du étiquette les accessoires afin de personnaliser davantage le contenu du bouton.

  

Une fois que cela a été ajouté, la page devrait maintenant ressembler à ceci:

Ajoutez les styles pour le bouton de connexion Facebook:

transparentButton: marginTop: 30, borderColor: '# 3B5699', borderWidth: 2, buttonBlueText: fontSize: 20, color: '# 3B5699', buttonBigText: fontSize: 20, fontWeight: 'bold', en ligne: flexDirection: 'row',

Il n'y a vraiment rien à noter ici sauf pour styles.inline, qui est utilisé comme classe d'assistance pour empiler horizontalement tous les éléments à l'intérieur de celle-ci. Ceci produit un effet similaire à celui de l’utilisation de  en HTML pour envelopper le texte que vous souhaitez afficher en ligne. En CSS, ceci peut être réalisé en utilisant soit affichage: en ligne ou affichage: bloc en ligne

Les derniers éléments sur cet écran sont les Se connecter et Annuler boutons. Ils ont besoin de plus d’espace au-dessus d’eux que les autres éléments, il est donc préférable de les envelopper dans un conteneur (bas de page) et appliquer marginTop à cela. Cela a plus de sens que de déclarer un nouveau style uniquement pour ces boutons.

  

Enfin, ajoutez le style pour le Se connecter et Annuler boutons:

buttonWhiteText: fontSize: 20, color: '#FFF',, buttonBlackText: fontSize: 20, color: '# 595856', primaryButton: backgroundColor: '# 34A853', pied de page: marginTop: 100

Enfin, n'oubliez pas de définir le code qui sera exécuté lorsque vous appuierez sur l'un des boutons.!

press () // exécute n'importe quel code ici

Conclusion

C'est tout! Dans ce tutoriel, vous avez créé avec succès une page de connexion en utilisant vos connaissances Flexbox. En cours de route, vous avez également appris à utiliser une bibliothèque tierce appelée React Native Vector Icons pour ajouter facilement des icônes dans votre application. Comment ma solution s'est-elle comparée à la vôtre? Faites-nous savoir dans le forum de discussion ci-dessous.

Dans le prochain tutoriel de cette série, vous apprendrez à créer un écran de calendrier. En attendant, consultez certains de nos autres tutoriels sur React Native et Flexbox.

  • Une introduction au module CSS Flexbox

    CSS, malgré son plafond de compétences relativement faible, semble toujours avoir un tueur en vedette dans sa manche. Rappelez-vous comment les requêtes des médias ont été réactives…
    Umar Hansa
    HTML et CSS
  • Commencez avec les mises en page natives de React

    Dans ce didacticiel, vous apprendrez à mettre en page les applications natives de React et à mettre en oeuvre des mises en page couramment utilisées dans les applications..
    Ancheta de Wern
    Réagir Natif
  • Construire une application sociale avec React Native

    React Native, créé par Facebook, vous permet d'écrire des applications mobiles natives en JavaScript moderne. Les applications natives de React seront transformées en vues natives spécifiques…
    Markus Mühlberger
    Réagir Natif
  • Comment construire une navigation par bandes avec Flexbox

    Souhaitez-vous améliorer vos connaissances en matière de Flexbox et apprendre en même temps à créer facilement une présentation attrayante et unique? Si oui, assurez-vous de lire ceci…
    George Martsoukos
    Flexbox
  • Animez votre application native React

    Les animations peuvent insuffler de la vie dans votre application et rendre vos interfaces utilisateur plus intuitives. Dans ce tutoriel, vous apprendrez à implémenter différents types d'animations dans…
    Ancheta de Wern
    Réagir Natif
  • Comment créer une application de détection de visage avec React Native

    Êtes-vous un développeur d'applications hybrides souhaitant inclure la détection des visages dans votre application, mais vous ne savez pas par où commencer? Pour commencer, vous pouvez lire An…
    Ancheta de Wern
    Réagir Natif