Modification des widgets pour les applications mobiles natives | Mendix

Passer au contenu principal

Modification des widgets pour les applications mobiles natives

Modification de l'image de l'article des widgets

Veuillez noter que ce tutoriel est basé sur une application native créée dans Mendix Version du modeleur 9.24.0. Les choses peuvent différer dans d'autres versions.

Pré-requis :

Pour comprendre le contenu de ce tutoriel, vous devez avoir des connaissances de base sur React Native et sur la façon d'implémenter le style d'une application mobile native dans Mendix Studio Pro. Si vous débutez dans le stylisme d'une application mobile native, veuillez consulter le matériel d'apprentissage pertinent du Mendix Academy d'abord.

De quoi parle cet article

Dans cet article, nous verrons comment modifier Mendix des widgets par défaut pour créer une interface utilisateur intuitive pour votre application mobile native. Ce sont des demandes que je reçois fréquemment en tant que consultant UX travaillant dans l'équipe Expert Services.

Qu'est-ce que ce post pas À propos

Veuillez noter que cet article n'est PAS un tutoriel sur la création d'un widget d'application mobile natif personnalisé. En fonction de la complexité du widget, cela peut prendre beaucoup plus de temps (et nécessiter un budget plus important), ce qui peut ne pas être une option pour certains clients.

L’objectif de cet article est de démontrer que nous pouvons obtenir un résultat raisonnablement agréable avec seulement React Native.

Toutes les interfaces utilisateur présentées dans cet article de blog sont ma propre création.

COURS

Vous trouverez ci-dessous les trois styles sur lesquels nous allons nous concentrer :

Leçon 1 : Extension de la section de la barre supérieure

Leçon 2 : Barre de recherche avec une loupe

Leçon 3 : Éléments de superposition

Leçon 1 : Extension de la section de la barre supérieure

L'une des demandes les plus courantes que je reçois pour les projets natifs est d'étendre la section de la barre supérieure. Cela permet à l'utilisateur d'inclure une instruction sur le contenu de la page. Vous trouverez ci-dessous un exemple du résultat :

 

Étape 1 : Configurer la structure du thème dans le modélisateur

Module thématique : Avant de travailler sur le style de l'application, assurez-vous d'avoir créé un module de thème pour cette application. Si vous ne savez pas comment procéder, veuillez vous référer aux cours de la Mendix Académie.

Leçon 1 Étape 1 Graphique

Créer une nouvelle page:Dans ce cas, je l'ai renommé « Arrière-plan ».

Module graphique thématique

 

Étape 2 : ajouter des classes aux éléments

Sur la page « Arrière-plan », créez un conteneur autour de l’instruction de la page et donnez-lui une classe.

Ajouter des classes aux éléments graphiques
J'ai utilisé le nom de classe « topBarExtension » car il s'agit d'une extension de la barre supérieure.

Sur la même page, j’ai ajouté du contenu pour montrer à quoi ressemblera la barre supérieure lorsqu’il y aura des éléments supplémentaires.

Ajoutez de la classe aux éléments graphiques n° 2
J'ai donné à la carte la classe « popCard ».

Dans votre module de thème, créez un nouveau fichier JS sous « natif » et renommez-le en conséquence, par exemple, « extension.js ». Cela correspond à la bonne pratique consistant à garder la structure des dossiers organisée et les fichiers reconnaissables.

Graphique Extension.js

Étape 3 : Mettre en œuvre le style des éléments

La clé pour créer une extension de barre supérieure est de l'attacher à la barre d'état sans laisser d'espace entre les deux. Dans la classe « topBarExtension », définissez « marginTop » sur 0.

// - top bar extension section background
export const topBarExtension = {
  container: {
    marginTop: 0,
    paddingTop: 12,
    paddingBottom: 25,
    width: "100%",
    backgroundColor: "#586F63"
  }
}

N'hésitez pas à personnaliser d'autres éléments selon le style de votre choix.

Créez un nouveau fichier « card.js ». Il est utilisé pour ajouter du style à la carte qui entoure chaque élément suivant.

