Salutations, Habr!
La publication s'inspire de la
nouvelle de l'arrêt du support pour Windows 10 mobile .
En tant que propriétaire du Nokia Lumia 925 à un moment donné, je vais vous parler de l'un de mes métiers dans le domaine du développement mobile pour Windows Phone 8.1.
Annexe: «Taux de change de la Banque centrale de la Fédération de Russie». Contexte
C'était fin 2014 et quelque chose de
vraiment étrange se passait. Le dollar augmentait, l'euro n'était pas inférieur, mais des vacances dans quelques mois étaient déjà prévues et il était temps d'acheter cette monnaie même, ou du moins de la surveiller.
Ne trouvant rien d'utile sur le Windows Phone Market, j'ai décidé d'essayer d'écrire quelque chose «pour moi».
En fin de compte, ce n'est pas si difficile - j'ai fait la demande à genoux, téléchargé l'assemblage sur le téléphone et vous vivez bien. Et si vous l'aimez vous-même, vous pouvez le télécharger sur le marché, même s'il sera bon pour les autres.
PS "Rien d'utile" signifiait également filtrer les applications avec une quantité énorme de publicité (par les gens, qu'est-ce qui n'allait pas?).
Numéro de version 1
Objectif: créer une application simple avec la seule opportunité - voir les taux de change dans l'application et créer une tuile sur la page principale
Un peu plus formel:
- L'interface utilisateur la plus simple
- Tableau des prix des devises pour aujourd'hui / demain
- Possibilité de créer une tuile sur la page principale
- Aucune annonce
Ce qui s'est passé en conséquence (malheureusement, les captures d'écran des premières versions des tuiles n'ont pas été enregistrées):


Service intermédiaire
Les tuiles sont référencées par un service écrit qui accède aux données de la Banque centrale et les met en cache pendant une journée, car La Banque centrale ne met pas à jour les données plus souvent. C'est-à-dire l'application ne fonctionne pas avec des données en temps réel, car le concept de tuiles lui-même ne permet pas de mises à jour fréquentes.
Le taux de rafraîchissement minimum, si je me souviens bien, était d'environ une demi-heure.
Qui saurait combien de commentaires et d'étoiles minimales j'ai reçu pour avoir créé une application avec des «données incorrectes!». L'ajout d'informations sur la fréquence des mises à jour dans les versions suivantes n'a pas changé la situation - les utilisateurs ont continué à écrire régulièrement sur les données incorrectes.
En plus des demandes de données, le service lui-même a permis de collecter de petites statistiques sur l'utilisation de l'application. Au début, les statistiques de requête (chaque tuile = demande) étaient les suivantes:

Numéro de version 2
Objectif: de manière inattendue, des commentaires ont été formulés par des utilisateurs demandant d'ajouter un graphique de la dynamique des changements de taux.
Que s'est-il passé en conséquence:

De l'intéressant: j'ai dû récupérer et reconstruire la source de la bibliothèque de graphiques afin de passer la certification de l'application.Détails techniquesDéjà en train de préparer la publication de l'application, il a été révélé, à l'aide du Kit de certification des applications Windows, qu'il y avait des appels kernel32.dll à l'intérieur du composant. En particulier, il y a eu deux erreurs:
CreateFileMappingA dans l'API kernel32.dll n'est pas pris en charge pour ce type d'application. Sparrow.Chart.WinRT.45.dll appelle cette API.
L'API MapViewOfFile dans kernel32.dll n'est pas prise en charge pour ce type d'application. Sparrow.Chart.WinRT.45.dll appelle cette API.
Il s'est avéré (après avoir googlé et trié la source) que le composant écrit pour Windows Phone avait la directive #if WPF. Un morceau de code n'a pas été utilisé, mais il a cassé le test de certification. Commenté les directives, compilé et, le tour est joué, tous les tests ont réussi. Il était très désagréable de découvrir une erreur similaire à la toute fin de la mise à jour. Mais chanceux.
Quelques statistiques de demandes d'ici juin:

Le service écrit a fourni approximativement les informations suivantes sur l'utilisation des carreaux:
- 125 utilisateurs avec 0 tuiles - utilisent principalement l'application
- 260 utilisateurs avec 1 tuile
- 175 utilisateurs avec 2 tuiles
- 61 utilisateurs avec 3 tuiles
- 7 utilisateurs avec 4 tuiles
- 1 utilisateur avec 6 tuiles
Numéro de version 3
Objectif: inspiré par les demandes des utilisateurs (deux personnes ont demandé, mais cela suffit), j'ai décidé qu'il devrait y avoir un nouveau design.
Que s'est-il passé en conséquence:




Statistiques:

Les chiffres ne sont pas exorbitants, mais très gentils avec moi. Lentement mais sûrement, le nombre d'utilisateurs a augmenté.
Version numéro 4, finale
Objectif: cette fois a été inspiré par le nouveau design de l'application pour VKontakte. Oui, et MVVM a dû être réécrit enfin. Oui, et ajoutez des couches d'huile et de métal.
Que s'est-il passé en conséquence:






On peut voir qu'à ce stade, je voulais gagner de l'argent sur un don volontaire. Ils ont réussi à gagner quelque 800 à 900 roubles, qu'ils n'ont pas pu retirer. Merci à Microsoft pour la taille minimale de retrait de 25 $.
Statistiques finales:

En conclusion
Par la suite, un autre chronomètre a été écrit, mais rien d'intéressant à son sujet. Il fonctionne simplement en tenant compte de toutes les limites du système, dont il existe de nombreuses.
Le fusible pour le développement a commencé à disparaître lorsque de plus en plus de commentaires des utilisateurs ont commencé à apparaître sur Windows Phone 10 avec des demandes de correction de la taille des carreaux ou des problèmes spécifiques du nouveau système. Dans le même temps, mon appareil n'était absolument pas inclus dans la liste de mise à jour de la plate-forme avec Windows Phone 8.1. Il n'y avait aucun désir de disposer au hasard, de tester uniquement dans l'émulateur.
Ensuite, les nouvelles ont suivi qu'il n'y aurait aucune mise à jour du système et "acheter de nouveaux téléphones". Et c'était dommage pour les applications, surtout compte tenu des critiques positives des utilisateurs en général.
Sur cette note, et finir la nostalgie de développer un post. Merci de votre attention.