Чем Android отличается от смартфона
Наверное, в каждой компании есть человек, который знает всё о современной технике и может посоветовать любой прибор — от смартфона до кондиционера. В своей компании этот человек, как ни странно, я. Соответственно, все вопросы по типу «что лучше купить», адресуются именно мне. В большинстве своём они сводятся либо к сравнению Android и iPhone, либо к просьбе помочь выбрать лучший аппарат из доступных. Короче говоря, вопросы совершенно стандартные. Но недавно я наткнулся на вопрос, который застал врасплох даже меня.
Android и смартфон — это очень близкие понятия, но не тождественные
Чем Android отличается от смартфона? Именно этот вопрос мне задал ещё, в общем, не старый и достаточно продвинутый человек, который сам пользуется Айфоном и даже знает, что такое iCloud. Честно сказать, я даже не сразу нашёлся, что ответить. Но, собравшись с мыслями и поборов желание гаденько захихикать, я объяснил, что к чему. Правда, через какое-то время я снова столкнулся с этим вопросом, но уже в Гугле, где он оказался на одной из самых высоких позиций. Видимо, существует немало людей, которые не понимают разницы между Андроидом и смартфоном. Что ж, восполняем пробел.
Что такое Android
Начать предлагаю с определения, что такое Android. Android — это операционная система, на базе которой работает большинство смартфонов в мире. Проще говоря, это набор различных программ, которые взаимосвязаны между собой единым интерфейсом и позволяют смартфону функционировать. Выражаясь ненаучным языком, ОС — это душа электронного устройства, без которой оно будет представлять собой безжизненный кирпич.
Смартфон — это железо, а Android — это софт
В отличие от операционной системы, которая имеет полностью программную природу, смартфон — это совокупность аппаратных компонентов, объединённых в одно целое. Не зря любые устройства и их начинку называют хардом (от англ. — жёсткий), а операционку, которая приводит это железо в действие, — софтом (от англ. — мягкий). Но ни хард, ни софт не могут существовать в отрыве друг от друга. Потому что софту нужно железо, чтобы запуститься, а железу — софт, который его запустит.
Впрочем, Android — это не одна единственная операционная система. Я бы назвал её платформой, на базе которой строится множество других ОС. Например, Wear OS — для часов, Android TV — для телевизоров, Android Auto — для автомобилей и т.д. Несмотря на то что они составляют программную основу кардинально разных устройств, все они имеют идентичную природу. В их основе лежит одно и то же ядро. Если хотите, общий базис, который в свою очередь дополняется всевозможными надстройками, соответствующими предназначению устройств, под которые они созданы.
Android — какой лучше
Даже сам Android для смартфонов необязательно должен быть единым, поэтому нельзя однозначно сказать, какой Андроид лучше. Это открытая операционка с изменяемым программным кодом, чем успешно пользуются производители смартфонов. Чтобы не использовать Android в чистом виде, который, как ни крути, не обладает всем необходимым пользователям набором функций, производители задействуют оболочки. Это дополнительная надстройка для основной ОС, которая изменяет её дизайн, функциональный состав, а в отдельных случаях даже уровень безопасности. Поэтому, если вы возьмёте в руки смартфоны Samsung и, скажем, Xiaomi, то заметите значительную разницу в логике управления ими, не говоря уже о дизайне и доступных возможностях.
Android может быть разным и умещаться даже в часы, а не только смартфоны
Android — подобен газу. Он заполняет всё доступное пространство, которое ему отведут. Поэтому мобильная операционка Google может одинаково хорошо работать как на флагманских смартфонах, так и на откровенно недорогих и слабых с технической точки зрения. Таким образом железо, на котором будет запускаться Android, по сути, может быть ну практически любым. Главное — оптимизация. Поэтому Google требует, чтобы производители при лицензировании ОС добавляли данные о характеристиках своих устройств в среду разработки Google Play Console, чтобы приложения из каталога работали с ними адекватно.
Обязанность по оптимизации целиком и полностью лежит на производителе смартфона. Именно он должен решить, что нужно делать, чтобы операционка нормально работала на его устройстве. Если железо слишком слабое, можно воспользоваться Android Go. Это урезанная версия оригинальной ОС с ограниченным набором функций и специальным набором приложений, которые тоже имеют приставку Go. Он более легковесны и менее ресурсоемки, что способствует более быстрому и долгому функционированию устройства без подзарядки.
Источник
Мобильный web сайт или мобильное приложение?
Данное эссе дает обзор аргументов, приведенных в различных статьях для принятия решения, какую платформу выбрать при разработке проектов для мобильных устройств. В конце приведена попытка составить схематический итоговый алгоритм выбора платформы.
Определения
Существует два направления технической реализации проектов для мобильных устройств: мобильный web сайт и мобильное приложение.
Мобильным web сайтом будем считать специализированный сайт, адаптированный для просмотра и функционирования на мобильном устройстве. Сайт может включать в себя интерактивные компоненты с использованием JavaScript, HTML5, новых API браузеров. В этом случае такую реализацию называют web-приложением. Далее, чтобы избежать путаницы любой вариант, работающий внутри браузера мобильного устройства, будем называть web-сайтом.
Мобильное приложение – это специально разработанное приложение под конкретную мобильную платформу (iOS, Android, Windows Phone). Обычно приложение разрабатывается на языке высокого уровня и компилируется в нативный код ОС, дающий максимальную производительность.
Существует еще третий вариант – мобильное приложение, включающее в себя компонент браузера. В этом случае часть мобильного приложения чаще всего используется для навигации и интергации с ОС, а web-компонент – для показа контента. Обычные пользователи не могут зачастую отличить такой вариант от нативного мобильного приложения.
Аргументы
Интерфейс
Одним из первых аргументов, которые приводят сторонники приложений – наиболее близкий к ОС и привычный для пользователей интерфейс. Действительно мобильное приложение наиболее тесно интегрировано с платформой и дает реализовать привычный отзывчивый интерфейс. С другой стороны web сайт с помощью хорошего форматирования и использования JavaScript может дать вполне понятный метод взаимодействия. На текущий момент отзыв web сайта значительно уступает приложению, но мощность мобильных устройств продолжает расти и сами браузеры существенно меняются в лучшую сторону. Кроме того, различные версии мобильных ОС могут диктовать свои стандарты, которых приходится придерживаться. При этом некоторые нововведения могут оказаться не совсем понятны обычным пользователям. Существенным в данном случае является то, что наиболее активными пользователями (теми кто выставляет рейтинг и делает комментарии в магазинах приложений) являются те, кто «фанатеет» от последних новшеств мобильной ОС. На это стоит обратить внимание при продвижении проекта – их можно использовать как союзников, помогающих распространению.
Быстродействие
Web сайт, а особенно интерактивный, существенно уступает приложению с точки зрения быстродействия. Браузеры мобильных устройств пока не могут порадовать высокой производительностью, кроме того, web-разработчики используют не самые оптимизированные версии библиотек (плохая реализация этих библиотек никак не сказывается на «больших» браузерах, поэтому с этим там можно смириться). Однако и приложение не всегда может радовать хорошим быстродействием – излишняя анимация, сложный интерфейс значительно снижают «отклик». Кроме того, для сложной графики и анимации приходится использовать языки более низкого уровня, разрабатывать или покупать отдельные специализированные библиотеки.
Интеграция с платформой
В этой области приложения далеко опережают сайт. В приложении существенно больше возможностей для доступа к устройству. Однако выше упоминался уже третий вариант, когда компонент браузера внедряется в приложение и в этом случае такая разница нивелируется. Кроме того, постоянно растет уровень предоставления доступа к возможностям устройства из браузера через расширяющийся набор API.
Наличие Интернет
Web сайт запускается из браузера, поэтому требует постоянного соединения с сетью. Это не имеет значения, если проект реализуется исключительно как онлайновый. Однако даже в этом случае из-за особенностей мобильного доступа в Интернет переход между частями приложения (навигация) связана с неприятными для пользователя задержками. Возможно, использование API для хранения локальных данных решат эту проблему, но пока примеров такого применения найти не удалось. Мобильные приложения могут осуществлять работу без подключения, выполняя кеширование и обновление данных, если требуется, при появлении соединения. Но все же и приложению нужно подключение в подавляющем большинстве бизнес-решений.
Фрагментация
Для реализации проекта на всех или каких-то определенных платформах требуется разработать приложение для каждой из платформ отдельно, причем на каждой свои среда и язык разработки, свои стандарты интерфейса. В случае мобильного сайта одна версия должна покрывать потребности всех платформ. Так выглядит в теории. Но на практике оказывается, что браузеры на различных платформах функционируют по-разному. Приходится поддерживать либо несколько версий одного сайта, либо в коде подстраивать выдаваемый контент под текущий запрос. Существенные отличия в размерах экрана также сказываются и на верстке сайта.
Ресурсы
Существует такой аргумент, как наличие специалистов. Считается, что специалиста для разработки мобильных приложений очень трудно найти и требуется очень высокая оплата. Учитываем еще то, что под каждую платформу, скорее всего, потребуется отдельный разработчик. В то время как web разработчиков очень много и их услуги сравнительно меньше стоят. Видимо все зависит от конкретной ситуации и конкретного места. Если в наличие есть web-разработчик, то наиболее выгодным будет разработать именно web сайт, если есть мобильные разработчики, то вполне может оказаться не слишком затратным разработка приложения. Но опять же, зависит от проекта – если потребуется серверная часть (а она скорее всего потребуется), то опять же нужен будет web-разработчик, хотя возможно не такой высокой квалификации и трудоемкость его части будет существенно ниже.
Публикация
Приложения некоторых платформ «завязаны» на определенный магазин (AppStore, Windows Store). Даже если такой жесткой привязки нет, то пользователи все равно привыкли находить приложения в магазинах (Google Play). Такие магазины накладывают существенные ограничения на функции приложений (в первую очередь в области платных услуг), к тому же требуется значительно время на утверждение каждой новой версии. Со своей стороны web сайт доступен сразу, достаточно только открыть браузер и ввести адрес (хотя если присмотреться, то это довольно трудоемкое действие может оказаться). Новая версия web сайта доступна сразу на момент публикации. Возможность предоставления платных услуг никак не ограничивается. Опять же аргумент весьма своеобразный – с одной стороны ограничение и медленная публикация в магазине, с другой – в магазине уже есть огромное число пользователей и уже готовые системы для оказания платных услуг. Тогда как на сайт пользователей надо привести и оплата через сайт на мобильном устройстве остается очень трудоемкой процедурой.
HTML5
Большое внимание в последнее время уделяется аббревиатуре HTML5. Это понятие существенно отличается, если смотреть на него с маркетинговой или технической точки зрения.
Технологически HTML5 это дальнейшее развитие языка разметки HTML. Однако сделан существенный шаг в сторону большей структуризации представления, нежели формата отображения. В язык добавлены большие мультимедийные возможности для проигрывания аудио и видео. Добавлена возможность работать с графикой. Существенно расширен язык форматирования CSS. В язык JavaScript добавлено несколько API для работы с графикой, локальными данными, мультимедийным контентом. Сам язык существенно переработан в сторону увеличения быстродействия. Стандарт HTML5 все еще находится в разработке и продолжает дополняться.
С маркетинговой точки зрения HTML5 это гораздо более широкое понятие. Под ним понимают еще много дополнительных API в той или иной степени поддерживаемых различными браузерами, многие интересные расширения CSS (в первую очередь в области интерактивного отображения). Основой понятия является высокая интерактивность сайта, которая позволяет пользователям принимать его за нативные приложения.
С точки зрения мобильной разработки существенно разделять обычный web сайт и сайт с использованием HTML5 не имеет смысла. Фактически стандартом любого сайта становится интерактивность в той или иной мере, реализованная с помощью JavaScript и новых API. Не целесообразно выделять отдельно разработчиков web сайта и разработчиков HTML5 – web разработчик должен свободно владеть технологиями HTML5 и использовать их в случае, если проект удобно реализовать с помощью последних разработок.
Выводы
Как оказывается, ни один из приведенных аргументов не склоняет чашу весов в ту или иную сторону. В каждом аргументе есть как преимущества, так и недостатки обоих вариантов решения. Третий, комбинированный, вариант тоже может решить часть проблем, но при этом порождает новые. Поэтому в каждом конкретном случае надо принимать решение исходя из текущей ситуации.
С точки зрения экономии ресурсов самым предпочтительным вариантом выглядит web разработка. Главное – не погрязнуть в тонкостях реализации, предоставить наиболее полезные функции пользователям. Помнить, что главное – контент, а «красивости» (анимация, графика) отходят на второй план.
Если планируется онлайн работа проекта как основной вариант взаимодействия с пользователем – безусловно, надо начинать с сайта, который может охватывать не только мобильных клиентов, но и пользователей стационарных компьютеров. В случае успеха можно далее реализовать отдельно мобильные приложения на выбранные платформы. Для большинства бизнес-приложений такой вариант наиболее подходит.
Если проект предусматривает больше оффлайн работу и нацелен на мобильных пользователей, то тут стоит отдать предпочтение приложениям. Однако, как упоминалось выше, возможно web разработчик все равно потребуется.
Для реализации игр и других приложений, требующих высокой производительности интерфейса вероятно дальновиднее реализовать через приложения. Существуют кросс платформенные библиотеки для разработки игр, которые позволяют на одном коде (или с минимальными изменениями) реализовать нативные приложения для различных платформ.
Источник