As I mentioned in one of my previous posts, I'm doing a lot of rearranging of existing code: Moving some stuff into existing object classes and creating some new classes.
Unfortunately, this does not necessarily mean less code, it actually usually means more code... and it means a lot of revamping on existing code to change it to object.function() notation. But the good part is that it means better organization of the code, and more secure code.
Previously, I had a lot of global variables so that I could access information from anywhere. Now, those global variables are mostly inside of an object (or will be soon.) This makes the information harder to access from the outside, making it more secure, and it also gives the code a better logical flow, which means that it makes more sense to me and anyone else who tries to interpret the code.
Even when originally creating this program I knew that having so many global variables was a bad idea, but at the time I couldn't think of a better way to do it. I was still VERY new to programming (and still am fairly new at it) so I didn't have a lot of the knowledge that I have now. (Plus it wasn't a very public program, so I wasn't too worried about doing things by the book. I just wanted something that worked.)
Another problem that I have is that most people will come up with an idea, then create a plan of attack (including things like: What objects do I need? How am I going to have the user interact with this? How do I want to display things? etc.) I normally do not. I sit down and start coding, and when I run into something where I ask myself "How am I going to do this?" I make a note, move onto something else, and think about a plan of attack later. (I've actually got more pre-planned with this project than I do on most of my projects)
I know, this is not a good way to do things, but it's just how I am with everything. Planning is not my strong point, execution is my strong point. Even in high school and college, the teacher would say something like "You have all semester to do this paper. You should start it now or you'll never get it finished!" I'd start a week before it was due. Sometimes less. Some of you might call that laziness, or procrastination (I would call it procrastination as well) but it's also just a lack of planning on my part. But the best part is, I'd always do best on the papers/projects that I procrastinated most on. I guess I just work better under pressure.
But back on topic... as I've said a few times already, this code revamp is going to take a while. I have not even begun work on the UI layout, or anything that is user-facing code. It's all been back end stuff, and it's still a work in progress (even after spending about half of my day yesterday coding.) But the good thing is that when I'm done with this revamp, it's going to be a much more solid product.
Side note: My main file still has over 11,300 lines of code. Admittedly, at least a few hundred to 1,000 of those lines are probably comments (one thing I DID do well with this was commenting) but that's still a LOT of code. And that doesn't even count the code in the object classes. However, I think a lot of code will be eliminated when I start getting rid of things like saving/loading files (I plan to use databases and SharedPreferences instead) and some of the Windows specific things (like only allowing 1 window to be open at a time, a lot of menu code - which I expect to be less code for Android, and a few other random things.)