Для чего нужен манифест
Манифест? А? Что? Зачем?
Многие из нас, кто работает над вебом, активно стараются уменьшить разрыв между нативными и веб-приложениями.
Но что это за разрыв? Всего несколько лет назад этот разрыв был, в большей степени, технологическим. Если вы хотели получить доступ к GPS устройства, вам приходилось писать нативное приложение. Сейчас ситуация несколько улучшилась: теперь мы можем получать доступ к датчикам устройства, вроде GPS, камеры и ориентации устройства — хотя впереди ещё долгий путь. Благодаря последним успехам веб-технологий, теперь у нас есть платформа, которая может конкурировать с нативными приложениями уже почти на равных.
Сегодня разрыв между нативными и веб-приложениями не столько технологический — дело в удобстве пользователей: они предпочитают устанавливать приложения, которые уютно живут на домашнем экране (или даже на рабочем столе, если речь про десктопные браузеры).
Кроме того, нативные приложения по умолчанию работают в офлайне и интегрируются с возможностями, которые предоставляет операционная система: например, возможность видеть установленные приложения в переключателе задач. Или возможность управлять настройками конфиденциальности приложения в том же самом месте, что и для приложений, установленных из магазина. Чтобы сделать что-нибудь подобное в браузере, мы всё ещё слоняемся по браузеру в поисках открытых вкладок и вводим длинные, скучные адреса.
Нам нужен такой способ «установки» веб-приложений, чтобы они были неотличимы от любого другого приложения, установленного на устройстве пользователя. Но в тоже время, мы не хотим потерять мощные функции, составляющие основу веб-платформы: связанность ссылками, просмотр исходного кода и возможность хостить собственные проекты.
Мы в веб-сообществе, как правило, называем это «прогрессивными веб-приложениями».
Что такое «установка»?
По сути, «установка» веб-приложения — это добавление «закладки» на домашний экран или в программу запуска приложений. Есть некоторые довольно очевидные вещи, которые вы, как разработчик, должны предоставить браузеру, чтобы тот мог считать сайт приложением: название, иконки, и т.д. Есть и более сложные функции, которые могут вам пригодиться, например, возможность указать предпочтительную ориентацию устройства и нужен ли вам полноэкранный режим.
Спецификация манифеста предлагает вам стандартный способ сделать это с помощью файла JSON. Просто сошлитесь на файл манифеста в HTML-странице следующим образом:
Но что находится в этом загадочном файле манифеста? Хорошо, что вы спросили!
Очень простой манифест
Самый простой манифест может состоять всего-то из имени и одной или нескольких иконок.
Типичный манифест
Более типичный манифест может выглядеть следующим образом. Имена его ключей должны говорить сами за себя, но мы подробнее опишем их использование ниже.
Название приложения
Ключ short_name служит названием приложения при отображении в условиях ограниченного пространства (например, под значком на домашнем экране телефона). Ключ name может быть немного длиннее, отображая название приложения полностью. Также он служит дополнительной информацией для пользователя, который ищет ваше приложения на телефоне. Так что, набрав «улётный» или «фото», пользователь сможет найти приложение на своем устройстве.
Но будьте внимательны: некоторые браузеры могут требовать указать название — иначе, ваше приложение может лишиться статуса «прогрессивное веб-приложение».
Иконки
Назначение иконки
Больше подробностей о назначении иконок можно найти в спецификации Web App Manifest.
Режимы отображения и ориентация
Приложения при запуске должны иметь возможность контролировать свое отображение на экране. Если это игра, то ей, вероятно, нужно быть в полноэкранном режиме и в горизонтальной ориентации. Для этого формат манифеста предоставляет вам два ключа.
Доступные значения режимов отображения:
Плюс такого указания ориентации в том, что она выступает в качестве «ориентации по умолчанию» для всего приложения. Поэтому, при переходе от одной странице к другой, ваше приложение остается в правильном положении. Вы можете изменить ориентацию по умолчанию с помощью API ориентации экрана.
Также вы можете применить другие стили для приложение в определённом режиме с помощью характеристики display-mode :
Стартовый адрес
Иногда при запуске приложения вам нужно, чтобы пользователь всегда попадал на определенную страницу. Ключ start_url даёт возможность это указать.
«Область» приложения
Нативные приложения имеют чёткие границы: как пользователь, вы уверены, что когда вы открываете нативное приложение, оно неожиданно не откроет другое незаметно для вас. Чаще всего, вам предельно ясно, что вы переключились с одного нативного приложения на другое. Обычно эти визуальные подсказки предоставляет операционная система (например, вызов диспетчера задач и выбор другого приложения или нажатие Cmd Tab или Alt Tab на компьютере).
С вебом все иначе: это огромная гипертекстовая система, в которой веб-приложение может охватывать несколько доменов: вы можете с легкостью перейти с gmail.com на docs.google.com и пользователь даже этого не заметит. На практике, идея существования границ приложения является абсолютно чуждой для веба. Ведь, в действительности, веб-приложение — это просто серия HTML-документов (представьте «серию труб»… м-м, нет, забудьте!).
В интернете мы знаем, что покидаем область одного приложения и переходим в другое, только благодаря веб-дизайнерам, которые были достаточно добры, чтобы сделать им уникальный различимый дизайн. В случаях, когда это не так, множество пользователей оказываются обмануты сайтами, маскирующимися под другие (старый добрый фишинг).
Формат манифеста решает эту проблему позволяя указывать «область адреса» для вашего приложения. Эта область устанавливает границы для приложения. Это может быть либо домен, либо директория на этом домене.
Интернационализация: lang и dir
Распространение приложения
Нужно написать с подробностями и скриншотами.
Цвет темы и цвет фона
Как мне определить, что пользователь «установил» приложение?
Однако по причинам конфиденциальности вы не можете непосредственно обнаружить, установлено ли ваше приложение — только узнать, что в вашем веб-приложении используется файл манифеста.
Причины для использования отдельного файла:
В спецификации есть более подробная информация о том, почему мы выбрали JSON вместо HTML-тегов.
Кто это внедряет?
Манифест и прогрессивные веб-приложения реализованы в Chrome, Opera и Samsung Internet для Android. Firefox также подаёт обнадёживающие сигналы, что будет поддерживать эти стандарты (реализации в Gecko уже больше двух лет, но она не используется ни в одном из продуктов).
Взаимодействие с поисковыми роботами
Как и другие веб-ресурсы, манифест веб-приложения должен быть доступен для любого веб-браузера или поискового робота.
Если разработчик веб-приложения хочет известить поисковых роботов о запрете на сканирование файла, он может сделать это включив манифест веб-приложения в файл robots.txt. Это описано подробнее в протоколе robots.txt. Разработчик веб-приложения также может использовать HTTP-заголовок X-Robots-Tag.
Авторы
Основная часть этого пояснения первоначально появилась в статье « The W3C App Manifest specification» на HTML5 Doctor, и была написана Маркусом Касересом и Брюсом Лоусоном. Данный материал публикуется на основе лицензии для некоммерческое использования. Вы можете спокойно изменять, повторно использовать, модифицировать и расширять это пояснение. Некоторые авторы сохраняют свои авторские права на отдельные статьи.
Файл манифеста AndroidManifest.xml
Файл манифеста AndroidManifest.xml предоставляет основную информацию о программе системе. Каждое приложение должно иметь свой файл AndroidManifest.xml. Редактировать файл манифеста можно вручную, изменяя XML-код или через визуальный редактор Manifest Editor (Редактор файла манифеста), который позволяет осуществлять визуальное и текстовое редактирование файла манифеста приложения.
Назначение файла
Общая структура манифеста
Файл манифеста инкапсулирует всю архитектуру Android-приложения, его функциональные возможности и конфигурацию. В процессе разработки приложения вам придется постоянно редактировать данный файл, изменяя его структуру и дополняя новыми элементами и атрибутами.
Описание
Элемент является корневым элементом манифеста. По умолчанию Eclipse создает элемент с четырьмя атрибутами:
Атрибуты
объявляет разрешение, которое используется для ограничения доступа к определенным компонентам или функциональности данного приложения. В этой секции описываются права, которые должны запросить другие приложения для получения доступа к вашему приложению. Приложение может также защитить свои собственные компоненты (деятельности, службы, приемники широковещательных намерений и контент-провайдеры) разрешениями. Оно может использовать любое из системных разрешений, определенных Android или объявленных другими приложениями, а также может определить свои собственные разрешения.
android:name название разрешения android:label имя разрешения, отображаемое пользователю android:description описание разрешения android:icon значок разрешения android:permissionGroup определяет принадлежность к группе разрешений android:protectionLevel уровень защиты
Элемент запрашивает разрешение, которые приложению должны быть предоставлены системой для его нормального функционирования. Разрешения предоставляются во время установки приложения, а не во время его работы.
android:name имеет единственный атрибут с именем разрешения android:name. Это может быть разрешение, определенное в элементе
данного приложения, разрешение, определенное в другом приложении или одно из стандартных системных разрешений, например: android:name=»android.permission.CAMERA» или android:name=»»android.permission.READ_CONTACTS»
Наиболее распространенные разрешения
объявляет базовое имя для дерева разрешений. Этот элемент объявляет не само разрешение, а только пространство имен, в которое могут быть помещены дальнейшие разрешения.
определяет имя для набора логически связанных разрешений. Это могут быть как объявленные в этом же манифесте с элементом
разрешения, так и объявленные в другом месте. Этот элемент не объявляет разрешение непосредственно, только категорию, в которую могут быть помещены разрешения. Разрешение можно поместить в группу, назначив имя группы в атрибуте permissionGroup элемента
Манифест
Манифе́ст (от позднелат. manifestum — призыв):
См. также
Смотреть что такое «Манифест» в других словарях:
МАНИФЕСТ — (ср. век. лат. manifestum, от лат. manifestus очевидный, явный). 1) всенародное объявление монаршей воли или о важном происшествии, напр., о войне, о рекрутском наборе, о восшествии на престол нового государя, также о прощении преступников, о… … Словарь иностранных слов русского языка
манифест — а, м. manifeste m., нем. Manifest <лат. manifestus. 1. Торжественное письменное обращение верховной власти к населению по поводу событий исключительной важности (издание какого л. законоположения, вступления в войну и др.). БАС 1. Указали мы… … Исторический словарь галлицизмов русского языка
МАНИФЕСТ — МАНИФЕСТ, манифеста, муж. (лат. manifestus) (книжн.). 1. Торжественный акт верховной власти, оповещающий население об издании законов чрезвычайной важности или об особо важных событиях в государстве. Манифест об объявлении войны. 2. Политическое… … Толковый словарь Ушакова
МАНИФЕСТ — «МАНИФЕСТ» (Manifesto) США Югославия, 1988, 96 мин. Эстетская историко приключенческая комедия. Предыдущая лента знаменитого ниспровергателя Душана Макавеева, «Парень из фирмы Кока Кола», была довольно беззубой сатирой, недалеко ушедшей от… … Энциклопедия кино
Манифест 93-х — – открытое письмо 93 немецких интеллектуалов в защиту действий Германии в начинающейся Первой мировой войне. Манифест был опубликован 4 октября 1914 года под заголовком «К культурному миру» (нем. “An Die Kulturwelt”). Содержание 1 История 2 Текст … Википедия
манифест — См … Словарь синонимов
манифест — декларация груза грузовой манифест список товаров на судне Документ, содержащий данные о перевозимых на транспортном средстве товарах (или список пассажиров) [Упрощение процедур торговли: англо русский глоссарий терминов (пересмотренное второе… … Справочник технического переводчика
Манифест — (manifesto) Документ, излагающий программу политической партии, которой она намерена следовать, если ей удастся прийти к власти. Этот документ скорее может быть отражением компромиссов между различными внутрипартийными группировками, чем… … Политология. Словарь.
Манифест — фестиваль аниме и манги Санкт Петербург Пример использования Манифест 2003 … Словарь сокращений и аббревиатур
МАНИФЕСТ — (от позднелат. manifestum призыв) 1) в России XVIII начала XX в. одна из форм правовых актов. Издавались только монархом и за его подписью и были обращены ко всему населению и всем учреждениям. В форме М. объявлялось о вступлении на престол,… … Юридический словарь
Манифест — от лат. manifestus, англ. manifesto явный А. Акт верховной власти в виде обращения к народу в связи с каким либо крупным политическим событием. Б. Обращение, декларация общественных организаций, политических партий программного характера. В.… … Словарь бизнес-терминов
Значение слова манифест
Словарь Ушакова
маниф е ст, манифеста, муж. (лат. manifestus) (книж.).
1. Торжественный акт верховной власти, оповещающий население об издании законов чрезвычайной важности или об особо важных событиях в государстве. Манифест об объявлении войны.
2. Политическое воззвание, обращение, имеющее принципиальный, программный характер (полит.). Коммунистический манифест Маркса и Энгельса.
3. Письменное изложение принципов творчества какой-нибудь литературной или художественной группы. Манифест футуристов.
4. Подробная опись товаров, погруженных на судно (торг.).
Политическая наука: Словарь-справочник
(от позднелат. manifestum призыв)
особый акт главы государства или высшего органа государственной власти, обращенный к населению. Принимается в связи с каким-либо важным политическим событием, торжественной датой и т. п.
Воззвание, декларация политической партии, общественной организации, содержащие программу и принципы деятельности.
Письменное изложение литературных или художественных принципов какого-либо направления или группы.
Современный экономический словарь. 1999
документ, предъявляемый судовой администрацией таможенным органам, содержащий данные о перевозимом на судне грузе в виде перечня накладных (коносаментов).
Этимологический Словарь Русского Языка
Французское – manifeste (обращение).
Латинское – manifestus (очевидный).
Слово «манифест» проникло в русский язык в середине XVII в. прямо из французского либо посредством немецкого.
Во всех без исключения европейских языках слово появилось из латинского, где было образовано путем сложения двух слов: manus – «рука», «сила» и festus – «торжественный».
Манифест – это «письменное обращение программного характера», а также «торжественное обращение верховной власти к населению».
Справочный Коммерческий Словарь (1926)
в торговом мореплавании — подробная опись погруженных на судно грузов, предъявляемая в портовую таможню.
Словарь экономических терминов
документ, предъявляемый судовой администрацией таможенным органам, содержащий данные о перевозимом на судне грузе в виде перечня накладных (коносаментов).
Историко-этимологический словарь латинских заимствований
1) Письменное обращение верховной власти к населению по поводу событий исключительной важности;
2) письменное обращение политической партии, общественных организаций, имеющее программный характер;
3) письменное изложение литературных или художественных принципов какого-л. творческого направления.
► позднелат. manifestum «призыв». Заимств. из фр. manifeste «воззвание, обращение», возможно, через нем. Manifest (Фасм., II, 569) или польск. manifest через нем. Manifest (КДРС). Известно с середины ХVII в.
Впервые приводится в Л.в.н. (374) в значении «объявление, письмо королевское и княжеское, о чем объявляет хотение свое ради нужного дела». Ср.: БАС, V, 605-606.
С конца 40-х годов XIX в. словом манифест стало называться «письменное обращение политических партий или общественных организаций». Значение приводится в БСЭ (ХХVIII, 33). В середине XIX в. слово манифест получает широкое распространение в общественно-политической сфере: «открытый листок, письмо; объявление, оглашение правительством о каком-л. государственном деле; всенародное объявление (Сл.Даля1, II, 896). С конца XIX в. применяется в сфере литературы и искусства (Сл.Ушак., I, 141).
Следует отметить, что с середины XIX в. до начала XX в. слово манифест употребляется в значении «погрузный списк, открытая запись товаров купеческого судна» (Сл.Даля1, II, 896).
Толковый словарь русского языка (Алабугина)
Письменное обращение, воззвание, программа.
* Декабрьский манифест. Литературный манифест. *
Лексикон туриста
список членов команды и пассажиров морского пассажирского судна с указанием паспортных данных.
Энциклопедический словарь
Словарь Ожегова
МАНИФЕСТ, а, м.
1. Торжественное письменное обращение верховной власти к народу (устар.).
2. Письменное обращение, воззвание, изложение какихн. положений программного характера. Литературный м. М. к народам мира.
Словарь Ефремовой
Энциклопедия Брокгауза и Ефрона
Толковый словарь живого великорусского языка, Даль Владимир
м. открытый лист, письмо; объявление, оглашение правительством о каком-либо государственном деле; всенародное объявление.
Погрузной список, открытая запись груза купеческого судна.
Большой юридический словарь
воззвание, декларация политической партии, общественной организации, содержащие программу и принципы деятельности;
документ, содержащий перечень коносаментов (М. грузовой). Представляется судовой администрацией таможенным органам, стивидорным компаниям в порту назначения. Составляется по данным выписанных коносаментов и содержит: наименование судна, порт погрузки, номера коносаментов, наименование, массу, объем и количество груза по каждому коносаменту, имена отправителей и получателей груза, маркировку груза, ставку и сумму фрахта.
Большая Советская Энциклопедия
(позднелатинское manifestum ≈ призыв, от латинского manifesto ≈ показываю, открываю),
торжественное обращение, декларация какой-либо организации, содержащие изложение политических взглядов.
Акт главы государства или высшего органа власти, обращенный к народу в связи с каким-либо крупным политическим событием (реформа системы власти, воцарение нового монарха и так далее).
Пишем правильный манифест для сайта
Думаю, многие знают о возможности добавления иконки сайта на рабочий стол мобильного устройства. Это удобно и причины могут быть разные (нету мобильного приложения, предоставляющего туже информацию, либо вы хотите сразу открыть определенную страницу сайта и т.д.). За некоторые свойства того, как будет отображаться сайт и как будет выглядеть иконка после добавления и отвечает файл манифеста.
Манифест для сайта – это простой JSON-файл, который позволяет вам настроить следующие вещи:
1. Какая будет иконка у пользователя, после того как он добавит ваш сайт на рабочий стол
2. Как будет запускаться ваш сайт (с адресной строкой, без нее или в полноэкранном режиме)
3. Splash screen
4. Цветовую тему
5. Ориентацию экрана
6. Начальный url
и многое другое
Подробнее
Чтобы показать, как manifest влияет на отображение сайта, я создал простое, тестовое веб-приложение, которые возвращает название региона по коду.
Сначала зафиксируем положение дел до добавления файла манифеста.
После того как пользователь добавил иконку, она будет выглядеть так (на Андроид 5.0)
Название браузер выдернул из тега tilte. Так что, если у вас нету файла манифеста, то хотя бы title должен быть нормальным. А вот иконка в виде буквы “G” появилась сама (не понятно, почему именно G).
А сам сайт будет выглядеть так
Тут, собственно, ничего особенного, кроме того, что мы можем убрать адресную строку, чтобы приложение было похоже на нативное.
Встречайте, manifest.json!
Генерируй и властвуй.
Конечно, можно написать весь манифест ручками, но это скучно, долго и можно ошибиться. Уже нашлось немало умельцев, которые автоматизировали этот процесс. Ниже небольшой обзор инструментов для автоматической генерации манифеста.
brucelawson.github.io/manifest — все что вам нужно – заполнить поля (есть краткое описание каждого параметра, так что процесс довольно легкий), остальное за вас сделает генератор.
www.favicon-generator.org — хоть прямое назначение этого сайта генерировать иконки, а не манифест. Он все же его создает и в отличии от предыдущего у вас уже будут и иконки (для iOS и Аднроид) и манифест. Правда, манифест придется подправить (изменить имя и прочее настройки).
manifest-validator.appspot.com — этот инструмент предназначен для валидации вашего манифеста.
Результат
Итак иконки нарисовали, манифест сделали. Дальше надо сообщить браузеру о манифесте, добавив в тег head следующие
Все. Смотрим, что получилось
Иконка:
Слева до. Справа после (иконка получилась невпечатлительная, с удовольствием поменяю, если пришлете лучше). Тут уже заметно, что Android использовал имя из поля short_name, так как name не помещается, видимо.
Загрузка приложения: 
Тут самые приятные изменения. Во-первых, вместо белого экрана вы видите подобие splash screen, который сам создается системой из иконки, полного имени и цвета, указанного в манифесте (возможно, это происходит только на android 5.0 выше). Во-вторых, этот splash screen плавно исчезает, что визуально красиво.
Сам сайт: 
Тут тоже все стало лаконично. Без UI браузера сайт смотрится гораздо лучше и больше похож на нативное приложение.
Я перечислил не все свойства, которые можно указать в файле манифеста. С полным списком можно ознакомиться здесь
Демо приложение
Репозиторий приложения
Также необходимо подчеркнуть, что все это не будет работать на яблочных устройствах. На них можно достичь приблизительно такого результата, только надо использовать другой способ.
