Fermer

septembre 8, 2021

Pommes à MAUI


Examinons quelques obstacles courants avec le développement .NET MAUI sur macOS et les moyens de se déplacer pour une expérience de développement fluide.

L'archipel hawaïen, avec l'île de Maui en particulier, est connu pour développer un nombre fascinant de fruits exotiques. La variété de fruits tropicaux d'Hawaï couvre toute la gamme des fruits commerciaux comme les bananes et les ananas, à des variétés plus inhabituelles comme le ramboutan, le chérimole, le fruit du dragon et le litchi.

Mais avouons-le, Maui n'est pas particulièrement connu pour les pommes. C'est jusqu'à ce que vous fassiez une petite recherche ou que vous visitiez réellement l'île. Les montagnes de Maui produisent des saveurs uniques de pommes – pommes de montagne Ohi'a'ai en forme de poire, pommes Koru orange, pommes violettes et même un type de fruit complètement différent appelé pomme étoilée.

Avant de vous demander pourquoi vous ne pouvez pas faire pousser des fruits tropicaux dans votre jardin, changeons de sujet. Nous parlons de .NET MAUI—l'évolution de Xamarin.Forms vers un framework multiplateforme moderne pour cibler les applications mobiles et de bureau à partir d'une base de code unique. Avec les versions Release Candidate à l'horizon, les développeurs .NET sont naturellement enthousiasmés par .NET MAUI. Mais que se passe-t-il si votre machine de développement est au goût d'Apple, c'est-à-dire macOS ?

Il y a beaucoup à célébrer sur Windows-land avec les aperçus Visual Studio 2022, les documents mis à jour et tous les outils .NET MAUI. Mais VS pour Mac subit une énorme mise à jour de l'interface utilisateur et le bricolage de .NET MAUI sur macOS est principalement alimenté par des outils CLI. .NET MAUI est également une grande promesse, et les outils multiplateformes ont de nombreuses dépendances de diverses équipes : ingénierie VS, expérience XAML, personnes MAUI et, bien sûr, des éléments d'Apple et de Google.

Rester à la pointe de la technologie, c'est pas toujours en douceur, mais vous n'êtes guère seul. Si vous rencontrez des obstacles lors du développement avec .NET MAUI sur macOS, il est plus que probable que quelqu'un d'autre ait déjà rencontré les mêmes problèmes.

Récapitulons les 10 obstacles les plus courants et comment les contourner. macOS est un système d'exploitation de bureau merveilleusement moderne, en particulier pour le développement iOS et Android, et .NET MAUI disposera d'outils de première classe. Les pommes sont en effet les bienvenues à Maui.

Je ne peux pas exécuter maui-check

L'outil CLI .NET MAUI maui-check est indispensable pour la plupart des développeurs MAUI. Il passe par une vérification de l'état du système pour le développement .NET MAUI, s'arrête par défaut à chaque étape pour signaler les dépendances manquantes et installe même tout pour vous.

Mais de nombreuses personnes sur macOS peuvent avoir rencontré une erreur initiale lors de l'exécution de maui-check. à partir de leur terminal – cela a à voir avec macOS utilisant ZSH au lieu de Bash. L'emplacement des outils globaux .NET devra peut-être simplement être ajouté à votre variable d'environnement $PATH pour l'exécution, si ce n'est déjà fait. Voici comment :

export PATH=$HOME/.dotnet/tools:$PATH

Au cas où votre $HOME ne serait pas correctement défini, vous pouvez utiliser le nom explicite de votre répertoire personnel macOS. pour pointer vers les outils .NET. Vous pouvez toujours vérifier votre variable $PATH comme ceci :

echo "$PATH"

Voici la mienne :

EchoPath" title="EchoPath" data-openoriginalimageonclick="true"/> </a data-recalc-dims=

Je reçois des erreurs Xcode

Lorsque nous créons des applications natives iOS et Mac Catalyst avec .NET MAUI, Xcode doit en fait effectuer la génération et créer le package d'application avec des assemblys.Et il existe certaines dépendances au fur et à mesure que Apple fait avancer les choses avec iOS 15 et macOS Monterey.

