Don’t put all your Eggs in One Basket.

As the last couple of posts have shown, it’s important to continue to grow and expand your knowledge. It won’t work if you simply get something to work and just step back. You have to keep updating so your programs work with any current systems and that they still provide the experiences that your users want.

I have to admit that I have failed a bit at this, but as I’ve mentioned in the past there have been some efforts to fix things. At this point, all my apps are currently only in the Apple App store, though several of them are available for iOS along with Macs. I would be better off if I also made them available for Android. I have put a little effort into that, but I really need to focus more.

This blog is a way to keep me accountable and also to push myself.

Before the end of this year I plan to have at least a couple of my converted to Android. I actually plan to have it happen before that, but I have some other projects that need to be finished first.

Never Stop Learning! (You should always love learning new things)

I’ve been programming in one way or another since the mid 1980’s. In those years, I have never stopped learning new things. Heck, even after I had some minor success with iOS apps, I continued to read websites and buy books to continue to grow my knowledge.

I started with an Apple IIe back in the ’80s and moved up at an Apple IIgs around 1986 and into the mid 1990’s. Yes, I kept that Apple IIgs through all of those years. In fact, it put away currently in a closet a few feet from where I’m writing this. But, I didn’t stop learning. I had dozens of books and probably at least 100 magazines devoted to that computer. I mainly used Applesoft BASIC on that computer along with a bit of assembly language. I also started to pick up a bit with Macs at school. When I stepped into college in the early 1990’s I started to work with MSDOS and Windows a bit. I also started to expand my programming languages into Pascal and Fortran and C. Pascal was the main language used in school, but C would be the most useful for my later endeavours.

After college I ended up doing retail work and the programming drifted to the background. But, eventually it came back once programming for iPhones became a thing. That seemed like the perfect opportunity that I could finally write my own software and distribute it. I bought a book or two and started the process of learning new things, yet again. This time the language was Objective-C. I managed to create several apps using that language, though it never felt fully comfortable to me. The C side of it made sense, and even some of the object oriented aspects but as a whole it never fully clicked.

Then, Apple introduced Swift. I fell for Swift quickly. I again started picking up and reading through books and websites as I gained confidence in Swift. It was a bit of a curve because the language was still being developed and would undergo major changes a couple of times a year at least. It took a lot more research to stay on top of things, but I kept developing apps using the language. I liked the language enough that I rewrote many of my early apps to be exclusively in Swift instead of Objective-C.

Over the last year, I started to look into a couple of new languages – Kotlin and Python. They both are widely used in areas that I would like to explore more. One of them being Android programming. I would like more of my apps to be available to Android systems – especially since my current phone in an Android phone.

That’s a brief rundown of my programming growth. I didn’t go into much detail along the way, but it does give a good overview of my journey. Over time, I plan to delve more into various aspects, but for now I hope you enjoyed a taste of how I got here.

Where Ideas Grow…

I figure I can write a bit about where my own app ideas have come from. My favorite apps have come about because I needed a tool to make my life easier. Because they were filling a need for myself, I knew what features were needed and how to access them the easiest.

The very first app that I wrote was a date app. You put in two dates and the app will tell you how many days between them. I needed to calculate how many days had passed and also what date was a certain number of days in the future. I added a few other features after that, such as counting weeks, months, years, week days and also the ability to save dates to pull up later. Most of those ideas were added because users requested them and I was able to implement them in a way that didn’t take away from the original intent. That has always been important to me – never add a feature that ruins why the app was useful in the first place.

The next few apps that I wrote were games that seemed fun to me. To some extent, they were more learning exercises than anything, but they are all still available. My favorite being a maze game using only text characters to display the map and monsters. I oddly took more work than it should have, but I’m proud of the end result. That particular app has been floating around in my head since I was a teenager (30+ years ago). I originally created it on an Apple II and at one point made a version for a VAX VMS system. It featured a primitive version of ray tracing to keep the player from seeing through walls. It also had monsters that could chase after you. Each part was written from scratch and although looking at the code now is a bit scary, the user experience was fairly clean.

I have a bunch more apps to talk about, but I will save those for tomorrow. But, the big point that I will make today and continue throughout my posts – if you can, make apps that you will enjoy. If you don’t care about what they do, then that will translate to the final product.