Jump to content
Edtech

Megatokyo pour Windows 10 (Mobile) et Windows (Phone) 8.1

Recommended Posts

Guest

Il te faut quelles langues en traduction ? (ou plutôt tu dispose déjà desquelles ?)

Share this post


Link to post
Share on other sites

Je n'ai que français et anglais (par moi :D) donc toute autre langue est la bienvenue :)

Share this post


Link to post
Share on other sites

Certains on peut-être remarqué que malgré les notifications pour nouvelle planche d'hier et d'avant-hier, aucune n'apparaissait dans l'Apps ensuite. Il s'agit d'un nouveau chapitre bonus qui n'est pas connu de l'Apps. Une mise à jour pour le prendre en compte est en cours de validation chez Microsoft (1.4.2.2).

Une autre version (1.5.0.0) arrivera la semaine prochaine qui intégrera une détection automatique des chapitres afin qu'il ne soit plus nécessaire de mettre l'Apps à jour lorsqu'un nouveau apparaît, même si ça n'est pas fréquent.

Share this post


Link to post
Share on other sites

Bon, ça va prendre un peu plus de temps que prévu pour la version 1.5 puisque je vais en profiter pour rajouter quelques idées. Pour le moment, j'ai réécrit une grosse partie de la recherche des chapitres, il n'y aura donc plus besoin de mise à jour en cas de nouveaux chapitres. J'en ai profité pour protéger au maximum le code, c'est une partie très sensible aux corruptions de données.

Share this post


Link to post
Share on other sites

La 1.5 avance !

La migration de la base de données d'une version précédente vers la 1.5 fonctionne parfaitement (toujours le truc sensible ça :D ). J'ai ajouté une indication qui affiche si une planche a déjà été lues. Ça évitera que des boulets comme moi oublient d'attendre le rafraîchissement et cliquent sur la dernière planche déjà lue (surtout que ces jours-ci, leurs titres commencent tous pareil !). Maintenant, je saurai qu'elle est lue et qu'il faut que j'attente que ça finisse de charger les nouvelles :D

Au passage, on en est à 815 téléchargements, merci à tous :chinois:

Share this post


Link to post
Share on other sites

Bon, je voulais intégrer de nouvelles choses, mais c'est beaucoup de changements, donc je viens d'envoyer en certification les modifications que j'avais déjà indiquées la dernière fois. Je verrai si j'intègre certaines de mes autres idées plus tard !

Share this post


Link to post
Share on other sites

Je prépare une version 1.5.1.0 sur laquelle vous ne verrez aucune différence :D

En effet, elle simplifie et fiabilise uniquement tous les traitements effectués pour rechercher les planches et les coups de gueule. J'ai retravaillé l'ensemble afin que ça soit facile à maintenir. Je fais quelques derniers tests et j'envoie ça en certification :)

