Что такое нативный браузер
Что такое «Нативное приложение»?
JavaScript?! Как Phonegap? Не, я лучше сделаю нативное приложение.
Приложения на Titanium – это не сайты, которые чудесным образом обернуты в приложения.
Что ты имеешь в виду под «Нативной» разработкой?
А что делает приложение нативным?
Что такое хороший User Experience?
Выглядит и ведет себя ожидаемо
iOS, Android и Windows имеют различные требования к дизайну (iOS, Android,Windows) и если вы опираетесь на них, ваше приложение более предсказуемо и следовательно, проще в использовании.
Отличный пример – TabGroups. На Андроиде они, как правило, встроены в Action Bar и будут прокручиваться если их много. На iOS Tab Bar расположен внизу и если у вас больше пяти табов, то пятый будет вести на экран выбора нужного таба. На Windows Pivot Tabs работают почти как на Андроиде, но выглядят немного по-другому, они не являются частью Command Bar, который расположен внизу экрана.
Так что технология, которая используется для разработки нативного приложения, не должна иметь собственные UI контролы, вместо этого она должна использовать те, которые предоставлены платформой.
В Titanium есть кросс-платформенные API почти для всего, и он всегда переводит их в платформенные UI-компоненты. Например, Ti.UI.TabGroup даст вам результат как на картинке выше, но напишете вы при этом один код (Alloy):
Для тех API, которые представлены не во всех платформах, мы используем пространства имен, например, Ti.UI.Android.CardView.
Единство API там, где это возможно, платформо-зависимые API – там, где нет. Всегда с уважением к целевой платформе.
Нативные, гибридные и web-приложения в сравнении
Dec 24, 2020 · 9 min read
Итак, вы решили разработать для своего бизнеса приложение. Каков в этом случае следующий шаг?
Что ж, выбор типа создаваемого приложения во мн о гом зависит от того, на каких пользователей вы нацеливаетесь. Здесь вам нужно определить, какой из этих видов ваша целевая аудитория предпочтет использовать, как долго они будут задерживаться в нем, сколько раз в месяц они будут к нему обращаться и т.д.
Но повода для волнения здесь нет, так как мы собрали статистику и ряд фактов, которые помогут вам лучше понять и сознательно выбрать наиболее подходящий вашему бизнесу тип приложения.
Статистика и факты по загрузкам и использованию
В качестве обобщения этих статистических данных можно уверенно сказать, что индустрия мобильных приложений процветает и с каждым годом достигает все новых вершин своего развития. Поэтому давайте предположим, что вы уверено настроены на создание приложения, но, прежде чем приступить к этому процессу и принять окончательное решение, вам нужно взвесить ряд факторов. С технической точки зрения важнейшими факторам являются нужды самого бизнеса, требования пользователей, варианты дизайна UX/UI приложения, выбор подходящего брэнда, а также вывод продукта на рынок. Все эти факторы так или иначе определяют успешность всего процесса.
Тем не менее многих из вас интересует вопрос, почему для успеха бизнеса необходимо выбирать именно конкретный тип приложения, когда вся эта индустрия имеет очень высокие темпы развития в целом. Причины тому следующие:
Выбор приложения, которое сможет обеспечить вашему бизнесу длительный устойчивый успех, оказывается достаточно сложной задачей. В связи с этим мы подготовили список пунктов, имеющих важнейшее значение при выборе типа приложения.
Для начала давайте сформируем базовое понимание каждого из их видов.
1.Знакомство с типами приложений
Обзор
Нативные приложения: отличная производительность в обмен на высокую стоимость
Нативные приложения создаются для конкретной платформы, нацеливаясь на пользователей либо Android, либо iOS. Если вы хотите сфокусировать внимание на пользователях обеих платформ, тогда будьте готовы к разработке двух отдельных приложений, одно для Google Play Store, а второе для Apple App Store. Поскольку каждая из этих платформ имеет совершенно различные стандарты, для их соблюдения использовались разные языки программирования.
Гибридные приложения: пишутся один раз и запускаются на всех устройствах
Многие относят гибридные приложения к кроссплатформенным, но общее между ними лишь то, что они имеют одну базу кода. Тем не менее кроссплатформенный подход отлично работает для малобюджетных приложений с безопасными, стабильными и легко обслуживаемыми функциями.
С другой стороны, гибридные приложения — это профессиональное решение для развивающихся стартапов и бутстрэпперов, так как они обеспечивают высокую скорость разработки и позволяют создавать идеальные решения для бизнеса. Если UX и производительность не стоят в качестве приоритетов, тогда гибридное приложение окажется превосходным решением. Среди основных инструментов для их разработки можно назвать Flutter, Ionic, React Native, Visual Studio и др.
web-приложения: одно приложение для всех типов экранов и платформ
Такие приложения предоставляет вам околонативный опыт и возможность выполнения во всех браузерах и устройствах, включая ноутбуки, планшеты, смартфоны, умные часы и даже ТВ. Единственным требованием является наличие на устройстве браузера. В этом случае вместо разработки отдельных приложений для каждой платформы можно нацелиться на все сразу, создав всего одно.
2. Производительность
Обзор
Производительность приложения — это одна из важнейших его составляющих, определяющая продолжительность использования этого приложения пользователями. В ходе опроса выяснилось, что наиболее распространенными причинами удаления приложений являются следующие: 59% пользователей назвали низкую скорость, 76% назвали фризы экрана, а 71% сбои в работе. Когда доходит до оценки типов приложений в отношении их производительности, нативные варианты могут обеспечить несопоставимые с другими показатели.
Нативные приложения
Этот вид может гарантировать высокую производительность, поскольку они имеют прямой доступ к функциональности и элементам устройства, обеспечивая повышенную скорость отклика. Более того, эти приложения разрабатываются при помощи продвинутого набора возможностей (включая USB вход, сложное сетевое взаимодействие, управление памятью и др.), благодаря чему могут предоставить уникальный пользовательский интерфейс.
Гибридные приложения
С другой стороны, гибридные приложения работают на платформе, загружая данные с сервера, и имеют ограниченный доступ к возможностям устройства. Именно поэтому несколько снижается их производительность по сравнению с нативными приложениями.
Web-приложения
Производительность этих приложений зависит от интернет-соединения и производительности браузера, в связи с чем этот показатель по отношению к нативным версиям снижается.
3. Канал дистрибуции
Обзор
Поскольку, согласно прогнозам, количество скачиваний приложений к 2023 году достигнет 258,2 миллиарда становится очевидно, что более обширный охват аудитории приведет к мгновенному приросту его скачиваний. Нативные и гибридные приложения размещаются в онлайн-магазинах, в то время как web-приложения доступны непосредственно в интернете.
Нативные приложения
Поскольку создаются они под конкретную платформу, приложения Android и iOS размещаются в соответствующих этим платформам магазинах. Это позволяет им задействовать возможности устройств и пользоваться системой рейтинга магазинов.
Гибридные приложения
Они спроектированы для работы на нескольких платформах и обычно размещаются в нескольких магазинах приложений и имеют возможность как задействовать возможности устройств, так и участвовать в системе рейтинга.
Web-приложения
Эти приложения выполняются в браузерах. Они не размещаются в магазинах, но пользователи могут найти их непосредственно в интернете.
4. Целевая аудитория и пользовательский опыт
Обзор
Удержание пользователей в мобильных приложениях на семьдесят процентов зависит от предоставляемого этими приложениями пользовательского опыта (UX) и интерфейса (UI). Тем не менее ведущая компания-разработчик может обеспечить вам 100% удержание с минимумом багов и сбоев UX, в то же время применив последние веяния в дизайне UI. Качество же пользовательского опыта напрямую зависит от выбранной вами аудитории. Взяв за основу ее предпочтения и интересы, вы сможете создать максимально соответствующее им приложение.
Нативные приложения
Нативные приложения для Android скачиваются бесплатно, в то время как приложения iOS являются платными, поэтому вам следует определиться для какой категории пользователей вы создаете продукт. При этом важно помнить, что нативные приложения для поддержания высококачественного пользовательского опыта требуют частых обновлений.
Гибридные приложения
Выбор в пользу этого типа приложений стоит делать, когда вас интересует максимальный охват аудитории по нескольким платформам с минимальной потребностью в обновлениях. Кроме того, если ваши пользователи будут скачивать приложение и пользоваться им офлайн, тогда нативные и гибридные варианты будут идеальным решением.
Web-приложения
Эти приложения предоставляют бесплатный доступ для любых устройств и браузеров, позволяя вам охватить более широкую аудиторию. К тому же web-приложения легче обслуживать, так как они в отличие от нативных не требуют частого обновления.
5. Стоимость разработки
Обзор
Так как стоимость разработки является одним из наиболее острых вопросов для бизнеса, важно отчетливо понять доступный вам бюджет до того, как начать разработку определенного вида приложения. В случае создания нативных приложений вам потребуется нанять разносторонние команды разработчиков, владеющих разными навыками, в связи с чем итоговая стоимость такого проекта значительно превысит стоимость создания гибридных или web-приложений.
Нативные приложения
Гибридные приложения
Web-приложения
Заключение
Надеюсь, что вы ясно представили себе различия между этими тремя типами приложений. Для завершения этой статьи будет не лишним отметить, что каждый тип приложения имеет как достоинства, так и недостатки. Еще раз повторю, что выбор направления разработки приложения будет существенно изменяться в зависимости от целевой аудитории, ее предпочтений и доступного вам бюджета.
Тем не менее не столь важно, какой тип приложения вы в итоге выберите, так как его успех во многом будет зависеть от навыков работающей над ним команды и выбранного способа подстройки приложения под нужды конечных пользователей.
Нативное приложение и гибридное – что это и в чем разница?
Активное развитие мобильной индустрии повысило актуальность вопроса о том «Гибридное или нативное приложение?». На пересмотр всех достоинств и недостатков предложенных вариантов уйдет очень много времени, а ответа можно и не получить. Чтобы понимать специфику выбора исключительно для вашей сферы деятельности.
Нативное приложение
Уже повседневная жизнь не может обходиться без использования приложений. При этом такие программные продукты могут сопровождаться разными целями применения. Одним из разновидностей является нативное мобильное приложение. Ему характерны свои особенности, которые мы разберем более детально ниже.
Что такое нативное мобильное приложение приложение – это один из самых распространенных вопросов, который возникает при переносе своего бизнеса в адаптацию под мобильные девайсы и планшеты. Такой вариант создают, учитывая специфику конкретной, заранее выбранной, платформы.
Для установки применяется память ОС устройств. Загрузить подобные приложения можно из популярных и часто применяемых магазинов: AppStore и Play Market. Нативное приложение Андроид имеет особую специфику – это использование и оптимизация под одну операционную систему. Такие продукты на выходе получаются более корректными и быстрыми в работе.
Приложение будет гармонично и эффективно работаю с любыми применяемыми девайсами. Это аргументировано простой причиной: нативное приложение на Android или IOS разрабатывается с использованием «родного» языка выбранной платформы.
Если установить подобное развлечение, то оно получит доступ ко многим сервисам устройства. Это может быть галерея, видеофайлы, камера, микрофон и даже календарь. Для удобства пользователя, можно включить специальные уведомления (push), которые буду информировать с помощью доступа оповещаем девайса.
Разработка нативных мобильных приложений выделяется спецификой своей разработки. А также готово «похвастаться» рядом ключевых преимуществ:
Перед решением подготавливать в своих целях нативное мобильное приложение стоит обратить внимание на несколько негативных нюансов:
Гибридное приложение
Гибридное мобильное приложение напоминает комбинацию веб-разработки и ранее описанного варианта. В результате получается продукт, который выдается под обликом нативного. Приложение можно спокойно найти в AppStore и Play Market. Что позволяет устанавливать на любой гаджет.
Сразу возникает потребность в понимании ключевого отличия нативного и гибридного приложения. Стоит упомянуть кроссплатформенность такого продукта. Их можно устанавливать исключительно с markets.
Гибридное приложение располагает возможностью автономного обновления. Полноценная работа должно обязательно сопровождаться стабильным подключением к Интернету. Без такого функционала пользоваться приложением невозможно.
Многие компании, независимо от сферы своей деятельности, склонны к использованию именно такого продукта. Объяснить такое явление просто: гибридное приложение включает в себя плюсы нативного, связанные с технологичной актуальностью. Нативное приложение разрабатывается по большей цене, но радует более высокой скоростью.
Раскрывая вопрос со стороны связи с веб-разработками, то гибридный продукт для гаджетов также может оперативно «впитывать» нужные коррективы. Так ограничивается потребность в повторном размещении разработки в markets, предварительно устраняя ошибки.
Перспектива разработки гибридного приложения также объясняется возможность учитывать специфику не одной, а сразу нескольких платформ. Так сразу решаются проблемные вопросы об отдельных процессах создания программного продукта для нужных ОС. Данный фактор часто играет решающую роль при выборе.
Разрабатывая гибридное приложение, учитывается фреймворк. От последнего зависит продуктивность и полноценность работы продукта. Специалисты в данной сфере разработок акцентируют внимание еще не нескольких факторах, которые решают актуальность применения гибридного приложения:
Систематизируем полученные данные о гибридном мобильном приложении в следующем перечне достоинств:
А также недостатки:
Гибридное и нативное приложение: примеры
Нативных, гибридных и веб-приложений есть достаточно большое количество, доступные в популярных markets. Каждый из них выделяется своим особенным функционалом, который несомненно повлияет на количество потенциальных пользователей вашего приложенияи соответственно на рост продаж. Подробнее о том как это влияет на продажи услуг и товаров вашего бизнеса читайте в статье. Для полной картины и понимания всех отличий, рекомендуем ознакомиться с примерами каждого варианта.
Разработка нативного и гибридного приложения
С тем, что это нативное приложение и гибридное мы разобрались. Чтобы поставить решающую точку в выборе нужной модели, необходимо уточнить нюансы разработки. Сначала разберем общий алгоритм разработки мобильных приложений, а после разберем нюансы каждого из них.
Общий алгоритм представляет собой следующую цепочку мероприятий:
Нативное приложение: в чем специфика?
Учитывая свои нюансы разработки нативного приложения, акцентируют внимание на применяемом языке программирование. Например, для платформы IOS актуально и правильно применить Objective-c (реже встречается использование Swift).
Если смотреть процесс разработки со стороны пользователя, то нативное мобильное приложение может выступать в роли профессиональной разработки кроссплатформенного варианта программы. Выделяется более понятный интерфейс. Так называемый «нативный вариант юзабилити».
UI/UX – это та комбинация, которая является максимально эффективной при реализации проекта с целью создания нативного продукта. Дизайнер готов правильно определить, какие подходы UI будут «радовать глаз» пользователя, учитывая конкретную операционную систему.
Так учитываются некоторые фишки для более комфортного использования предложенного функционала. Например, актуально применять кнопку возврата на клавишу Tab Bar, расположенную на гаджетах системы IOS. В результате пользователь может полноценной применять нативное мобильное приложение, которое будет интуитивно взаимодействовать с особенностями интерфейса.
Обратившись на сайт разработки мобильных приложений для Andorid и iOS вы сможете узнать более подробно у поддержки о том, какие есть нюансы разработки тех или иных приложений.
Особенности разработки нативных мобильных приложений
В данном случае применение нативной среды уходит на второй план. А первый в свою очередь будет включать в себя использование веб-технологий. На выходе получается реализация не целой страницы, а автономное приложение. Последнее подается в обновленной «обертке», которая имеет отдельную иконку и подразумевает наличие установочного процесса.
Разработчики кроссплатформенных движков часто сталкиваются с нативными мобильными приложениями. Это связано с функцией веб-браузера, которая одинаково эффективно работает на нескольких мобильных операционных системах. Так можно запускать приложения, используя разные системы. При это не будут возникать трудности.
Заключение
Понимая особенность реализованного во время разработки приложения, можно быстро определиться и решить для себя гибридное или нативное приложение будет приносить пользу. При этом учитывается сразу несколько факторов: стоимость самой разработки, преследуемая цель, необходимость работы на нескольких платформах и, конечно же, целевая аудитория.
Натив или гибрид? Специалисты Яндекса отвечают на главный вопрос мобильной разработки
Осталось буквально четыре дня до момента, когда мы закончим принимать заявки на участие во второй «Мобилизации» Яндекса. Она вновь объединит четыре летние школы для начинающих специалистов: Школу менеджмента, Школу мобильного дизайна, Школу разработки интерфейсов и Школу мобильной разработки под Android.
Своим опытом и знаниями с участниками будут делиться не только сотрудники Яндекса, которые делают приложения для миллионов пользователей, но и приглашенные специалисты. Мы не обойдемся только теорией. Будет много практики и командной работы над настоящими продуктами. Как всегда, обучение бесплатное, а всем иногородним студентам Яндекс оплатит проезд и проживание. Если вы еще не отправили заявку, есть немного времени это сделать. Занятия стартуют 3 июля и закончатся 23 сентября — в день двадцатилетия Яндекса.
В мобильной разработке одни из самых горячих споров ведутся вокруг нативной и гибридной разработки. Мы решили дать трём преподавателям «Мобилизации» порассуждать на эту тему. Получилось небольшое интервью, которое может быть интересно как новичкам в разработке, так и тем, кто уже определился со своим выбором.
Юрий Подорожный. Руководитель службы разработки мобильных геоинформационных сервисов Яндекса. Работает над Яндекс.Картами и Яндекс.Метро. Занимается мобильной разработкой более восьми лет. Основатель студии Any Void, которая в 2014 году стала частью Яндекса.
Сергей veged Бережной. Руководитель отдела разработки поисковых интерфейсов, в Яндексе с 2005 года. Успел поработать над Поиском, Почтой, Поиском по блогам, Я.ру, Картинками, Видео. Помимо этого, активно занимается развитием внутренних инструментов для создания сайтов.
Лола Кристаллинская. Руководитель департамента дизайна, работает в Яндексе с 2008 года, отвечает за найм, управление и развитие дизайнеров, коммуникации и образовательные программы департамента и всю экосистему дизайна в компании. С Лолы начался коллектив дизайнеров и исследователей дизайна Яндекса. До прихода в компанию руководила отделом создания сайтов Студии Артемия Лебедева.
Лола Кристаллинская:
Давайте для начала дадим определение, что вообще такое нативная и гибридная разработка и в чем между ними разница?
Юрий Подорожный:
В 2007 году появился iPhone, в 2008-м Apple дала возможность под него делать приложения, что и стало отправной точкой нативной разработки. Это компилируемый язык программирования со средой разработки, ограниченной какой-то одной мобильной платформой. Objective-C и Swift для iOS, Java — для Android. Приложения создаются на одном из этих «родных» языков по законам определенной платформы.
Лола:
В части программирования это было что-то революционно новое?
Юрий:
Конечно, нет. Сам термин «нативная» возник просто на контрасте с гибридным подходом.
Сергей Бережной:
Под гибридной разработкой мы подразумеваем способ писать приложения, когда оно полностью или частично рендерится и работает с помощью веб-технологий. То есть внутри используется что-то, реализованное с помощью HTML, CSS, JavaScript.
Юрий:
На самом деле чистое веб-приложение сейчас не сделать. Веб-вью все равно нужно положить внутрь iOS или Android-приложения, то есть в любом случае нужен контейнер, который написан с помощью Java, Swift или Objective-C. Значит, все равно будет какой-то процент нативного кода. Чистые веб-приложений были, наверное, только первый год существования iPhone, когда еще нельзя было создавать их со стороны. И Apple тогда продвигала тему, чтобы разработчики делали веб-приложения. Кстати, эта функция есть до сих пор. Заходишь в Safari, нажимаешь на экран «домой», на рабочий стол добавляется иконка, по сути, это и есть чистое веб-приложение. Только его, конечно, не распространишь через Store.
Сергей:
Сейчас есть целый ряд фреймворков, платформ типа PhoneGap/Cordova, в которых, условно говоря, уже написан этот фрагмент кода. Ты просто берешь их за основу и разрабатываешь на них, сочетая с веб-элементами на свое усмотрение.
Юрий:
Гибридный подход возник, наверное, из естественного желания сэкономить время и ресурсы, когда мобильная разработка начала набирать обороты. Например, есть некая молодая ОС, есть целый спектр технологий, которые пришли из веба, и у многих возникает соблазн, почему бы их не использовать. Но, честно говоря, не знаю зачем. На мой взгляд, ни одно нормальное приложение с помощью веб-технологий не сделать.
Гибрид для простых задач, натив — для сложных
Лола:
В таком случае актуальна ли вообще проблема выбора? Например, я менеджер, у меня есть продукт и мне нужно сделать мобильную версию. Как принимать решение, что для меня лучше — гибридная разработка или нативная?
Сергей:
Нужно исходить из задачи, необходимых выразительных средств для ее реализации и имеющихся ресурсов. Если в жизни просят сыграть музыку, а у вас есть только краски, то будет тяжело. Если нужно в реальном времени обрабатывать видео с камеры, сделать 3D-анимацию и подобные сложные вещи, то без ядерных технологий нативной платформы не обойтись. И, наоборот, если вашему приложению в качестве выразительных средств достаточно простого черно-белого карандаша, то веб-технологии могут сэкономить время и деньги.
Юрий:
Согласен, все зависит от задачи. Но, на мой взгляд, веб уместен лишь в нескольких случаях. Например, если это совершенно новый продукт и пока не понятно, воспримет ли его рынок, нужен ли он кому-то или нет, то есть задача — протестировать некую гипотезу. Или если это просто отображение контента в небольшом количестве и не предполагается активного взаимодействия с интерфейсом, переходов между экранами и разделами. Например, приложение Meduza. Заходим на экран новости, это как раз веб-вью. У них простая верстка, точно такая же, как для веба, им даже контент готовить не надо, в мобильной версии все сразу отображается.
Сергей:
По задаче сайты могут быть совершенно разными. Помните, в свое время был выбор между тем, делать флэш-сайты или HTML-сайты. И все говорили, если хотите, текст, нарисованный по кругу, видео внутри и чтобы все было красиво, то нужно делать только флэш. Так и здесь.
Юрий:
Есть, конечно, удачные примеры гибридных приложений. Например, интересная модель у Basecamp: часть навигации реализована нативно, для того, чтобы переходы осуществлялись быстро и плавно, а отображение контента в списке задач сделано на HTML, благодаря чему у них одинаковые шаблоны для тачовой и мобильной версий. Но у нас в Яндекс.Картах всегда был нативный подход, потому что сделать приложение с картами, которое будет производительным и удобным, с помощью веб-технологий просто невозможно. Единственное место, где мы используем веб, это вывод лицензионного соглашения.
Скованные гайдлайнами
Лола:
В идеале все, конечно, должно идти от смысла, от того, что и зачем тебе нужно, какой продукт и что для него важно. Но мы живем в реальном мире, где не у всех и не всегда в принципе есть выбор. У кого-то не хватает денег, чтобы нанять целую команду разработчиков, поэтому приходится быть изобретательным. Какие еще факторы играют роль при выборе технологии?
Сергей:
Если бы у меня было бесконечное количество денег, я бы нанял трех разработчиков, которые сделали бы хорошие нативные версии под все платформы. Но я слишком жадный, чтобы позволять себе такое расточительство. Гибридный подход позволяет сэкономить: сделать один вариант и использовать его везде. Но если в дальнейшем задача усложнится, и появится необходимость, например, сделать наложение картинок на видео в реальном времени, то все равно придется потратиться на трех разработчиков.
Кроме того, встает вопрос, хотите ли вы трижды рисовать разный дизайн для каждого приложения. Ведь гайдлайны операционных систем сильно отличаются друг от друга, и как лебедь, рак и щука двигаются в разные стороны в мелочах. Если внимательно прочитать гайды Windows Phone, Android и iOS, то окажется, что нужно хорошо продумать, как ваша пользовательская задача будет оптимально решаться на каждой из платформ.
Лола:
Если приложение сделано не по гайдам, то проверку в Store не пройти?
Юрий:
Можно, конечно. Далеко не все приложения, прошедние проверку в Apple, соответствуют дизайнерским гайдлайнам. Никто особо не следит за соблюдением этих правил.
Сергей:
Но мы же говорим о приложениях A+ и AAA-класса, о высшей лиге. Если такие делать, то вопрос о нативном дизайне для каждой платформы обязательно встанет.
Лола:
А общий дизайн невозможен в нативной разработке: если просто свои кнопки и контролы?
Сергей:
Смотря к какому лагерю вы относитесь. Некоторые считают, что приложение должно быть внутри платформы. Альтернативная точка зрения – каждый бренд должен выглядеть на всех платформах одинаково. Если посмотреть на Instagram или Facebook, то это как раз примеры борьбы бренда за самоидентификацию по отношению к платформам. Они специально дизайнят свои приложения так, чтобы те выглядели по-особенному и везде одинаково.
Как делают приложения в Яндексе
Лола:
Для многих тот факт, что Facebook разочаровались в веб-технологиях и перешли на нативную разработку, стал доказательством превосходства последней. Насколько это обосновано?
Сергей:
Это как раз история про то, что хорошо быть Facebook, когда можно нанять сколько угодно программистов, чтобы сделать продукт отдельно для всех платформ. Кстати, в ответ на такой шаг некие ребята, чтобы попиарить свою студию, сверстали фейсбучное приложение на веб-технологиях без всех тех недостатков, из-за которых Facebook сменили подход. То есть здесь всё не так однозначно. Может быть, ваше веб-приложение тормозит не потому что веб-технологии плохие, а потому что у вас программист не сделал всё что мог.
Юрий:
У Facebook в первой версии было полностью нативное приложение, потом они перешли на HTML, пару лет пожили с двумя звездочками в Store, потому что продукт реально тормозил, все их ругали, в итоге вернулись к нативу. Вот живая иллюстрация того, как из благих намерений хочешь сделать хороший интерфейс на веб-технологиях, но в итоге все равно упираешься в низкую производительность или недостаток средств для развития.
Лола:
Но поисковое приложение Яндекса, например, сделано гибридно. Почему, если столько недостатков у веб-технологий?
Сергей:
Наши сервисы в основном решают информационные задачи, поэтому и интерфейсы могут быть проще, чем в случае с развлекательными игровыми продуктами. Так что мы не сильно упираемся в производительность. А выразительные средства веб-технологий при умелом использовании не такие уж и скудные. Кроме того, гибкость гибридного подхода позволяет не переписывать полностью какие-то наработки, сделанные ранее в вебе, которых у нас довольно много, и их переделка потребовала бы больших трудозатрат. А так мы экономим время и деньги.
Но сложно приходится нашим дизайнерам — им нужно создавать интерфейсы, которые будут восприниматься пользователями как «общий интерфейс Яндекса» независимо от платформы.
Юрий:
Помимо UI, есть еще вопрос удобства пользователя. И у каждой платформы свой UX. Пользователи ожидают, что хорошее приложение будет удобным и будет следовать их привычкам.
Лола:
Как вы в своих продуктах решаете проблему баланса между удобством пользователей и единством бренда?
Юрий:
Два года назад эта проблема в Яндексе была более явной. Все приложения сильно отличались между собой по стилистике. В итоге мы разработали свои общие для всех интерфейсные гайды, выбирая наиболее удачные паттерны из всех мобильных гайдлайнов, а иногда и придумывая свои, лучшие. Но процесс внедрения новых правил очень длительный, с огромным количеством подводных камней и пока не завершен окончательно.
Сергей:
Основные движущие факторы наших экспериментов с технологиями — это оптимизация трудозатрат на разработку и желание предоставить пользователям качественный продукт. Изначально мы делали наше поисковое приложение нативно, но столкнулись, например, еще с такой проблемой, как синхронизация команд и релизов. Даже если изначально вы решили потратиться на разных разработчиков под три разные платформы, то в дальнейшем рискуете столкнуться с проблемой управления. Как сделать так, чтобы новый UI, новые фичи на этих платформах везде обновлялись в одно время, и чтобы у них было действительно синхронное понимание этого интерфейса?
Как показывает практика, в крупных компаниях все это превращается в разные кланы разработчиков: одни делают мобильную версию приложения, другие — тач-версию сайта, третьи — десктопную версию, кто-то создает приложение для Android, а кто-то — для Windows Phone. И нужен менеджер 80-го уровня, чтобы синхронизировать все эти пять команд между собой. А подход единого кода, следовательно, единой команды, помогает избавиться от подобной путаницы.
Юрий:
На мой взгляд, это не проблема, а условие задачи. Например, когда мы в Яндекс.Картах делаем какую-то новую штуковину, то сначала отрабатываем ее на одной платформе, а потом уже, собрав все грабли, добавляем на все остальные.
Что нужно знать разработчику, чтобы начать делать приложения
Лола:
Насколько разнится порог вхождения у нативной и гибридной технологий? Вообще, какая база должна быть у программиста, чтобы уйти в мобильную разработку?
Юрий:
Разработчик нативных приложений должен знать Objective-C, или SWIFT, или Java, или C++. Но, на мой взгляд, на каком языке писать, дело наживное, ключевое здесь — базовые знания программирования. Все, с кем я в своей жизни делал приложения, были студенты без мобильного опыта, но с хорошим бэкграундом. Все остальное постигается на практике. Попадешь в хорошую команду профессионалов, вырастешь на порядок быстрее.
Сергей:
Если у человека есть опыт разработки интерфейсов с помощью HTML, CSS или JavaScript, то придется глубже погрузиться в специфику именно мобильных браузеров. Если мы говорим об интерфейсах, то это паттерны взаимодействия — больше пальцами, меньше с клавиатурой. Своя специфика внутри Runtime JavaScript и CSS для мобильных браузеров, но отличий в последнее время все меньше. Как правило, разработка под мобильные проще, чем под широкий спектр десктопных браузеров, потому что у них, как относительно новой технологии, более современная реализация именно веб-стандартов. Но сейчас по мере того, как мобильные платформы стареют, начинают возникать те же проблемы, что на десктопе, когда есть клиенты со старыми браузерами, которые какие-то вещи не поддерживают.
Лола:
А есть у программистов деление на мобильных и не мобильных? Например, на рынке дизайна сейчас это уже обязательный дополнительный скилл. Может быть, ты действительно каждый день не имеешь дела с мобильными интерфейсами, но без базовых знаний мобильного дизайна уже почти невозможно пройти собеседование и отбор.
Юрий:
Программирование имеет такое огромное поле применения, что человек, который занимается разработкой на C++ каких-то серверных компонентов, может вообще ничего не знать про мобильную разработку, писать, к примеру, какой-нибудь банковский софт и комфортно себя чувствовать.
Сергей:
Согласен, разрабатывать под микроконтроллеры или пользовательские интерфейсы — вещи действительно очень разные, и перепрыгнуть из одной лодки в другую не так-то просто. Но если говорить о мобильной разработке, то в Яндекс мы берем людей, которые верстают наши сайты сразу под декстопные и мобильные версии. То есть они должны понимать, как наша верстка, наш HTML, CSS и JavaScript будут работать в десктопных браузерах, а как в мобильных, какие есть особенности и нюансы. Получается, как с дизайнерами, дополнительный скилл фронтенд-разработчика.
Лола:
А внутри мобильной сферы насколько жесткое деление специалистов в зависимости от платформы?
Юрий:
Android и iOS — две совершенно разные истории. При желании, конечно, можно научиться делать и то, и другое. Но среди тех, с кем я работал, не было ни одного, кто менял бы платформы.
Сергей:
Каждая платформа — это достаточно глубокая экосистема, и для работы нужен хороший практический опыт. Но думаю, стажера со знанием андроидных технологий и желающего изучить эппловские, в команду, которая занимается iOS-приложениями, мы легко возьмем. Разница все же не такая большая, как между программированием микроконтроллеров.
Адаптивная верстка — не панацея
Лола:
Я слышала, что для бедных, но хитрых, есть еще такая вещь, как адаптивная верстка, которая сразу и для веба, и для мобильных.
Сергей:
Есть технологическая возможность сделать интерфейс на веб-технологиях так, чтобы он вел себя по-разному на десктопе и на мобильных, и чтобы мог адаптироваться под них. Но, к сожалению, резиновость некоторых изделий не бесконечна, и та вариативность, в пределах которой может быть эта адаптивность, весьма ограничена. Главное преимущество такой резиновой верстки в том, что вы один код сверстали и везде его используете.
В Яндексе мы делаем немного по-другому: есть общие куски, которые мы используем везде, а есть те, которые должны быть разными, под разные размеры, их мы пишем отдельно. Таким образом мы пытаемся усидеть на двух стульях: взять и реиспользование кода, которое есть в концепции адаптивности, и привнести более тонкую адаптивность конкретными переопределениями для тачовых и для десктопных платформ.
Лола:
Давайте резюмируем, как менеджеру, дизайнеру и разработчику учитывать все эти нюансы?
Сергей:
Я рекомендую не быть упоротыми фанатиками и каждый раз осознанно делать выбор, имея в голове как можно более широкий контекст и принимая во внимание все факторы. Не мыслить типа «Раз Facebook перешел с гибридного подхода на нативный, значит, и нам нужно» или «Раз Яндекс верстает свою выдачу в приложении на веб-технологиях, значит, и нам надо делать так». Нужно погрузиться в тему.
Юрий:
А для этого нужно как минимум понимать и в том, и в другом. Понимать, как устроен мир, как это работает, потому что единственно правильного подхода нет. Вполне можно делать нативное приложение, в котором какие-то интерфейсы и разделы будут сделаны на вебе, и тем самым местами упрощать себе жизнь. Нужно разбирать каждую задачу индивидуально, и только потом принимать решение. Волшебной таблетки здесь не существует.