Carte, graphique js

Dans le fichier « card.js », ajoutez la classe « popCard » :

// - the card that wraps around each subsequent element
export const popCard = {
container: {
borderRadius: 10,
marginLeft: 15,
marginRight: 15,
marginTop: 5,
marginBottom: 5,
borderWidth: 1,
paddingLeft: 20,
paddingRight: 20,
paddingTop: 10,
paddingBottom: 15,
borderColor: "#DDDDDD",
backgroundColor: "#FFFFFF"
}
}

Assurez-vous d’importer les fichiers nouvellement créés dans votre fichier « main.js » :

Graphique Main.js

Résultat final

Bonus

Un autre style courant consiste à faire en sorte que le contenu principal chevauche partiellement l'extension de la barre supérieure. Voici un aperçu du résultat final :

Pour y parvenir, nous devons étendre le rembourrage de l’extension de la barre supérieure afin que l’élément suivant ne couvre pas le contenu de la section de la barre supérieure.

Étape 1 : Mettre à jour le modélisateur

Mettre à jour le graphique du modélisateur
La classe mise à jour pour l'extension de la barre supérieure.
Classe mise à jour pour le graphique de la carte
La classe mise à jour pour la carte.

Étape 2 : Mettre à jour le code

Vous trouverez ci-dessous le code mis à jour pour l'extension de la barre supérieure. Je lui ai attribué une classe différente « topBarExtensionLong » et je l'ai ajoutée au même fichier « extension.js ».

// - top bar extension for the overlapping card style
export const topBarExtensionLong = {
container: {
marginTop: 0,
paddingTop: 12,
paddingBottom: 65,
width: "100%",
backgroundColor: "#586F63"
}
}

Pour créer l'effet de chevauchement, nous devons changer la marge supérieure en une unité négative afin qu'elle dépasse sa marge supérieure. Vous trouverez ci-dessous le code de ce style. Je lui ai attribué une classe distincte « cardOverlap » pour le différencier du précédent. Je l'ai également ajouté au même fichier « card.js ».

// - card for the overlap style
export const cardOverlap = {
container: {
borderRadius: 10,
marginLeft: 15,
marginRight: 15,
marginTop: -35,
marginBottom: 5,
borderWidth: 1,
paddingLeft: 20,
paddingRight: 20,
paddingTop: 10,
paddingBottom: 15,
borderColor: "#DDDDDD",
backgroundColor: "#FFFFFF"
}
}

Résultat final

Leçon 2 : Barre de recherche avec une loupe

Une autre demande fréquente des clients est d'ajouter une icône en forme de loupe à la barre de recherche. Cela peut aider l'utilisateur à identifier immédiatement le champ de recherche.

Étape 1 : Configurer les données et créer un nanoflow

Notez que vous devez avoir une entité configurée dans le modélisateur de domaine comme suit avant d'implémenter le style de l'élément.

Configurer le graphique de données
• Nom : SearchHelper
• Attribut : SearchText (un attribut de chaîne limité)
• Persistant : Non

In Mendix, la barre de recherche est essentiellement une zone de texte avec une fonctionnalité de recherche. Par défaut, il n'est pas possible d'ajouter une icône à la zone de texte. Par conséquent, nous devons créer une grille de mise en page et placer l'icône dans une colonne avec la zone de texte dans une autre.

Sur le modeleur, faites glisser un vue des données et récupérer la source de données en appelant un nanoflow. Créez un nouveau nanoflow « DS_SearchHelper ».

Graphique de la vue des données

 

Créer un nouvel objet graphique
Ajoutez une activité « Créer un nouvel objet » au flux.

 

Graphique du point final
Le point final.

Dans la vue de données, créez un conteneur et attribuez-lui une classe « searchBar ». Cela simulera la bordure de la barre de recherche.

Bordure de la barre de recherche graphique

À l'intérieur du conteneur, créez une grille de mise en page à deux colonnes (au format 2:10). Ajoutez une image de loupe sur la gauche. (Vous devrez d'abord la télécharger dans une collection d'images).

