Issue 47 May 1, 2008 | ||
Start a business with Revolution Before beginning a business, you need of course developer skills or money to employ developers, but the most important is an idea. To begin with, the main Dam-pro project was an "open-source" (never released) project, built with Revolution. This project was only for fun and was not intended to become commercial software. During the development of this project, I greatly improved my developer skills and after a few years of development using Revolution, I met some of its limitations. In my case, it was the localization problem; my software was written in French, and I wanted to translate it quickly to English, but I could not find an easy way to develop applications available in multiple languages with Revolution: this was when I discovered my Idea, and my main project, NativeSpeak™ was born. The goal of the NativeSpeak™ project is to provide to all Revolution developers a complete framework to create applications available in multiple languages. To develop this project, I took my previous projects and worked on making them available in multiple languages, easily. The NativeSpeak™ development started. My first challenge was to define what the software should do to solve the problem. I arrived at these features:
The result is three components for distribution in two software packages.
The second challenge was making the right technology choice. In my case, it was the database format. I chose XML; it is fast, permits storage of a lot of data and can be handled easily. Third, begin the development. I always use this development method: I have in external files all custom commands/functions/properties that my application can use. Also I centralize the source-code in order to use only one library stack. There is another Revolution problem here, the script editor become slow when it reaches around 5000 lines on my computer. The advantage of this method is that I create an entire API for my application, and after all objects/buttons just call general functions/commands. This allows me to track down bugs easily and keep the source code clean. Also, I develop everything in English (including comments). I am French and this can appear counter-intuitive but if one day I have to work with non-French speakers, they will be able to understand my source code. Once the NativeSpeak Library was written, I had to start the IDE. To develop a graphical application, you must brainstorm and design a few prototypes to finally produce a good GUI. Example: First NativeSpeak Translate GUI: Actual GUI: I wanted the IDE to offer the developer all the features that the NativeSpeak library offers. Eventually, I achieved this. Once the IDE and the library were created, I started to develop the last component, the application that permits a human translator to translate your applications easily. NativeSpeak Translate was developed with NativeSpeak Create and it uses all the features provided by the library. The previous screenshot shows NativeSpeak Create with the NativeSpeak Translate translation database opened. Like the NativeSpeak Create IDE, after a few prototypes, the GUI was designed and I started development. NativeSpeak Translate uses all the libraries that I developed for my previous projects. (User preferences, logs, Application Inter-communication… and of course, NativeSpeak.) 7000 lines later, NativeSpeak Translate was finished. The next task was to develop the installer. You can use already existing software installer solution ("NullSoft Install" on Windows or "AutoPackage" on Linux), or create your own installer. I had developed an installer for my previous projects, so I re-used an important part of the source-code. The installer was also developed with NativeSpeak Create. The NativeSpeak installer also works with the uninstall feature on Windows/Linux/Unix. The software was at this state, ready to be used, but not to be sold. It required documentation. You might think that documentation won't take very long to produce. You would be wrong! Writing complete and useful documentation takes a lot of time. NativeSpeak has many features, and the result is lots of documentation. This was a challenge for me in particular to write the documentation in English which is not my native language, and I'm very grateful to the beta testers who proof read it for me and made many corrections! Summary: You have a product ready, now you have to sell it. But it is not an easy task.
Note: During the "French fun" stage, it is recommended to launch a private/open beta of your applications. It is really an important thing because it permits to the product to become more mature. Thanks to Graham Samuel, Trevor Devore and Ludovic Thebault for their help during the development of NativeSpeak. And the result? Where is NativeSpeak? NativeSpeak™ is finalized, checked and re-checked, the website development is not finished, but I am working hard to finish it as soon as possible. Dam-pro NativeSpeak™ will be launched in few weeks through RevSelect. The products are finalized and mature and can be used in any software development, large or small. Damien Girard PS: I never worked so much since I am a "Freelancer". |