À partir de .NET MAUI Preview 6, vous avez eu besoin de Xcode 13qui est en version bêta – vous pouvez obtenir les bits du compte de développeur Apple, une fois que vous vous êtes connecté Xcode Releases contient un joli catalogue de toutes les versions Xcode, notes de version et liens de téléchargement.

À partir de maintenant, .NET MAUI Preview 7 nécessite Xcode Beta 4/5 et .NET MAUI RC a besoin de Beta 5. Le Xcode standard peut résider côte à côte avec Beta Xcode – vous devrez indiquer à l'outil maui-check et au système de construction .NET MAUI quel Xcode utiliser. Voici comment :

SetXCode" title="SetXCode" data-openoriginalimageonclick="true"/></a data-recalc-dims=

Je ne vois pas les modèles MAUI

Quand les gens sur Windows/VS 2022 font un fichier > Nouveau projet pour les applications .NET MAUI, ils utilisent essentiellement des modèles pour échafauder des projets. Vous avez accès aux mêmes modèles sur macOS, tout comme CLI. Lancez cette commande pour obtenir une liste de tous vos modèles installés :

 dotnet new --list

Ce que vous voyez peut être différent, mais vous pouvez voir de nouveaux modèles en cours de préparation — vous devriez avoir le maui et le maui-blazor au moins.

MauiTemplates" title="MauiTemplates" data-openoriginalimageonclick="true"/></a data-recalc-dims=

Si, pour une raison quelconque, vous n'en voyez pas, vous pouvez saisir manuellement les modèles de NuGet comme ceci :

dotnet new --install Microsoft.Maui.Templates::6.0.100-preview.7.1345

Cependant, sachez que le travail est en cours avec les modèles et ce que les dépendances du projet finissent par être sous les couvertures. Vous feriez mieux de faire confiance à l'outil maui-check pour vous fournir les modèles. Si nécessaire, envisagez de mettre à jour maui-check pour obtenir les derniers bits :

dotnet tool update -g redth.net.maui.check

Et exécuter maui-check demandant les derniers bits :

maui-check --main/preview

 

I See Errors on SDK

Si vous êtes configuré avec les outils .NET MAUI mais que les versions de l'application se plaignent SDK manquants, il se peut que quelque chose ne fonctionne pas avec vos environnements d'exécution .NET. Voici la façon de vérifier rapidement :

dotnet --list-sdks

Voici les miens remontant aux premiers aperçus de .NET 6 et .NET MAUI :

MauiSDKs" title= "MauiSDKs" data-openoriginalimageonclick="true"/></a data-recalc-dims=

Encore une fois, maui-check devrait vous avoir fourni les bons SDK, mais vous pouvez toujours nettoyer et le faire vous-même. Rendez-vous sur Dot.net et récupérez le dernier runtime .NET 6 Preview.

I Get Build Errors About Older Workloads

Vous pensez avoir obtenu les derniers runtimes/SDK/dépendances et commencez à créer vos applications .NET MAUI, uniquement pour voir la construction erreurs sur certaines charges de travail. Eh bien, cela peut être rare et nécessite d'abord de prendre une profonde respiration. Il s'avère que nous avons déjà eu beaucoup d'aperçus, et les charges de travail sont les silos dont .NET MAUI dépend pour atteindre chaque plate-forme. le dernier devrait ressembler à :

MauiWorkloads" title="MauiWorkloads" data-openoriginalimageonclick="true"/></a data-recalc-dims=[19659003]Si vous bricolez depuis un certain temps, il est possible que certaines charges de travail plus anciennes n'aient pas été nettoyées et remplacées par des bits plus récents. Le dépôt maui-check a un script pratique qui effectue une partie de ce nettoyage – il s'appelle Clean-Old-DotNet6-Previews.ps1. Mais bon, c'est un script PowerShell destiné à Windows. Qu'est-ce qui donne sur un Mac ? Détendez-vous, c'est facile en fait :

PowerShellOnMac" title="PowerShellOnMac"/></p data-recalc-dims=

Tout ce que vous avez à faire est d'enregistrer le script localement et de pointer dessus :