Ajouter un graphique en forme de loupe

À droite, ajoutez une zone de texte avec l’attribut « SearchText » et une classe « SearchInput ». Il s’agit de la zone de texte proprement dite. Nous allons lui donner un style de manière à ce qu’elle se fonde dans cette barre de recherche.

Graphique de style de zone de texte

Vous pouvez également ajouter un texte d'espace réservé facultatif pour votre zone de recherche.

Étape 2 : Mettre en œuvre le style

Créez un fichier « search.js ». Assurez-vous qu’il est importé dans le fichier « main.js ». Nous y ajouterons le code de la classe « searchBar » et de la classe « searchInput ».

//the container that acts as a search bar (with the icon)
export const searchBar = {
container: {
borderRadius: 8,
backgroundColor: "#ffffff",
borderWidth: 2,
borderColor: "#555555",
height: 50,
paddingLeft: 10,
paddingRight: 10
}
}
//the actual search input field
export const searchInput = {
input: {
backgroundColor: 'transparent',
borderColor: 'transparent',
//placeholder text color
placeholderTextColor: "#A4A4A6",
fontSize: 16,
borderRadius: 50
}
}

Résultat final :

Leçon 2 Graphique du résultat final

Leçon 3 : Éléments de superposition

Enfin, nous verrons comment créer un effet de superposition dans lequel un élément chevauche partiellement un autre. Dans cet exemple, nous allons créer un bouton qui chevauche partiellement une image.

Étape 1 : Configurer la mise en page

Depuis la boîte à outils, faites glisser une image et un bouton vers la page. Modifiez l'icône du bouton en conséquence.

Configurer la mise en page graphique

Donnez à l'image une classe « proPic » et au bouton « overlapBtn ». Nous les styliserons plus tard.

Graphique ProPic

 

Graphique du bouton d'action

J'ai créé une mise en page avec quelques éléments de texte sous l'image et le bouton. Ceci est cependant facultatif. Si vous souhaitez faire de même, voici les instructions :

  1. Créez un conteneur qui entoure l'image et le bouton. Ajoutez un espacement « support extérieur » au conteneur. Alignez le conteneur au centre.

Éléments de texte Étape 1 Graphique

2. Sous le conteneur, créez une grille de mise en page et ajoutez-y quelques éléments de texte. Enveloppez le tout dans un conteneur et attribuez-lui la classe « popCard » (que nous avons utilisée dans la leçon 1).

Éléments de texte Étape 2 Graphique

Étape 2 : Mettre en œuvre le style

Créez un nouveau fichier « overlay.js ». Assurez-vous de l’avoir importé dans « main.js ». La clé pour créer un élément superposé est de manipuler la marge gauche et/ou droite de l’élément de manière à ce qu’il soit délibérément positionné contre un autre élément à l’écran.

Pour y parvenir, nous devons ajouter une unité négative à la marge associée. Le raisonnement est similaire à celui qui consiste à créer l'effet d'éléments qui débordent sur la barre supérieure (dans la section bonus de la leçon 1).

//profile pic
export const proPic = {
image: {
borderRadius: 100,
width: 150,
height: 150,
},
container: {
borderWidth: 2,
borderColor: "#777777",
borderRadius: 100,
width: 150,
height: 150,
marginTop: 25
}
}

 

//button to edit the profile pic
export const overlapBtn = {
container: {
borderWidth: 2,
borderRadius: 50,
width: 32,
height: 32,
backgroundColor: "#E7E7E7",
marginRight: -75,
marginTop: -32,
borderRadius: 50,
borderColor: "#777777"
},
icon: {
color: "#000000",
size: 18
}
}

 

Résultat final :

Leçon 3 Graphique du résultat final

C'est tout pour aujourd'hui ! Merci d'avoir suivi le tutoriel. Si vous avez des questions, n'hésitez pas à me le faire savoir ([email protected]).

Choisissez votre langue