Je suis nouveau dans le développement iOS. Je comprends que Apple fournit des API pour personnaliser la barre de navigation, mais j'utilise Xamarin pour créer une application multiplateforme. Sur iOS et Android, les barres de navigation et d'action ne se ressemblent pas étant donné que les deux plates-formes ont des conventions d'interface utilisateur différentes. Cependant, je me sens de plus en plus tenté de créer une interface utilisateur cohérente par opposition à une expérience native. Google doit avoir pensé la même chose pour leurs propres applications et a porté du matériel sur iOS.
Cela dit, il est plus facile de simplement créer une grille ou StakLayout et de l'utiliser comme barre de navigation pour les deux applications. La question est: les développeurs le font-ils déjà? Will Apple rejette mon application parce que j'ai créé une "fausse" barre de navigation pour ainsi dire au lieu d'utiliser ce qu'ils fournissent déjà. La même question vaut pour Android as bien.
P.S. Une autre raison pour laquelle je souhaite utiliser une mise en page est que je puisse l'animer facilement.
Regardez-le. Conception d'interface utilisateur d'échange de pile non spécifique à la plate-forme. Il devrait en être de même pour votre conception, mais seulement si vous créez une conception simple et attrayante, et non un désordre gris trop compliqué de boutons (vu celui-là auparavant). Si c'est bon que oui, utilisez une interface utilisateur personnalisée, sinon, utilisez une interface utilisateur intégrée.
"Interface utilisateur cohérente par opposition à une expérience native" est une contradiction en termes: si vous cassez les conventions d'interface native, vous ne fournissez par définition pas une interface utilisateur cohérente pour vos utilisateurs.
Votre application n'existe pas en vase clos. Les utilisateurs basculent fréquemment entre les applications, en particulier sur les appareils mobiles, il est donc important que votre application suive les mêmes conventions d'interface que les autres applications sur l'appareil. Sinon, le vôtre se sentira secoué et inconfortable, au mieux comme un port paresseux d'un autre système d'exploitation.
(L'interface utilisateur matérielle sur iOS en est un exemple sterling , bien que pour des raisons atypiques. Gardez à l'esprit que Google tente explicitement de positionner Material comme "un nouveau approche de cross-product, cross-platform design "... qui, par une étrange coïncidence, se trouve également être l'interface utilisateur native de leur propre plate-forme concurrente sur iOS. En d'autres termes, leur utilisation de matériel sur iOS est autant une tête de pont compétitive qu'une décision basée sur la convivialité.
Quelques développeurs iOS ont bien voulu sauter dans le train, mais même ses plus grands partisans ne vont que si loin:
il est important de rester fidèle à la nature des systèmes d'exploitation. Forcer un utilisateur à s'adapter ou à adopter de nouveaux ensembles d'habitudes au sein d'une application pourrait créer une grande confusion. Il est important d'intégrer intelligemment divers éléments de Material Design, mais il est impératif de ne pas confondre ou miner l'utilisateur dans le processus.
Pour ce que ça vaut personnellement, j'aime plutôt l'interface utilisateur matérielle, mais je n'envisagerais jamais de l'utiliser sur une application iOS, pas plus que je n'utiliserais l'interface utilisateur iOS sur Android.)
Le respect des conventions d'interface utilisateur natives de chaque plate-forme est le plus important pour les fonctionnalités courantes que les utilisateurs rencontreront dans de nombreuses applications (telles que la recherche, les barres de tâches et la navigation de niveau supérieur). Il est un peu moins important pour les fonctionnalités qui peuvent être uniques à votre application, pour lesquelles les utilisateurs n'auront pas d'attentes préétablies ou de mémoire musculaire. Dans certains cas (jeux, principalement), une expérience immersive et distincte est en fait souhaitable, mais cela ne semble pas être votre situation.
Xamarin fournit des bibliothèques d'interface utilisateur natives (ish) pour les plateformes qu'il prend en charge. Vous devez les utiliser sauf si vous avez une bonne raison de ne pas le faire. ("Parce que c'est plus facile" n'est pas une bonne raison.)