


Lorsque j'ai créé ma première application React Native, j'avais une certaine expérience en développement Web. Utiliser React pour iOS et Android m'a semblé être une extension naturelle de mes compétences.
Mais j'ai rapidement découvert – à mes dépens – qu'un état d'esprit de développeur Web ne se traduit pas toujours bien par le développement d'applications natives.
Prenons la navigation, par exemple. Sur le Web, chaque site crée généralement sa propre mise en page. Les en-têtes, les barres latérales et les pieds de page sont tous personnalisés. Vous pouvez commencer avec un élément simple, mais ce n'est qu'une toile vierge. Vous devez utiliser JavaScript et CSS pour le rendre fonctionnel et visuellement attrayant.
Cette personnalisation devient une partie de votre identité de marque. Si votre en-tête ressemble à celui d’un autre site, il semble générique.
Lorsque je suis passé au développement d'applications natives, j'ai apporté le même état d'esprit avec moi.
J'ai méticuleusement conçu des composants personnalisés pour tout. J'ai construit mon propre en-tête avec un bouton de retour et un titre. J'ai créé des transitions d'écran et des animations personnalisées. J'ai même géré moi-même la zone de sécurité et suivi l'orientation de l'écran pour animer les transitions. J'ai créé des onglets inférieurs personnalisés pour garantir que mon application ne ressemble pas à celle des autres.
Il n’a pas fallu longtemps pour réaliser que c’était une erreur.
Les utilisateurs d'applications natives s'attendent à des modèles cohérents entre les applications. Ils ont également des attentes élevées quant à la qualité des éléments de base de l’interface utilisateur, comme la navigation. Par exemple, sur iOS, les utilisateurs s'attendent à appuyer longuement sur le bouton de retour pour revenir en arrière sur plusieurs écrans. Si cela manque, l’expérience semble incomplète.
Alors pourquoi réinventer la roue ? Les composants natifs sont déjà optimisés pour la plateforme. Au lieu de créer un en-tête personnalisé à partir de zéro, j'aurais pu simplement utiliser l'en-tête natif et modifier ses couleurs. Mieux encore, j'aurais pu ignorer complètement la personnalisation et utiliser directement les composants UIKit. Loin de se sentir « basique », les utilisateurs auraient apprécié la façon dont l'application s'intègre naturellement dans l'écosystème iOS.
Prenons le succès d'applications comme Apollo pour Reddit. Les gens l'ont adoré car il adoptait le langage de conception natif d'iOS, ce qui en faisait une extension naturelle de la plateforme.
Cela contraste fortement avec le développement Web. Sur le Web, vous partez d’une toile vierge et vous construisez tout vous-même. Les primitives prêtes à l'emploi sont souvent maladroites et peu attrayantes. Les boutons sont gris. Les entrées ont des contours durs. Vous avez même besoin d'une réinitialisation CSS juste pour obtenir une ligne de base cohérente.
Les bibliothèques d’interface utilisateur Web existent pour atténuer ces frustrations, mais elles constituent une solution patchwork. En comparaison, les plates-formes natives comme iOS sont dotées de primitives de conception cohérentes et magnifiquement conçues. La navigation, les animations, les menus, la typographie, les couleurs et les icônes sont tous soigneusement conçus par des experts pour créer des expériences utilisateur fluides. Ce ne sont pas seulement des outils : c'est un système de conception façonné par des décennies de raffinement.
Il m'a fallu beaucoup trop de temps pour apprécier cela. Au début, je n’ai même pas pris la peine de lire les directives d’interface humaine d’Apple.
En 2019, les applications React Native ressemblaient souvent à des imitations de haute qualité des applications natives. Ils avaient l’air du rôle mais ne le sentaient pas vraiment. La philosophie de React Native a toujours été de correspondre à la plate-forme sous-jacente, mais dans la pratique, de nombreuses bibliothèques s'appuyaient sur des composants basés sur JavaScript qui imitent les composants natifs au lieu d'utiliser les composants réels.
Par exemple, les applications React Native sur Android utilisaient souvent des en-têtes Material Design, mais elles étaient implémentées en JavaScript plutôt que d'exploiter les composants d'en-tête natifs réels.
En tant que développeur Web, j'ai trouvé cette abstraction attrayante. Cela m'a donné un contrôle total sur la personnalisation. Mais cette approche conduisait souvent à des incohérences subtiles qui diminuaient l'expérience utilisateur.
Les développeurs de React Native n’étaient pas entièrement responsables. À l’époque, travailler avec du code natif était fastidieux, surtout si vous utilisiez Expo. L'ajout de fonctionnalités natives nécessitait souvent d'abandonner Expo et de reconfigurer l'intégralité de votre pile. Les bibliothèques avec du code natif n'étaient souvent pas synchronisées avec les mises à jour de React Native, laissant les développeurs aux prises avec des fichiers Objective-C ou Java qu'ils ne comprenaient pas complètement.
« Basé sur JS » est même devenu un argument de vente pour les bibliothèques, promettant aux développeurs qu'ils n'auraient pas à gérer de dépendances natives.
Cette fracture entre JavaScript et le code natif a renforcé mon état d'esprit axé sur le Web. Pourquoi ne pas s'en tenir à JavaScript pour tout ?
Heureusement, l'écosystème React Native a évolué. Aujourd'hui, vous pouvez écrire des modules natifs à l'aide de Swift et Kotlin avec beaucoup moins de configuration. Mieux encore, Expo prend désormais en charge le code natif. Ces améliorations ont rendu le développement natif plus accessible, encourageant les bibliothèques à adopter les primitives natives.
React Navigation, par exemple, a évolué vers l'utilisation de composants natifs, privilégiant une expérience utilisateur transparente plutôt qu'une personnalisation approfondie par les développeurs.
Ce changement annonce un avenir meilleur pour React Native. Les outils natifs devenant plus faciles à utiliser, nous pouvons créer des applications qui semblent appartenir à leurs plates-formes.
Alors, apprenez de mes erreurs. Utilisez les outils de la plateforme et adoptez sa philosophie de conception. Et surtout, maîtrisez les règles avant de décider de les enfreindre.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Les types de données de base JavaScript sont cohérents dans les navigateurs et Node.js, mais sont gérés différemment des types supplémentaires. 1) L'objet global est la fenêtre du navigateur et global dans Node.js. 2) Objet tampon unique de Node.js, utilisé pour traiter les données binaires. 3) Il existe également des différences dans les performances et le traitement du temps, et le code doit être ajusté en fonction de l'environnement.

