App Android Perso

[vc_row margin_top= »-30″ margin_bottom= »15″][vc_column offset= »vc_col-lg-8 vc_col-md-8 vc_col-xs-12″][vc_empty_space height= »40px »][vc_column_text] Trésors de Bretagne [/vc_column_text][vc_empty_space height= »16px »][vc_column_text]Petite application Android personnelle listant les monuments et lieux intéressants prêt de chez nous, en Bretagne. https://play.google.com/store/apps/details?id=fr.reactor.breizhmap[/vc_column_text][vc_empty_space height= »30px »][vc_column_text]Tâches effectuées :[/vc_column_text][vc_empty_space height= »16px »][vc_column_text][dt_list style= »1″ bullet_position= »top » dividers= »false »][dt_list_item image= » »]Conception/Design.[/dt_list_item][dt_list_item image= » »]Integration/Animation.[/dt_list_item][dt_list_item image= » »]Développement C# Xamarin.[/dt_list_item][dt_list_item image= » »]Lead dev/ops.[/dt_list_item][/dt_list][/vc_column_text][vc_empty_space height= »30px »][/vc_column][vc_column offset= »vc_col-lg-4 vc_col-md-4 vc_col-xs-12″][vc_empty_space height= »40px »][vc_column_text] Techniques [/vc_column_text][vc_empty_space height= »16px »][vc_progress_bar values= »%5B%7B%22label%22%3A%22D%C3%A9veloppement%20C%23%20Xamarin%20Android%22%2C%22value%22%3A%2290%22%7D%5D » options= »striped,animated » caption_pos= »top »][vc_empty_space height= »40px »][/vc_column][/vc_row]

Enfin un livre en français sur Xamarin Forms !

  Ca y est, un livre est sortie, le 22 aout, en français sur la techno Xamarin. Ecrit par Olivier Dahan, MVP Microsoft. http://www.e-naxos.com/Blog/post/Rappel-Xamarin-Forms-ENFIN-LE-LIVRE-EN-FRANCAIS-!.aspx Ce livre est pas donné (comme tous les bouquin de tech), mais au dire de l’auteur, il ne se fait pas beaucoup d’argent avec. Et on peut le croire, car il est l’auteur d’une remarquable série de pdf, gratuit, que je vous recommande : http://www.e-naxos.com/AllDotBlog.html Je vais sans doute m’appuyer sur ce bouquin pour mes prochains articles. Alors un peu de pub pour son auteur n’est qu’un juste retour des choses.

