Cet article a fait l'objet d'une traduction automatique.
Applications modernes
Concevez une architecture d'application moderne interplateforme
Si vous créez un projet à partir de zéro ou en modifiant une solution existante, il est important de connaître le paysage de l'app moderne. Cela signifie que plus exigeants qui périphériques, les systèmes d'exploitation et les navigateurs sont là-bas qui ont besoin d'attention. Et « périphériques » ne signifient pas simplement smartphones, soit — qui comprend des comprimés, des PCs et des grands écrans de bureau. Les ventes de smartphone ont encore une avance les ventes de chaque autre type d'appareil, cependant. Certains développeurs devrez peut-être même envisager des dispositifs portables dans le cadre de leur architecture multi-plateforme.
L'essentiel est que le logiciel d'écriture de nos jours signifie par écrit pour une multitude d'appareils. L'objectif principal est de partager autant de code que possible par les diverses plates-formes si vous devez écrire la moindre quantité de code. Cela vous aidera à obtenir le produit ou l'app expédiées plus rapidement. Il sera également moins sujette aux bogues causés en réécrivant la même logique dans différentes langues.
Développement Cross-Platform Device
La manière dont vous vous approchez de développement multi-plateforme dépendra du type de logiciel que vous avez déjà en place. Si vous avez un site Web dont vous souhaitez partager du contenu, une solution hybride pourrait être meilleure. Si c'est un site de mature, vous pouvez convertir en un design réactif et prise en charge des périphériques mobiles. Vous pouvez renoncer au site mobile tous ensemble et simplement fournir un site Web et des applications natives compagnon distinct. Un autre facteur à considérer est que le soft est juste une autre façon de présenter le contenu du site ou si il peut se tenir seul comme sa propre idée.
Construisez votre site mobile tout d'abord et ensuite construire les applications natives. Alors que vous développez des applications natives, le site mobile peut servir l'application jusqu'à ce que vous avez couvert toutes les plateformes. Ceux avec les sites déjà en place et fonctionnement devrez nativement prendre que le contenu et fonctionner à chaque appareil. Vous pouvez continuer à accroître votre utilisateur mobile tout en développant des applications natives de cette façon. Lorsque vous êtes prêt à écrire vos applications natives, vous pourriez avoir besoin d'aide pour décider quelle langue à utiliser, alors assurez-vous de vérifier ma colonne de septembre 2013, « Comprendre vos langue choix pour développer moderne des applications » (msdn.microsoft.com/magazine/dn385713).
Alors que c'est une notion populaire pour commencer à développer pour la plus grande plateforme ou celui avec la plupart des ventes de périphérique, parfois c'est une décision d'affaires mieux de commencer avec la plate-forme qui a des fonctionnalités en parallèle avec vos besoins. Par exemple, une application de remise en forme qui enregistre la nourriture et l'exercice peut avoir une exigence pour afficher un résumé de votre repas et activités — myFitnessPal est un bon exemple de ceci sur Windows Phone. Ce type de données est parfait pour une tuile de vivre, qui est disponible uniquement sur la plate-forme Windows.
Vous pouvez déterminer si vos besoins correspondent à la plate-forme en listant tous vos traits principaux app. Examen chacun en vérifiant, il est pris en charge sur chaque plate-forme et éventuellement jusqu'à quel point. Lorsque vous verrez la divergence est avec des fonctionnalités spécifiques au matériel, tels que la caméra ou les caractéristiques des OS comme les tuiles ou la reconnaissance vocale. Vos options architecturales d'une vue de 30 000 pieds vous mis en place pour aller dans une des trois directions : HTML5 Web mobile, applications natives ou hybride apps.
Native cela signifie avancer à toute vapeur sur une application séparée pour chaque plate-forme. Les plates-formes sont susceptibles d'être 8 Windows Phone, iOS et Android. Pour certains, plates-formes telles que BlackBerry s'appliquent toujours. Chaque app profitera pleinement de la spécificité de que chacune des plates-formes individuelles fournit. Performances de l'application native est grande, mais, bien sûr, vous devez penser à écrire du code propre et solid que les performances se dégradent rapidement lorsque vous n'êtes pas consciencieux. Vous devrez écrire au moins l'application native interface utilisateur individuellement pour chaque plate-forme, donc le coût par plate-forme s'élève pour être le plus cher de toutes ces options.
Hybride quelque part dans cette zone grise entre indigènes et Web est l'application de l'hybride. Hybride apps habituellement intègrent le contenu d'un site Web existant dans une application native d'emballage et de déploiement. Ceci est particulièrement utile pour rapidement fixer une fente dans un des magasins app et avoir une présence, par exemple lorsque vous travaillez sur une application native pour cette plate-forme. Performance est notoirement plus lent avec les indigènes et les Web apps, comme applications hybrides sont généralement construites en enroulant le code HTML existant avec un conteneur. Par exemple, sur le Windows Phone, c'est un contrôle WebBrowser. Chaque fois qu'il y a une couche supplémentaire, il y également possibles pour des problèmes de performances.
Le compromis, cependant, est un déploiement rapide sur une plate-forme native. Création d'applications hybrides exige que vous utilisez les outils suivants :
- Apache Cordova/PhoneGap
- Visual Studio Modèle de projet Windows Phone HTML5
- Telerik AppBuilder (anciennement Icenium)
- Studio de Novell
En raison de leur nature, hybride apps encapsuler le contenu Web en utilisant le contrôle WebBrowser (conformément à l'exemple de Windows Phone), ce qui constitue un élément XAML :
<phone:WebBrowser x:Name="Browser"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
Loaded="Browser_Loaded"
NavigationFailed="Browser_NavigationFailed" />
C'est tout que vous avez besoin pour commencer la création d'une application hybride. Sur d'autres plateformes, les concepts sont les mêmes, bien que les contrôles peuvent être différents. Soyez prudent lors de créer des applications hybrides, car ils ne pourraient pas avoir accès ou privilèges pour effectuer des actions qui serait d'une application native. C'est en raison du potentiel pour script de voyous sur le Web à exécuter sur le client. C'est pourquoi HTML apps ont beaucoup des mêmes restrictions.
Lorsque vous générez des applications hybrides, vous pouvez utiliser le Telerik AppBuilder ou Apache Cordova en remplacement de Visual Studio projects. Ces outils tiers aident à combler les lacunes entre la sensation de Web hybride et un look and feel natif de votre application.
HTML5 l'avantage d'emprunter cette voie est la grande disponibilité immédiate, la spécification HTML5 apporte à la table. Sites Web mobiles peut avoir jusqu'à maintenant atteindre, mais manque l'apparence native utilisateurs veulent et seraient normalement attendre d'applications natives. En outre, une application HTML5 peut-être pas en mesure d'accéder à certaines des fonctionnalités spécifiques au matériel de ses plates-formes cibles, tels que la Webcam ou l'accéléromètre.
HTML5 a le coût le plus bas par la plate-forme, que vous devriez être capable d'écrire une fois et de fonctionner sur la plupart des navigateurs. Certains navigateurs mobiles, toutefois, ne sont pas à jour avec l'aide de normes. Qui peut être un problème majeur lors du développement d'apps HTML5. Si les fonctionnalités natives sont importantes pour votre projet, le manque d'accès à cette zone pourrait déterminer que vous alliez avec les applications natives entièrement.
Tandis que HTML5 d'hiver grande disponibilité, gardez à l'esprit que dans un sens, développer pour le Web est similaire au développement d'applications natives. Vous n'avez pas besoin de vous préoccuper de soutenir un certain nombre de navigateurs. Comme le développement de l'appareil, les développeurs Web ciblent ces navigateurs avec le plus d'utilisateurs, Internet Explorer, Chrome, FireFox et Opera.
Vous souhaitez concevoir des poudres riches côté client sur divers appareils, et vous ne pouvez pas réutiliser ce code de périphérique spécifique. Les fonctionnalités natives suivantes sont susceptibles de se comporter de manière cohérente ou être disponible sur plateformes :
- Notifications Push
- Portefeuille
- Near Field Communication (NFC)
- Multitâche/multithreading
- Fonction vocale
- Plans de navigation
- Boîtes de dialogue
En hybride ou applications clientes HTML5, ne comptez pas sur l'accès à ces attributs spécifiques à un natif. Si les fonctionnalités comme celles-ci font partie de vos besoins d'application, vous devrez aller sur la route de tous les indigènes.
Architecte de Solutions multi-plateformes
Déterminer quelles plates-formes vous allez soutenir est qu'une décision dans le paysage de l'app. Vous devez également concevoir la solution et prendre en choses compte comme temps de marché et pour quelle plate-forme développer d'abord. Comment partager autant de code que possible entre les applications est également une considération importante.
Frontaux Web services et API fonctionne bien dans un cross -scénario de plate-forme car chaque plate-forme prend en charge HTTP. En utilisant des couches de services dans le back-end signifie que vous n'avez qu'à écrire le code pour ces services une fois.
En ce qui concerne l'expansion de l'architecture à se concentrer sur le client, vous aurez envie de partager autant de code que possible. Vous pouvez coder facilement sur Windows 8 et Windows Phone avec les bibliothèques de classes portatives (CIP), mais qui laisse les autres plates-formes telles que Android et iOS. Vous pouvez partager du code dans Windows 8, Windows Phone, Android et iOS en écrivant en langage c# et utilisation des outils de Novell pour cross-compiler.
Le point d'aller native est donc utilisateurs obtiennent le même look and feel de la plate-forme native. Tandis que des outils tels que Novell vous permettra de partager du code dans la couche d'interface utilisateur, vous obtiendrez les meilleurs résultats UX si vous handcraft chaque interface utilisateur séparément. Habituellement, cela signifie modifier le code généré de Novell. Il s'agit d'un bon moment pour ajouter toutes les fonctionnalités spécifiques à la plateforme, afin que les utilisateurs sur chaque plate-forme obtenir une expérience personnalisée.
La couche de Code App mappe vers le contrôleur ou le ViewModel pièces des modèles Model-View-Controller (MVC) ou Model-View-ViewModel (MVVM). La couche d'interface utilisateur est mappé à la vue en MVC et MVVM. Le modèle est bien sûr, la représentation des données. Cela pourrait être des classes JavaScript qui mappent aux objets de base de données dans le stockage Local, ou il pourrait correspondre au schéma distant dans la base de données. Données locales n'est pas quelque chose que vous partageriez normalement entre les périphériques, et inclut souvent des informations spécifiques au périphérique.
Le chemin de moindre résistance dans le bâtiment, par que votre solution est de commencer les couches dorsal tout d'abord, puis créez un site Web, puis les apps. De cette façon vous obtenez quelque chose à la porte de la plus large possible. Du côté des applications, vous devrez déterminer lequel de construire tout d'abord, et si tout doit être votre principal moyen utilisé.
Je suis friand des RT Windows 8/fenêtres/Windows Phone plateforme moi-même et pense qu'il (spécifiquement Windows Phone) a la meilleur UX de tous les dispositifs disponibles. Ce n'est pas juste parce que j'ai travaillé pour Microsoft. Je pense que l'iPhone a un bon UX, trop. Fonctionnalités telles que les tuiles et les haut-de-gamme Nokia caméras sont convaincants de raisons de faire de Windows Phone votre plate-forme de fonctionnalité pour quiconque a besoin de ce genre de fonctionnalité dans une application. Aussi, Windows Phone gère en toute transparence et fusionne vos contacts, calendrier et autres données vitales à travers les périphériques basés sur Windows Phone avec le peuple de nuage intégré et les applications de calendrier.
Synthèse
Avec l'avènement de l'apportez votre propre mouvement d'appareil (BYOD) dans les lieux de travail partout, développement d'application native est devenue monnaie courante. Comme vous pouvez le voir, il ya de nombreuses variables et choses à considérer lors de la génération d'applications qui peuvent affecter votre succès. Sauf si vous travaillez pour une société qui exige d'un client de bureau standard, puis je le déconseillerais. Cela revient à ne pas être la première application sur cette plate-forme.
Si vous avez un budget généreux et personnel, plus un délai prolongé pour générer votre solution, vous pouvez créer un site Web avec une version mobile et un ensemble complet d'applications natives. Cela signifie que vous fournissez tous les moyens possibles pour accéder à vos services et vos données. Bien sûr, cet itinéraire est le plus de travail et le plus cher.
Rachel Appel est consultante, auteure, mentor et a travaillé pour Microsoft. Elle dispose de plus de 20 ans d'expérience dans le secteur informatique. Elle participe aux conférences majeures du domaine, par exemple Visual Studio Live!, DevConnections, MIX, etc. Elle est experte en développement de solutions répondant aux exigences professionnelles et technologiques, et se concentre sur la pile de développement Microsoft et le Web ouvert. Pour plus d'informations sur Rachel Appel, consultez son site Web à l'adresse rachelappel.com.
Je remercie les experts techniques suivants d'avoir relu cet article : Frank La Vigne (Microsoft) et Wally McClure (développement évolutif)