I haven't really contributed to application development at all in my past. I have mostly been coding games, game engines, experimenting with software design and patterns, creating simple tools such as map editors and so on. One thing that came to me a while ago was that it would be nice to learn how to write proper applications. You know, stuff that actually fulfills a purpose to an everyday computer user.
Windows Application Development Series 1
Okay, so here I sit and wonder about what to write. Let's start with this; As an aspiring game programmer, you are often faced with a challange to write small game clones such as Pong, Tetris and perhaps Pacman to learn, and gain experience, about game programming. Now, I must say I haven't done Tetris or Pacman (I did do Pong though). I still think I understood the purpose of those annoying "small challanges". In fact, I think it is a good place to start for new game programmers.
But what about application programming? Is there a 'Notepad-Pong' version for us who want to create everyday applications? I haven't found any such tips, that is for sure, so I threw a question at stackoverflow asking people about various challanges that would be nice for a newbie application developer.
I must say I got quite nice responses and I chose to create a simple file encryptor. At the bare minimum, the application should handle two different algorithms, write and read encrypted data to/from file and finally have a simple user interface (I chose AES and DES, two synchronous encryption algorithms).
- I have completed implementing encryption/decryption of AES and DES. Also, I will be looking into creating a system for people to write their own algorithms to use within the application.
- File I/O is currently supported, but I need to create a proper file format to allow for different extensions from third party developers. In fact, all is handled by streams, which means that I should write a library so other developers can benefit from this for other uses. Perhaps encrypted internet chat, or plugins to their own software.
- I haven't made any nice user interface. I want the application to be as slim and easy for the user as possible. I am thinking adding items to the right click menu in windows along with an "archive program" to view/process encrypted content.