Since the origin of computer age there have been question about optimal way of software installation. Some software can be installed by simple copying their files to the desired location. Other programs require an installation including numerous action such as unpacking of files supplied in a compressed form, copying them to suitable locations, tailoring the software to suit the hardware and the user's preferences, providing information about the program to the operating system, and so on. The installer may test for system suitability and available mass storage space.

Today we have various ways of installation depending on the classes of the software (device drivers, utilities, programming software and so on) and the hardware (clients, servers, mobile devices, embedded). But if we talk about general case we have a new widely successful distribution model – application store – a digital application distribution platform. So it’s easy to find and download apps.

The keys to success:

  • One proven place for apps – one click to find, one click to buy, - developers don’t need to manage their own stores, they have the user audience, licensing and advertisement models. So user can spend more time enjoying new apps and less time installing them.
  • Safe place - once approved, applications receive a digital signature and are placed in the app store for purchase (for fee or for free). That digital signature is at the core of the system; only signed applications can be used.
  • Keep apps up to date - since developers are constantly improving their apps, the app store keeps track of the apps and tells the user when an update is available. Update one app at a time or all of them at once, and users will always have the latest version of every app they own.

App Store Comparison

App Store Ubuntu Software Center Android Market AppUp
Developer program fee 99 USD / year Free 25 USD Free (limited time), 99 USD / year
Transaction fee 30% 20% 30% 30%
App price (paid apps) Any from 2.99 USD Any Any
Free apps Yes Yes Yes Yes
Copy protection No No No No
Licensing service Yes N/A Yes No
In-App purchases Yes No Yes No
In-App upgrades Yes Yes Yes No
In-App advertising Yes Yes Yes No
Refunds No N/A Yes N/A
App statistics Yes Yes Yes N/A

Application publishing

All presented distribution systems have similar stages of application publishing – development account registration, preparing application, adding application details, choosing a price, submitting an app to the review process. Apple App Store (Mac and iOS) and Google Android require that all installed applications be digitally signed with a certificate whose private key is held by the application's developer.

Application signing

The application bundle, installer package, and any other helper tools installed with the app need to be signed before submitting them to the App Store. The app and any helper tools need to be signed using a Mac Application Distribution Signing Certificate and the installer package needs to be signed using a Mac Installer Package Distribution Signing Certificate.

The Android system also requires that all installed applications be digitally signed with a certificate whose private key is held by the application's developer. The Android system uses the certificate as a means of identifying the author of an application and establishing trust relationships between applications. The certificate is not used to control which applications the user can install. The certificate does not need to be signed by a certificate authority: it is perfectly allowable, and typical, for Android applications to use self-signed certificates.

Packaging

An .ipa file is an iPhone/iPod/iPad application archive file which stores a device app. It is usually encrypted with Apple's FairPlay DRM technology. Each .ipa file is compressed with a binary for the ARM architecture and can only be installed on an iPhone, iPod Touch, or iPad. Files with the .ipa extension can be uncompressed by changing the extension to .zip and unzipping.

Packaging on Android Market is similar; the result of the process is a compiled .apk file that is signed with the private release key. Android application package file (APK) is the file format used to distribute and install application software and middleware onto the Google Android operating system. To make an APK file, a program for Android is first compiled, and then all of its parts are packaged into one file. This holds all of that program's code such as (.dex files), resources, assets, certificates, and manifest file. As is the case with many file formats, APK files can have any name needed, but must end with the four character, three letter extension, .apk.

APK files are a variant of the JAR file format, with a .apk file extension, and the MIME type associated with APK files is application/vnd.android.package-archive.

In Ubuntu standard application file format is Debian package. Debian packages are standard Unix ar archives that include two gzipped, bzipped or lzmaed tar archives: one that holds the control information and another that contains the data.

Review process

Review process is depending on distribution vendor. Apple has a most exacting review system based on a set of technical, content, and design criteria. This review criteria is now available in the App Store Review Guidelines. These guidelines are designed to help developers prepare their iOS and Mac OS X apps for the approval process.

Canonical have a two different ways depending on license and price: simple review and Application Review Board.

And there is no review, testing or certification for Android Market. If developers feel their app was incorrectly rejected, developer may submit an appeal.

Conclusion

Application store is a great new distribution model. It’s not a replacement for existing business model, but it’s an additional way that companies may to use. It’s a powerful and confortable, user-friendly tool in customer hands; thinking only about a product, everything else is solved by store provider.

But there are some limitations – store provider choose a supported locations for application distributing and publishing, one licensing model and one way for software updates/upgrades.

In the near future, when cloud computing finally became real the installation process will be completely different.