15 Number Slide is a sliding puzzle where the goal is to arrange all of the pieces from 1 to 15. The difficult part is that you only have one open space to slide the tiles to at any given time. Even when the numbers are close to being correct you may need to shift an entire row to put the last piece in place. If you're not thoughtful about doing this it can seem like the more you try the further you are from completing the puzzle. And that is what makes this a great puzzle! Like most puzzles there is a pattern for solving it. Once you discover the pattern it actually seems quite simple and at this point the challenge becomes seeing how fast you can solve it.
This is the first app I made for the App Store and when I completed it I was very satisfied. It was a great feeling to create a useable app that worked very well. At the time I made it, there were a few other apps like this on the App Store, but I wanted to make one that was better than all of the others. To do this I knew I needed to come up with a stylish and unique design while also providing a great expericence during gameplay. I settled on a clean design that was based on a lot of blue background and tiles that were flat and faded from a lighter color on top to a slightly darker color on the bottom. This was different than other versions I saw and it also wasn't distracting which let's the user focus on what they should be, solving the puzzle. The tiles are customizable with several different colors that can be chosen. There are also three different ways you can scramble the board: with the tiles bouncing into place, snapping into place, and with the board revolving around to show the scrambled result. These small customizations make the game feel more personable because you can pick exactly what you like.
I've had an interest in this game for quite a while. I remember when I was younger I had the handheld version of this game. The little handheld puzzle made out of plastic where the pieces always seemed to get stuck when you tried to slide them. On the plus side if you got frustrated you could pop a piece out and put it into the correct place...saved a lot of time when you got stuck.
I again picked up interest in this game while I was in college. I had just finished my first programming course, Java, and wanted to make something cool and interactive. At the time, the Computer Science department at my school taught the intro Java class with the library Objectdraw. You can read more about it using the link but basically its purpose is to abstract some of the more advanced aspects of Java and allow beginners to jump right in. Handling mouse clicks, drags, hovers, and drawing circles and squares to the screen can all be done with basically a line of code. So after a semester of very basic programs, where the point was just to explore Java and understand Object-Oriented Programming at a basic level, I wanted to make something, how shall I say...cool. Or as cool as a simplified library would allow. What did I come up with? 15 Number Slide!
The Java program I made of 15 Number Slide came out pretty good. I wouldn't call it production quality but it worked great and was fun. I couldn't share it because I could never figure out how to run it on something other than my laptop. But I showed friends and family which, was good enough. At least for the time being anyway.
After another semester of programming and coding I was hooked. I was fascinated by the whole idea that you are basically talking to the computer. You aren't just seeing the end result, you're seeing the "how it works" and you are the one actually figuring out how to make it work. It's like building a house versus just seeing the finished product. When you see a completed house you only get to see a portion of the work that was done. But if you visited that house every week while it was being built you would see each step that went into making it and would realize how much work is involved. Making an application is the same way except you rarely are aware of the intermediary steps. One reason is because code is not a physical thing and it is not easy to show someone abstract data. Another reason is simply because to most people it is unimportant, if it works the way its supposed to that is what counts. Getting back to my original point, I was really into programming and wanted to continue with it. My only problem was that I would not be taking any more programming courses while in college. My last year was going to be full of finance courses and some information systems courses that did not include any coding. I was going to have to figure something out because coding was just too much fun.
I was browsing the Internet and came across an application called Xcode. I learned that this can be used to make iOS and MacOS apps. I downloaded it and tried to jump right in, how hard could it be? In about 3 minutes I discovered it was way over my head. But it seemed very interesting and there was a lot of information on how to use it. So a few weeks later I decided that I was going to figure out how to use Xcode, I was going to learn Objective-C, and I would make an app for the App Store. Anyone who is reading this and is even slightly interested in getting into programming should pay great attention to what I'm going to say next. DON'T GET DISCOURAGED IF AT FIRST YOU HAVE ABSOLUTELY NO IDEA WHAT YOU ARE DOING! I thought I knew a good amount with what I had learned with Java. But in reality I had not, and I also did not truly understand Object-Oriented Programming. These two factors combined made it much more difficult for me to learn Objective-C. My prior knowledge did not separate very well what were features of Java and what were features of Object-Oriented. But like most things, the best way to learn is by doing and after a month of watching videos, reading documentation, and making small sample apps, I had finally wrapped my head around the concept of Object-Oriented Programming and also learned how to code in Objective-C using Xcode. Woohoo!
Now it was time to make an app that was App Store worthy. Naturally I thought of 15 Number Slide. It's a fun game and playing it on an iPhone would be great because of the touch screen. It took quite a while for me to make this. Part of the problem was school got in the way. So I really didn't get to work on it at all for a couple of months. The other reason was that there was just so much that had to go into making it. Even a seemingly simple app like 15 Number Slide has a good amount of behind the scenes action and each time I got to the next step I needed to learn what to do. An example of this was adding GameCenter functionality to the app. This app definitely could use a multiplayer feature and GameCenter is a great way to add that to any iOS app. But along with adding GameCenter comes a lot of extra work. For a first time developer this can really add to the duration of the project. I really felt like GameCenter would add value to 15 Number Slide so even though it would make it take longer I added it. Finally, the time came when I was able to put the finishing touches on the app and get it to a point that I felt was ready for the App Store. And voila! Now it is there for everyone to download and enjoy! I had such a great feeling after I had made this app and saw that it was getting downloaded all over the world. I was excited to continue to pursue this newfound hobby of mine, developing iOS Apps.