Find User
here you can look for a user
Introducing Experimental apepack App Packaging Format
Since the majority of my apps and games are web apps and require active and maintained servers in order to operate, I have been considering what will become of my software catalog once I ultimately "kick the bucket" so to speak. At the same time, I also realize that there are many users who like to store old versions of games and apps for posterity purposes. For these and other scenarios, I have devised a new apepack app packaging format, now in experimental beta!
When I was thinking up the apepack concept, I wanted something similar to AppImage on Linux, a portable self-contained application that can run on any system. I also wanted it to be completely web-based with no native dependencies, so that apepack applications could be run on Chromebooks or phones as well as desktop systems. I also wanted it to be pretty simple to use, from both the developer and the end-user perspective.
So at a high level, apepack takes a web application, including all scripts, stylesheets, images, etc, and bundles it up into a single file (*.apepack) along with some meta data. These .apepack files can then be distributed in any manner, and users can store/archive them however they want. They are a fixed, static file that itself does not update or change, so an .apepack represents a static offline-capable snapshot of a web application. I created an easy to use web utility for creating .apepack files here.
Once you have an apepack file, a host application is needed to decompress and serve it to the user. This was the more difficult part of the implementation, since I wanted it to be web based so that it would work on ChromeOS and mobile.
For the initial implementation, I have built apepack execution functionality into the PWA version of the Ape Apps Launcher. It works by extracting all of the files from the apepack into a service worker and spinning up a virtual file system. It is currently functional, although there are a couple of things I need to address (running multiple apepacks at once, load times on bigger files like My Colony) and there are some more meta customization options I want to add to the packaging application.
I sort of touched on this before, but there are a few primary purposes for apepack. First, it gives a way to distribute a static, versioned web app that can be used while offline. Secondly, for users who like to store/archive old versions of games and applications and maintain their own version histories, apepack allows that to happen now for web apps. Third, this is potentially a way for a web developer to distribute an application without having a web server or packaging an entire chromium engine using something like Electron.
How to create an apepack
If you have created a web app, or want to make one to test it out, all you need to do is have a folder for your web project with at least an index.html file, which is always the launch point for apepack. You will also need a .png icon file. Then you head over to https://apepack.ape-apps.com/ and select your folder, fill out the meta data, and hit package. It's pretty simple.
How to run an apepack
As of this moment, the PWA version of the Ape Apps Launcher is needed to run apepack applications (v4.1.0 or higher). When you are logged into the Launcher, you can click on your profile icon, go to Launcher Settings, scroll down to apepack (Experimental], and browse for your apepack file.
Of course, there is a far easier way to launch apepacks. If you are on a Chromium based browser (Chrome, Edge, Brave, etc), you can simply install the Ape Apps Launcher PWA (the toolbar should have an install button on it), and your system will automatically associate *.apepack files with the launcher. Then all you have to do is double click on an apepack file and it will automatically launch like a native app, which is the intended way to use apepack. If you previously had the Launcher PWA installed, you may need to uninstall-reinstall it for this to work.
Some apepack files to test
I have taken the liberty of packaging a few apps as apepacks for those who want to try them out:
The cool thing is that you can save these files and now you always have those versions of the app/game!
Moving forward, I plan to start packaging apepack bundles and distributing them on the Ape Market with each major release of my main games and applications, for those who wish to keep an archive of my applications, or who simply want an offline local version of my software. I also might implement an apepack parser/launcher right into the https://apepack.ape-apps.com/ web app, so that all of the apepack stuff is in one place, and the launcher is not required. Although, I will probably also keep the capability in the Ape Apps Launcher too, since more people have that already.
If other users decide they want to make their own apepack files, I can also create some kind of free central repository for apepacks which could then include things like automatic updating and whatnot, but if it is only me using them, then I will just distribute my own stuff via the Ape Market.
Right now there are no special API's provided by apepack, so it pretty much just runs vanilla web apps using standard web technologies. If interest in the project materializes, I am open to adding features based on community feedback.
Give it a try!
Like I said before, this stuff is all still experimental, so try to break it and let me know what needs fixed. I am primarily making this both for posterity and so that people who desire version histories or offline versions of applications can have and keep them.
If you have any comments/suggestions/requests/feedback, let me know! At the minimum, I plan to start distributing my own stuff in the apepack format for those who want it, but if there is any other interest in the project, I will develop it further and expand on it.
#apepack #apeappslauncher
When I was thinking up the apepack concept, I wanted something similar to AppImage on Linux, a portable self-contained application that can run on any system. I also wanted it to be completely web-based with no native dependencies, so that apepack applications could be run on Chromebooks or phones as well as desktop systems. I also wanted it to be pretty simple to use, from both the developer and the end-user perspective.
So at a high level, apepack takes a web application, including all scripts, stylesheets, images, etc, and bundles it up into a single file (*.apepack) along with some meta data. These .apepack files can then be distributed in any manner, and users can store/archive them however they want. They are a fixed, static file that itself does not update or change, so an .apepack represents a static offline-capable snapshot of a web application. I created an easy to use web utility for creating .apepack files here.
Once you have an apepack file, a host application is needed to decompress and serve it to the user. This was the more difficult part of the implementation, since I wanted it to be web based so that it would work on ChromeOS and mobile.
For the initial implementation, I have built apepack execution functionality into the PWA version of the Ape Apps Launcher. It works by extracting all of the files from the apepack into a service worker and spinning up a virtual file system. It is currently functional, although there are a couple of things I need to address (running multiple apepacks at once, load times on bigger files like My Colony) and there are some more meta customization options I want to add to the packaging application.
What is the point?
I sort of touched on this before, but there are a few primary purposes for apepack. First, it gives a way to distribute a static, versioned web app that can be used while offline. Secondly, for users who like to store/archive old versions of games and applications and maintain their own version histories, apepack allows that to happen now for web apps. Third, this is potentially a way for a web developer to distribute an application without having a web server or packaging an entire chromium engine using something like Electron.
So how do you test it out?
How to create an apepack
If you have created a web app, or want to make one to test it out, all you need to do is have a folder for your web project with at least an index.html file, which is always the launch point for apepack. You will also need a .png icon file. Then you head over to https://apepack.ape-apps.com/ and select your folder, fill out the meta data, and hit package. It's pretty simple.
How to run an apepack
As of this moment, the PWA version of the Ape Apps Launcher is needed to run apepack applications (v4.1.0 or higher). When you are logged into the Launcher, you can click on your profile icon, go to Launcher Settings, scroll down to apepack (Experimental], and browse for your apepack file.
Of course, there is a far easier way to launch apepacks. If you are on a Chromium based browser (Chrome, Edge, Brave, etc), you can simply install the Ape Apps Launcher PWA (the toolbar should have an install button on it), and your system will automatically associate *.apepack files with the launcher. Then all you have to do is double click on an apepack file and it will automatically launch like a native app, which is the intended way to use apepack. If you previously had the Launcher PWA installed, you may need to uninstall-reinstall it for this to work.
Some apepack files to test
I have taken the liberty of packaging a few apps as apepacks for those who want to try them out:
The cool thing is that you can save these files and now you always have those versions of the app/game!
Future for apepack
Moving forward, I plan to start packaging apepack bundles and distributing them on the Ape Market with each major release of my main games and applications, for those who wish to keep an archive of my applications, or who simply want an offline local version of my software. I also might implement an apepack parser/launcher right into the https://apepack.ape-apps.com/ web app, so that all of the apepack stuff is in one place, and the launcher is not required. Although, I will probably also keep the capability in the Ape Apps Launcher too, since more people have that already.
If other users decide they want to make their own apepack files, I can also create some kind of free central repository for apepacks which could then include things like automatic updating and whatnot, but if it is only me using them, then I will just distribute my own stuff via the Ape Market.
Right now there are no special API's provided by apepack, so it pretty much just runs vanilla web apps using standard web technologies. If interest in the project materializes, I am open to adding features based on community feedback.
Give it a try!
Like I said before, this stuff is all still experimental, so try to break it and let me know what needs fixed. I am primarily making this both for posterity and so that people who desire version histories or offline versions of applications can have and keep them.
If you have any comments/suggestions/requests/feedback, let me know! At the minimum, I plan to start distributing my own stuff in the apepack format for those who want it, but if there is any other interest in the project, I will develop it further and expand on it.
#apepack #apeappslauncher
Owner of Ape Apps, LLC