Xamarin iOS retour d’expérience

  Vous avez tous pu constater le buzz récent autour de Xamarin. J’étais à deux doigts d’acheter une licence iOS qui m’aurait couté dans les 700€. Un brave de chez Xamarin m’a conseillé d’attendre la build de Microsoft, ce que j’ai fait. Un grand merci à ce monsieur de chez Xamarin sans quoi j’aurai été bien bien vénère, il m’a fait économiser beaucoup… Xamarin est donc gratuit ! Et c’est une excellente nouvelle. Car sans ça, les étudiants, les amateurs, les petit auto-entrepreneur comme moi voir même quelques TPE aurait bien eu du mal à se lancer sur cette techno. Microsoft rachète donc Xamarin et l’offre dans toutes ses éditions Visual Studio 2015 (community, pro et entreprise). Par contre le reste des offres de Xamarin, à savoir les cours via l’university Xamarin et son centre de test restent payant. Je comprends que Xamarin doit trouver son modèle économique, mais maintenant que Microsoft est derrière, j’espère que les cours seront gratuit. D’autant plus qu’ils font des efforts fou pour que les développeurs codent pour Microsoft. Donc pourquoi faire payer des cours sur une technos qui permettrait d’universaliser nos apps, dont celle sur WUP. Bref, l’academy de Microsoft est gratuite, j’imagine qu’a terme on aura des cours Xamarin dessus aussi. Autre bonne nouvelle, c’est l’arrivé depuis qq jours du simulateur iOS sur Windows. Oui oui, j’ai bien dit un simulateur iOS sur Windows. Il est inclu dans la version stable de Xamarin depuis début juin 2016. Je l’ai testé en version alpha puis stable depuis un mois. Et ca marche plutôt bien ! 1) Situation J’ai donc testé Xamarin iOS. J’ai une application (Trackus) que je développe depuis maintenant 2 ans sur divers plateformes (Windows Phone, Android, Web App, WUP), mais il me manquait iOS. Comment faire ? – Choix 1 : natif (Objective C ou Swift). Je préfère en générale cette approche. Coder en natif permet d’apprendre pas mal de chose, d’avoir des ressources (docs, communauté, billet Stackoverflow…). Mais ici je n’avais même pas le matériel. Et chez Apple ça coute un bras. De plus il faut tout réapprendre. Je bosse sur Windows depuis toujours. Et le mac… je connais pas ou mal. Je galère pour faire des trucs tout simple. Mon temps d’apprentissage va devoir impacter en plus l’OS et les outils de l’OS. Ca fait beaucoup pour un noob. – Choix 2 : Hybride (Cordova, Ionic). Pourquoi pas. J’ai passé un mois à me former sur AngularJS, Ionic aurait été un choix. Mais mon application nécessite de tourner en background, utilise des maps et le GPS… J’ai des doutes sur la fiabilité de tout cela en hybride. Peut être ai-je tort. Cela pourrait être un sujet prochain. Je n’ai pas vraiment étudier la question à fond. – Choix 3 : Xamarin iOS. C’est mon choix. Plus par curiosité qu’autre chose. Je suis les divers évolutions de Xamarin et le ressenti des développeurs. Cette techno est prometteuse. Mais dans les faits ? – Choix 4 : Xamarin Forms : autre solution, non étudié. Je voulais d’abord me rapprocher du natif et aborder éventuellement Xamarin Forms plus tard. Pour info, mon application (http://trackus.reactor.fr) propose de géo-localiser un utilisateur A et de permettre à un utilisateur B de le suivre sur une carte. J’utilise pour cela un code alphanumérique sur 6 chiffres qui va identifier un parcours. L’utilisateur A envoi ce code à l’utilisateur B qui peut alors suivre sa trace. Ce code est modifiable ce qui permet de garder un certain anonymat. J’ai donc un serveur qui permet d’échanger ces informations (Web API2 + Entity-Framework). Voici les apps déjà en prod (bêta): Web App : http://trackus.reactor.fr/pages/observer.html?code=AAAAAA Windows Phone (Silverlight) : https://www.microsoft.com/fr-fr/store/apps/trackus/9nblgggxzpg7 Windows 10 : https://www.microsoft.com/fr-fr/store/apps/trackus-10/9nblggh5xq6q Android : https://play.google.com/store/apps/details?id=fr.reactor.trackus Je trouve le sujet intéressant car il aborde d’autre sujet que la classique “liste de tâches” ou le flux RSS qu’on affiche en liste. Ici on a du GPS (droits utilisateurs), du offline/online à gérer (perte de réseau pendant un déplacement, stockage des données, gestion http REST), une tâche en background (cycle de vie) et la manipulation de maps (iOS, Google, Bing). Bref ya du boulot mine de rien. 2) à fond les ballons On y va on code. Ha oui, mais attends, d’abord le matériel… Peux importe ce que vous faites, si vous créez une app pour iOS il vous faudra un mac. Si vous êtes un peu short, il existe des solutions comme MacInTheCloud qui vous permet de louer un mac sur internet. Mais vous ne pourrez faire que du simulateur car impossible de brancher un device physique sur la machine. Sinon vous achetez un mac. Un mac mini fera l’affaire. J’ai acheté le mien sur le bon coin. Une pure affaire. Ca part comme des petits pains, donc sauter sur l’occasion. Vous avez donc un poste Windows, un poste Mac, branché sur le même réseau. C’est parti. Faut tout installer. Yen a pour un moment si comme moi vous tourner max à 2 Mbps (oui ca existe encore !). Il faut installer Xamarin sur le mac et installer Visual Studio 2015 update 2 + le kit simulateur. Tout est dis sur le site de Xamarin : https://developer.xamarin.com/guides/ios/getting_started/installation/ https://developer.xamarin.com/guides/cross-platform/windows/ios-simulator/ Quand tout est installé il faudra créer un projet iOS et tester la connexion avec le Mac (agent de build) Il faut que votre icone  soit verte. Sans ça pas de connexion avec le mac, donc pas de build ni de simulateur. Dans l’ensemble le setup se fait pas trop mal. Xamarin améliore grandement la simplicité car avant il fallait gérer l’agent de build à la main (voir précédent post sur le sujet). 3) Les mains dans le cambouis J’ai travaillé essentiellement sur Visual Studio avec le simulateur. Ce dernier propose pas mal de petites options intéressantes. Il y a même un simulateur de déplacement (à pied, en vélo et en voiture) ce qui permet de tester le GPS. Idéale dans mon cas. Il manque cependant un bouton pour couper le réseau ou un “dégradateur de réception 3G/4G” histoire de tester…

Xamarin–notes

Prise de notes : J’ai suivis deux tutos gratuit assez complet sur Xamarin, depuis la MVA (Microsoft Virtual Academy). Ces tutaux commencent a être un peut vieux (tout est relatif, il date de 2014 quand meme, l’année de lancement de Xamarin Forms). Cependant j’y ai appris pas mal de chose. Certaine question ont eu leurs réponses, mais beaucoup d’autre ont été soulevées. Je noterai ici mes notes concernants Xamarin. Ce n’est pas un tuto mais plutôt quelques réflexions, astuces, mémo et lien en tout genre. Ressouces : Développer une application cross-plateformes avec Xamarin Cross-Platform Development with Xamarin & Visual Studio Design Chaque OS possède son propre design. Par exemple ici le date picker : 3 écrans iOS Android et WP avec une même interface graphique (Xamarin.Forms) Xamarin permet de créer des applications natives respectant chaque UI. Mais il faut les construire une à une. Pour aller plus vite, on peut utiliser Xamarin.Forms qui va mutualiser la création d’interface graphique pour les 3 OS. Shared Project VS Portable Library ? Shared Project : Contient des éléments partagé (code, image data). Il n’est pas compilé mais importé dans chaque projet (WP, Android, iOS) et ensuite il sera compilé. MVVM + IoC + dependency injection. Peut inclure des #ifdef (if IOS, if Android…) Portable Class Library (PCL) : projet compilé puis importé par d’autre projet WP, Android, iOS. Ne contient que du code par définition (business logic). Peut contenir du data static (fichier xml, json… le passer en ressource embarquée). Xamarin PCL a une class nommé Device qui permet de de jongler avec les plateformes (Device.OS, Device.OnPlatform, Device.Idiom, Device.GetNamedSize) Plus d’info : Explication officielle de Xamarin Wiki de MvvMCross Device class de Xamarin article intéressant, retour d’expérience Mais attention, sous android, les données sont situées normalement dans le répertoire Ressource. A priori on ne peut pas charger des données sur android depuis un shared project. Du coup une image ne peut pas être mutualisée. A voir si ca a pas changé depuis (info de 2014)   Life Cycle iOS App + View (different state)   Android App + Activity   Astuce : sur android, lors d’un chargement de carte, il faut attendre qu’elle soit chargée avant de lui attribuer des markers. Astuce : sur android, les cartes google map on besoin d’une clé par device en dev, à ajouter manuellement dans l’API console en ligne. https://developer.xamarin.com/guides/android/platform_features/maps_and_location/maps/obtaining_a_google_maps_api_key/ Astuce : encore sur les maps android, il faut inclure des libs (GooglePlayServicesLib.dll et des Xamarin.Android.Support…) ou aller sur les prendre directement dans le components stores de Xamarin. Ou utiliser un package Nuget Xamarin Form Maps qui s’en chargera. Astuces : les cartes google on besoin de tout un tas de permissions.