Je cherche toujours des gens intéressés pour traduire l'Apps dans n'importe quelle langue. Même si les plus gros utilisateurs sont les français et les vietnamiens (oui, oui, les américains ne viennent qu'en 3ème position, loin derrière !), avoir d'autre langue serait un plus (l'allemand par exemple, ils sont très peu à l'utiliser car ils ont tendance à éviter tout ce qui n'est pas dans leur langue).

J'ai aussi profité du weekend et de l'installation de mon RAID 10 pour mettre tout au propre sur ma machine : réinstallation de tous les logiciels win32 (pratique le "refresh" de Windows 8.1), installation de Visual Studio 2013 Update 1, remise à zéro du contrôle de source (oui, c'est un peu violent comme méthode :D ) et la compilation sur TFS fonctionne enfin correctement. J'ai même mis à jour l'UEFI tant que j'y étais :D.

Ceux intéressés par le code source peuvent me contacter pour y avoir accès, n'hésitez pas :)

Je compte maintenant me relancer dans une version pour Windows 8.1, mais je ne vous promet aucune date de sortie :D

Share this post


Link to post
Share on other sites

A deux semaines du premier anniversaire de l'Apps, le nombre de téléchargements vient de dépasser les 1000 ! (1009 pour être exact). Merci :chinois:

Share this post


Link to post
Share on other sites

Une grosse version en cours de certification, la 1.6.0.0 !

Voilà la liste des modifications :

  • Le mode lecture est maintenant accessible si des planches sont déjà disponibles avant la fin du chargement.
  • La tâche de fond détectant les nouveautés est maintenant correctement enregistrée dans le système et les notifications fonctionnent à nouveau.
  • Amélioration de la fiabilité lors de la consultation de chapitres avant que le chargement des planches ne soit terminé.
  • Refonte du mode lecture afin qu'il soit plus efficace et plus compréhensible.
  • Des icônes indiquent maintenant si on se trouve en mode lecture et si l'option Lecture continue est activée.
  • Lors du passage en mode lecture, un message s'affiche expliquant l'action effectuée et la raison de l'échec le cas échéant.
  • L'affichage des chapitres et des bonus se fait maintenant sans attendre la fin de la mise à jour.
  • Les notifications ne se déclenchent plus si l'alerte ne concerne ni une nouvelle planche, ni un nouveau coup de gueule.
  • Les chapitres et les bonus sont maintenant dans deux sections séparées.

J'ai enfin trouvé le très rare cas de crash qui restait (mais je ne doute pas un instant que d'autres vont être découverts :D ), c'était vraiment un truc à la con :D

N'hésitez pas à me remonter si vous trouvez des fautes (j'en ai trouvé une en français et une en anglais) et à me contacter si vous souhaitez traduire dans d'autres langues !

Share this post


Link to post
Share on other sites

Hop, j'ai ajouté quelques détails (les 3 derniers de la liste précédente). Ca devrait être plus agréable à utiliser :yes:

Share this post


Link to post
Share on other sites

Bon, je tente de traduire dans diverses langues mon application. J'ai fait via la traduction auto en allemand et japonais. Autant en allemand j'ai pu corriger certaines choses et en vérifier d'autres, autant en japonais, c'est la mort.

Je partage donc ici le fichier contenant toutes les langues : https://onedrive.live.com/redir?resid=30D3F6A6740963CA!46536&authkey=!AA6-dUH6Zly0wkA&ithint=file%2c.xlsx

Merci à celles et ceux qui m'aideront ou ajouterons une nouvelle langue. Envoyez-moi le fichier modifié par mail à "aarklendoia arobase outlook point com" avec votre nom ou pseudo afin que je vous ajoute à la liste des traducteurs.

Je compte sur vous !

Share this post


Link to post
Share on other sites

Je vais essayer de le faire en espagnole, avec mon cahier de cour je pense pouvoir y arriver.

Share this post


Link to post
Share on other sites

Version 1.6.1.0 disponible !

Elle apporte la correction d'un crash (je me doutais qu'il y en aurait d'autres !) et apporte des corrections dans les traductions française et anglaise. Elle ajoute aussi l'allemand (en espérant que ça soit du bon allemand) et le russe (là c'est fait par un russe, donc c'est fiable :D ).

Au passage, Microsoft a largement accéléré la procédure de certification vu que j'ai livré hier entre 17 et 18h et qu'elle a été mise à jour sur le store vers 7h ce matin !

Share this post


Link to post
Share on other sites

Après la version 1.6.2.0 sortie hier qui apportait une meilleure libération des ressources lors de la visualisation des planches, la version 1.7.0.0 devrait arriver ce matin.

J'ai eu quelques problèmes avec la 1.6.2.0 car le Store a changé entre ma livraison et la certification. En effet, Microsoft a rajouté des éléments obligatoires sur le Store ce qui a engendré un échec de certification et... aucun rapport expliquant pourquoi !

J'ai donc réeffectué une demande qui a de nouveau échoué mais ce coup-ci avec les explications. Le Store impose maintenant que la description des Apps soient disponibles dans toutes les langues supportées par l'Apps afin que tout le monde profite de la même expérience utilisateur. J'ai donc sortie Bing Translator et fait les traductions russe et allemande à l'arrache :transpi:

De nouvelles options ont été ajoutées :

- 2 nouveaux formats d'image pour le Store (pas compris où elles servaient).

- un nouveau champ pour indiquer les nouveautés de la dernière version (enfin !).

- le champ pour la description a été agrandi, c'était un peu juste pour faire une belle description.

Du coup, la 1.6.2.0 perd l'historique qui était en interne et non traduit et est remplacé par celui du store.

La 1.7.0.0 malgré sa numérotation majeure n'est en fait qu'un gros travail d'optimisation et nettoyage suite à la revue de code d'un collègue (il adore ça et il est plutôt bon). Certaines actions lourdes étaient mal optimisées et certains planches pouvaient être téléchargées plusieurs fois pour rien. Idem pour les flux RSS. La consommation de data générale de l'Apps devrait donc être réduite.

J'ai corrigé un bogue qui faisait qu'on pouvait dans certains cas rechercher plusieurs fois les nouvelles planches au lieu d'une seule fois.

Le code en lui-même a été nettoyé et certains parties remises au propre.

Enfin, cette version en Silverlight 8 (oui, c'est le nom que donne Microsoft aux versions WP8 des Apps) ne devrait pas migrer en 8.1. En effet, énormément de modifications sont nécessaires côté structure (nouvelles icônes à créer, configuration des langues à modifier, etc.) et il existe encore des bogues dans Visual Studio 2013 Update 2 RC.

Je compte donc directement partir sur une Apps universelle en WinRT. La première étape sera de porter l'existant, les points complexes sont la base de données et l'accès aux flux RSS, la première n'existant pas en WinRT - sauf si c'est apporté par l'update 2 RC de VS - et le second s'appuyant sur une dll en silverlight 4 et donc bannie en WinRT (mais ça ne devrait pas poser de problème, juste à réécrire de 0 certaines parties).

Une fois la partie WP portée, je développerai l'interface tablette/PC.

Bref, pas mal de boulot en vue !

PS: 1351 téléchargement au 15 avril ! Merci à tous !

Share this post


Link to post
Share on other sites

Bon, je viens d'entamer la version universelle ! Première compilation réussie !

Bon, j'ai juste configuré les projets. C'est long car il faut des tonnes d'images différentes pour toutes les tuiles, splash screen, badge de l'écran de verrouillage, etc. Et comme j'ai dû apprendre à maîtriser Illustrator pour créer des images vectorielle, ça a pris un peu de temps.

L'architecture de base est donc posée (projet W8.1, WP8.1, partie commune et tâche de fond). Prochaine étape, porter le code de l'ancienne version dans la partie commune (toute la partie métier comme on dit dans le jargon informaticien).

Une fois cette partie faite, la plus complexe normalement, il restera les interfaces. Pour WP, ça va aller vite vu qu'elle existe à 90%, pour Windows, va falloir tout repenser...

Bref, encore plein de boulot !

Share this post


Link to post
Share on other sites

Bon, j'ai commencé le portage.

J'ai porté ce qui gère les flux RSS (sont utilisés pour les notifications de nouveautés et l'affichage des Coups de gueule). Pas de grosse difficultés à part que les dépendances ont changé histoire de me compliquer la tâche. J'ai enfin pu virer cette vieille dépendance à Silverlight 4 qui traînait ! Le fonctionnement reste quasiment identique, la partie téléchargement du flux RSS étant simplifiée.

J'ai entamé un début de portage de l'interface de Windows Phone pour tester ça. Je rencontre quelques difficultés avec les convertisseurs. Pour ceux qui ne connaissent pas, il s'agit simplement de fonction qui convertissent une information en élément visuel. Par exemple, l'état "Planche lue" est à vrai ou faux et à l'affichage on a "couleur d'accentuation du téléphone" pour faux ou "gris" pour vrai. Les convertisseurs en eux-mêmes fonctionnent mais l'interface ne les trouve pas pour les utiliser !

Même chose pour les listes utilisées sous Windows Phone Silverlight 8.0 qui n'existent pas en Universal. Mais, ça, je n'ai eu aucun mal à adapter.

Autre petit difficulté, c'est qu'en Apps Universelle, le code est découpé par défaut en 3 :

- Un projet Windows 8.1 Universal.

- Un projet Windows Phone 8.1 Universal.

- Un projet Windows Shared (code commun).

Lorsque l'on veut une tâche en arrière plan déclenchée régulièrement comme dans mon cas, on ajoute un projet Windows Portable. Mais je n'arrive pas à lui dire d'utiliser lui aussi Windows Shared...

Bref, je découvre et donc je tâtonne pour certaines petites choses. Mais globalement, ça avance !

Share this post


Link to post
Share on other sites

Hop !

Ca avance bien ! Les Coups de gueule sont maintenant affichés correctement dans le hub et lorsque l'on clique sur une entrée la page de visualisation s'affiche (mais seul le titre s'affiche pour le moment).

Il manque juste quelques formatages que je rajouterai une fois mon problème avec les convertisseurs résolu.

Le nouveau modèle de données est vraiment sympa. Il suffit de suivre l'exemple et ça fonctionne très simplement. La logique est encore simplifiée et c'est un bonheur à utiliser. Vivement que beaucoup de développeurs s'y mettent, sauf qu'après, impossible de revenir vers des modèles Appleèsques tellement c'est à chier à côté :D

Bref, je vais poursuivre l'affichage des coups de gueule jusqu'au bout pour avoir une vue globale de la structure complète avant de m'attaquer aux planches. Avec les jours fériés qui s'annoncent, je devrais avancer rapidement !

Share this post


Link to post
Share on other sites

Bon, j'ai bien avancé ce weekend (quand la programmation est si agréable, ça motive !) et j'ai donc fait les 3/4 de l'affichage des Coups de gueule.

J'ai trouvé mon problème avec les convertisseurs (même s'il va falloir que je recrée celui qui gère les dates, c'était inclus avant dans Windows Phone Toolkit qui n'existe pas pour WinRT).

J'ai donc ajouter le traitement complet d'un coup de gueule. Ça consiste une fois qu'on a certaines infos du flux RSS (Titre, date, URL de la page internet correspondante) à télécharger la page web, chercher dedans la partie qui nous intéresse, la mettre en forme et l'affichée. Ça fonctionne parfaitement et tout le code a été débarrassé de tout un tas de choses qui ne servent plus à rien en WinRT (j'adore WinRT, moins de code et c'est plus efficace :D ).

J'ai aussi remis en place la traduction via Microsoft Azure et le service Bing Translator, mais là il me reste un problème lorsque je passe les entêtes d'identification pour lancer la traduction (l'identification en elle-même se passe bien). J'ai pourtant repris un code pour WinRT (mais 8.0 pas 8.1).

Reste le stockage. J'ai pour le moment abandonné l'idée d'une base de données vu que la méthode ultra simple pour Windows Phone Silverlight 8 ne fonctionne pas en WinRT. Du coup, je suis parti sur du JSON en espérant que ça sera suffisament performant (pour les coups de gueule, aucun problème, mais pour les planches, ça risque d'être un peu lourd). La structure est en place pour les coups de gueule, plus qu'à l'utiliser.

Share this post


Link to post
Share on other sites

Bon, j'ai résolu le problème de traduction, ça fonctionne à nouveau :yes:

Share this post


Link to post
Share on other sites

Voilà ! Gestion complète du cache des coups de gueule en JSON. Ca marche parfaitement ! Donc, amélioration par rapport à la version WP8.0, plus besoin de réseau du tout pour relire les coups de gueule déjà chargés.

Reste quelques trucs à fignoler comme les barres de progression, quelques affichages et évidemment, vérifier que ça se passe bien en cas d'erreur (faudrait que je me fasse des tests unitaires !).

Share this post


Link to post
Share on other sites

A ce que j'ai vu quand on lit une planche et quand on revient dessus hors-connection un peux toujours la lire.

Il serait possible que tu fasses un bouton pour load tout un chapitre en entier ou tout les chapitres d'un coups

Share this post


Link to post
Share on other sites

Normal, Windows Phone garde un cache des données donc tant que le cache n'est pas plein ou trop ancien, tu gardes les planches déjà visualisées.

Et non, je ne mettrais pas un bouton pour télécharger les planches car il suffit de faire un calcul simple pour se rendre compte que ça serait démentiel : 1500 planches quasiment à ce jour, minimum 1Mio la planche = 1,5Gio à télécharger !

Je ne pense pas que quelqu'un ait d'une, envie d'attendre que ça télécharge (surtout que ça serait forcément une tâche en arrière plan en mode maintenance, c'est à dire nécessitant que le téléphone soit sur secteur et en wifi) et de deux, ait la place nécessaire au stockage !

