Skip to content

Bitfall/AppWhirr-client

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AppWhirr-client

The official client app of the now discontinued AppWhirr cross platform (Windows and Mac) app store.

What was the AppWhirr project?

AppWhirr was our first startup project, a cross platform app store. We've started the development in late 2010 / early 2011 when there wasn't even a Mac App Store. AppWhirr was usable, relatively bug-free, but we've decided to pivot as AppStream ( http://www.goappstream.com ) to focus only on app recommendation and not on the app store system as a whole (as we did with AppWhirr).

For more information about the pivot you can read our announcement post on the AppWhirr blog: http://appwhirr.tumblr.com/post/39212633121/appwhirr-is-shutting-down-pivoting-as-appstream

AppWhirr was tested on Windows XP SP3 and newer and on Mac OS X 10.6 (Snow Leopard) and newer. The latest version was tested on Windows 8 and Mountain Lion (10.8), but we never supported these versions officially (the Windows 8 support was beta).

Notes

  • The first name of the project was 'EasyApps'. This was later replaced with 'AppWhirr'. In the code both used as identically refer to the project, we've never had the time to perform a full rename in the code.
  • The AppWhirr client was distributed with 3 programs
    • The AppWhirr client app itself (code can be found in the 'EasyAppsClient' folder)
    • The Client Updater. The client itself downloads the new version when found, checks it then starts the client updater which starts to perform the update after the client quits.
    • Uninstaller : the uninstaller can clean-up and remove everything the AppWhirr client creates (except some app shortcuts the user can create for the apps installed in AppWhirr). It's copied to and started from a temporary directory to clean up even the uninstaller.
  • The Windows installer was created by the NSIS installer generator ( http://nsis.sourceforge.net/Main_Page )
  • The AppWhirr client is written mostly in C++ with Qt framework.

Parts of the repo explained

This is some help to navigate the repo

UsefulScriptsAndTools (folder)

  • CommunicationAPITester : basically a simple communication tester project, not strictly related to AppWhirr API, rather it's a test project for the communication code itself.
  • AppDatabaseUpdateChecker : This tool was used by us to automatically check for newer versions of the apps we've included in the AppWhirr app database.
  • mac and win folders : contain some tools and scripts to quickly prepare a normal program/app (which was simply downloaded from the web) for distribution on AppWhirr. AppWhirr had some strict structuring requirements for apps which could be distributed.
    • The mac folder contains a helper 'deploy' script as well for easier deployment for Mac.
  • Notepadpp_AppWhirr-GuiConf-Highlight : is a Notepad++ syntax highlight config file for the AppWhirr stylesheet format (we've used a custom style sheet format with basic variables, similar to less, developed in-house).

Documentation (folder)

Contains the DoxyGen files we've used to generate the documentation.

Source (folder)

Contains the source code of the AppWhirr client app and the related installer and updater codes.

  • We've tried to make the client apps as responsive as we could, most of the slow operations are performed with 'BackgroundWorkers' which are QRunnable objects and can be added to thread-pools and queues.
  • Even the local (sqlite) database was handled on a different database thread and all (most) of the database querying had to happen via asynchronous signal and slot calls / callbacks.
  • We used a lot of animations as well if it didn't break the responsiveness of the UI.
  • We've used a custom style-sheet format, CSS/Qt style-sheed like, with simple variables/constants used for colors and sizes (similar to less).
  • We've used QuaZip for uncompressing ZIP files, but we've extended it with proper file attribute handling (by default QuaZip doesn't set the required file attributes like hidden, symlink, etc.)
  • About 90% of the code is cross-platform, but we had to develop some platform specific codes as well, like the DesktopShortcutCreator which is responsible for creation shortcuts.
  • The code is relatively clean, but it was developed for about 2 years so naturally there's some 'trash' codes included what we never had the time to clear out.

Build Notes

  • We've used Qt Creator as our IDE and Visual Studio compiler on Windows because it generated much faster code than MinGW did (we've used XCode's gcc compiler on Mac).

Other related repos, tools

License

Simplified BSD, included in license.txt

About

The official client app of the now discontinued AppWhirr cross platform (Windows and Mac) app store.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published