pwsh 

Vous pouvez également exécuter maui-check avec un peu de « force » pour vous assurer que les commandes de réparation/mise à jour/installation de la charge de travail s'exécutent quelles que soient les charges de travail actuelles, comme ceci :

maui-check --force-dotnet[19659048]Je reçois des erreurs sur le projet WinUI

Donc .NET MAUI est destiné à donner plus de confiance aux développeurs alors que nous essayons d'atteindre différentes plates-formes à partir d'une seule base de code, à savoir iOS, Android, Windows et macOS. Vous avez réussi à échafauder un .NET projet MAUI, mais on vous dit - un peu grossièrement - que vous ne pouvez pas créer pour Windows sur un Mac ! Eh bien, duh - tout ce que vous vouliez était d'exécuter l'application sur iOS, Android et Mac.

Il s'avère que .NET MAUI ne connaît pas vos intentions et la solution créée est destinée à prendre en charge toutes les plates-formes, y compris l'accès à Windows via WinUI 3. Le projet Windows est un dossier arate—conformément aux besoins d'empaquetage d'applications MSIX. Voici ce que vous obtenez :

MauiProject" title="MauiProject"/></p data-recalc-dims=

Vous ne pouvez bien sûr pas exécuter le projet WinUI sur un Mac. Donc, si vous voulez juste vous concentrer sur iOS/Android/ MacCatalyst et ignorez Windows. Il suffit de descendre d'un niveau dans le dossier contenant le fichier .csproj et de lancer la commande dotnet build pour déployer sur la plate-forme de votre choix.

I Vous voulez tester sur divers simulateurs iOS

Félicitations d'abord pour avoir pu créer/construire vos applications .NET MAUI - vous êtes sur la bonne voie. La prochaine étape consiste à voir votre application être déployée sur des simulateurs iOS - voici comment :

dotnet build -t:Run -f net6.0-ios

Cela devrait lancer l'application sur le simulateur iOS par défaut, probablement l'iPad Pro comme pour moi.

MauiOniPad" titre ="MauiOniPad"/></p data-recalc-dims=

Vous voulez voir l'application sur un simulateur iPhone ? Vous pouvez récupérer une liste des simulateurs installés et leurs Unique Device IDs (UDID)comme ceci :

/Applications/Xcode.app/Contents/Developer/usr/bin/simctl list

Ensuite vous pouvez spécifier le simulateur que vous souhaitez exécuter en utilisant la propriété _DeviceName MSBuild, comme ceci :

dotnet build -t:Run -f net6.0-ios -p:_DeviceName=:v2:udid =

Je reçois des erreurs sur les profils d'approvisionnement iOS

D'accord, celui-ci n'a pas été une solution facile pour moi. Lorsque nous déployons une application iOS sur un simulateur/appareil, elle utilise un profil d'approvisionnement Apple, avec des identifiants liés à vous/appareil et des certificats locaux. Xcode et Visual Studio ont tous deux des paramètres dans lesquels vous pouvez entrer vos informations d'identification de développeur Apple - il n'est pas nécessaire que ce soit un compte Apple Store payant. Xamarin.Forms et .NET MAUI utilisent ensuite un profil d'approvisionnement par défaut avec un identifiant d'application Wildcard. Vous pouvez également télécharger manuellement le profil/les certificats. pour moi et les builds n'ont pas pu récupérer le profil d'approvisionnement par défaut. J'ai dû accéder au compte de développeur Apple et récupérer manuellement le profil d'approvisionnement factice, qui utilise un certificat local et lié à l'un de mes appareils iOS.

DevProfile" title="DevProfile"/></p data-recalc-dims=

Ceci Le profil d'approvisionnement utilise un identifiant d'application générique : com.sam.*. Ainsi, tout ce que j'ai à faire dans mon projet .NET MAUI est de modifier l'identifiant par défaut App Identifier dans . csprojcomme ceci :

MauiAppIdentifier" title="MauiAppIdentifier" data-openoriginalimageonclick="true"/></a data-recalc-dims=

Tous les futurs déploiements sur les simulateurs/appareils se déroulent ensuite en douceur .

J'ai besoin de déboguer

Ah, donc vous n'écrivez pas de code parfait du premier coup et avez besoin de déboguer via votre code ? Bienvenue dans la réalité des développeurs. Maintenant, dans des circonstances normales, vous vous attendez à ce qu'une expérience de débogage stellaire de Visual Studio et Hot Reload rende la boucle interne encore plus rapide dans .NET MAUI.

Cependant, nous n'avons pas encore de support VS pour Mac ou VS Code formel sur macOS pour le moment. — il y a cependant une lueur d'espoir.

Avant d'en arriver là, avez-vous entendu parler de Comet ? En guise de rappel, Comet est le moyen expérimental d'apporter le modèle de conception MVU à la construction de l'arborescence de l'interface utilisateur visuelle avec .NET MAUI - vous n'avez pas besoin d'écrire XAML si vous ne le souhaitez pas. Vous pouvez commencer avec le modèle Comet/MVU avec le modèle de projet correspondant - tous les outils .NET MAUI fonctionnent comme d'habitude.

dotnet new -i Clancey.Comet.Templates.Multiplatform
dotnet new comet

Maintenant, Comet est livré avec une petite extension de code VS pratique—Comet pour .NET Mobilequi peut être utilisé pour le débogage via le code. Même si vous n'utilisez pas la méthode MVU, l'extension Comet aide en fait à automatiser le cycle de construction/modification/débogage avec VS Code exécuté sur un Mac. Vous pouvez commencer avec un modèle de projet CLI .NET MAUI par défaut, choisir un émulateur/appareil et pouvoir créer/lancer l'application, le tout depuis VS Code.

MauiDebug" title="MauiDebug"/>[19659076]J'ai besoin que mes applications .NET MAUI aient une interface utilisateur polie</h2 data-recalc-dims=

.NET MAUI vous offre une base solide pour créer des applications multiplateformes et les outils nécessaires pour démarrer : l'expédition d'applications de qualité de production demande beaucoup d'efforts. vient aux applications mobiles/de bureau modernes, l'interface utilisateur est tout - c'est le point crucial de la façon dont vos utilisateurs perçoivent l'application. -conçu et pourrait éclairer les fonctionnalités de votre application. C'est là que les suites d'interface utilisateur Progress Telerik pourraient vous aider : les développeurs peuvent ajouter des composants d'interface utilisateur de qualité et expédier des applications plus rapidement.

Saviez-vous qu'il existe déjà une interface utilisateur Telerik pour MAUI  ? C'est exactement ce à quoi cela ressemble : toute l'interface utilisateur Telerik que vous aimez, pour tous vos Applications MAUI. Vous pouvez commencer dès aujourd'hui et faire tourner les choses : la dernière version d'aperçu fonctionne avec .NET MAUI Preview 7. Vous obtenez tous les fichiers binaires et une application de démonstration simple qui présente toute l'interface utilisateur au-dessus de .NET MAUI.

TelerikBits" title="TelerikBits"/></p data-recalc-dims=

Lancez une build dotnet et vous pouvez voir l'application déployée sur iOS/Android/Windows avec toute l'interface utilisateur Telerik complexe dont vous rêvez : les grilles, Graphiques, ListViews, Jauges, BarCodes, PopUps et plus. Créez des applications géniales avec .NET MAUI : Telerik est là pour vous aider.

TelerikMaui" title="TelerikMaui"/></p data-recalc-dims=

Conclusion

Breaking le terrain pour quelque chose de grand nécessite un peu de sueur - c'est ainsi que nous obtenons une base solide. La même chose peut être dite à propos de la technologie de pointe : vous êtes de braves soldats de première ligne qui ouvrent la voie à suivre. .NET MAUI est une merveilleuse promesse pour le développement multiplateforme moderne, et ce n'est qu'une question de temps avant que l'outillage ne devienne solide.

Jusque-là, vous n'êtes pas seul. Nous pouvons continuer à bricoler pour améliorer l'expérience de développement pour tous les développeurs. Et mangez vos pommes, de Maui ou pas, elles sont bonnes pour vous !




Source link