In the course of my professional endeavors, I engage with a diverse array of products. Adhering to strict confidentiality obligations, I limit my discussion here to tools utilized in my private capacity. Presently, my focus is dedicated to crafting various tools, and I am pleased to provide a concise overview of these creations alongside related tools and diverse prototypes.
Due to Microsoft's decision to end support for Xamarin Forms as well as Visual Studio for macOS, and wanting to provide a version for iPhone users, I decided to turn to the React Native platform with the Expo development layer. This solution, created by Facebook to enable mobile software development using JavaScript/TypeScript, seemed like an obvious choice to me in 2024.
React Native translates JS/TS code into binary code using the Hermes compiler, resulting in a seamless transition between Android and iOS. The application code can include platform-specific markings, simplifying adaptation to both environments. Additionally, Expo provides a very pleasant debugging layer and, most importantly, a deployment speed that outperforms all competitors. None of the competing platforms offer this, which is an invaluable time saver for developers.
To give you an idea of the scale, version 5 began in mid-January 2024 and was published on the Play Store and the Apple Store on May 12, 2024. I primarily worked on this project in the evenings and some weekends, which represents about a month of coding and an additional two weeks to stabilize certain aspects of the ancillary projects that communicate with this software.
Version Android
Version iOS
In 2023, I developed two prototypes to explore the use of Unity 3D in video game development. This project involved numerous iterations to achieve optimal results.
My process involves using Blender to model 3D elements, which I then integrate into Unity. I employ a 3D skeleton system along with exportable animations to animate characters. For example, the goblin, as an enemy, features a pathfinding system and artificial intelligence integrated into Unity 3D to manage collisions and routes.
The second prototype is both a plugin for Unity 3D and an in-game 3D labyrinth generator. The principle is that the labyrinth can be dynamically generated as a grid with values representing each type of room and subsequent decorative elements. This grid will be produced by the game instance hosting the session (the one creating the room). When participants join the session and enter the room, the server will transmit this grid so that client stations can reproduce the labyrinth and decorations identically. Then, the game can begin.
As you may have understood, this prototype aims to allow me to master the use of the system included in Unity 3D to create custom components, as well as to experiment with the multiplayer communication network layer.
This new version is a move towards a programming language that I have been using for more than 10 years and that now perfectly meets the needs of mobile application design. I rewrote the whole software with Xamarin development base in C# to provide a true native integration on the Android environment.
Here are some screenshots of the version during its development phase.
This project was initiated as part of the SwissLotto project with the aim of completely modernizing the entire automatic results retrieval system. It takes the form of a tool designed to automate the acquisition of data from the internet.
Its architecture relies on a set of YAML configurations that outline the structure of the data to be stored in the database. For each property to be filled, the system specifies the location on the web page(s) where retrieval is desired. The system also incorporates a pseudo-syntax control language, facilitating the automatic conversion and reprocessing of the retrieved data.
Similar to the previous project, PHP-DataStore is primarily designed to accommodate a new feature integrated into the SwissLotto software. The goal is to enable users to back up their favorites from one version to another or between multiple devices. The entire system relies on a secure identification mechanism, ensuring reliable and secure access to user data.
To start in the world of video games I started by making a prototype 2,5D game that includes a level and several characters that can be controlled from there using a virtual joystick. The game reproduces the operating principle of the Brawlstar game. To make this prototype, I use the GodotEngine video game development environment. For the modeling of 3D elements, I use the Blender software.
This tool allows the generation of image dictionaries that can be used to create road pieces in a video game.
The images can then be used directly in Blender.
Then after export, the 3D parts are imported into Godot Engine.