Développement d’application Nomade (iOS & Xamarin)

Slides:



Advertisements
Présentations similaires
Didacticiel Mon EBSCOhost
Advertisements

ACCUEIL DES NOUVEAUX UTILISATEURS DES RÉSEAUX INFORMATIQUES
GPO Group Policy Object
« Les Mercredis du développement » Introduction Office « 12 » Présenté par Bernard Fedotoff Microsoft Regional Director Agilcom.
! ! ! PROCEDURE TYPE POUR ORGANISER L ’ANONYMAT
Design Pattern MVC En PHP5.
Notice d’utilisation ( activités word phase 1 )
Formation Microsoft® Office Access 2007
Sécurité Informatique
Animer vos services avec des offres promotionnelles ? Mettre en œuvre vos promotions sans développement technique supplémentaire ? Orange met à votre disposition.
LOG 02 Bases de Données Avancées Rappels sur JSP / Servlet
Développement Mobile : Android
GED Masters: Gestion Électronique de Documents
Etude des Technologies du Web services
SECURITE DU SYSTEME D’INFORMATION (SSI)
Université de La Rochelle Saisie et Mise à jour des fiches ECTS le 05/12/2001.
Module 1 : Préparation de l'administration d'un serveur
JavaBeans Réalise par: EL KHADRAOUY TARIK AOUTIL SAFOWAN.
Introduction à DOM Maroua Bouzid
Développement Rapide dApplications Web avec.NET « Mon premier site »
Les instructions PHP pour l'accès à une base de données MySql
Publispostage Menu Outils / Lettres et publipostage
Université de La Rochelle Saisie et Mise à jour des fiches ECTS le 01/12/2000.
ASP.NET Par: Hugo St-Louis. C ARACTÉRISTIQUES A SP. NET Évolution, successeur plus flexible quASP (Active Server Pages). Pages web dynamiques permettant.
.Net Remoting.
Manipulation de formulaires en Javascript
Module 2 : Préparation de l'analyse des performances du serveur
PROGRAMMATION INFORMATIQUE DINGÉNIERIE II PRO-1024.
Développement dapplication avec base de données Semaine 10 : WCF avec Entité Framework Automne 2013.
Création de menus. Depuis la page d’accueil de votre site, cliquez sur le lien [Login] puis saisissez les identifiants qui vous ont été attribués. Connectez-vous.
Tout savoir sur la synchronisation des mails, contacts et calendrier sur Windows Phone Lire cette présentation en mode plein écran.
‘‘Open Data base Connectivity‘‘
Module de formation Introduction
PHP 5° PARTIE : LES COOKIES
Expose sur « logiciel teamviewer »
Introduction à Visual Studio C++ (VC++)
Diffusion Nationale TOULOUSE – Décembre 2008 STS Web Services libres Gérer les services libres.
La mémoire virtuelle Dans laquelle un ordinateur exécute des programmes dont les besoins en mémoires dépassent la mémoire disponible. Par exemple des.
Introduction à CmapTools par Jacques-Antoine V-Lemay 3 septembre 2008 par Jacques-Antoine V-Lemay 3 septembre 2008.
FTP : File Transfer Protocol (protocole de transfert de fichier ) est un protocole de communication destiné à l'échange informatique de fichiers sur.
Créez des applications Silverlight 3 David Rousset Relations Techniques avec les développeurs Microsoft France
 Formulaires HTML : traiter les entrées utilisateur
2 Industrialiser et accélérer le développement Windows Phone 7 8 Février 2010 Giacopino Cyril Directeur production – Pôle.NET TEQUILARAPIDO.
Newsletter : Utilisation de MailChimp
1 Windows 2003 Server Stratégie des comptes. 2 Windows 2003 Server Il faut tenir compte de ces 3 paramètres.
Support.ebsco.com Didacticiel Mon EBSCOhost Didacticiel.
Créer un mur virtuel collaboratif
Développement d’application Nomade (iOS & Xamarin)
ASP.NET : Les composants asp dédiés aux données.  Un tableau de données=>Génère du en sortie.  Il permet d’afficher/modifier des données  On peut le.
Développement d’application Nomade (iOS & Xamarin)
Search IM Nouvelle Interface adCenter Avril 2007.
Front Office Interface de consulation des documents disponibles en ligne, elle prévoit : Une page d’identification avec contrôle cette étape permet au.
Vous présente en quelques réalisations un réel savoir-faire, le fruit de longues années d’expériences, aujourd’hui à votre service. Toutes les fonctionnalités.
Scénario Les scénarios permettent de modifier la position, taille … des calques au cours du temps. Son fonctionnement est très proche de celui de Macromedia.
Utiliser le dossier Mon EBSCOhost Tutoriel support.ebsco.com.
Dreamweaver le retour Avec Les Formulaires Les Calques
FORMULAIRES FOMULAIRE Permet à l’utilisateur d’entrer des renseignements le concernant. Utilisation –Inscription sur un site –Mise à jour d’une base.
Télécharger :
Formation.
Google Keep. Pourquoi Google Keep ?  Google Keep est une application de téléphone intelligent et une extension de Google Chrome, qui permet de prendre.
1Boulogne Informatic Club PRESENTATION DE WINDOWS 10.
Utilisation de la plateforme DomoLeaf en mode Adhérent 1 (Accessible avec une carte d’accès, en vente auprès de votre distributeur)
FACTORY systemes Module 5 Section 1 Page 5-3 Les scripts de traitement FORMATION INTOUCH 7.0.
© SQLI GROUP – 2012 AUDIT DRUPAL USINE À SITES WEB ÆGIR.
Chapitre 5 Configuration et gestion des systèmes de fichiers Module S41.
Chapitre 12 Surveillance des ressources et des performances Module S41.
Chapitre 9 Configuration de Microsoft Windows XP Professionnel pour fonctionner sur des réseaux Microsoft Module S41.
FACTORY systemes Module 6 Section 1 Page 6-3 Les ActiveX FORMATION INTOUCH 7.0.
Les vues O.Legrand G.Seront. Les vues Dans Android, une ihm est composée de vues. Ces vues.
Microsoft Access est un outil de gestion de base de données. Ce est un grand avantage pour les petites, moyennes.
Transcription de la présentation:

Développement d’application Nomade (iOS & Xamarin) Cours 06 – Xamarin avancé M2 INIS – 2015 julien.mialon@univ-orleans.fr martinsfonseca.jose@yahoo.fr

Plan du cours Introduction iOS Introduction à Objective-C Structure d’une application Les vues La navigation Les tables Persistance de données Xamarin Introduction à C# MVVM et Xamarin.Forms NuGet & Xamarin Store Concept avancé

NuGet & Xamarin Store

NuGet : ne réinventez pas la roue http://nuget.org/ +30’000 librairies .NET à votre disposition. Beaucoup sont compatibles avec Xamarin ! S’accompagne d’un gestionnaire de package dans Xamarin Studio et Visual Studio. Gère les dépendances automatiquement !

NuGet : les packages indispensable Json.Net : sérialization / déserizalisation Json très rapide PCL Storage : accèder au système de fichier en crossplatform Xamarin.Forms : vous l’avez déjà  Microsoft HTTP Client Libraries : requête http crossplatform XLabs - * : des composants très utiles avec Xamarin (préversion) Log4net : vous permet de logger vos erreurs Storm.Mvvm.Forms : vous simplifie la vie pour le MVVM (vous n’êtes pas obligés de l’utiliser)

Xamarin Components Store https://components.xamarin.com/ Des composants spécialement prévus pour Xamarin Disponible sur iOS, Android et/ou Windows Phone Beaucoup sont gratuits, n’hésitez pas à les utiliser !

Github Beaucoup de plugins, librairies & exemples sont disponibles sur GitHub Exemple Xamarin.Forms https://github.com/xamarin/xamarin-forms-samples Plein d’exemples Xamarin & Xamarin.Forms https://github.com/jamesmontemagno http://developer.xamarin.com/guides/cross-platform/xamarin- forms/creating-mobile-apps-xamarin-forms/

Xamarin.Forms : Layouts

StackLayout Le layout le plus simple à utiliser Vous permet d’ajouter des éléments en horizontal ou vertical Orientation="Vertical" / Orientation="Horizontal"

Grid La Grid vous permet de positionner vos éléments en les alignant sur une grille dont vous fixez le nombre de colonnes et de lignes. Auto : prend la place nécessaire * : toute la place disponible 42 : 42 pixels de large (déconseillé)

Grid Et comment je peux faire si je veux deux colonnes avec la première qui prend 1/3 de l’écran et la seconde, les 2/3 restants ? La solution consiste à préfixer le symbole étoile par un nombre. Dans notre cas, on mettrait la première colonne à 1* et la deuxième colonne à 2*. L’étoile devient en fait une variable x ce qui nous donne une équation simple de la forme 1x + 2x = largeur_écran Avantage : vous pouvez faire des interfaces qui s’adaptent à la taille de l’écran de l’utilisateur.

Et les autres

Xamarin.Forms : Ressources

Ressources Vous pouvez définir des ressources pour votre page (ou votre application complète). Par exemple : couleur, converters, template, … Très utiles pour changer facilement le « thème » de son application. Évitent également la duplication de code pour l’affichage avec l’utilisation de Template.

Ressources : pour une page Tous les éléments que vous pouvez mettre dans votre Xaml possèdent un attribut Resources (ici on prendra exemple sur la ContentPage) Cet attribut Resources doit prendre comme valeur un ResourceDictionnary et c’est dans ce ResourceDictionary que vous mettez toutes vos ressources.