JavascriptUsestwotypesofComments: unique (//) et multi-ligne (//). 1) use // forquicknotesorsings-lineexplanations.2) use // forlongErexPlanationsorcommentingoutblocksofcode.commentsShouldExplatethe'why ', notthewat', et bplacedabovovereLantCodeForCaReric

La principale différence entre Python et JavaScript est le système de type et les scénarios d'application. 1. Python utilise des types dynamiques, adaptés à l'informatique scientifique et à l'analyse des données. 2. JavaScript adopte des types faibles et est largement utilisé pour le développement frontal et complet. Les deux ont leurs propres avantages dans la programmation asynchrone et l'optimisation des performances, et doivent être décidées en fonction des exigences du projet lors du choix.

Que ce soit pour choisir Python ou JavaScript dépend du type de projet: 1) Choisissez Python pour les tâches de science et d'automatisation des données; 2) Choisissez JavaScript pour le développement frontal et complet. Python est favorisé pour sa bibliothèque puissante dans le traitement et l'automatisation des données, tandis que JavaScript est indispensable pour ses avantages dans l'interaction Web et le développement complet.

Python et JavaScript ont chacun leurs propres avantages, et le choix dépend des besoins du projet et des préférences personnelles. 1. Python est facile à apprendre, avec une syntaxe concise, adaptée à la science des données et au développement back-end, mais a une vitesse d'exécution lente. 2. JavaScript est partout dans le développement frontal et possède de fortes capacités de programmation asynchrones. Node.js le rend adapté au développement complet, mais la syntaxe peut être complexe et sujet aux erreurs.

Javascriptisnotbuiltoncorc; il est en interprétéLanguageThatrunSoninesoftenwritteninc .1) javascriptwasdesignedasalightweight, interprété de LanguageForwebbrowsers.2) EnginesevolvedFromSimpleInterpreterstoJitCompilers, typicalinc, impropringperformance.

JavaScript peut être utilisé pour le développement frontal et back-end. L'endouage frontal améliore l'expérience utilisateur via les opérations DOM, et le back-end gère les tâches du serveur via Node.js. 1. Exemple frontal: modifiez le contenu du texte de la page Web. 2. Exemple backend: Créez un serveur Node.js.

Le choix de Python ou JavaScript doit être basé sur le développement de carrière, la courbe d'apprentissage et l'écosystème: 1) le développement de carrière: Python convient à la science des données et au développement de back-end, tandis que JavaScript convient au développement frontal et complet. 2) Courbe d'apprentissage: la syntaxe Python est concise et adaptée aux débutants; La syntaxe JavaScript est flexible. 3) Ecosystème: Python possède de riches bibliothèques informatiques scientifiques, et JavaScript a un puissant cadre frontal.


Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

VSCode Windows 64 bits Télécharger
Un éditeur IDE gratuit et puissant lancé par Microsoft

PhpStorm version Mac
Le dernier (2018.2.1) outil de développement intégré PHP professionnel

Adaptateur de serveur SAP NetWeaver pour Eclipse
Intégrez Eclipse au serveur d'applications SAP NetWeaver.

Navigateur d'examen sécurisé
Safe Exam Browser est un environnement de navigation sécurisé permettant de passer des examens en ligne en toute sécurité. Ce logiciel transforme n'importe quel ordinateur en poste de travail sécurisé. Il contrôle l'accès à n'importe quel utilitaire et empêche les étudiants d'utiliser des ressources non autorisées.
