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

Согласно новому исследованию компании Visionmobile, базирующемуся на результатах опроса 8000 разработчиков, 30 % всех девелоперов, которые занимаются созданием мобильных приложений, используют кросс-платформенные инструменты. Но это вызвано желанием разработчика сэкономить свое время и деньги, а не улучшением взаимодействия с пользователями.

Такой подход вовсе не помогает попасть в топы App Store (кстати, в блоге Appodeal мы уже рассказывали о том, как оптимизировать свое присутствие в каталогах Google Play и App Store). Как следствие, появляется все больше некачественных приложений, созданных при помощи кросс-платформенных инструментов.

Тройка лидеров


Наиболее популярными сегодня являются три продукта – основные конкуренты на рынке кросс-платформенных инструментов разработки. Это PhoneGap (называемый также Apache Callback, основанный на Apache Cordova) – бесплатный open-source фреймворк для создания мобильных приложений, созданный Nitobi Software. Позволяет создать приложения для мобильных устройств, используя JavaScript, HTML5 и CSS3 без знания «родных» языков программирования (например, Objective-C) под все мобильные операционные системы (iOS, Android, Bada и т. д.). Готовое приложение компилируется в виде установочных пакетов для каждой мобильной операционной системы.

На втором и третьем местах располагаются, соответственно, Xamarin и Unity.



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

В 2012 году PhoneGap и другие инструменты на основе Apache Cordova занимали около 30 % рынка. Сейчас это значение удвоилось. Xamarin стал наиболее востребованным среди Windows-разработчиков, становление платформы заняло около трех лет. А Unify получил распространение в разработке игр.



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

Сделано девелоперами для девелоперов


Если изучить данные, предоставленные Visionmobile, становится ясно, что кросс-платформенные инструменты разработки становятся все популярнее, но происходит это по причинам, которые не все назовут желательными:



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

Конечно, это зависит еще и от трактовки термина «заказчик». Для создателей корпоративных приложений заказчиком является директор по ИТ. У разработчиков корпоративных приложений первостепенная задача – сокращение расходов, при этом удобство работы пользователя с таким приложением – совсем не главное. Фриланс-разработчики (39 % используют CPT) и корпоративные разработчики (29 % используют СРТ), которые взаимодействуют с такими корпоративными заказчиками, пользователю уделяют не так много внимания, а порой и вовсе не заботятся о нем.

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

Но не только новостные СМИ и прочие издатели цифрового контента должны быть заинтересованы в том, чтобы приложение получилось качественным, интересным и полезным для конечного потребителя такого продукта. Рецепт прост: работать над своим приложением тщательно, уделяя внимание всем аспектам использования программы целевой аудиторией.

В качестве вывода


Качество созданного приложения зависит в первую очередь от разработчика, а не от инструмента разработки, будь то JavaScript фреймворки или AngularJS.

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

Один из разработчиков, который использует Cordova, так прокомментировал данную ситуацию: «В любой категории есть хорошие или плохие приложения. Но Apache Cordova понижает планку, так что мы видим большое количество плохих приложений, согласно правилу Старджона (в толковании этого правила говорится о том, что 90 % всего – это мусор). Это плата за возможность быть самым популярным решением».



Кстати, очередным многообещающим инструментом кросс-платформенной разработки может стать React Native – проект, продвигаемый Facebook. Этот инструмент также известен, как ReactJS. Возможно, эта платформа станет одним из лидеров рынка, поскольку здесь есть многое из того, что требуется разработчику.

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

Мы в Appodeal с первого дня существования компании стараемся покрыть максимально большое количество самых разных фреймворков. Уже сегодня мы поддерживаем Unity, Cocos2d-x, Marmalade, PhoneGap, Gideros, Adobe Air, B4A, Cordova, Xamarine и Game Maker и список постоянно растет. Наша задача сделать монетизацию простой и доступной, вне зависимости от выбранной платформы.