Ressources : pour l’application Contraintes : Vous devez associer un fichier Xaml à votre App.cs de base Vous devez hériter de MvvmApplication et non MvvmApplication<T> Vous devez créer « manuellement » la page de lancement de votre application avec InitializeMainPage. Comment faire : Supprimer votre App.cs automatiquement généré à la création du projet. Créer une Forms Xaml page et changer l’héritage dans le fichier C# par MvvmApplication. Après le InitializeComponent, appelez la fonction InitializeMainPage en lui donnant en paramètre votre page de démarrage. Changer votre tag racine dans votre fichier Xaml par MvvmApplication (ajouter le namespace qui convient).

Ressources : pour l’application Deux fichier : App.xaml & App.xaml.cs App.xaml

Ressources : pour l’application Deux fichiers : App.xaml & App.xaml.cs App.xaml.cs

Ressources : comment y accéder ? Toute vos ressources ont un attribut x:Key qui sert de clé pour les identifier. Deux ressources ne peuvent pas avoir la même clé (sauf si elles sont dans deux pages différentes) Pour s’en servir, {StaticResource Ma_Clé_De_Ressource}

Xamarin.Forms : ListView

ListView Composant vous permettant d’afficher des éléments sous forme de liste de taille (presque) infinie Très populaire dans les applications mobiles Peut être relié dans votre ViewModel à : Une List<T> => si la liste n’est pas amenée à changer (pas d’ajout/suppression) Une ObservableCollection<T> => si vous souhaitez ajouter/supprimer des éléments dans la collection

ListView Propriétés importantes ItemSource => à relier à la collection de votre ViewModel SelectedItem => vous permet de récupérer l’élément sélectionné dans votre ViewModel ItemTemplate => définit la manière d’afficher chaque élément de la liste

ListView : Evenement Comment réagir quand l’utilisateur sélectionne un élément ? Solution 1 : La ListView dispose d’un event ItemSelected. Problème : on ne peut pas lier un événement avec MVVM ! Solution 2 : Utiliser un Binding TwoWay sur le SelectedItem

Platform customization

Platform customization Cas pratique : sur iOS 7+, la status bar (info réseaux) passe sur votre application. La solution : décaler votre application de 20 pixel vers le bas. Solution : mettre un padding « 0,20,0,0 » sur le conteneur principal de vos pages Problème : comment faire pour que ce soit que sur iOS et pas Windows Phone & Android ? Solution : tag xml OnPlatform

Platform customization : Xaml x:TypeArguments : le type (ici Thickness pour le Padding) de la propriété Android : valeur pour Android WinPhone : valeur pour WindowsPhone iOS : valeur pour iOS

Platform customization : C# Propriété OS de la classe Device vous donne l’OS en cours

IoC : Inversion of Control

MVVM & Services Les services sont les composants gérant toute la partie Business de votre application. Les services ont pour but d’être utilisés dans plusieurs ViewModel de votre application. Un service = une tâche (communication avec un webservice, gestion de la persistance, etc…) En découpant ainsi votre application, vous créez des briques indépendantes et facilement testables (Unit test)

MVVM & Services

MVVM & Services Pour définir un service, définissez l’interface de votre service ainsi que son implémentation. Une même interface de service peut être implémentée plusieurs fois. Exemple : gestion des settings de votre application (Load, Save, Get, Set) avec deux implémentations : La première sauvegarde dans un fichier json La seconde sauvegarde sur un serveur distant via l’utilisation d’un WS Rest Avantage : l’appelant n’a pas besoin de savoir quelle implémentation est utilisée.

MVVM & Services Afin de transmettre les services aux ViewModels, nous utilisons un système d’IoC. Au démarrage de votre application, vous créez vos différents services et les enregistrez dans le conteneur d’IoC. Quand vous en avez besoin, vous pouvez les récupérer dans ce conteneur d’IoC à partir de vos ViewModels.

IoC : Inversion of Control Xamarin.Forms vous donne accès à un conteneur d’IoC, mais qu’est-ce qu’un conteneur d’IoC ? L’IoC vous permet d’enregistrer pour une interface, l’implémentation à utiliser quand on lui demandera. Grâce à cela, vous pouvez très simplement changer l’implémentation à utiliser pour un service et ce, sans aucun impact sur le reste de votre code.

IoC : Inversion of Control + Xamarin.Forms Le conteneur d’IoC fournit par Xamarin.Forms est accessible via la classe statique DependencyService. Enregistrement d’un service (son interface et l’implémentation) Récupération de l’instance du service (via son interface) Pour fonctionner avec l’IoC de Xamarin.Forms, votre service doit avoir un constructeur sans paramètre.

IoC : Inversion of Control + MVVM Pour enregistrer vos services avec Mvvm Ou en utilisant une lambda

IoC : Inversion of Control Grâce à l’IoC, vous pouvez tout à fait définir un service qui devra être implémenté sur chaque plateforme (exemple : envoi de SMS, appel, …) Vous pourrez ensuite utiliser ce service de manière transparente depuis vos ViewModels puisqu’il n’ont pas à connaître l’implémentation sous-jacente. Grâce à l’IoC, vous gardez un code crossplatform tout en pouvant personnaliser l’implémentation pour chaque plateforme.

Questions ?