-
Notifications
You must be signed in to change notification settings - Fork 15
Developmental Outline
The first thing is having an idea to implement. A lot can go into just what to consider with creating a stand-alone portable application. What would be good software to be made portable? You might think about how much use an application may be before bothering with it. Or how much interest there will be from the end-user who will be using them, unless of course you're just making it for yourself in which case go nuts. Another thing to look into would be if your software already has its own PAF counterpart. If so, just use that one. We're not trying to reinvent the wheel here. Although, you might find the developer of that PAF just did a piss-poor job. In that case, rewrite their code with whatever you deem it needs and just remember to cite the original developer for his contribution or work. You might want to let them know about it too as a professional courtesy.
All software is licensed, in some way, no matter what, regardless. There are the standard commercial licenses like you'll see with Microsoft's software or with Adobe's Creative Suite. There are also the open-source licenses with which you'll find in Mozilla's software or in the OpenOffice.org applications. Commercial licenses, as a rule-of-thumb, doesn't permit an end-user in any fashion the ability to alter their respective application or even redistribute it for that matter. Free software with a commercial license, however, does permit you to redistribute an application, but not to modify it like with Internet Explorer and Opera.
Now with open-source licensing there's a lot more leniency in this aspect for it allows you to both freely modify an application and redistribute with your new and/or improved version. So, in regard to PortableApps.com and their moral-compass, this is the only way to go when making software portable. Which is fine and understandably so and is as it should be for, they are a public service. A free, open source llc at that and for all legality purposes should not partake in any sort of high-profile, pirating-Ponzi scandal or whatever the media/judicial system would make of it. However, the software that you pay for should arguably be yours to do with what you will. So, in the confines for your own 127.0.0.1, port and let portable!
To start the implementation of your PAF would be to study your software thoroughly. I mean, really get to know any and all ins-and-outs of the inner workings of the application. What makes it tick and what allows it to tock, you know? Look at its clockwork (source code) if you can. All this rigmarole to determine what needs to be altered, managed, and maintained to make this program portable. For instance, does said program store its settings in the registry or with an XML or INI file or even more convoluted, both along with the registry? Does it communicate with folders like %DOCUMENTS% or %PUBLIC% or even %SYSDIR% in some cases. Does it make use of a database like SQLite to store it's configuration like with AIMP Portable?
Another good habit you should get into is visiting the software developer's website and it's documentation before you release your PAF. I say this for the simple fact that it can have invaluable little gifts for your PAFs end result. Like finding little Easter eggs in forum posts or running across a bit of information in which will set your version apart and give it that little "je ne sais quoi". For instance, my personal PAF of RegOrganizer holds two portable executables in its root directory. In my research I found a topic in which the developer disclosed a command-line switch to enable a user to just launch the Registry Editor instead of launching the main program. Thus, I was able to incorporate this switch to my PAF allowing for both RegistryEditorPortable.exe as well as RegOrganizerPortable.exe for convenience. I'd have never run across this tidbit of information if I wasn't dedicated to a PAFs completeness in its entirety.
After getting a real good idea of the program's functionality. You'll want to set up your environment/workspace. You'll want to set up the proper configuration settings the launcher will be using to make the application's ability to run without dependencies.
Note
The official Launcher Generator allows you to make your program portable just by editing a few INI files and you are, for the most part, good to go. Pac-Man tries to expand on this functionality by adding even more configuration options you can set.
One of the things that you should be aware of is the size of your PAF. Portable applications should be relatively small in nature considering it'll consume less space on the portable device and launch more quickly as a result. Most, not all, but most EXEs and DLLs can be compressed using UPX. Most applications will compress fine. Some, occasionally, will have issues. Many Java-based programs use JARs, which are actually just ZIP files with a different extension. Using an application like 7-zip to re-compress these to their maximum level can save even more space.
If you're sharing your PAFs with the public, you'll need to house your releases somewhere for the end-user to download them. What I use is file hosting services which provide you with free space for holding and sharing files with people. I tend to use services that don't make the user do surveys or shove a lot of advertisements at a person. It would be a good idea for you to have cloud storage to keep your releases safe just in case the download links are deleted or broken. This way you may upload the PAF again and update the download link.
Another option would be to use peer-to-peer file sharing like BitTorrent. However, this would require you to have a dedicated system which has continuous access to the internet. If you're hardcore enough you could set up your own Torrent Server with one of your old dinosaur computers. You know the one that helped you through college and you were too reluctant to throw away because you've had many good times in kilobytes on it... It might not be able to run any bleeding edge OS, but you can use it as a centralized file server to download and share files on your network and the web.
You'll want to thoroughly test your PAF for any possible scenario so that you can fix and work out all the bugs and have a solution before there's a problem for the end-user. A good way to do this would be having a virtual machine with a clean install of Windows XP all the way to Windows 10 or whatever is current right now. I test on Windows XP, Windows 8.1, and Windows 10.
Launcher.ini Config Examples