Комментарии (30)


  1. kozyabka
    31.08.2015 11:22
    +9

    «Качество созданного приложения зависит в первую очередь от разработчика, а не от инструмента разработки», вот вы сами и написали. А кросс-платформу или нет выбрали разработчик с заказчиком это уже вторичный вопрос. Тяп ляп можно сделать и на нативе.

    И еще, сама статья намекает что, кросс-платформенность суть некачественных приложений, а в конце, рекламируя свою компанию, Вы пишете «стараемся покрыть максимально большое количество самых разных фреймворков. Уже сегодня мы поддерживаем Unity, Cocos2d-x, Marmalade, PhoneGap...»

    В целом, как разработчик, ничего не понял что Вы хотели сказать…


    1. stepan_s
      31.08.2015 11:49
      -1

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


      1. kozyabka
        31.08.2015 12:10
        +6

        «Очевидно, что чем ниже порог вхождения при начале работы с конкретной средой, тем ниже качество приложения в среднем.» — Среда должна быть невыносимо сложной чтобы продукт получился качественным?
        Нет, мне ваше высказывание не очевидно. Если человек 3 года писал на обжСи и после начал делать приложения на юнити, не считаю, что у него становится больше шансов написать плохое приложение. Если вы имеете ввиду новичков, то они одинаково могут написать плохо как на фонгапе так и на свифте.

        И снова не улавливаю логики,- как связанны два последних предложения…


        1. stepan_s
          31.08.2015 12:40
          +1

          Последнее предложение удалили, так должно быть понятнее. Спасибо.


      1. antazy
        31.08.2015 12:20
        +2

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

        То есть смысл статьи, что вы можете фигачить мусор на любой платформе?


        1. Zifix
          31.08.2015 12:35

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


      1. DenimTornado
        31.08.2015 12:26
        +4

        Ну бред же. Очевидно только то, что чем ниже порог вхождения тем ниже порог вхождения. Остальное только от самого разработчика зависит. На том же JS, где низкий порог вхождения, есть хорошие разработчики, а есть те, кто складывает 2 числа при помощи jQuery.


        1. stepan_s
          31.08.2015 12:39
          +1

          Такое чувство, что мы задели вас за живое :)
          Идея была в том, что мы только за то, чтобы удешевить и упростить разработку.


  1. Zifix
    31.08.2015 12:24
    +1

    Качество картинок с графиками ниже всяких енотов :(

    Вот для тех, кто не хочет портить зрение:
    www.developereconomics.com/wp-content/uploads/edd/2015/07/2_no_figures.jpg
    www.developereconomics.com/wp-content/uploads/edd/2015/07/3_no_figures.jpg


    1. Ununtrium
      31.08.2015 13:46
      +1

      Оффтопик: каким образом шакалы превратились в енотов?


      1. Zifix
        31.08.2015 13:52

        Моим глазам было так плохо, что не смог разглядеть кто там ;)


  1. altima
    31.08.2015 12:31
    +2

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


  1. TheRabbitFlash
    31.08.2015 13:05
    +17

    Мы давно перестали вести мобильную разработку на html/js лишь потому, что это полное дно. Это как дом строить из соломы. Пока на улице лето — все отлично.

    Теперь давайте проедемся по тому, что лично меня задело и раздражает:

    — Вы упомянули, что PhoneGap создали в Nitobi Software, но забыли написать, что Adobe еще в начале октября 2011 года купил с потрохами Nitobi. Поэтому, пожалуйста, Adobe PhoneGap, а не Nitobi Software.

    — В хабе стоит упоминание Unity3D. Вопрос — какое отношение Unity имеет к данной теме «приложений?» Вы суп кушаете вилкой, а чай пьете из ладошек? Unity3D пригоден только к играм. То, что его используют для UI-based приложений… мы возвращаемся к домику из сена и грязи. Если html/js для создания моб. приложений это дно — то делать их на Unity3D еще хуже. Это как купить спортивный автомобиль с низкой посадкой, чтоб ездить на нем по славянским раздолбанным дорогам и ругать автомобиль, что у него быстро колеса отваливаются.

    — Незаслуженно упущены выгоды Adobe AIR. Если мы говорим о приложениях, а не играх, то именно эта платформы в разы чаще выбирается в сравнении с Unity3D.

    Что касается всего прочего — как бы я сильно не любит Adobe AIR и HTML c его JS — сначала я бы вел разработку на нативе (java/objective-c/swift). На втором месте был бы Xamarin, на третьем Adobe AIR. Где-то дальше Unity3D и в конце списка все в куче говнофреймворки «для нативной разработки приложений html/js».

    давайте будем честными. Известные ребята из www.linkedin.com кричали, что на html/js можно делать аппы и это невероятно круто. Но когда они начали делать их, а не кричать — вскоре они сказали, что больше никогда в жизни не возьмутся ничего делать на html/js в виде мобильных апп.

    Ведь это и не аппа вовсе. Это просто кусок медленного html дерева засунутого в компонент браузера. С его software рендерингом.


    1. SunSunSun
      31.08.2015 13:47
      +3

      +1


    1. Nagg
      31.08.2015 14:43
      +1

      Известные ребята из www.linkedin.com кричали, что на html/js можно делать аппы и это невероятно круто. Но когда они начали делать их, а не кричать — вскоре они сказали, что больше никогда в жизни не возьмутся ничего делать на html/js в виде мобильных апп.

      Ещё мой любимый пример — фейсбук techcrunch.com/2012/09/11/mark-zuckerberg-our-biggest-mistake-with-mobile-was-betting-too-much-on-html5
      К сожалению, писать на нативных языках что-то сложнее «дома из соломы» тоже доставляет немного боли в заднем отверстии — если это не просто жсон-парсилка, а приложение с логикой на клиентской стороне, то получится что вы пишите эту логику на java, obj c/swift и C# (если брать платформу MS) три раза на разных языках с разными багами. Фиксите баги и добавляете фичи в 3ех местах. Для такой задачи пока лучше Xamarin ничего не придумали.


    1. DjOnline
      31.08.2015 19:33
      +1

      Ну если это фоновый мессенджер как у Facebook или LinkdedIn, который должен быть всегда в фоне, то да, писать его на html/js не надо, нужно использовать особенности каждой платформы для минимального веса и скорости.
      А если это всего лишь приложение для заказа пиццы или товаров, то вообще пофигу на чём оно написано. Если бы Google Play/Appstore вместо приложений позволял бы разместить только иконку для запуска браузера с сайтом, то делали бы так, вместо этих костылей.


      1. TheRabbitFlash
        31.08.2015 20:49
        +1

        А если это всего лишь приложение для заказа пиццы или товаров,

        А если это всего-лишь приложение, то это не значит, что оно должно работать лишь бы работало. Мы проходили этот путь, когда «там всего 2-3 функции». Заканчивалось косяками, которые вылечились переходом на натив или же другую не html технологию


  1. Ununtrium
    31.08.2015 13:59

    Пока в статьях про «кроссплатформенную разработку» вижу в основном хайп. Эта не исключение.


  1. egormerkushev
    31.08.2015 15:01

    Интересно, Cocos2d во всех ипостасях реально так просел и сдал позиции или это просто его куда-то задвинули исследователи?


    1. TheRabbitFlash
      31.08.2015 15:23

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


  1. Cortlendt
    31.08.2015 15:47
    +1

    Я не понял message автора, однако кросс-платформенные инструменты обычно выбирает бизнес, чтобы платить меньше и получить больше.

    Я бы сказал что все имеет свою цену, в том числе и экономия.


  1. QtRoS
    31.08.2015 18:09

    Qt порадовал, четвертое место это уже неплохо, очень даже неплохо!


    1. SunSunSun
      01.09.2015 11:35

      На QT реально удобно разрабатывать для телефонов?


      1. QtRoS
        01.09.2015 17:06

        На Qt-e в принципе удобно разрабатывать приложения, для телефонов в том числе. Самое приятное — не нужно менять подход к проектированию UI, ибо QML работает одинаково на всех платформах и типах экрана. Анимации, шейдеры, частицы, байндинг свойств — это очень даже няшные фичи. Другое дело в том, что в целом работа фреймворка на некоторых платформах сыровата (где он неродной), что уж тут греха таить. А вот под Ubuntu Phone, например, вполне себе комфортно. Под MeeGo было комфортно… (Минутка ностальгии)

        В общем ответ на прямой вопрос «удобно ли...» ответ однозначно «Да», насколько применимо на практике для всех платформ — другой вопрос.

        P.S. Когда пишут «QT», то обычно у Qt-программистов бугурт. Qt. Qt. А QT — это квиктайм


        1. TheRabbitFlash
          01.09.2015 20:59

          Сколько бы мобильных OS не выпускалось — дальше iOS и Android идти (после технико-экономического анализа) — оказывается бессмысленно. Market Share низкий. А если брать его проценты и вкладывать в целевую аудиторию по целевым странам — выходит, что не окупается вовсе.


          1. QtRoS
            02.09.2015 10:04

            Увидим. Linux дистрибутивов тоже было великое множество, но Ubuntu взлетел.


            1. TheRabbitFlash
              02.09.2015 10:26
              +1

              Прошу прощения… а взлетел среди кого? Это как говорить, что какая-то там пушка-гаубица взлетела. Опять же — кто ее применяет? Рядовой пользователь? Нет. Поэтому и тут взлетели только iOS и Android. На улице остановить любого человека и спросить что такое Windows и Linux в любых его модификациях и Вам у виска покрутят ибо «Компьютер это Windows и телефон он аЙфон». Примерно это Вы услышите :) Я знаю что говорю, т.к. плотно с конечными пользователями работаю.


  1. autobusiness
    04.09.2015 01:08

    А почему про Ionic не упомянули?)


  1. mon
    11.09.2015 20:32

    планируется ли поддержка Corona SDK?


  1. vitaly_KF
    20.09.2015 22:51

    Так и где же поддержка Qt?