Si ça vous intéresse, la consommation CPU et de données est très restreinte en arrière plan : http://msdn.microsoft.com/fr-fr/library/windowsphone/develop/hh977056.aspx (section "Contraintes de ressource des tâches en arrière-plan").


Pour information, Megatokyo vient d'être réédité dans un tome Omnibus spécial qui reprend les 3 premiers tomes ainsi que des bonus supplémentaires et des corrections sur certaines planches.

MegatokyoOmnibus

Il est disponible sur Amazon : http://www.amazon.fr/Megatokyo-Omnibus-Fred-Gallagher/dp/1595828230/ref=sr_1_1?ie=UTF8&qid=1399010094&sr=8-1&keywords=megatokyo

Share this post


Link to post
Share on other sites

Petit point sur l'avancement :

- La page principale a bien avancé, elle affiche (partiellement) les 10 dernières planches, les 5 derniers coups de gueule ainsi que les chapitres et bonus.

- Le chargement de la liste des planches est maintenant effective et est beaucoup plus rapide qu’auparavant. Il semblerait d'ailleurs que les Apps en WinRT soient beaucoup plus performantes que celles en Silverlight. Il faut dire que ces dernières sont interprétées alors que les universelles sont pré-compilées.

- Tous les chargements (planches, coups de gueule et chapitres/bonus) sont maintenant asynchrones, c'est un vrai bonheur à coder en WinRT ! Du coup, l'interface ne subit aucun ralentissement/blocage pendant les chargements.

