the Andy represents me here [Comment: This was first postet on Facebook] at its very best (!), nevertheless I thought, I will also speak here.
First of all I would like to thank the numerous people who have registered as testers. Also the Likes here and over at Twitter (check it out, I’m more talkative there: https://twitter.com/GC_Wizard) are a good engine.
During the last weeks I put a lot of time into this project. The result is about 20.000 lines of more or less handwritten code in about 250 files. But why the whole thing?
The GeoCache Calculator, the GCC, was developed by Daniel (“Eisbehr”) and me some years ago. But unfortunately the development stands still for more than 6 years. Several attempts to revive the project failed. So I decided to start a new project. So it is possible to add new features, fix bugs and maybe even approach the Apple world.
Ok, and what exactly do I do there? If you read along on Twitter, you have a rough idea of what I’m actively working on and also roughly how long it takes and what problems I encounter. I would like to summarize this here:
- I am far away from directly taking over the code already existing in the GCC. Some of the code was written almost ten (10!) years ago. At that time, I actually only had my first experiences in the Java programming language used there. Today I have developed further (also for professional reasons), but also the technologies are subject to constant change. So I simply can’t approve of many things that were “criminal” back then anymore. Also, I have discovered one or the other error in almost every non-trivial function. So it is necessary to rethink the logic to a large extent, but in any case to rewrite it, more modern, cleaner.
- The user interface, the so-called frontend, has to be rewritten in any case. With GCC, Daniel and I have received many requests from the iPhone community to port GCC there as well. But this was not feasible for any of us, because at that time this would have meant programming everything twice, in completely different programming languages. Today, it is possible to develop suitable technologies for both platforms at the same time. One of these technologies is the relatively young “Flutter” technology developed by Google. But it requires a fundamentally different code for the user interface than the earlier Basic Android stuff in order to support both iOS and Android equally. Now I’m neither a frontend expert nor do I really enjoy thinking about good looks (design) or great and intuitive user interface and usability (User Interface UI/ User Experience UX). Others can do that better. That’s why frontend development takes much longer than I actually want it to.
- My favourite functions, the coordinate calculations, have taken a lot of time away from me, although I am convinced that the respective functions will probably never be used by a classic geocacher. But as a programmer it is my need to be able to represent as many cases as possible, no matter how wacky they are, to let the code calculate correctly for as many inputs as possible, and to at least not crash if the input is wrong (robustness). Many of these functions are based on mathematics, which I more or less copied somewhere at that time, but which I understand better today. In the last few years, I have also developed useful approaches in theoretical computer science and algorithms, which I have implemented and thus have been able to make the coordinate calculations even more precise and partly also much more efficient.
- Some things that I wrote earlier, I could not understand completely. For example the calculation of the Enigma. I still have no clue what I programmed together, even if it worked. So I had to start from scratch and learn the logic again, do a lot of research, try it out, test it.
Well, with the current test version 0.5.1 I have reached a point where I believe that the code I wrote looks professional enough, despite the fact that it uses completely new technologies (Flutter and the programming language behind it, Dart) to be able to release it. From the beginning, GCWizard was meant to be a community project for me: From geocachers for geocachers. I had and still have the vision that we all can participate, that all can give and take. There are so many very similar projects in this area, similar tools, numerous websites. They all program the same functions over and over again. How nice would it be, for example, to have a central point of contact for cryptographic functions from which every other developer could benefit? Or a central place for graphics, for example the MyGeoTools tables. The GCWizard should set a good example. That’s why I decided to make the code open source here. This was done yesterday, the code is available for everyone to view on GitHub (https://github.com/S-Man42/GCWizard). Code Reviews are welcome! Anyone who can and likes it is welcome to contribute changes or additions. Another advantage is that if I don’t have the time or inclination anymore, the project can be continued by someone else – unlike now with GCC, which for copyright reasons alone is “ice cream”.
The reconstruction of the GCC functions is far from finished, there are still some functions missing. But the basic framework is now more or less fixed, I think. I actually didn’t want to release GCWizard before it is at least equal to the old GCC in terms of functionality. How can you justify a change of apps if it can be proven that the old one is even better in some areas? But in the meantime I’m thinking about going public with it earlier. I’m grateful for the current testers, but unfortunately there is little real feedback. My hope is that by opening and publishing GCWizard in PlayStore, more users will have access to it and the feedback may increase.
But this could also have the opposite effect: Potential users load the program, see that it has less features than GCC and that some of the existing ones might still have bugs. Doesn’t this mean that trust in the app is lost in advance, before it has actually started? That would destroy all our efforts. How do you see that?
Maybe last but not least to the topic “community” and cooperation: Not everyone here is an ambitious software developer. Sure. What other tasks could be taken on? Well, for example we would like to extend the tables/MyGeoTools functions. These should no longer be just rigid tables, but interactive tools. To do this, we need help, for example, in breaking the tables down into their individual symbols. More details have just been discussed in the Geoclub and first papers have been submitted: Thanks for that!(https://geoclub.de/forum/viewtopic.php…)
Translators would also be welcome. For new languages in the app as well as for things like here: I don’t know if I’ll have the time later to translate this text seriously into English 😉 We also have some tasks for graphic artists and designers. Apart from that, Andy is also happy about any help with community support in forums or here in the social media. And last but not least I can always say: We need tests, tests and even more tests. I’m convinced that GCWizard is full of bugs (as any professional software, especially a new one!). Mistreat the app, try to break it actively, enter things that should not be entered! This is the only way to make the app more robust and ultimately provide more fun than frustration.
In any case I would be very happy about your feedback!
See you soon,
// Mark (S-Man42)
Translated by DeepL.com