J’ai commencé le développement de la version 2.0 de Storma. Ma liste de tâches est bien remplie. Voici quelques-unes des fonctionnalités que j'espère livrer :
- Une meilleure expérience sur iPad.
- Une version Mac et Apple Watch.
- Une optimisation des performances de la carte.
- Pouvoir revenir dans le temps pour observer la trajectoire des orages.
- Définir un rayon personnalisé pour les alertes.
Proposer une version Mac passe par une amélioration de l’expérience sur iPad que je trouve plutôt médiocre actuellement. J’utilisais 2 composants standards NavigationSplitView
et .inspector()
mais qui ne fonctionnait pas bien avec une interface centrée sur la carte. J’ai donc décidé de créer mon propre composant NavigationCard
. Il reprend la même logique que NavigationStack, mais se présente sous la forme de cartes sur iPad et en sheet
sur iPhone.
La version iPad actuelle utilisant NavigationSplitView
et .inspector()
.
La version iPad de Storma 2.0 utilisant NavigationCard
avec une navigation plus cohérente.
La version iPhone de Storma 2.0 utilisant NavigationCard
avec une navigation en sheet
sans code supplémentaire requis.
Le challenge Apple Watch
L’app iOS est parfois en difficulté sur les endroits avec beaucoup d’orages. L’Apple Watch n’ayant pas les mêmes capacités qu’un iPhone, il a fallu réécrire entièrement la carte pour qu’elle soit la plus performante possible.
Storma 2.0 sur Apple Watch avec des performances améliorées.
Pour ça, j’utilise un algorithme de quadtree. Même si il existe plusieurs implémentations open source en Swift, j’ai décidé d’écrire le mien pour qu’il soit générique et qu’il fonctionne parfaitement avec Swift 6.
Open source
La plus grosse nouveauté, c’est que je vais rendre ces composants open source. Sticker, NavigationCard et Quadtree sont le coeur de Storma et ils seront disponibles librement sur mon GitHub prochainement.
Depuis longtemps, je me pose la question d’open sourcer une app. Mais j’ai toujours eu peur de me faire voler le code. Avec Storma, c’est différent. L’app est gratuite et repose sur des données open source sous licence qui interdisent la commercialisation lors de leur utilisation.
L’avenir me le dira, mais je suis convaincu que les avantages surpassent les inconvénients.
- Je facilite les contributions d’autres devs qui peuvent enrichir ces projets avec leurs idées et leurs compétences.
- Ça permet à mes clients de découvrir ma manière de coder et l’organisation derrière mes projets.
- Ça force à moduler encore plus son code.
Sticker est déjà disponible (je vous en avais parlé dans un précédent article). NavigationCard et Quadtree seront disponibles prochainement. Restez au courant en me suivant sur Bluesky et Mastodon ou en vous abonnant au flux RSS !