Что такое нативный файл

Обновлено: 07.07.2024

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

Оптимизация приложений под конкретную Операционную Систему
Оптимизируя нативные продукты под определенную ОС, мы повышаем их производительность и получаем такие преимущества, как:

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

Отметим, что вышеперечисленные качества отнимают у разработчика много времени и требуют больших финансовых вливаний.

Если к приложению предъявлены менее требовательные запросы, то можно рассмотреть и другие, более простые варианты.
Кроме нативного приложения существует гибридный вид и веб-аппы.

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

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

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

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

Гибридный вид приложения подойдет той целевой аудитории, у которой всегда есть доступ к интернету. При этом функционал продукта будет минимален.

И не забывайте продвигать свое мобильное приложение, чтобы пользователи могли его узнать и воспользоваться предложением.

Понятие нативный код - код который поставляется разработчиками чего-либо. Как например весь код в Java SDK под Android считается нативным. Все библиотеки третих разработчиков уже нет.

Бред. Нативный код - код, компилируемый в машинные инструкции и выполняемый непоредственно процессором устройства. Любой код на Java не нативен по определению, так как выполняется на виртуальной машине. Нативный код могут писать как разработчики платформы, так и третьи разработчики (при помощи упомянутого Android NDK).

23k 3 3 золотых знака 46 46 серебряных знаков 69 69 бронзовых знаков @fori1ton, возможно я не до конца понял Ваш ответ, но IMHO утверждение Любой код на Java не нативен по определению, так как выполняется на виртуальной машине. несколько спорно, если вспомнить о такой полузабытой штуке, как PicoJava (аппаратная интерпретация Java байт-кода). -- А по существу ответа, что нативным называется код, который исполняется аппаратно, я согласен (хотя иногда трудно провести границу между чистой аппаратурой, микропрограммами, гипервизором и эмуляцией некоторых команд системным ПО). А учитывая, что современные процессоры умеют переставлять команды местами, более того, они транслируют инструкции в свое собственное внутреннее представление. @KoVadim, да, и это очень напоминает JIT компиляцию, только не для байт-кода, а для машинных инструкций.

В одном слове "нативный" (от англ. native, "родной") недостаточно информации. Необходимо уточнение: родной для кого?

  • Для JVM родной код - байт-код, родной язык - Java (и другие).
  • Для Windows родной код - Portable Executable, родной язык - C++, Delphi и др.
  • Для процессора x86 родной код - инструкции x86, язык - ассемблер.

и т.п. Многие современные приложения выполняются на "слоеном пироге" из платформ: например, написанное на Java приложение выполняется на JVM, которая в свою очередь может выполняться под (или над?) Windows, которая выполняется на процессоре x86. Каждый слой имеет свой нативный код. Код из другого слоя для него не будет нативным, например, для Windows Java-код ненативный.

Родной язык - язык, для которого есть компилятор в родной код (для данной платформы).


Бредовый ответ. Это достаточно общеизвестное понятие, чтобы в нём было достаточно информации. @Qwertiy, можно конкретней, с чем именно вы несогласны? @rjhdby, перечитал последний абзац. Чем он вам не понравился?

Обратимся к Wiki

In computing, software or data formats that are native to a system are those that the system supports with minimal computational overhead and additional components. This word is used in such terms as native mode or native code.

Something running on a computer natively means that it is running without any external layer requiring fewer software layers. For example, in Microsoft Windows the Native API is an application programming interface specific for Windows NT kernel, which can be used to give access to some kernel functions, which cannot be directly accessed through a more universal Windows API.

Нативный для среды исполнения код/язык/АПИ/Формат данных и т.д. - это такой, который понимается средой исполнения по умолчанию, без сложных надстроек. Абсолютно четкого определения нет - есть некое "общепринятое" понимание, которое может разниться от человека к человеку.

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

PS На ум пришла хорошая аналогия. Уровень знания иностранного языка определяется экзаменами по нему с выставлением оценки: A1,A2,B1,B2,C1,C2. Но есть и еще один уровень владения языком - native. Означает он что человек с детства живет в данной языковой среде, говорит на нем и думает(!) на нем. Уровень native не говорит о грамотности человека, зачастую native хуже знает правила языка, чаще ошибается в грамматике и пунктуации, чем С2, но он для него РОДНОЙ.

Что такое мобильное приложение знают все. А вот чем нативное отличается от PWA, что такое PWA, и почему они наступают на пятки классической разработке — расскажем.

Что такое нативное приложение

Нативные приложения — классические мобильные приложения, прикладные программы, разработанные специально для определенных устройств и доступные для скачивания в Google Play или App Store. Чтобы создать такое приложение, используют языки программирования — для iOS Objective-C и Swift, для Android — Java и Kotlin, программировать на которых долго и дорого.

Они охватывают только одну платформу и доступны только в магазинах приложений (официальных и неофициальных — например, сторы Xiaomi или Huawei для Android-приложений). Нативные приложения могут использовать камеру, микрофон, контакты, внутреннюю память и работать без подключения к интернету.

Что такое PWA-приложения

С 2019 года можно загружать и скачивать PWA-приложения, адаптированные под Google Play и App Store. Преимущество PWA-приложений перед нативными в том, что обновления грузятся мгновенно при перезагрузке страницы, их не нужно дополнительно скачивать. Ещё одно преимущество — выбор, скачивать приложение из магазина или загружать из браузера, обходя запрет установки приложений из неизвестных источников.

Есть и ограничения: не каждый девайс поддерживает все функции PWA, а у пользователей iOS для данных и файлов такого приложения выделяется не больше 50 МБ — причем версия iOS должна быть не ниже 11.3, нет интеграции с Siri и доступа к встроенным платежам. Офлайн-PWA пока работают с ограниченным набором функций.

С помощью PWA можно быстро протестировать гипотезу, замерить интерес пользователей или сделать полноценно работающий сервис — например, аналог Airbnb «WOOM» или методичка по макияжу «MAKE».


Таблица отличий PWA, нативных и веб-приложений

На чем собирать PWA-приложения

PWA можно собрать на Glide или Adalo, а научиться этому на курсе «Зерокодер мобильных приложений». Оба конструктора позволяют сделать версию приложения и для мобильных устройств, и для компьютеров и ноутбуков.

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

Некоторые зерокодинговые платформы позволяют загрузить PWA-приложения в Play Market и App Store и подключить push-уведомления, чтобы напоминать пользователям о важных событиях. В Adalo встроена такая опция, а в Bubble это можно сделать через специальный контейнер. У Glide-приложений такой возможности нет — их нельзя залить в сторы и подключить пуши. Плюс в том, что даже если магазины приложений затянут с публикацией — например, будут долго согласовывать, аппка всегда доступна для вас и клиентов в браузере.

Какие задачи решит PWA

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

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


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

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

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

Системный элемент, родной для операционной системы. Есть по-умолчанию в Xcode и Android Studio.


✅ Работает быстро, сразу, из коробки.
✅ Разработчик добавит на экран за полчаса.
✅ Работает быстро, сразу, из коробки. Все состяния продуманы.
✅ Привычны людям, сразу ясно как с ними работать

😥 Выглядит и ведёт себя так, как его придумали разработчики Эппл или Гугл. Обычно, нативному элементу нельзя добавить поведение или сильно изменить внешний вид.
😥 Поддерживается разработчиками операционной системы. С выходом новой версии, нужно просматривать всё приложение не отвалилось ли чего. Обычно разработчики о таком предупреждают.
😥 Если глючит, то глючит сразу по всей системе.

Созданный с нуля под нужды проекта.


✅ Полный контроль над поведением и внешними видом. Всё зависит от желаний дизайнера и умений разработчика.
✅ Можно найти готовый элемент в интернете и скинуть разработчику. Работает не всегда, т.к. элемент может быть написан криво.

😥 Качество исполнения зависит от проработанности. Если разрабочик не очень и дизайнер плохо продумал элемент, то и работать он тоже будет посредственно.
😥 Поддерживается разработчиком продукта. Если он уволится и не оставит документации— будет больно. Скорее всего кастомный элемент перепишут с нуля и круг замкнётся.
😥 Люди не всегда сразу понимают как работать с кастомным элементом,

