Le développement cross-plateforme dont j’ai déjà développé ici de nombreux aspects sous-entend aujourd’hui en toute logique de savoir utiliser l’OS Android. Malgré les passerelles (Xamarin, MvvmCross) il reste tout de même à comprendre “comment ça marche Android ?” et surtout de comprendre “pourquoi Android ?”More...
MonoDroid est cette version spéciale de Mono conçue par Xamarin pour produire des logiciels natifs Android. La version “pro” ne coute que 399$ et s’installe en un clic (la démo est gratuite). WinRT c’est la nouvelle plateforme de Windows 8 pour les applications Metro Style. Quel rapport entre ces deux orientations totalement différentes de prime abord ?More...
Tout le monde le sait, il n’y aucun mystère là-dessus, les éditeurs d’OS Mobiles ont mis en place un système de “macrotage” à l’échelle industrielle grâce aux “maket places” et autres “app stores” qui n’ajoutent aucune valeur aux applications présentées mais qui tels des parrains siciliens leurs soutirent 30% du prix de vente sans compter les frais d’inscription... Si encore c’était rentable ! ... Même en rusant avec le “in-app” ce n’est pas terrible... More...
Plusieurs de mes billets récents s’attachent à démêler l’écheveau des plateformes du futur, autant pour le développeur que pour ceux qui doivent créer des applications pour demain. Dans cette même lignée voici quelques informations que vous avez peut être loupées et qui ont leur importance...More...
Phone 7 et son SDK posait quelques problèmes ces derniers temps à tous ceux qui aiment être à jour... le SDK ne fonctionnait qu'avec la bêta 2 de VS2010 alors même que la version finale est releasée depuis le 12 avril.. On garde VS2008 pour la preview de Ria Services, on garde VS2010 beta pour le phone et SL 4, la finale forcément pour les nouveautés... ça devenait le bronx cette histoire ! Mais ça se termine :-)
VS2010 Express et CTP pour VS2010 final
La Community Technology Preview (CTP) du SDK de Windows Phone 7 est désormais releasé en version compatible avec VS 2010 final. Pour plus d'infos sur cette release : The Windows Phone Developer Blog.
Il est aussi possible d'obtenir un VS 2010 Express qui sera parfaitement compatible avec Phone 7. On sait aussi qu'un Blend 4 spécial Phone sera releasé en mode Express bientôt, donc du dev totalement gratuit pour écrire des applications qui rapportent de l'argent... Visual Studio 2010 Express for Windows Phone 7.
I SON OU Lé Fons ?
Ils sont où ces merveilleux téléphones dirait on en langage non SMS ? On en sait aussi un peu plus sur la disponibilité des machines. Selon les informations que j'ai pu récolter les premiers téléphones supportant Phone 7 seront disponibles à l'automne. L'automne c'est grand, ça va de la rentrée de septembre à Noël... De quoi vous faire la main sur le SDK et de concevoir des applis au top du top ! Et de prévénir déjà le père Noël de ce qu'il y aura sur votre liste...
Distribuer les applis
Concernant la distribution, vous ne pourrez pas installer vos applis sur les téléphones de vos copains ou de votre entreprise, la logique entreprise n'est pas encore privilégiée (Windows Mobile 6.5 reste en vente pour cette raison, mais c'est moins beau !), Phone 7 cible avant tout le particulier pour concurrencer l'Iphone, et fonctionne le même modèle économique : pour distribuer une application il faudra qu'elle soit agréée par MarketPlace, le service officiel de distribution, comme l'App Store de la pomme. Bien entendu vous pourrez déployer vos applis sur votre phone depuis VS 2010, mais ce n'est pas une méthode "industrialisable". Donc pas de diffusion d'un soft à un petit groupe d'amis. Toute diffusion passera par MarketPlace.
Quand les pirates inspirent le marketing des grandes marques...
Pour se démarquer MS prévoit de reprendre un concept rendu célèbre par l'équipe de hacker "H2O" et leur non moins célèbre slogan "Try before buy". Même si MS ne fait pas référence à cette origine (on s'en doute un peu !), les informaticiens rompus aux arcanes des résaux P2P savent donc de quoi je parle...
Le principe sera que le client potentiel pourra télécharger votre application sans la payer, à l'essai. S'il est content il pourra l'acheter sur MarketPlace. Côté développement il existera un moyen de savoir si une appli Silverlight ou XNA Phone 7 tourne en mode H2O, heeuu pardon, en "Try before buy", ce qui permettra par exemple de limiter le temps d'utilisation, de désactiver des fonctionnalités etc.. En fait c'est un mode démo avec période d'essai qui sera systématisé et c'est plutôt une bonne idée vu que cela sera géré de façon centralisée et homogène.
Encore un peu de flou
Pour l'instant pas d'infos sur combien coûtera la certification d'une appli, ni combien MarketPlace prendra de pourcentage sur les ventes de vos applis. Tout cela va se préciser avec le temps, reste le SDK pour commencer à développer... Il faudra patienter un peu pour connaître les conditions de l'offre MarketPlace. Peu d'entreprises vont se lancer immédiatement dans du développement sans pouvoir bâtir un prévisionnel des ventes si MS ne dit pas combien ça va coûter et si, donc, cela sera rentable. Ce n'est pas plus mal...
Une niche de temps à saisir
Pendant que les gros poissons se tatent, il y a donc une petite niche temporelle intéressante pour vous, les développeurs indépendants ou ceux qui sont salariés. Comme je viens de le dire peu d'entreprises vont miser sur un marché inconnu dont les règles ne sont pas même fixées en termes de rentabilité, de "droits de passage", etc. En revanche vous qui lisez ces lignes, avec un VS Express et un SDK vous pouvez sur votre temps libre développer des applis. Au minimum vous vous ferez la main pour demain trouver une employeur plus généreux que l'actuel (grâce à l'expérience Phone 7 que vous aurez acquise), au mieux vous vendrez vos applis sur MarketPlace et prendrez de court ceux qui attendent la clarification de la règle du jeu financier pour se lancer !
Un peu de droit pour les salariés...
Je suis né un 1er mai. Oui c'est mon anniversaire aujourd'hui (merci :-) ), je n'y peux rien si je suis né le jour de l'année qui cristalise les revendications syndicales... Ca m'a laissé des traces, j'ai une grande G* dès qu'il s'agit de défendre l'équité et surtout les droits des moins puissants dans un monde où les riches bourgeois ont instrumentalisé le peuple en 1789 pour prendre la place des nobles. La révolution française n'était pas cette belle révolte populaire quasi romantique d'un peuple qui reprend le contrôle de son pays, mais bien une basse manoeuvre des grands argentiers qui nous dirigent depuis cette époque pour prendre la place du clergé et de la noblesse, en déconfiture au 18eme siècle, mais noble et ayant tous les droits... Vous voyez, dès que j'aborde un sujet de ce genre je ne peux pas m'empêcher de militer :-) "Born on May 1st". Ca sonne comme un titre de film US, je n'y peux rien. Mais je vais vous en faire profiter !
Si vous êtes salariés faites attention ! Si vous avez eu l'intelligence (comme je l'ai toujours fait à l'époque ou j'étais dans cette situation) d'ajouter une clause à votre contrat de travail vous laissant la propriété intellectuelle de ce que vous développez chez vous, tout est ok... Sinon méfiance ! Si vous créez l'application du siècle chez vous avec un VS Express à vous et que vous devenez riche, votre patron aura tous les droits de clamer la propriété intellectuelle du logiciel ! C'est gonflé, honteux, malhonnête, mais je vous renvoie au paragraphe précédent pour mieux comprendre par qui les lois de notre République sont faites et quels intérêts elles servent (et c'est un patron qui vous le dit).
Si vous n'êtes pas dans la possibilité de modifier votre contrat (un patron honnête - il y en a quelques uns) acceptera sans problème mais d'autres s'y refuseront ou trouveront même là le prétexte qu'ils attendaient pour vous virer sans indemnité (j'ai vu le cas plus d'une fois), alors soyez plus malins qu'eux : pour une poignée de dollars créez une SARL en mettant votre soeur gérante minoritaire non salariée, et développez sous le nom de cette SARL sans faire apparaître votre nom. N'utilisez pas les société unipersonnelles ou leurs équivalents alléchants qui ne vous offre bien entendu pas la même protection légale qu'une vraie société de type SARL. Les patrons ont des méthodes parfois de voyous pour échapper à leurs obligations, pour délocaliser légalement, virer à tour de bras alors qu'ils font des bénéfices, à vous d'être malins et d'utiliser les mêmes moyens légaux pour échapper à leur emprise, c'est de bonne guerre. Signer un contrat de travail ce n'est pas Faust, on ne signe pas avec son sang et on ne vend pas son âme au diable. Et pourtant si vous lisez bien le vôtre, vous verrez que si pendant vos vacances il vous vient une idée en tondant la pelouse ou en honnorant la voisine, cette idée de logiciel appartient déjà à votre patron... C'est de mon point vue totalement immoral, mais c'est comme ça. A vous d'être plus futés donc ! La loi a cela de très beau que nous vivons gouvernés par un dédale de plus de 10.000 lois et 120.000 décrets qui se télescopent (aucun logicien ne ferait une telle bêtise) et que les malins peuvent trouver la faille pour agir en toute légalité.
Soyez malins, soyez novateurs, télécharger tout le nécessaire pour Phone 7 maintenant et créer les applis qui s'arracheront à Noël et devenez le prochain Steve Job Ballmer !
Voici un beau billet qui m'a permis de mixer technologie, conseils éclairés et syndicalisme militant, il fallait au moins ça pour un 1er mai, glorieux jour s'il en est ! (je n'ai pas attaqué le champagne mais là j'y vais, alors à plus !)
Et Stay Tuned, Camarades développeurs ! :-)
Voici un cas intéressant dont je viens de trouver la solution et que je m’empresse de vous communiquer…
Les écrans multitouch ne sont pas encore légion, sauf chez quelques geeks, dont je suis. Ainsi, pour tester dans un mode proche de la réalité les applications Phone 7 en cours de développement (et faute de téléphones de ce type disponible sur le marché pour l’instant) j’ai acquis un écran 22 pouces IIYama multitouch T2250MTS. C’est très sympa, pas très cher et ça marche vraiment bien de base avec Windows 7 sans installer aucun driver (c’est à dire que Windows 7 possède déjà le fameux driver et que brancher l’USB de l’écran sur le PC suffit sans aucun pilote extérieur ni CD d’installation, c’est beau le progrès !).
L’écran est même fourni avec un stylet qui se cache dans le bas de son boitier, ce qui évite les traces de gros doigts graisseux sur l’écran ! :-)
Bref, tout cela fonctionne à merveille et du premier coup. Quand on arrive sur des zones de saisie et qu’on touche l’écran il y a même un petit symbole de clavier qui apparait pour permettre d’ouvrir un grand clavier virtuel, voire le module de reconnaissance d’écriture. On voit que Windows 7 a été conçu pour investir les Tablet PC… Vraiment cool. Seul bémol, sur un écran vertical manipuler les applis avec les doigts à bout de bras c’est vite crevant… Mais ce n’est pas pour cela que j’ai acheté l’écran, c’est pour utiliser l’émulateur de Phone 7 en mode multitouch (car tester une appli pour téléphone touch avec la souris c’est le meilleur moyen de foirer le design, les doigts sont plus gros et moins précis, il faut y penser à la conception !).
Vous allez me dire c’est quoi le rapport avec Silverlight et Internet Explorer ?
C’est tout simple.
Plantage avec Silverlight ?
Silverlight gère le multitouch. Au moment où internet exploreur se lance et affiche l’application quand je suis en debug (sous VS ou Blend) je ne sais pas trop quel niveau de sécurité IE reconnaît (en tout cas pas Intranet local car j’ai abaisser toutes les sécurités à ce niveau et cela n’a rien changé) mais à l’activation du plugin Silverlight IE 8 s’arrête, comme planté.
Impossible de s’en sortir. Il faut aller le shooter depuis les processus de Windows ou bien stopper le debug sous VS ce qui a le même effet.
Sécurité cachée !
Et là, l’oeil averti du chasseur de bug voit passer à toute vitesse comme une petite fenêtre cachée sous IE qui, hélas puisqu’on vient de flinguer IE, disparait sans qu’on puisse la lire…
Il y a donc une question qui est posée, en modal, ce qui bloque IE 8. Il “suffit” donc d’accéder à ce dialogue.
Je n’ai pas réussi. Et si on minimise IE pour que ça ne soit plus qu’un petit carré minuscule, on ne voit pas derrière la fenêtre du dialogue… Elle ne vient donc que quand IE est shooté. Bug…
Problème numéro 1: Identifier cette fichue fenêtre.
Ca passe tellement vite que c’est illisible bien entendu.
Ruse : Utiliser l’enregistreur d’écran livré avec Expression Encoder 3 et enregistrer la vidéo du bug pour faire ensuite un arrêt sur image et lire le texte du dialogue…
Ca ne marche pas au premier essai car ça va vraiment vite. Il faut ruser encore plus en modifiant les réglages d’enregistrement de la vidéo, notamment en passant à 100 images secondes et un débit d’au moins 20.000/s.
Là, on finit par choper sur la vidéo un “fantôme” du dialogue plus ou moins opaque selon la chance qu’on a. Mais on l’a eu ! Et que lit-on ?
“Un site Web veut ouvrir un contenu Web en utilisant ce programme sur votre ordinateur” et en dessous : Nom: Composant de saisie tactile ou avec sty…, Editeur: Microsoft Windows.
Le nom du composant n’est pas complet mais on a compris de ce quoi il s’agit. Silverlight, le plugin, au moment du chargement (car la première instruction de l’appli n’est pas encore atteinte, ce que prouve le debugger) doit forcément inspecter la machine pour savoir s’il y a de la vidéo, du son, et tous les périphériques ou facilités utilisées par le plugin. Parmi celles-ci se trouve vraisemblablement le multitouch et la gestion du stylet.
C’est à ce moment que le fameux dialogue est activé pour me demander si je donne le droit ou non à ce module de s’activer. Normalement on dispose sur ce genre de dialogue d’une case à cocher permettant d’indiquer si on souhaite ne plus voir la question.
Hélas, comme IE 8 semble avoir un léger bug, ce fichu dialogue est totalement incessible, on le voit à peine quand on shoote l’application. Et encore faut-il la ruse de la vidéo pour lire de quoi il s’agit.
Comment autoriser l’application bloquante ?
Second problème alors : comment autoriser le programme en question (la gestion du stylet) alors même que le dialogue et sa case à cocher ne sont pas accessibles ?
Réponse : en plongeant dans les arcanes de la gestion de sécurité de IE 8…
Et là, ce n’est pas de la tarte… J’aime bien IE, mais ce n’est pas d’une grande limpidité dès qu’on aborde ce genre de question.
Je vous fait grâce des multiples recherches sur le Web pour arriver à trouver une réponse utilisable. Que je vais maintenant vous exposer car ça peut servir ! (et pas seulement avec un écran multitouch, je suppose que le bug du dialogue doit se voir dans d’autres cas).
Pour faire simple, IE range dans la registry la liste des programmes ayant des droits faibles ainsi que la règle d’élévation de droit qui doit être appliquée. Comment certaines applications arrivent dans cette première liste, c’est un mystère que je n’ai pas essayé d’éclaircir, ce genre de plomberie en informatique me donnant rapidement la nausée. Donc, il existe dans la registry une première liste, elle se trouve là :
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Low Rights\ElevationPolicy\
C’est une liste d’ID, donc de GUID. Il faut la balayer pour lire les clés qui correspondent afin de localiser le programme dont on veut changer les droits. (La registry doit être ouverte en mode administrateur cela va sans dire).
Pour ce qui est du stylet, j’ai fini par trouver le coupable, c’est le programme “wisptis.exe” qui se trouve dans %SystemRoot%\System32. Les clés d’un ID sont AppName, le nom de l’appli, ici celui de l’exe (ce qui ne simplifie pas la recherche vu à quel point le nom n’est pas parlant), AppPath, le chemin que je viens d’indiquer et enfin Policy, un DWord codant l’autorisation.
Vous trouverez des explications ici : http://www.hotline-pc.org/mode-protege.html#
Une fois l’application localisée dans cette première liste on a la moitié de la solution. Changer la Policy à ce niveau ne semble pas avoir d’effet (immédiat en tout cas).
Il faut savoir qu’en réalité, pour l’utilisateur courant, IE stocke une seconde liste, similaire, dans une autre clé de la registry :
HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Low Rights\ElevationPolicy
L’astuce consiste donc à créer une nouvelle clé dans cette liste en utilisant le GUID repéré dans la première liste puis de recréer à la main les clés, dont Policy à laquelle on donne une valeur dépendant de ce qu’on cherche à obtenir. Pour la gestion du stylet j’ai mis 3, qui semble donner le maximum de droits.
Je reviens sous VS, je lance mon appli SL, et là, Ô magie… mon appli s’affiche et IE ne pose plus l’infamante question cachée…
Et ça marche !
Problème résolu. Comme on ne peut pas dire que la solution est évidente, je pense que la partagée ici sera un jour utile à quelqu’un.
Visiteur qui tombera au hasard d’une recherche Bing ou Google sur cette page et qui gagnera quelques heures de ton précieux temps, n’hésite pas à me laisser un message, ça fait toujours plaisir ! Quant aux fidèles lecteurs de Dot.Blog, le jour “J” j’espère que vous vous rappellerez que ce billet existe !
Et pour d’autres infos le mieux c’est : Stay Tuned !
Une dernière info : Le multitouch de l'écran utilise une barrière infrarouge visiblement, c'est à dire que les doigts ou le stylet coupe une grille infrarouge invisible. Ca marche vraiment bien. Sauf qu'en cette époque estivale, les mouches arrivent ! Et dans ma campagne elles ne sont pas en retard ! Hélas quand une mouche se pose sur l'écran : elle clique ! Ce qui fiche un beau bazard parfois ! Prévoyez ainsi avec l'achat d'un écran de ce type un désinsecteur électrique qui grillera tous ces nuisibles qui prennent votre écran pour un tarmark ! Je sais ça fait un peu rire comme truc... mais le geek n'a pas que des aventures palpitantes, il doit aussi combattre, outre les bugs, les mouches et autres diptères !
Voici rapidement quelques ressources autour de Silverlight qui pourront vous intéresser :
Bonne Lecture !
Il y a encore quelques jours je vous informais de la mise à jour française des outils pour Silverlight 2 et j'en profitais pour rappeler qu'il s'agit d'une solution multi plateforme unique en son genre. Une voix s'est fait entendre pour rappeler que sous Linux ce n'est pas encore au niveau de SL 2, c'est vrai. Mais preuve de ce dynamisme multi plateforme c'est maintenant au tour de Silverlight pour Mobile d'être annoncé par MS !
Et l'avancée est de taille puisque il n'y aura pas besoin de modifier son code pour qu'une application SL puisse tourner sur Mobile, même si elle utilise des vidéos. C'est incroyable quand on sait que sur un Mobile la place est réduite pour arriver à y faire entrer le framework .NET, même la version allégée de SL. Prouesse technique donc. Et encore plus d'ouverture pour les développeurs.
Autre annonce de taille, Silverlight est pour l'instant une technologie "navigateur", mais il semble que les équipes en charge de ce produit désire le faire évoluer en quelque chose de stand-alone, hors de tout navigateur. Une plateforme .NET multi OS fonctionnant directement sur Mac, PC, Linux, Mobile ? Il est vrai que techniquement il "suffit" de se passer du browser. Mais quelle perspective ! Avec WCF et les sockets pour la communication la panoplie semble alléchante.
Pour ce qui est des plateformes mobiles supportées, on retrouve bien entendu Windows Mobile 6.x. Là aussi, bien que les choses ne soient pas arrêtées, il semblerait que le support Windows Embedded CE soit sous le coude des développeurs SL...
Si vous voulez en savoir plus je vous conseille la video de "Silverlight 2 for Mobile" enregistrée aux dernières PDC et déjà diffusée sur le célèbre Channel 9 !
Deepfish vous ne connaissez pas encore ?
C'est le futur navigateur Web pour Windows Mobile de Microsoft. Il fonctionnera donc sur toutes les plateformes mobiles acceptant l'OS Microsoft, PDA, Smartphones, ou Pocket PC's.
La grande nouveauté dans ce produit n'est pas juste de pouvoir naviguer, ce qu'on peut déjà faire avec la plupart des machines mobiles sous Windows Mobile. La véritable innovation c'est qu'on peut surfer sur tous les sites web en voyant la page exactement comme on la verrait sous IE ou Firefox sur un PC "normal", donc sur tous les sites du Web de la planète !
Fini la programmation spéciale des sites Web pour être utilisables par des unités mobiles ! C'est un grand pas en avant, une solution élégante à un problème jamais résolu. On se souviendra de l'échec du WAP par exemple dont les SSII parisiennes chantaient les louanges à chaque client dans l'espoir de décrocher des contrats.. C'était juste avant l'explosion de la "bulle internet"...
Terminé donc les fausses solutions coûteuses. Seul hic à la solution Deepfish, à mon sens, c'est que toutes les requêtes internet doivent passer par un proxy Microsoft pour être traitées. C'est là en effet que se cache l'astuce de Deepfish : toutes les pages sont prétraitées par ce proxy qui les retaille pour qu'elles s'affichent sur votre PDA comme sur un PC. Combien de proxies MS va-t-il installer dans le monde pour que le système reste fluide ? D'autres sociétés auront-elles le droit de proposer leurs propres proxies sur la même technologies ? Quid de la confidentialité des requêtes centralisées par le proxy ? Deepfish n'est encore qu'une bêta et ces questions trouveront certainement réponses naturellement dans les mois à venir. Je n'ai pas non plus balayé 100% des sites MS sur le sujet et peut-être certains lecteurs de ce billet savent-ils des choses que j'ignore. Dans ce cas, n'hésitez à compléter l'info en laissant un commentaire, c'est aussi fait pour ça !
Une petite vidéo sur Youtube montrant Deepfish à l'oeuvre sur un petit portable :
Une autre vidéo créée par le labo MS de SupInfo (Lire leur billet sur Deepfish)
Bon (micro) surf sur votre smarphone !