- Côté affichage détaillé d'un coup de gueule, j'ai travaillé sur les "commandes" et réussi à implémenter ça correctement. La première commande fonctionnelle est le partage du coup de gueule. Il reste à mieux mettre en forme tout ça, mais on peut donc envoyer le coup de gueule via Message, Outlook ou vers OneNote (il semblerait que Twitter ne soit pas encore supporté dans WP8.1 Bêta, et je n'ai pas de Facebook configuré pour voir si ça marche aussi).

- J'ai aussi implémenté la base du paramétrage (la partie qui gère les divers paramètres) mais ils ne sont ni éditables ni sauvegardés pour le moment. L'idée est que ce paramétrage soit enregistré dans le cloud pour synchronisation avec la version Windows.

Je me concentre pour le moment sur les parties les plus complexes afin que ça soit très robuste.

Sinon, j'ai reçu un splendide commentaire que je vous traduis ici : "A chier, ne pas installer !"

Avec ce genre de commentaire, on se pose des questions des fois et qu'est-ce que j'aimerai pouvoir lui répondre ! Enfin, si c'est le mec qui provoque un crash tous les 4 matins à un endroit improbable, il ferait bien de réinstaller l'Apps ou de réinitialiser son téléphone pour voir si ça ne vient pas de lui avant de vomir son dégoût sans aucune explication !

Au passage, le compteur affiche maintenant 1497 téléchargements !

Share this post


Link to post
Share on other sites

Pas mal d'avancées ce weekend après une semaine où je n'ai pas eu trop le temps et le courage de coder.

J'ai ajouté une prise en compte de l'absence de réseau. Les coups de gueule sont maintenant mis en cache dès que possible et sont donc consultables complètement hors-ligne à partir du moment où ils ont été affiché une première fois (il peut juste manquer l'image qui est gérée automatiquement par le cache de Windows). Dans le cas où un coup de gueule n'a pas été complètement chargé (typiquement, la connexion a été perdue entre le hub principal et la page affichant le coup de gueule), on peut maintenant demander à recharger le coup de gueule.

J'ai fait pas mal de tests pour être sûr que la perte de réseau ou des erreurs dans les données reçues ne provoquent pas de problème.

J'en ai profité pour faire une première revue du code déjà écrit afin d'harmoniser et de nettoyer tout ça (on fait facilement des conneries quand on cherche comment faire certaines choses, relire tranquillement après coup fait toujours du bien au code :D ).

Donc pour les coups de gueule, il ne reste que 4 choses à faire :

- Afficher la barre de chargement et les divers messages d'erreur dans la barre système en haut de l'écran. Je n'ai pas encore trouvé ce qui remplace le composant Systray qui existait en Silverlight 8.0.

- Retravailler le partage qui n'est pas terrible niveau contenu partagé. D'ailleurs il semblerait que partager trop de données échoue si on sélectionne Message comme cible. Je compte faire comme Bing Actualités, c'est à dire un titre, l'image, un extrait et le lien pour lire la suite en ligne. D'ailleurs, je dois aussi interdire le partage si le coup de gueule n'a pas réussi à se charger !

- Envoyer un mail à l'auteur du coup de gueule. Il va falloir un peu de recherche parce que l'ancien système ne semble pas avoir d'équivalent.

- Formater la date relativement (partout dans l'Apps ça en fait).

Côté planches, j'ai juste ajouté l'affichage du numéro de la planche das le hub, manque encore l'affichage du chapitre.

Je suis en train de regarder pour la tâche de fond qui gère les notifications. Ce n'est pas simple car il faut créer une classe dite "portable" et ça impose pas mal de restrictions. Une grande partie est écrite, mais rien de testé encore (ce qui veut dire qu'il peut y avoir pas mal de choses à revoir :transpi:).

Share this post


Link to post
Share on other sites

Bon, après quelque jours de pause, je profite du weekend prolongé pour avancer.

Je me suis penché sur les notifications et la tâche en arrière plan qui les gère. L'application affiche maintenant le titre des dernières planches ou coups de gueule (5 maximum) cycliquement sur la tuile (l'ancienne Apps n'en affichait toujours qu'une seule). Une notification est émise pour chaque élément profitant ainsi de l'historique des notifications apporté par le centre de notification de Windows Phone 8.1.

J'ai aussi ajouté le stockage de certains paramètres dans le cloud, comme la dernière planche lue par exemple.

Je vais me concentrer maintenant sur la partie central de l'Apps, c'est à dire, l'affichage des planches (ça serait une bonne idée je crois :D ).

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

×
×
  • Create New...