📜 ⬆️ ⬇️

Cloudless mobile app - life without Google Play

A little earlier, you and I thought about what alternatives to Google Play are , and how you can work around different methods of blocking on mobile applications with the help of Google Compression Proxy and Torus . Today I want to talk about whether it is possible to launch and maintain a full-fledged mobile application on Android without the help of any mandatory external infrastructure. I will tell on the example of the same application for viewing the rutraker. It is not particularly remarkable, but very clear.



For whom is it


Immediately specify who this may be relevant. Malicious use comes to mind in the first place, but I rather want to help developers who, due to some conventions, cannot put out the application, or could not break through the robots sitting on Google support for an unfair ban of the application. There are also just applications for a narrow circle of users or applications for a certain company. Well, or you can just suddenly be bound by such conditions that you can not publish your application on Google Play (encountered, yes).

Stage one. Installation


In fact, this is the most difficult stage - your application must somehow get to the user on the device. If the application is designed for casual users who can only deliver something from Google Play, then, of course, alas. On the other hand, if you have an application of this kind, then you will most likely be able to use Google Play.
')
Earlier, I was thinking about Yandex.Store - but the experience of use shows that it just slowly goes dead, abandoned and forgotten (even Yandex employees cannot answer questions about plans for him - and I asked).

Next comes the F-Droid. The option is not bad, but it has several drawbacks that can be fatal for you:


There are some more app stoppers of different degrees of development and bending, but we will not dwell on this in detail - you can google quite a few reviews of this kind. And in any case, there will be disadvantages in that you will have to teach the user how to use this app, you will be tied to it, or you will have to publish your application to a bunch of sites ... In general, everything is pretty sad.

What to do? The answer is rather clumsy in its simplicity - just distribute the application without any storages - as an apk file! You can store it on any server - from FTP and HTTP to the balls on the dropbox. This, of course, will require a tick to “install applications from third-party sources” - but we need it anyway. Yes, and users have long learned to put everything they need - the same Pokemon installed at the peak of popularity on almost every tenth phone (in the absence of them in the Russian Google Play) clearly show this (yes, I also like Pokemon as they clearly show many things). In this case, you can lay eggs on a pile of different baskets - you can have many sources for installing and updating your application.

There is only one serious minus - at the time of installation it is impossible to check whether this is really your application or an evil fake. Well, alas. For hardcore paranoids, you can publish a hash on a trusted resource, for example.

In my case, I used the github infrastructure, because I am developing an open source application (and I love collaboration, pull requests and all of this). But I repeat - one could use anything - w3bsit3-dns.com, torrents, FTP, HTTP, Dropbox, transfer apk via telegrams, hosting on narod.ru and so on. Any perversion that comes to your mind.

Stage Two. Debugging


It would seem that without Google reports life is no longer sweet, and we can’t debug anything else. But it is not. There are a large number of services that offer us much more of the most interesting than Google. What do you think - why are the crashalytics binaries inside every fifth application? Just because it is much more convenient!

So, you can collect information about crashes with third-party tools. I myself used crashalytics and Acra . rashalytics gives you everything you can out of the box - but in your cloud. Acra gives you even more and offers a bunch of backend options - but you need to do this and think that you don’t always want to. So I chose Acra in the event that the data simply could not be transferred to someone else's cloud. For Acra, a simple backend was written that put reports in Elasticsearch, after which they could be viewed in Kibana (just using the current infrastructure).

So after receiving the report, everything depends only on your imagination - the collected data can be transmitted via email, via the server’s web, through the server in the torus, the Russian post, sent by messengers and so on.

Stage Three. Update.


Yes, we have long been out of the time when updates were delivered on beautiful floppy disks every few years. This is probably for the best. So, you probably want to be able to update the application at least once a day.

At the moment we are considering the option that you do not use any stori that care about it. In this case, you need to have a certain pool of servers with update data and the actual binaries. As before - everything is limited only by your imagination. And the guarantor of the fact that this is still your application is a signature, the discrepancy of which will be ignored only by a very stupid user (he is unlikely to be your target user). Well, nothing prevents you from validating the downloaded update using any of your methods.

In my case, the same github was used - there is a convenient API for getting data about releases, and I do not need to worry about traffic, accessibility and other things. If your application is banned anywhere, it is quite possible to launch the torus at startup and download the update from there.

The only subtlety of this stage - it is extremely important not to screw it up in writing the update algorithm. In the future update, you can fix any bug in the application - in addition, which will prevent to put this update ... Well, it is important that your application does not fall before the update. Of course, you can prohibit any activity in the application before checking and installing the update - but for the user it is not very convenient. You can also try to catch any crashes and ... Do not crash ... But if you have native libraries in the application and other ways to shoot yourself in the leg, then crash is still possible.

Stage Four. Analytics.


All is well, you have a working active application and users. One thing is not clear - what the hell is going on there ?!

If you solved this on Google Play with Google Analytics for Android, now ... You can solve it with any other analytics service. Including the capabilities of the same Fabric. I will not repeat further - you fully control what, where and how you send.

Fabric example (I only collect data about titles of pages viewed out of pure curiosity).

By the way, on github you can get some statistics on repository visits, which is also interesting.

Stage Five. Monetization


Before falling into despair at the thought that without Google you can no longer sell your application, you can think and decide what ... Not so we need it. If you monetize the application with advertising, you can take any non-google engine (thousands of them). If with the help of purchases, no one will prevent you from integrating any payment solution - from Stripe to transferring bitcoins ...

Total


Suddenly it turns out that there are no fundamental problems. The application can work fully - not so spherically in a vacuum, but at least with many different interchangeable infrastructures, without relying on Google. So if you are banned - do not despair! There is a way to survive. Of course, it will be harder - but this is infinitely better than just rolling and diverging. And I really hope that many will do this, there will be many popular applications that work autonomously, and this, in particular, will have an impact on Google - perhaps they will finally put a few people of flesh and blood on to deal with blocking issues.

Regarding my application, which I used as an example, the githab says that it has 20,000 downloads. Even if half of them are updates, I still think that the result is still very decent - given that I did not advertise it anywhere (why?), And it is described only on Habré, rutraker, and w3bsit3-dns.com.

PS Just in case, I warn you - Google prohibits updating the application from alternative sources.

PS2 You've probably already heard that Google bought Fabric. One can only hope that he will not break it and will not make a binding to Google Play. But even if so, we still have a lot of spare options.

Links


Source: https://habr.com/ru/post/320888/


All Articles