Rust & Lift : Développer une Application de Musculation avec Rust et Tauri
Bienvenue sur Rust & Lift, mon blog dédié à la fusion entre développement logiciel et musculation ! Je m'appelle Cyprien, et à travers ce blog, je vais partager mon parcours de création d'une application de musculation en utilisant des technologies modernes comme Rust, Tauri, et Vue.js.
Pourquoi une application de musculation ?
Étant passionné de musculation et de programmation, j'ai souvent remarqué que la motivation est essentielle pour améliorer ses performances à la salle. Pour cela, je voulais une application qui me permette de visualiser mes progrès de manière simple et motivante. L'idée est de montrer mes volumes d'entraînement passés pendant ma séance actuelle, et de fixer des objectifs basés sur mes performances antérieures.
Les technologies que j'ai choisies
Je voulais une application performante, sécurisée et rapide, et Rust est le choix parfait pour cela. Il permet de gérer la mémoire de manière sécurisée tout en offrant des performances proches du C/C++. De plus, je voulais m'améliorer dans ce langage tout en l'appliquant à un projet concret.
Pour construire une application desktop, Tauri est une excellente option. Il permet de créer des applications légères tout en utilisant des technologies web comme Vue.js pour l'interface. Contrairement à Electron, Tauri est plus léger et consomme moins de ressources, ce qui était un critère important pour moi.
Pour l'interface utilisateur, j'ai choisi Vue.js. J'apprécie sa simplicité et sa capacité à créer des interfaces réactives facilement. Avec Vue, je peux gérer l'état de l'application de manière intuitive, ce qui est essentiel pour afficher les volumes d'entraînement en temps réel.
Les fonctionnalités de l'application
Mon application se concentre sur trois aspects principaux :
Suivi des séances de musculation : J'enregistre mes séances en entrant des données comme le nombre de séries, de répétitions et le poids. Ces données sont ensuite utilisées pour calculer le volume d'entraînement.
Comparaison avec les séances passées : L'idée est de superposer la courbe de ma séance actuelle avec celle de la séance précédente (48 heures avant) pour visualiser mes progrès. Cela me permet de voir instantanément si je suis sur la bonne voie.
Objectifs personnalisés : À la fin de chaque séance, je fixe des objectifs pour la prochaine. Ces objectifs sont entièrement décidés par moi, sans recommandations automatiques. Cela me permet de garder le contrôle sur ma progression.
Le processus de développement
Dans les prochains articles, je détaillerai les différentes étapes de développement de cette application, les défis que j'ai rencontrés, et les solutions que j'ai trouvées. Ce projet est une excellente opportunité d'apprendre de nouvelles technologies tout en combinant deux de mes passions : la programmation et la musculation.
Ce qui arrive ensuite
Je suis encore au début du développement de cette application, mais les premières fonctionnalités sont déjà en place. Dans mes prochains articles, je parlerai plus en détail de la manière dont j'ai implémenté la base de données avec SQLite, comment j'ai utilisé Chart.js pour afficher les volumes d'entraînement, et comment j'ai intégré le tout dans l'interface Vue.js avec Tauri.
Merci d'avoir lu cet article, et restez connectés pour suivre l'évolution de Rust & Lift !
Subscribe to my newsletter
Read articles from Cyprien AVICO directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
Cyprien AVICO
Cyprien AVICO
👋 Hi, I'm Cyprien, a Software Engineer Trainee deeply fascinated by the Rust programming language and its ecosystem. 🦀 Rusty by Choice: I'm captivated by Rust's performance and safety features, and I'm actively learning and building projects using this language. I'm particularly interested in how Rust can revolutionize areas like Web Assembly, embedded systems, and even web development via frameworks like Rocket and Actix. 🌱 Continuous Learning: As a trainee, my primary goal is to become proficient in Rust and contribute to the community. I keep up-to-date with the latest RFCs, libraries, and best practices. 📚 Why I'm on Hashnode: This platform allows me to document my learning journey, share insights, and connect with other Rustaceans. I'm eager to learn from the community and contribute in any way I can. 🔗 Open Source: I'm a strong advocate for open-source software and look forward to contributing to Rust projects and libraries. My GitHub is a growing portfolio of my adventures in Rust. 🤝 Networking: I'm always open to connecting with fellow Rust enthusiasts, discussing best practices, and collaborating on interesting projects. Feel free to reach out! 🔗 Find Me Elsewhere: LinkedIn | GitHub | Personal Blog