Today we'll present you one of our great features in a more detailed technical level. We are going to introduce Aptoide's WebInstall. Our aim is to give a short overview of the underlying architecture and the implications that it has on the usage of this service.
WebInstall is a feature that allows you to install apps on your Android devices directly from Aptoide's website. All you need to do is to log-in at Aptoide Appstore and, at the same time, log-in on the website. After this, if you click on the Install button on a webpage app view, it'll work like magic. Installation will pop up on your Android phone.

The underlying architecture

Since version 5.0.0, WebInstall has been available and relies on an architecture using the open source platform RabbitMQ as messaging broker, i.e. messaging intermediary, based on AMQP (Advanced Message Queuieng Protocol), to deliver messages from the web client to the android client on a secure and reliable way.

Publish/Subscribe model and how we're taking advantage of it

We chose to use RabbitMQ to route messages from Web to Aptoide Appstore according to the publisher/subscriber pattern. The storage of messages, inside the RabbitMQ  is done by queues. These queues are essential infinite memory buffers that allow messages to be sent by publishers - or producers of the messages - and then to be received by subscribers or recipients of those messages.
We use this queue system on a one-to-one channel, meaning that every time an order of installation is demanded from a browser, a queue is created to deliver that message to the chosen device by the user.

From concept to reality

(how we managed to adapt it to our internal structure)
Implementing this feature requires having a running RabbitMQ server (Website) where the queues can be created and the installation orders can be send. Then, each RabbitMQ client (Aptoide Appstore) can bind to their queue to get data about the apps to install.
The communication between the website and RabbitMQ server relies on an internal webservice and the RabbitMQ client is embedded on each android client.
The delivering of messages on the Android client is synchronous if the Aptoide Appstore is open or asynchronous if the Aptoide Appstore is minimized so the battery consumption can be reduced.

How can you, as an Aptoide user, use and benefit from this feature?

You can use Aptoide's WebInstall from now on if you weren't aware of this functionality, you just need to follow three simple steps.

  1. Log-in to Aptoide on your Android device with the option «Link account with Webinstall» checked;
  2. Then you need to log-in to Aptoide's website; and 
  3. At last, and the best part, you can choose the apps you want to install on your device from the Website and directly give the installation order from there. 

Easy, powerfull and confortable.

Anytime you wish, you can see the information about your linked devices on the website, on your account settings menu at the devices tab.

WebInstall only allows installation of apps fully compatibles with your devices according to his hardware and software characteristics. In case you change the characteristics of one of your linked devices, like screen resolution or android version, we recommend you to re-perform the log-in process in order to maintain this compatibility verification updated.