s/как всегда/как лучше/

В своей последней записи о приложении умного голосования я – надо признаться – в основном освещал вопрос «кто виноват». Если быть точным: «в чём виноват». К вопросу «что делать» я привёл только пару идей. Чтобы не быть голословным, в этот раз я отвечу на вопрос «что делать» поглубже. Точнее: на вопрос «как сделать». А именно: как «разместить всякие данные [для приложения] на [менее очевидных доменах] Google Docs», чтобы избежать и блокировку передачи данных, и вычисление пользователей приложения. На самом деле команда Навального уже действует по этой схеме на YouTube. Федеральная Служба Балбесов и РосКомПозор видят только, что пользователь что-то смотрит. А что именно: это им не видать как своих ушей.

Для начала надо внести данные – например, имена кандидатов – в Google таблицу. Чтобы приложение на приборах пользователей могло скачивать эту таблицу, необходимо открыть «Настройки Доступа», …

… «Разрешить доступ всем, у кого есть ссылка»…

… и «Копировать ссылку».

Она должна выглядеть примерно так: https://docs.google.com/spreadsheets/d/1o4Gb6-Q0wDCb3CCMnrXogZBagXjBxbXoV7XC9dFn9Jc/edit?usp=sharing

Эта ссылка предназначена для просмотра таблицы в браузере. Чтобы облегчить приложению работать с таблицей, нужно заменить «edit?usp=sharing» на «export?format=csv»: https://docs.google.com/spreadsheets/d/1o4Gb6-Q0wDCb3CCMnrXogZBagXjBxbXoV7XC9dFn9Jc/export?format=csv

При наличии этой ссылки можно смело приступать к разработке приложения. Базовая структура приложения Android от Android Studio вполне достаточна, чтобы на её основе скачивать и отображать Google таблицу.

И правда: концепция не подвела. И DNS, и TLS SNI раскрывают подслушавшему только тот факт, что пользователь смотрит что-то на Google Docs.

А булочку?

Для полного счастья не хватает только способности работать без интернета. Да, понятно, что при первом запуске никуда не денешься.

Но при первом успешном скачивании данных приложение может их сохранить локально и использовать в случае недоступности интернета.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *