Что такое instant apps как убрать установку. Instant Apps что это? Как включить службу приложений с мгновенным запуском

В этой статье рассмотрим, что такое Instant App, зачем он нужен и как создать такое приложение?

Еще в прошлом году на DroidCon я слышал об этой теме. В этом году о ней тоже говорили. Наконец то у меня дошли руки посмотреть подробнее. В этой статье я расскажу, что мне удалось понять. Кода здесь практически не будет, только поверхностный разбор. И в конце несколько полезных ссылок для дальнейшего изучения.

Пример

Давайте сразу посмотрим пример. Есть такой видеохостинг - Vimeo. И у них есть свое Android приложение на маркете.

Если загуглить, например, "vimeo video", то гугл в результатах покажет несколько видео, нажав на которые можно перейти на Vimeo сайт. Т.е. браузер откроет ссылку вида https://vimeo.com/236370796. Но если делать это на Android смартфоне, на котором установлено Vimeo приложение, то оно и откроется вместо сайта. Система видит, что есть приложение, которое умеет открывать такую ссылку и запускает его.

Если же приложение Vimeo не установлено, то может открыться его Instant App версия.

Это приложение, которые мы даже явно не устанавливали. Система сама загрузила и установила его, и открыла в нем видео. (Не знаю почему рекордер не записал видео, которое проигрывается в верхней части экрана, но оно там есть). Обратите внимание также, что в этом приложении есть кнопка для перехода к установке полной версии с маркета.

Если у вас не запускается Instant App, то убедитесь, что он включен в настройках системы: Settings -> Google -> Instant App. Если у вас в настройках нет пункта Instant App, значит ваше устройство его не поддерживает.

Т.е. система перехватила ссылку, определила, что для нее есть Instant App приложение, скачала его и запустила. Ссылка играет очень важную роль в этой технологии. По сути URL - это точка входа (entry point) в приложение. Чуть позже я расскажу, как реализуется эта привязка.

А вот так выглядит полноценная версия приложения Vimeo, установленная с маркета.

Видно, что экраны обоих версий очень похожи, но у Instant App версии функционал ограничен. Instant App - это light версия основного приложения. Как мы уже видели, она может быть быстро подгружена и отображена при нажатии на ссылку.

Зачем нужен Instant App

Зачем это может понадобиться? Самый очевидный ответ - чтобы получить больше установок вашего приложения. Пользователь находит что-то в гугле (или просто получает ссылку в мессенджере, почте и т.п.), нажимает на ссылку и у него открывается ваше Instant App приложение. Оно позволяет пользователю увидеть примерный функционал и призывает установить полную версию. Тем самым вы получите нового пользователя. Т.е. Instant App - это классическая демоверсия приложения, которая помогает пользователю принять решение об установке полноценной версии.

Как создать Instant App приложение

Давайте разбираться, откуда взялась эта Instant App версия и как ее создать.

Создана она в том же самом проекте, что и основное приложение. Но чтобы была возможность создавать легковесную и ограниченную версию, необходимо разделить код основного приложения на модули.

О каких модулях речь? О тех самых, с которыми мы работаем в Android Studio. По умолчанию у нас создается только модуль app. Если мы работаем по Clean Architecture, то обычно создаем еще несколько модулей. А если мы собираемся создавать Instant App приложение, то мы выносим в модули отдельные фичи (features) приложения.

В примере с Vimeo такая фича - это экран просмотра видео. Т.е. в приложении есть какое-то Activity, которое отвечает за этот экран. Оно вынесено в отдельный модуль. Назовем этот модуль - videoplay. В этот модуль кроме Actiivty мы выносим используемые им классы - адаптеры, презентеры, кастомные вьюхи, и пр. Т.е. тут должны быть классы, которые нужны для работы только этому Activity и никому больше.

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

В каждом feature-модуле прописана зависимость от base-модуля:

Dependencies { implementation project(":base") ... }

Впрочем, это не мешает модулю base быть feature-модулем. Он также может содержать в себе Activity.

В итоге ваш проект состоит из одного base-модуля и нескольких feature-модулей. Из этого всего мы можем собрать два типа приложения.

Первое - это обычный полноценный APK, который включит в себя все ваши features-модули.

Второе - это ограниченное Instant App приложение, которое включит в себя base-модуль и те feature-модули, которые вы хотите видеть в этом приложении.

Чтобы обеспечить нам возможность собрать два разных приложения из одного кода, в Instant App проекте есть два модуля сборки: installed и instant.

installed соберет для нас полноценное приложение, а instant - Instant App версию.

В этих модулях есть gradle файлы, в которых мы прописываем feature-модули, который будут использованы при сборке приложения.

Dependencies { implementation project(":base") implementation project(":feature1") implementation project(":feature2") }

Соответственно, в gradle файле модуля installed мы обычно указываем все feature-модули, чтобы получить APK с полным функционалом. А в gradle файле instant мы указываем только те features-модули, которые хотим видеть в Instant App приложении.

Модуль installed соберет APK, который будет использовать модули как библиотеки. А модуль instant сделает отдельный APK из каждого модуля и запакует все эти APK в один ZIP.

Маркет

Какую из этих двух версий приложения надо заливать на маркет?

Полноценный APK обязательно должен там быть. А вот Instant App - по вашему желанию. Если он вам нужен, то создавайте и заливайте.

Как программно определить версию

Т.к. обе версии приложения используют один и тот же код, то в этом коде может возникнуть необходимость проверять, в какой именно версии мы сейчас находимся. Для этого можно использовать метод isInstantApp .

Activity = модуль

И что, теперь нужно каждое Activity выносить в отдельный модуль?

Не нужно. Выносите в отдельные feature-модули только те экраны, который вы хотите видеть в Instant App. А весь остальной код можете оставить в одном отдельном feature-модуле, который просто не будет включен в Instant App. Не забудьте только в base-модуль поместить классы, которые нужны будут для работы feature-модулей.

URL

Я уже упоминал, что URL является входной точкой в Activity.

Каждый feature-модуль должен содержать в себе хотя бы одно Activity (можно и больше). И для этого Activity должен быть настроен IntentFilter на определенный URL.

Система находит, что в маркете существует Instant App приложение, в котором есть feature-модуль, который умеет открывать такие ссылки.

Чуть выше я писал, что Instant App приложение представляет из себя ZIP, в котором собраны все feature-модули и base-модуль в виде отдельных APK. В случае с Vimeo, например, это могли бы быть, например, файлы videoplay.apk (создан из feature-модуля videoplay) и base.apk (создан из base-модуля). И в videoplay.apk есть Activity, для которого настроен IntentFilter на vimeo.com ссылки.

Система загружает videoplay.apk на устройство и запускает. Вместе с ним также она загружает base.apk. Т.е. когда идет первая загрузка какого-либо feature APK файла из Instant App, с ним вместе всегда грузится и base.apk. Потому что все feature зависимы от base. Отсюда, кстати, вытекает одно ограничение. Суммарный размер любого feature APK файла и base.apk не должен превышать 4 мегабайт. Т.е. в нашем случае суммарный размер файлов videoplay.apk и base.apk не должен превышать 4 MB. Это сделано, чтобы приложения Instant App были максимально легкими и быстро загружаемыми.

Тут важно понимать, что, даже если Instant App приложение содержит в себе еще какие-либо feature APK файлы, система загрузит только videoplay.apk (+ base.apk). Потому что в данный момент нужен только этот файл для обработки нажатой ссылки.

А что если экран из videoplay.apk предоставляет возможность перейти на какой-то другой экран, например, экран комментариев? В этом случае программно переход должен быть реализован не с помощью Intent, который вызывает Activity, а с помощью Intent, который вызывает ссылку. Например, это могла бы быть ссылка вида https://vimeo.com/236370796/comments.

Предположим, что в проекте есть feature-модуль videocomments, в котором находится Activity c IntentFilter, настроенным на такие ссылки. И этот feature-модуль был включен в список в модуле instant. В этом случае система найдет, что в Instant App приложении есть еще файл videocomments.apk, в котором есть Activity настроенное на этот тип ссылок. Система загрузит и запустит videocomments.apk. Файл base.apk в этом случае уже не будет загружаться, т.к. он был загружен ранее.

Try now

Если в маркете есть Instant App версия приложения, то пользователь видит кнопку Try now.

По нажатию этой кнопки происходит примерно то же самое, что и по нажатию на ссылку. Система загрузит один из feature APK вместе с base.apk и запустит его.

Какой именно модуль будет запущен, можно определить в манифесте. Будет найден тот APK, который содержит главное Activity. Т.е. Activity со стандартным фильтром:

Либо есть возможность в манифесте указать ссылку:

Она будет вызвана по нажатию на Try now и далее будет загружен и запущен соответствующий этой ссылке feature APK.

Полезные ссылки

Если вы пользуетесь смартфонами на базе операционной системы Android, скорее всего, сталкивались с таким понятием, как Instant Apps, вот только сразу и не скажешь, что это такое, не так ли?

Технологии развиваются, возможности наших телефонов постоянно расширяются, и среди такого многообразия опций попросту не успеваешь опробовать все фишки своего смартфона.

Instant Apps — это технология, используемая в Google Play для запуска демо-версий приложений или игр. Например, вам хочется загрузить на свой смартфон программу для прослушивания музыки или новую игру, которая вышла недавно, и вы заходите в Маркет и начинаете устанавливать приложение. Вот только часто так бывает, что , а опробовать то хочется. Вдруг эта программа в разы лучше той, что установлена у меня?

В таких ситуациях вас и будет спасать технология Instant Apps. Благодаря ей можно загрузить демо-версию любого продукта, который представлен в Google Play и посмотреть, как он выглядит, какие опции в нем предусмотрены, вкладки, внешний вид, меню. Файл с демкой очень маленький по объему, поэтому такая технология существенно экономит ресурсы вашего смартфона. Да и не только ресурсы, но и время. Если у пользователя сравнительно низкий уровень сигнала, то и загрузка программы будет осуществляться очень долго. А здесь скачал демо-версию, быстро ознакомился с ней, и если понравилась, то скачал уже полную.

Только вот подобная технология используется не везде, к сожалению. Впервые Instant Apps был представлен еще в 2016 году на конференции Google, а в 2017 начали появляться первые приложения с поддержкой данной опции. Вообще она поддерживается с Android Jelly Bean (4.3), однако многие разработчики начали создавать свои продукты с поддержкой этой технологии только в 6.0 и выше.

Преимущества и недостатки технологии

Вам, как пользователю Android, необходимо знать обо всех минусах и плюсах технологии Instant Apps, чтобы понимать, насколько она полезна. Ведь не все опции, которые присутствуют в операционной системе Андроид, одинаково полезны.

Преимущества

  • Удобная интеграция в сервисе Google Play, в результате чего пользователю не нужно совершать лишних действий;
  • Высокая скорость работы и быстрая загрузка контента;
  • Объем памяти, необходимый для загрузки приложения с Instant Apps, очень маленький;
  • Поддержка большого количества устройств на Андроиде;
  • Можно делиться приложениями. Например, вы запустили у себя на телефоне сканворды и решили другу посоветовать эту же программу. Достаточно скопировать ссылку на приложение и отправить человеку, после чего он запустит ее и сможет также использовать весь функционал в демо-версии;
  • Широкое применение. Эта технология может использоваться не только для загрузки демо-версий, но и для работы с веб-версиями сайтов, например, когда необходимо быстро загрузить контент.

Недостатки

  • Не все версии Android поддерживают данную опцию (начиная с Jelly Bean);
  • Наличие Instant Apps зависит от разработчика. То есть, он должен внедрить эту технологию в своем приложении, поэтому здесь все зависит не от Google, а от издателя, который выпускает программу в Google Play;
  • Неосведомленность пользователей. К сожалению, об этой опции знают не многие владельцы смартфонов, так как она по умолчанию нигде не афишируется. Большинство пользователей до сих пор заходят в маркет и просто скачивают программу, а если она им не понравилась, удаляют.

Последний пункт в недостатках — это, скорее, придирка, но данная причина тоже имеет место быть.

Как использовать Instant Apps?

Как и говорилось ранее, она доступна на устройствах с Андроидом версии Jelly Bean (4.2) и выше, однако многие разработчики добавили эту возможность в приложениях, адаптированных под версии 6.0 и выше.

По умолчанию эта опция включена в смартфоне, но, если она вдруг не работает, выполните следующие действия:

  1. Зайдите в «Настройки» своего смартфона и кликните по вкладке «Google»;
  2. Выберите из следующего меню пункт «Приложения с мгновенным запуском», кликните по нему и активируйте ползунок в состояние «Включено».

Все, на этом опция активирована и можно переходить к загрузке демо-версии. Выполняем следующие действия:

Как удалить или отключить?

Одна из проблем Instant Apps — автоматическое обновление и самостоятельная активация. Некоторых владельцев смартфонов подобные действия сильно напрягают, так как без их разрешения Instant Apps расходует трафик, заряд батареи, причем в стандартных приложениях его найти нельзя. Что же делать в таком случае?

  1. Для отключения данной опции зайдите в «Настройки» своего смартфона и кликните по вкладке «Google»;
  2. Найдите в списке пункт «Приложения с мгновенным запуском», нажмите по нему и установите ползунок в состояние «Выключено».

Но учтите, что в этом случае вы не сможете использовать демо-версии программ и игр в сервисе Google Play. Если же вы решили совсем удалить данную опцию, вам необходимы будут root-права. И уже только после этого вы сможете стирать любые службы и приложения, по умолчанию установленные от Google.

Приложения с поддержкой мгновенного запуска

Хотите опробовать приложения с опцией Instant Apps, но не знаете, где их скачать? В сервисе Google Play есть отдельный раздел, который называется «Мгновенный запуск». В нем выложены все программы, которые имеют данную опцию. Перейти в эту категорию можно :

В целом можно сделать вывод, что Instant Apps — это довольно интересная и удобная опция, которая, скорее, сэкономит ваш трафик, чем израсходует. Да, иногда она будет обновляться, но в целом расходуется очень маленький объем трафика, который компенсируется просмотром демо-версий при очередном выборе новых программ или игр в Google Play.

Еще один весомый аргумент в пользу этой опции — это будущее. Все больше разработчиков адаптируют свои продукты под данную технологию, а вскоре и вовсе нас ожидает загрузка контента в доли секунды, которая будет разбиваться на отдельные контейнеры. Но это уже совсем другая история…

Границу между веб-сайтами и приложениями усиленно стирали последние десять лет, но так и не стерли. Наоборот, с расцветом мобильных телефонов приложения вернулись и никуда не собираются уходить. Технология Instant Apps - это подход к той же проблеме с другой стороны. Что, если заменить сайты настоящими приложениями? Последствия могут навсегда изменить интернет и имеют серьезные побочные эффекты.

На прошедшем в середине мая Google I/O 2016 было показано много интересного - от вполне ожидаемой новой версии Android, об особенностях безопасности которой ты можешь прочесть в колонке Жени Зобнина, до магазина приложений для виртуальной реальности. Но может статься, что самый важный анонс - это не Android N, не виртуальная реальность и не Google Home, а нечто под названием Instant Apps.

Вот базовый пример использования Instant Apps. Ты при помощи телефона или планшета с Android ищешь в интернете какой-то товар и жмешь на ссылку в поисковой выдаче. И вместо сайта магазина твое устройство загрузит некую минимальную версию приложения, в которой будет только информация об этом товаре и кнопка «Купить».

Казалось бы, принципиальной разницы по сравнению с сайтами нет (автор веб-комикса xkcd уже успел поиронизировать над этим). Но шутки шутками, а отличия все же имеются, и очень важные.

Во-первых, ты можешь немедленно совершить покупку, используя уже имеющиеся в телефоне данные кредитной карты. Во-вторых, с твоего разрешения приложение может получить доступ к датчикам телефона и сохраненной в нем информации. В-третьих, у приложения может быть более отзывчивый интерфейс, чем у сайта.

Технически это реализовано следующим образом: разработчик строит свою программу так, чтобы у нее была легко отделимая часть, которую можно загружать отдельно. Создавать новую ветку кода при этом не обязательно, главное - в нужном месте вызвать программные интерфейсы Instant Apps. Приложение отправляется в Google Play, и остальное - это уже магия Google. Когда поисковик решит, что вместо сайта можно показать приложение, он запросит его из Google Play и покажет пользователю.

При этом не факт даже, что Instant Apps будет загружаться дольше, чем сайт, и потратит больше трафика. Многие современные сайты страдают проблемой ожирения, и нередко можно встретить страницы, которые засасывают из интернета по десять мегабайт. Этого хватило бы на целое приложение, так что если его часть будет занимать, скажем, один мегабайт, то это вряд ли сегодня кого-то напугает.

Посетители Google I/O аплодировали этому анонсу не зря. Кажется, он решает массу проблем и открывает большие возможности. Беда с приложениями в том, что часто бывает нужно немедленно использовать какую-то программу и для этого ее требуется скачать, а она, быть может, занимает слишком много, чтобы качать по сотовой сети. Причем следующий раз, когда она понадобится, может наступить, к примеру, через месяц или не наступить вовсе.

Моментальная подгрузка только самой необходимой части приложения позволит обойтись без установки и не забивать телефон. Это удобно, когда ты, скажем, хочешь заказать доставку чего-то или, к примеру, желаешь арендовать велосипед во время прогулки по другому городу.


Казалось бы, у Instant Apps сплошные плюсы и никаких минусов. Пользователи компьютеров и всяких там айфонов будут видеть обычный сайт, а Android вместо него загрузит свой кусочек программы из Google Play. «Моментальные приложения» пригодятся любому изданию, любому онлайновому магазину, а также множеству реальных магазинов, кафе, музеев, выставок, да что там - даже обычным предметам, в которые сейчас всё чаще встраивают компьютеры.

Но разреши напомнить тебе один важный исторический пример. В конце восьмидесятых годов, когда Microsoft Word был одним из множества конкурирующих текстовых процессоров, никто не жаловался на то, что его стандарт закрыт. Наоборот, это было нормой - свой стандарт файлов был у каждой программы.

Зато когда популярность Windows и Word сделали его формат фактически единственным стандартом текстовых документов, тут уже начались разговоры, что неплохо бы открыть его для всех. В течение многих лет это было очень острой проблемой, и до сих пор она решена не до конца.

Что, если популярность Android и поисковика Google сделают Instant Apps новым стандартом сайтов? Вместо веба, где можно заглянуть в код любой страницы, мы получим веб, состоящий из байт-кода Java.

Можно, конечно, посмеяться и сказать, что это давняя и несбывшаяся мечта инженеров Sun Microsystems. Но они-то представляли себе, что программы на Java будут исполняться на любом компьютере с любой архитектурой, а у Google получается так, что для запуска «инстант аппа» нужно иметь совместимое устройство. И, кстати, абы какой Android не подойдет, ведь доступ к магазину есть только в телефонах с лицензированной у Google версией системы. Вот тебе и свобода с открытостью!

К слову, речь потенциально не только про мобильные телефоны. Как известно, в Chrome OS активно встраивают поддержку приложений для Android, и нет никаких причин не добавить и Instant Apps. Хромбуки тем временем уверенно набирают популярность. В США благодаря интересу со стороны образовательных учреждений они, по подсчетам IDC, уже продаются лучше «маков» (десктопов и ноутбуков).

Магазины приложений отбирают хлеб у сайтов уже не первый год, так что появление Instant Apps вряд ли можно считать внезапным событием. На ум, кстати, приходят две другие новые технологии - гугловская же Accelerated Mobile Pages (AMP) и Facebook Instant Articles . Обе по духу близки к Instant Apps и нацелены на то, чтобы лучше приспособить для телефонов текстовый контент.

Конечно, паниковать и кричать, что Google убивает веб, пока рано. Сложно спорить с тем, что от Instant Apps будет много пользы, да и бороться с прогрессом - не лучшая затея. Мобильные телефоны еще не закончили менять привычный технологический ландшафт, и Instant Apps - не последнее проявление этого процесса. Жаль только, что изменения часто ведут к повышению закрытости и фрагментации.


А еще, конечно, никто не знает, победит эта технология или нет, насколько она в итоге будет распространенной и какими окажутся следующие шаги Google. Вот еще интересный вопрос - как отреагируют в Apple? Появится ли в iOS прямой аналог или, быть может, в Купертино придумают кардинально другой подход?

И напоследок - еще один исторический пример. Помнишь Flash? Его создатели хотели сначала внедрить свою суперпрогрессивную технологию в сайты (и это неплохо удалось), а затем сделать так, чтобы она заменила собой веб (и вот это уже не вышло). А по прошествии какого-то времени Flash стал ненавистной дырявой фигней, от которой все спешат избавиться как можно скорее. Instant Apps в Google, по крайней мере, смогут в любой момент выключить.

Ребята, всем хеллоу. Говорим про Андроид, сегодня расскажу вам о чудо-функции под названием Instant Apps. В чем же чудо? Ну подумайте сами, функция Instant Apps позволяет запускать программу, которую вы даже не устанавливали. Как по мне, то звучит фантастически. Конечно это удобно, можно протестировать приложение, понять как оно работает и только потом уже принимать решение устанавливать его или нет. Да, тут не все так просто, вот читаю что такое приложение, ну не установленное, то оно может не поддерживать всех функций. То есть Instant Apps это такой режим запуска приложения без его установки. Что именно будет доступно в таком приложении, ну в плане опций, то это будут решать сами создатели приложения.

Функция доступна начиная с версии Андроида Jelly Bean. Я понял в чем прикол ребята. Эта штука Instant Apps начала сама проникать в телефон, вот пишут люди что даже глюки начинаются в телефоне.

Вроде я даже нашел как отключить Instant Apps. Для этого нужно зайти в настройки и нажать там Google:

Потом найти Instant Apps:

Вот еще картинка в тему, смотрите:

Вот еще чел пишет, что у него само установилось такое как Google Play services for Instant Apps. Пишет что как только он включает телефон, так оно сразу само скачивается и ставится.

Вот нашел еще один вариант как отключить Instant Apps (это я нашел на гугловском форуме).

Подпишитесь:

Разработчики программного обеспечения и операционных систем в новых версиях своих продуктов стараются не только их совершенствовать, оптимизировать работу, но и добавлять некоторые функции, направленные на упрощение работы с мобильным устройством. Начиная с Android 6.0, пользователи заметили, что здесь появилась новая программа Instant apps, однако не все до конца понимают, чем она полезна и какие функции выполняет. Рассмотрим детально это приложение, его основные функции и как с ним работать.

По сути это ПО представляет собой некий эмулятор, который позволяет оценить ту или иную программу без ее непосредственной установки, чтобы не захламлять гаджет под управлением ОС Андроид. Ее очень часто используют также для проведения оплаты товаров или услуг в интернет-магазинах онлайн. Хотя стоит учесть, что для запуска все-таки потребуется скачать некоторые файлы, но они будут в десятки раз меньше, нежели инсталляционный пакет. Да и не все ПО получится запустить таким образом, получится использовать лишь те, которые имеют официальные лицензии и те, которые разработаны непосредственно компанией Google.

Даже у современных телефонов не всегда много внутренней физической памяти. И если устанавливать все подряд программы, места может не хватать, а впоследствии для установки нужной придется искать ПО для удаления, которое не нужно пользователю, чистить кэш, который может оставаться после них.

Воспользовавшись же Instant apps, в этом случае физической памяти нужно минимум. Гаджет не переполняется ненужным ПО, а соответственно и чистить его не придется. Если приложение, которое протестировали, действительно хорошее, его можно будет уже и инсталлировать.

Как пользоваться Instant apps:

  • Рядом возле кнопки «Установить» будет размещена и клавиша «Попробовать», нажмите на нее.

  • В следующем окне будет уведомление о том, что это ПО будет запущено без инсталляции. Кликните по кнопке «Продолжить».

  • После установки будет запущена программа, но с урезанными возможностями, хотя их вполне достаточно для того чтобы понять, нужно ли вам это приложение или нет.
  • Если это ПО действительно полезно, можно сразу тапнуть по кнопке «Install», которая будет размещена в правом верхнем углу экрана.

Примечание : если в Play Market отсутствует кнопка «Попробовать», значит, программа попросту не запущена на устройстве. Это можно поправить, пройдя по пути: «Настройки» - «Google» - «Приложения с мгновенным запуском». Далее остается лишь перетащить ползунок на позицию «Вкл».

Что такое видео конвертер? Это программа, позволяющая менять формат видео, то есть конвертировать его. Например, из формата видео AVI – можно сделать формат MP4.Допустим, у вас есть самый обычный телефон, скажем старенький Nokia. Вы захотели скинут...

Многие владельцы видеорегистраторов и систем видеонаблюдения наверняка сталкивались с проблемой воспроизведения файлов в формате h.264 на компьютере.Несмотря на то, что в Интернете достаточно рекомендаций по воспроизведению этих файлов, положительно...

Глобальная сеть постоянно модернизируется. Если 10 лет назад нормальным можно было назвать сайт, где помимо текста были вставлены картинки и выполнена правильная разметка с меню, то на сегодняшний день интернет-страницы наполнены различными эффектами...