Adventures in Sudoku

Why does making an app have to be a b****

By Mark

Published: 2023-11-05





Adventures in Sudoku

I love Sudoku

I don’t love trying to make a Cross-Platform App

Here we go again, these post seem to turn more into rants than anything, but nevertheless we press on. And I thank you if you’re willing to read my unadultered garbage of thoughts on these matters. Still trying to make myself marketable in this field, I have been working on developing my own Sudoku app. I would absolutely love it to be cross platform and simple (mostly for me to develop, but also simple to use). I have what some may call an unhealthy obsession with Sudoku as a game and religiously play the New York Times version. (I don’t pay for a subscription, but I, luckily have a family member who does, and they have gifted me their guest subscription to the games) I have really enjoyed the UI that the NYT created, in terms of real time error checking. Most other versions of sudoku apps do not have this feature and will let you traipse down a rabbit hole towards and incorrect solution. I know, git gud scrub comes to mind for this point, but isn’t a friendly UI what most strive for in this industry? Anywho, this has been my major motivator to create one of these apps. What follows might be considered by some to be mental illness, but I work with what I got.

The Meat

I chose to work on developing at least the backend of this app in C#, which is the language I’m most familiar with. I used it for the last parts of my undergrad and enjoyed it. From a purely language based perspective I like the sound typing aspect of it, without the need for the verbosity of Java. I have finally got the solving algorithms worked out, which was the major focus of my work for the past month or so. Here’s the link to my repo for this. I needed the solving done first and wanted to back track my way to creating different levels of difficulty. With the hard part out of the way, I thought, naively creating a UI for everyone would be an easier, or more fun task to accomplish. Boy, was that dumb.

The Potatoes

Now I have the fun task of trying to make this an actual app. Flutter and Appwrite seem cool, but I don’t want to learn Dart (Flutter), and I don’t write every version of this into a different language (Appwrite). I have been working with Avalonia UI to use C# on my backend and their framework to make it cross platform which seems awesome, but there is a major drawback to this, ie, XAML and WPF style development. What a nightmare. Nothing I want to do is simple though it should be, I’m not asking a lot. Why should it be nearly impossible to put a border around individual TextBox’s without losing the positioning formatting? Again, I understand using a Microsoft product to develop a user friendly experience seems counter intuitive, but did want a challenge, but seriously, jfc.


I am going to instead, try and use this wonderful framework, Astro, and try to make a usable app inside this website, and once I have a working-ish product, I will jump on this train again.