Смотрите на сроки, разработчика и цель приложения.

  1. Сроки поджимают. Разработчик быстрее соберёт сценарий, вы быстрее его проверите. Позже обвесите дизайн кастомными элементами, если понадобится. Сначала сделайте так, выпустите и проверьте. Потом замените на кастом. Сравните метрики.
  2. У разработчика мало опыта. Лучше сделать простое и рабочее приложение, чем переусложнить и получить кривой продукт.
  3. У дизайнера мало опыта. Новички быстро растут и уже через месяц дизайнер захочет изменить элемент.
  4. Приложению важно выглядеть привычно. Такое может быть, если у приложения огромная аудитория и оно должно восприниматься родным Айос или Андроид.


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

Нативные элементы привычны людям, они видят их по всей системе и знают как они работают. Если клиентам важнее решать свою задачу, то пусть решают привычной среде. Не тратье их время на обучение интерфейсу. Если у вас приложение по платежам ЖКХ — нативные элементы ваш выбор.


  1. Важно удивить, выделиться. Если у вас очередное приложение курсов валют — выделяйтесь. Не обязательно делать всё приложение кастомным. Достаточно только самых важных экранов.
  2. Важно сохранить экосистему продукта и делать как на сайте, другом приложении, печатке, брендубуке. Обычно такое встречается у больших экосистем, типа Сбера, Яндекса, Тинькоффа.
  3. Нужно сэкономить на дизайне и описании требований. Делайте один интерфейс на все платформы без оглядки на платформы
  4. Для решения задачи нет нативных элементов. Такое встречается довольно часто в сложных интерфейсах, типа выбора детали на схеме или места в самолёте.

Создать можно любой элемент, вопрос только во времени.

Кастомному элементу нужно придумать все состояния: активный, заблокированный, с длинными надписями, короткими, иконками, заливкой, выбранный, не выбранный, маленький, большой, на нажатие, при загрузке. У нативного элемента всё уже продумано. Пример с табами прям как дизайн систему прорисовывают

Если клиент утвердит ваш дизайн, а его разработка займёт больше времени, чем вы договорились — придётся пересогласовывать сроки или дизайн.

Неважно какого уровня разработчик — советуйтесь с ним. Разработчик оценит сколько времени ему нужно на вашу задумку. Может работа займёт час, а может неделю.

Советуйтесь с разработчиком каждый раз. То, что ещё неделю назад было кастомом и собиралось за три дня, сегодня может оказаться нативом и собираться за минуту.

Не всё, что есть в родных приложениях Эппл и Гугл можно назвать нативом. Советуйтесь с разработчиком о сложности элемента, даже, если вы нашли его в родных приложениях Айфона или Андроида.

Backdrop. Его ещё не выпустили как нативный компонент, но уже есть дизайнерская спецификация. Сейчас потребуется около недели, чтобы сделать его достойно, но как только он станет нативным, то добавляться будет моментально.


Чтобы добавить такую шторку «как в картах» потребуется как минимум несколько дней.

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

32 отличия дизайна мобильного приложения под iOS и Android Артур Абраров из Redmadrobot
Рассказывает как перенести дизайн с одной платформы на другую, обойдясь нативными средствами.

Цикл Дизайн данных Павел Шерер
Самое глубокое раскрытие темы «что нужно знать дизайнеру о разработке» которое я смог найти. Павел рассказывает о том, как устроены сервисы технически, что такое АПИ, сервер, запрос, как это работает с базой данных, как понять что храним локально, а что на сервере и как это всё влияет на дизайн. Эти знания помогут дизайнеру продумывать решения на новом уровне, обязательно прочтите.

Вычислительная Фотография Вастрик
Статья о том, как хитро устроена фотография в наших смартфонах. Наглядно показывает, что самое сложное — придумать хитроумное решение, а уже потом как его написать. Как только вы поймёте логику принятия таких решений — сами сможете подкидывать идеи программистам.

Читайте также: