Кинопоиск для виндовс фон


Как создавался «Кинопоиск» для Windows Phone / Блог компании Microsoft Lumia / Хабрахабр

Не так давно в российском Marketplace появился официальный клиент сайта «Кинопоиск», который на ура был воспринят пользователями Windows Phone и сейчас бьёт все рекорды популярности среди бесплатных приложений. Конечно же, мы не могли не взять интервью у Григория Никонова (Anadale), разработчика этого приложения.

Григорий является сооснователем крупнейшего в России диджитал-агентства Actis Wunderman и главным техническим гуру компании. Кроме того, Григорий сотрудничал с ATM Forum European Marketing Awareness Committee и стал одним из авторов монографии, посвященной ATM-сетям. В совокупности его опыт работы в сфере IT составляет более двадцати лет.

Под катом вы сможете почитать мнение Григория Никонова о платформе Windows Phone и конкурирующих мобильных операционных системах (как со стороны разработчика, так и пользователя), о проблемах разработки под мобильные ОС, и, непосредственно о проектировании и разработке «Кинопоиска».

— Чем разработка под Windows Phone отличается от разработки под другие платформы?

С точки зрения разработчика, iOS имеет очень хорошее API, позволяющее реализовать практически всё, что может потребоваться, и содержит отличную документацию. Однако при разработке под iOS есть один минус, который так или иначе напрягает: разработка ведётся на Objective-C — чудесном языке, который пытались дотянуть до языка высокого уровня. К сожалению, на нем вы тратите массу времени на подробное объяснение того, что нужно сделать, чтобы показать ваши данные, вместо того, чтобы сказать «вот мои данные – покажи их». Ну и, конечно, приходится помнить о таких вещах, как утечка памяти, управление счетчиками ссылок и подобных вещах. Если же говорить про пользовательские интерфейсы, то в силу огромной гибкости iOS, разработчики пытаются выделиться как могут. В результате этого все приложения под iPhone и iPad делятся на две большие категории: либо все приложения сделаны абсолютно одинаково, по шаблону, либо это «цыганский табор», когда каждый пытается сделать то, что он хочет, и, более того, ему это удаётся. Проблема в том, что кому-то это удаётся не очень хорошо. Если подводить какую-то оценку разработке под iOS, то я ставлю твёрдую четвёрку.

Вторая широко известная платформа — это Android. Данная платформа тоже поражает своей гибкостью в большинстве мест. К тому же, под Android разработка ведётся на Java — более современном и удобном языке, нежели Objective-C. Java упрощает разработку в силу своей объектно-ориентированности и того, что это «управляемый» язык, то есть существует виртуальная машина, которая теоретически управляет за тебя памятью и всем остальным. Но и здесь есть свои нюансы. Во-первых, преимущественно средой разработки является Eclipse, и хотя она хороша для разработчика сама по себе, она никак не помогает рисовать интерфейсы и делать другие вещи. Кроме того, писать на Java под Android, как оказалось, сложнее, чем под iOS. При разработке под iOS в Xcode есть хоть какая-то визуальная помощь, в Eclipse такого нет. Вообще, Android замечательный и гибкий, разрабатывать для него — это как «идти в разведку в джунглях»: ты много тащишь всего на себе, это всё тоже нужно знать; есть масса нюансов, про которые можно и не догадываться, пока они тебя не ударят по голове.

После всего этого разработка под Windows Phone оказалась «чистой радостью ребёнка в песочнице». Во-первых, у Microsoft на сегодняшний день самые сильные средства для разработчика. Лучше Visual Studio ничего не придумано. Apple с Xcode только сейчас подошёл к VS пятилетней давности, а Eclipse хоть и имеет очень сильные инструменты для работы с текстом, в ней нет всех тех «визуальных обёрточек», которые часто нужны. Зато это есть при разработке под Windows Phone: ты сразу видишь код, который ты пишешь, и сразу видишь, как всё это выглядит на экране. К тому же C# — язык поновее, чем Java, и наученный на ошибках Java. На нём просто хорошо и приятно писать.

У Windows Phone нет такой гибкости, которая есть у iOS и Android. Ребята из Microsoft честно подошли к Metro-концепции, сказав, что мы имеем дело с мобильным телефоном, и, что у телефона не может быть всех этих текстур дерева и выпуклых кнопок, которые все так пытаются сделать на iOS и Android. В Microsoft говорят, что это телефон, это экран, тут всё должно быть просто и нужно концентрироваться на контенте. Они представили массу шаблонов и «принципов дизайна», которые трактуют, как должно выглядеть Metro-приложение. Несмотря на то, что, с одной стороны, кажется, будто Microsoft загоняет разработчиков в рамки шаблонов, практика показывает, что внутри этих шаблонов столько свободы, что сделать можно всё, что угодно. А самое главное, что приложения, которые получаются — если их, конечно, правильно писать, — не выглядят скопированными под кальку. Так что с точки зрения принципов подхода к дизайну Windows Phone очень способствует концентрации на том, что ты хочешь представить пользователю, а не на том, как ты хочешь это представить. Когда мы делали «Кинопоиск», мы провели безумное число часов за спорами, как приложение должно выглядеть, и проиграли перед собой несколько десятков сценариев взаимодействия пользователя с приложением.

Возвращаясь к разработке, хочется сказать, что C# является лучшим языком программирования широкого профиля, и, что самое главное, очень нравится, в каком направлении этот язык продолжает развиваться. Стоит сказать, что мы немножко схитрили, используя не тот «голый» язык в той версии, которая доступна всем, а применяли некоторые свойства для упрощения асинхронной работы с данными, которые только появятся в следующей версии языка. А для мобильных устройств это штуки, без которых жить просто нельзя. Этих вещей ни в iOS, ни в Android нет, и как только ты на этих платформах ввязываешься в асинхронную работу с данными, ты сразу погрязаешь в куче непонятных вещей, которые реально сносят мозг.

При классическом синхронном программировании мы посылаем какой-то запрос на сервер и ждём ответа — в этот момент пользовательский интерфейс ни на что не реагирует, что вряд ли кого-то устраивает. Чтобы добиться работы интерфейса, код, условно, разбивается на две части: на то, что было до отправки запроса, и на то, что происходит после отправки запроса. Это два совершенно разных куска (а если запрос не один, как чаще всего и бывает, то их вдвое больше количества запросов). В результате это всё разбивается на множество мелких частей и тебе нужно держать в голове картину того, что за чем вызывается, и при этом не запутаться, когда и что происходит. Поначалу это может казаться забавным, но потом становится всё сложнее контролировать этот процесс, что выливается в ошибки, которые сложнее всего править. Именно ошибки, связанные с асинхронностью и многозадачностью являются самыми распространёнными — просто потому, что нет возможности пройти отладчиком и всё проверить.

При этом в C# компилятор языка автоматически умеет раскладывать всё это на тысячи методов. Для программиста это выглядит так, будто весь процесс проходит линейным потоком, а компилятор за него разбирает весь код на необходимые методы. Эта особенность компилятора сэкономила нам в разработке «Кинопоиска» примерно две недели. Несмотря на то, что «Кинопоиск» не является большим приложением, даже на его разработке мы сэкономили столько времени благодаря C#. И страшно представить, сколько мы бы затратили времени на поиск и отладку тех ошибок, которые бы могли возникнуть, если бы это всё разрабатывалось под Android или iOS.

— Какие трудности ожидают людей при разработке мобильных приложений?

Разработка приложений под мобильные платформы для человека, который до этого писал только десктопное ПО — это совершенно другой мир, под который нужно целенаправленно перестраиваться. И после того, как ты под него перестроился, писать для десктопов становится странно: десктопное ПО слишком медленное и статичное. Десктопному приложению нестрашно «задуматься» на 10-20 секунд для выполнения какой-нибудь операции, в то время как среднее время сессии на телефоне чаще всего составляет всего несколько секунд. И если мобильное приложение за эти несколько секунд не отвечает на действия пользователя, то скорее всего это приложение пользователь просто удалит. Поэтому появление смартфонов очень сильно сдвинуло парадигму разработки в сторону быстрого ответа, как он только появился — пусть и частично, — чтобы показать пользователю, что приложение работает. Ничто так не бесит в мобильных программах, как колесо загрузки.

С другой стороны, помимо желания быстро что-то показать пользователю, есть жестокое ограничение — канал передачи данных. Далеко не всегда пользователи пользуются Wi-Fi или хотя бы 3G, а значит нужно заниматься оптимизацией сетевого трафика. Помимо оптимизации трафика нужно оптимизировать и интерфейс мобильных приложений: на небольшой площади экрана нужно разместить максимум информации и соблюсти все зоны, куда пользователь попадает пальцем. У кого-то пальцы меньше, а у кого-то больше; и тут встречается очень распространённая ошибка, когда программисты считают, что кнопка должна быть такого же размера, что и её изображение, а ведь на самом деле «touch zone» правильной кнопки многим больше, чем она нарисована. Нужно считать, сколько приложение потребляет процессорной мощности и сколько оно занимает места в памяти и на диске. Эта оптимизация знакома программистам старой закалки, но неизвестна новым разработчикам. При разработке «Кинопоиска» мы изначально планировали по-максимуму кешировать данные, чтобы при отсутствии сети пользователь мог посмотреть какую-то информацию, но мы столкнулись с проблемой, когда скачать изображение из интернета по 3G получается быстрее, чем прочитать её из внутреннего хранилища — о таких проблемах изначально очень сложно догадаться. В первых версиях «Кинопоиска» мы сначала искали изображения в кеше, и если их там не было, сперва скачивали их и загружали в кеш, а потом показывали из кеша. Сейчас мы кешируем только те изображения, которые появляются на первом экране — все остальные материалы сразу грузятся из Сети.

— «Кинопоиск» — это приложение-панорама (Windows Phone Panorama Application). Какое впечатление сложилось о Metro UI? Вызывал ли новый интерфейс трудности в проектировании?

У нас ушло приблизительно три недели на проектирование и понимание того, как разложить все данные, отображающиеся в приложении, на правильный Metro-интерфейс, чтобы вся информация вместилась и чтобы приложение не было копией iPhone-версии «Кинопоиска». К сожалению, последней проблемой страдают очень многие приложения в Marketplace, чьи разработчики не потрудились адаптировать их под новую платформу, а просто стянули дизайн с существующей версии под iPhone или Android.

В «Кинопоиске», конечно же, мы использовали панорамы. Всё приложение устроено таким образом, что в любой панораме самая важная информация отображается на первом экране, информация, чуть меньшая по важности, всегда отображается при одном скролле вправо, и ещё чуть меньшая по важности — при одном скролле влево. И в этом огромный плюс панорам и Metro UI. Такого нет ни в iOS, ни в Android.

— Были ли при разработке использованы какие-нибудь хинты, о которых можно рассказать и которыми хотелось бы поделиться?

Какое-то время мы потратили на создание правильной инфраструктуры для разработки приложений — некоторой нашей внутренней базовой платформы по тому, как строить мобильный софт. Есть такой архитектурный паттерн Model-View-ViewModel, и существует несколько разных его реализаций в виде базовых библиотек. Мы на них посмотрели и написали свой шаблон MVVM. Сделали мы это потому, что у нас уже был некоторый набор базовых библиотек, с которыми мы привыкли работать, и на эти библиотеки концепция MVVM очень хорошо ложилась. В результате мы не думали, как, например, описать получение данных и ещё что-то — в основном работа шла над представлением.

— Как устроен API, были ли с ним какие-то проблемы? Если были, то как решались?

Для нашего приложения «Кинопоиск» написал отдельный API, отличный от оного для собственного iOS-клиента. По-хорошему, API разрабатывается под нужды клиента, и нам не были нужны вызовы, использующиеся в iOS-клиенте «Кинопоиска». Дело в том, что версия под iPhone использовала отдельные вызовы для каждого экрана — список популярных на сегодня фильмов, список популярных людей на сегодня, лента новостей и так далее. Нам же, в панорамах, все эти данные были нужны вместе, поэтому для «Кинопоиска» под Windows Phone часть запросов была переделана для более удобного, быстрого и компактного получения необходимых нам данных.

— Как происходило взаимодействие с Microsoft Marketplace? Сразу ли допустили приложение в магазин?

Так как «Кинопоиск» разрабатывался по инициативе Microsoft и Nokia, у нас ещё до похода в Marketplace был обзор проекта, где мы представляли нашу дизайн-концепцию и информационную архитектуру ребятам из Microsoft, и после их одобрения уже разрабатывали приложение. После разработки они тестировали «Кинопоиск» и смотрели на выполнения ряда строгих, но справедливых требований. Собственно, в Marketplace все проверки проходили очень быстро.

— Что можно посоветовать начинающим разработчикам приложений под Windows Phone?

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

Второй совет: используйте сторонние системы управления ошибками. Есть один замечательный сервис с названием BugSense — это единая система сбора и обработки ошибок, которые возникают при работе приложения. Сервис доступен не только для Windows Phone, но и для iOS и Android. При возникновении какой-либо ошибки BugSense показывает пользователю окно о проблеме, а на сайт отправляет данные о самой ошибке и всю техническую информацию о состоянии смартфона, при котором эта ошибка возникла. В итоге на сайте вся эта информация собирается и обрабатывается, позволяя быстро реагировать на возникающие проблемы. Данный сервис гораздо удобнее того, что предлагает Microsoft в своём App Hub. Сервис платный, но имеет и бесплатную версию подписки с рядом ограничений, которой, впрочем, вполне хватает.

habrahabr.ru

Как создавался «Кинопоиск» для Windows Phone

Не так давно в российском Marketplace появился официальный клиент сайта «Кинопоиск», который на ура был воспринят пользователями Windows Phone и сейчас бьёт все рекорды популярности среди бесплатных приложений. Конечно же, мы не могли не взять интервью у Григория Никонова, разработчика этого приложения.

Григорий является сооснователем крупнейшего в России диджитал-агентства Actis Wunderman и главным техническим гуру компании. Кроме того, Григорий сотрудничал с ATM Forum European Marketing Awareness Committee и стал одним из авторов монографии, посвященной ATM-сетям. В совокупности его опыт работы в сфере IT составляет более двадцати лет.

Под катом вы сможете почитать мнение Григория Никонова о платформе Windows Phone и конкурирующих мобильных операционных системах (как со стороны разработчика, так и пользователя), о проблемах разработки под мобильные ОС, и, непосредственно о проектировании и разработке «Кинопоиска».

— Чем разработка под Windows Phone отличается от разработки под другие платформы?

С точки зрения разработчика, iOS имеет очень хорошее API, позволяющее реализовать практически всё, что может потребоваться, и содержит отличную документацию. Однако при разработке под iOS есть один минус, который так или иначе напрягает: разработка ведётся на Objective-C — чудесном языке, который пытались дотянуть до языка высокого уровня. К сожалению на нем вы тратите массу времени на подробное объяснение того, что нужно сделать, чтобы показать ваши данные, вместо того, чтобы сказать «вот мои данные – покажи их». Ну и, конечно, приходится помнить о таких вещах, как утечка памяти, управление счетчиками ссылок и подобных вещах.Если же говорить про пользовательские интерфейсы, то в силу огромной гибкости iOS, разработчики пытаются выделиться как могут. В результате этого все приложения под iPhone и iPad делятся на две большие категории: либо все приложения сделаны абсолютно одинаково, по шаблону, либо это «цыганский табор», когда каждый пытается сделать то, что он хочет, и, более того, ему это удаётся. Проблема в том, что кому-то это удаётся не очень хорошо. Если подводить какую-то оценку разработке под iOS, то я ставлю твёрдую четвёрку.

Вторая широко известная платформа — это Android. Данная платформа тоже поражает своей гибкостью в большинстве мест. К тому же под Android разработка ведётся на Java — более современном и удобном языке, нежели Objective-C. Java упрощает разработку в силу своей объектно-ориентированности и того, что это «управляемый» язык, то есть существует виртуальная машина, которая теоретически управляет за тебя памятью и всем остальным. Но и здесь есть свои нюансы. Во-первых, преимущественно средой разработки является Eclipse, и хотя она хороша для разработчика сама по себе, она никак не помогает рисовать интерфейсы и делать другие вещи. Кроме того, писать на Java под Android, как оказалось, сложнее, чем под iOS. При разработке под iOS в Xcode есть хоть какая-то визуальная помощь, в Eclipse такого нет. Вообще, Android замечательный и гибкий, разрабатывать для него — это как «идти в разведку в джунглях»: ты много тащишь всего на себе, это всё тоже нужно знать; есть масса нюансов, про которые можно и не догадываться, пока они тебя не ударят по голове.

После всего этого разработка под Windows Phone оказалась «чистой радостью ребёнка в песочнице». Во-первых, у Microsoft на сегодняшний день самые сильные средства для разработчика. Лучше Visual Studio ничего не придумано. Apple с Xcode только сейчас подошёл к VS пятилетней давности, а Eclipse хоть и имеет очень сильные инструменты для работы с текстом, в ней нет всех тех «визуальных обёрточек», которые часто нужны. Зато это есть при разработке под Windows Phone: ты сразу видишь код, который ты пишешь, и сразу видишь, как всё это выглядит на экране. К тому же C# — язык поновее, чем Java, и наученный на ошибках Java. На нём просто хорошо и приятно писать.

У Windows Phone нет такой гибкости, которая есть у iOS и Android. Ребята из Microsoft честно подошли к Metro-концепции, сказав, что мы имеем дело с мобильным телефоном, и, что у телефона не может быть всех этих текстур дерева и выпуклых кнопок, которые все так пытаются сделать на iOS и Android. В Microsoft говорят, что это телефон, это экран, тут всё должно быть просто и нужно концентрироваться на контенте. Они представили массу шаблонов и «принципов дизайна», которые трактуют, как должно выглядеть Metro-приложение. Несмотря на то, что, с одной стороны, кажется, будто Microsoft загоняет разработчиков в рамки шаблонов, практика показывает, что внутри этих шаблонов столько свободы, что сделать можно всё, что угодно. А самое главное, что приложения, которые получаются — если их, конечно, правильно писать, — не выглядят скопированными под кальку. Так что с точки зрения принципов подхода к дизайну Windows Phone очень способствует концентрации на том, что ты хочешь представить пользователю, а не на том, как ты хочешь это представить. Когда мы делали «Кинопоиск», мы провели безумное число часов за спорами, как приложение должно выглядеть, и проиграли перед собой несколько десятков сценариев взаимодействия пользователя с приложением.

Возвращаясь к разработке, хочется сказать, что C# является лучшим языком программирования широкого профиля, и, что самое главное, очень нравится, в каком направлении этот язык продолжает развиваться. Стоит сказать, что мы немножко схитрили, используя не тот «голый» язык в той версии, которая доступна всем, а применяли некоторые свойства для упрощения асинхронной работы с данными, которые только появятся в следующей версии языка. А для мобильных устройств это штуки, без которых жить просто нельзя. Этих вещей ни в iOS, ни в Android нет, и как только ты на этих платформах ввязываешься в асинхронную работу с данными, ты сразу погрязаешь в куче непонятных вещей, которые реально сносят мозг.

При классическом синхронном программировании мы посылаем какой-то запрос на сервер и ждём ответа — в этот момент пользовательский интерфейс ни на что не реагирует, что вряд ли кого-то устраивает. Чтобы добиться работы интерфейса, код, условно, разбивается на две части: на то, что было до отправки запроса, и на то, что происходит после отправки запроса. Это два совершенно разных куска (а если запрос не один, как чаще всего и бывает, то их вдвое больше количества запросов). В результате это всё разбивается на множество мелких частей и тебе нужно держать в голове картину того, что за чем вызывается, и при этом не запутаться, когда и что происходит. Поначалу это может казаться забавным, но потом становиться всё сложнее контролировать этот процесс, что выливается в ошибки, которые сложнее всего править. Именно ошибки, связанные с асинхронностью и многозадачностью являются самыми распространёнными — просто потому, что нет возможности пройти отладчиком и всё проверить.

При этом в C# компилятор языка автоматически умеет раскладывать всё это на тысячи методов. Для программиста это выглядит так, будто весь процесс проходит линейным потоком, а компилятор за него разбирает весь код на необходимые методы. Эта особенность компилятора сэкономила нам в разработке «Кинопоиска» примерно две недели. Несмотря на то, что «Кинопоиск» не является большим приложением, даже на его разработке мы сэкономили столько времени благодаря C#. И страшно представить, сколько мы бы затратили времени на поиск и отладку тех ошибок, которые бы могли возникнуть, если бы это всё разрабатывалось под Android или iOS.

— Какие трудности ожидают людей при разработке мобильных приложений?

Разработка приложений под мобильные платформы для человека, который до этого писал только десктопное ПО — это совершенно другой мир, под который нужно целенаправленно перестраиваться. И после того, как ты под него перестроился, писать для десктопов становится странно: десктопное ПО слишком медленное и статичное. Десктопному приложению нестрашно «задуматься» на 10-20 секунд для выполнения какой-нибудь операции, в то время как среднее время сессии на телефоне чаще всего составляет всего несколько секунд. И если мобильное приложение за эти несколько секунд не отвечает на действия пользователя, то скорее всего это приложение пользователь просто удалит. Поэтому появление смартфонов очень сильно сдвинуло парадигму разработки в сторону быстрого ответа, как он только появился — пусть и частично, — чтобы показать пользователю, что приложение работает. Ничто так не бесит в мобильных программах, как колесо загрузки.

С другой стороны, помимо желания быстро что-то показать пользователю, есть жестокое ограничение — канал передачи данных. Далеко не всегда пользователи пользуются Wi-Fi или хотя бы 3G, а значит нужно заниматься оптимизацией сетевого трафика. Помимо оптимизации трафика нужно оптимизировать и интерфейс мобильных приложений: на небольшой площади экрана нужно разместить максимум информации и соблюсти все зоны, куда пользователь попадает пальцем. У кого-то пальцы меньше, а у кого-то больше; и тут встречается очень распространённая ошибка, когда программисты считают, что кнопка должна быть такого же размера, что и её изображение, а ведь на самом деле «touch zone» правильной кнопки многим больше, чем она нарисована. Нужно считать, сколько приложение потребляет процессорной мощности и сколько оно занимает места в памяти и на диске. Эта оптимизация знакома программистам старой закалки, но неизвестна новым разработчикам. При разработке «Кинопоиска» мы изначально планировали по-максимуму кешировать данные, чтобы при отсутствии сети пользователь мог посмотреть какую-то информацию, но мы столкнулись с проблемой, когда скачать изображение из интернета по 3G получается быстрее, чем прочитать её из внутреннего хранилища — о таких проблемах изначально очень сложно догадаться. В первых версиях «Кинопоиска» мы сначала искали изображения в кеше, и если их там не было, сперва скачивали их и загружали в кеш, а потом показывали из кеша. Сейчас мы кешируем только те изображения, которые появляются на первом экране — все остальные материалы сразу грузятся из Сети.

— «Кинопоиск» — это приложение-панорама (Windows Phone Panorama Application). Какое впечатление сложилось о Metro UI? Вызывал ли новый интерфейс трудности в проектировании?

У нас ушло приблизительно три недели на проектирование и понимание того, как разложить все данные, отображающиеся в приложении, на правильный Metro-интерфейс, чтобы вся информация вместилась и чтобы приложение не было копией iPhone-версии «Кинопоиска». К сожалению, последней проблемой страдают очень многие приложения в Marketplace, чьи разработчики не потрудились адаптировать их под новую платформу, а просто стянули дизайн с существующей версии под iPhone или Android.

В «Кинопоиске», конечно же, мы использовали панорамы. Всё приложение устроено таким образом, что в любой панораме самая важная информация отображается на первом экране, информация, чуть меньшая по важности, всегда отображается при одном скролле вправо, и ещё чуть меньшая по важности — при одном скролле влево. И в этом огромный плюс панорам и Metro UI. Такого нет ни в iOS, ни в Android.

— Были ли при разработке использованы какие-нибудь хинты, о которых можно рассказать и которыми хотелось бы поделиться?

Какое-то время мы потратили на создание правильной инфраструктуры для разработки приложений — некоторой нашей внутренней базовой платформы по тому, как строить мобильный софт. Есть такой архитектурный паттерн Model-View-ViewModel, и существует несколько разных его реализаций в виде базовых библиотек. Мы на них посмотрели и написали свой шаблон MVVM. Сделали мы это потому, что у нас уже был некоторый набор базовых библиотек, с которыми мы привыкли работать, и на эти библиотеки концепция MVVM очень хорошо ложилась. В результате мы не думали, как, например, описать получение данных и ещё что-то — в основном работа шла над представлением.

— Как устроен API, были ли с ним какие-то проблемы? Если были, то как решались?

Для нашего приложения «Кинопоиск» написал отдельный API, отличный от оного для собственного iOS-клиента. По-хорошему, API разрабатывается под нужды клиента, и нам не были нужны вызовы, использующиеся в iOS-клиенте «Кинопоиска». Дело в том, что версия под iPhone использовала отдельные вызовы для каждого экрана — список популярных на сегодня фильмов, список популярных людей на сегодня, лента новостей и так далее. Нам же, в панорамах, все эти данные были нужны вместе, поэтому для «Кинопоиска» под Windows Phone часть запросов была переделана для более удобного, быстрого и компактного получения необходимых нам данных.

— Как происходило взаимодействие с Microsoft Marketplace? Сразу ли допустили приложение в магазин?

Так как «Кинопоиск» разрабатывался по инициативе Microsoft и Nokia, у нас ещё до похода в Marketplace был обзор проекта, где мы представляли нашу дизайн-концепцию и информационную архитектуру ребятам из Microsoft, и после их одобрения уже разрабатывали приложение. После разработки они тестировали «Кинопоиск» и смотрели на выполнения ряда строгих, но справедливых требований. Собственно, в Marketplace все проверки проходили очень быстро.

— Что можно посоветовать начинающим разработчикам приложений под Windows Phone?

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

Второй совет: используйте сторонние системы управления ошибками. Есть один замечательный сервис с названием BugSense — это единая система сбора и обработки ошибок, которые возникают при работе приложения. Сервис доступен не только для Windows Phone, но и для iOS и Android. При возникновении какой-либо ошибки BugSense показывает пользователю окно о проблеме, а на сайт отправляет данные о самой ошибке и всю техническую информацию о состоянии смартфона, при котором эта ошибка возникла. В итоге на сайте вся эта информация собирается и обрабатывается, позволяя быстро реагировать на возникающие проблемы. Данный сервис гораздо удобнее того, что предлагает Microsoft в своём App Hub. Сервис платный, но имеет и бесплатную версию подписки с рядом ограничений, которой, впрочем, вполне хватает.

Автор: nokiaman

www.pvsm.ru

Как создавался «Кинопоиск» для Windows Phone / Гаджеты для гиков

Не так давно в российском Marketplace появился официальный клиент сайта «Кинопоиск», который на ура был воспринят пользователями Windows Phone и сейчас бьёт все рекорды популярности среди бесплатных приложений. Конечно же, мы не могли не взять интервью у Григория Никонова, разработчика этого приложения.

Григорий является сооснователем крупнейшего в России диджитал-агентства Actis Wunderman и главным техническим гуру компании. Кроме того, Григорий сотрудничал с ATM Forum European Marketing Awareness Committee и стал одним из авторов монографии, посвященной ATM-сетям. В совокупности его опыт работы в сфере IT составляет более двадцати лет.

Под катом вы сможете почитать мнение Григория Никонова о платформе Windows Phone и конкурирующих мобильных операционных системах (как со стороны разработчика, так и пользователя), о проблемах разработки под мобильные ОС, и, непосредственно о проектировании и разработке «Кинопоиска».

— Чем разработка под Windows Phone отличается от разработки под другие платформы?

С точки зрения разработчика, iOS имеет очень хорошее API, позволяющее реализовать практически всё, что может потребоваться, и содержит отличную документацию. Однако при разработке под iOS есть один минус, который так или иначе напрягает: разработка ведётся на Objective-C — чудесном языке, который пытались дотянуть до языка высокого уровня. К сожалению на нем вы тратите массу времени на подробное объяснение того, что нужно сделать, чтобы показать ваши данные, вместо того, чтобы сказать «вот мои данные – покажи их». Ну и, конечно, приходится помнить о таких вещах, как утечка памяти, управление счетчиками ссылок и подобных вещах. Если же говорить про пользовательские интерфейсы, то в силу огромной гибкости iOS, разработчики пытаются выделиться как могут. В результате этого все приложения под iPhone и iPad делятся на две большие категории: либо все приложения сделаны абсолютно одинаково, по шаблону, либо это «цыганский табор», когда каждый пытается сделать то, что он хочет, и, более того, ему это удаётся. Проблема в том, что кому-то это удаётся не очень хорошо. Если подводить какую-то оценку разработке под iOS, то я ставлю твёрдую четвёрку.

Вторая широко известная платформа — это Android. Данная платформа тоже поражает своей гибкостью в большинстве мест. К тому же под Android разработка ведётся на Java — более современном и удобном языке, нежели Objective-C. Java упрощает разработку в силу своей объектно-ориентированности и того, что это «управляемый» язык, то есть существует виртуальная машина, которая теоретически управляет за тебя памятью и всем остальным. Но и здесь есть свои нюансы. Во-первых, преимущественно средой разработки является Eclipse, и хотя она хороша для разработчика сама по себе, она никак не помогает рисовать интерфейсы и делать другие вещи. Кроме того, писать на Java под Android, как оказалось, сложнее, чем под iOS. При разработке под iOS в Xcode есть хоть какая-то визуальная помощь, в Eclipse такого нет. Вообще, Android замечательный и гибкий, разрабатывать для него — это как «идти в разведку в джунглях»: ты много тащишь всего на себе, это всё тоже нужно знать; есть масса нюансов, про которые можно и не догадываться, пока они тебя не ударят по голове.

После всего этого разработка под Windows Phone оказалась «чистой радостью ребёнка в песочнице». Во-первых, у Microsoft на сегодняшний день самые сильные средства для разработчика. Лучше Visual Studio ничего не придумано. Apple с Xcode только сейчас подошёл к VS пятилетней давности, а Eclipse хоть и имеет очень сильные инструменты для работы с текстом, в ней нет всех тех «визуальных обёрточек», которые часто нужны. Зато это есть при разработке под Windows Phone: ты сразу видишь код, который ты пишешь, и сразу видишь, как всё это выглядит на экране. К тому же C# — язык поновее, чем Java, и наученный на ошибках Java. На нём просто хорошо и приятно писать.

У Windows Phone нет такой гибкости, которая есть у iOS и Android. Ребята из Microsoft честно подошли к Metro-концепции, сказав, что мы имеем дело с мобильным телефоном, и, что у телефона не может быть всех этих текстур дерева и выпуклых кнопок, которые все так пытаются сделать на iOS и Android. В Microsoft говорят, что это телефон, это экран, тут всё должно быть просто и нужно концентрироваться на контенте. Они представили массу шаблонов и «принципов дизайна», которые трактуют, как должно выглядеть Metro-приложение. Несмотря на то, что, с одной стороны, кажется, будто Microsoft загоняет разработчиков в рамки шаблонов, практика показывает, что внутри этих шаблонов столько свободы, что сделать можно всё, что угодно. А самое главное, что приложения, которые получаются — если их, конечно, правильно писать, — не выглядят скопированными под кальку. Так что с точки зрения принципов подхода к дизайну Windows Phone очень способствует концентрации на том, что ты хочешь представить пользователю, а не на том, как ты хочешь это представить. Когда мы делали «Кинопоиск», мы провели безумное число часов за спорами, как приложение должно выглядеть, и проиграли перед собой несколько десятков сценариев взаимодействия пользователя с приложением.

Возвращаясь к разработке, хочется сказать, что C# является лучшим языком программирования широкого профиля, и, что самое главное, очень нравится, в каком направлении этот язык продолжает развиваться. Стоит сказать, что мы немножко схитрили, используя не тот «голый» язык в той версии, которая доступна всем, а применяли некоторые свойства для упрощения асинхронной работы с данными, которые только появятся в следующей версии языка. А для мобильных устройств это штуки, без которых жить просто нельзя. Этих вещей ни в iOS, ни в Android нет, и как только ты на этих платформах ввязываешься в асинхронную работу с данными, ты сразу погрязаешь в куче непонятных вещей, которые реально сносят мозг.

При классическом синхронном программировании мы посылаем какой-то запрос на сервер и ждём ответа — в этот момент пользовательский интерфейс ни на что не реагирует, что вряд ли кого-то устраивает. Чтобы добиться работы интерфейса, код, условно, разбивается на две части: на то, что было до отправки запроса, и на то, что происходит после отправки запроса. Это два совершенно разных куска (а если запрос не один, как чаще всего и бывает, то их вдвое больше количества запросов). В результате это всё разбивается на множество мелких частей и тебе нужно держать в голове картину того, что за чем вызывается, и при этом не запутаться, когда и что происходит. Поначалу это может казаться забавным, но потом становиться всё сложнее контролировать этот процесс, что выливается в ошибки, которые сложнее всего править. Именно ошибки, связанные с асинхронностью и многозадачностью являются самыми распространёнными — просто потому, что нет возможности пройти отладчиком и всё проверить.

При этом в C# компилятор языка автоматически умеет раскладывать всё это на тысячи методов. Для программиста это выглядит так, будто весь процесс проходит линейным потоком, а компилятор за него разбирает весь код на необходимые методы. Эта особенность компилятора сэкономила нам в разработке «Кинопоиска» примерно две недели. Несмотря на то, что «Кинопоиск» не является большим приложением, даже на его разработке мы сэкономили столько времени благодаря C#. И страшно представить, сколько мы бы затратили времени на поиск и отладку тех ошибок, которые бы могли возникнуть, если бы это всё разрабатывалось под Android или iOS.

— Какие трудности ожидают людей при разработке мобильных приложений?

Разработка приложений под мобильные платформы для человека, который до этого писал только десктопное ПО — это совершенно другой мир, под который нужно целенаправленно перестраиваться. И после того, как ты под него перестроился, писать для десктопов становится странно: десктопное ПО слишком медленное и статичное. Десктопному приложению нестрашно «задуматься» на 10-20 секунд для выполнения какой-нибудь операции, в то время как среднее время сессии на телефоне чаще всего составляет всего несколько секунд. И если мобильное приложение за эти несколько секунд не отвечает на действия пользователя, то скорее всего это приложение пользователь просто удалит. Поэтому появление смартфонов очень сильно сдвинуло парадигму разработки в сторону быстрого ответа, как он только появился — пусть и частично, — чтобы показать пользователю, что приложение работает. Ничто так не бесит в мобильных программах, как колесо загрузки.

С другой стороны, помимо желания быстро что-то показать пользователю, есть жестокое ограничение — канал передачи данных. Далеко не всегда пользователи пользуются Wi-Fi или хотя бы 3G, а значит нужно заниматься оптимизацией сетевого трафика. Помимо оптимизации трафика нужно оптимизировать и интерфейс мобильных приложений: на небольшой площади экрана нужно разместить максимум информации и соблюсти все зоны, куда пользователь попадает пальцем. У кого-то пальцы меньше, а у кого-то больше; и тут встречается очень распространённая ошибка, когда программисты считают, что кнопка должна быть такого же размера, что и её изображение, а ведь на самом деле «touch zone» правильной кнопки многим больше, чем она нарисована. Нужно считать, сколько приложение потребляет процессорной мощности и сколько оно занимает места в памяти и на диске. Эта оптимизация знакома программистам старой закалки, но неизвестна новым разработчикам. При разработке «Кинопоиска» мы изначально планировали по-максимуму кешировать данные, чтобы при отсутствии сети пользователь мог посмотреть какую-то информацию, но мы столкнулись с проблемой, когда скачать изображение из интернета по 3G получается быстрее, чем прочитать её из внутреннего хранилища — о таких проблемах изначально очень сложно догадаться. В первых версиях «Кинопоиска» мы сначала искали изображения в кеше, и если их там не было, сперва скачивали их и загружали в кеш, а потом показывали из кеша. Сейчас мы кешируем только те изображения, которые появляются на первом экране — все остальные материалы сразу грузятся из Сети.

— «Кинопоиск» — это приложение-панорама (Windows Phone Panorama Application). Какое впечатление сложилось о Metro UI? Вызывал ли новый интерфейс трудности в проектировании?

У нас ушло приблизительно три недели на проектирование и понимание того, как разложить все данные, отображающиеся в приложении, на правильный Metro-интерфейс, чтобы вся информация вместилась и чтобы приложение не было копией iPhone-версии «Кинопоиска». К сожалению, последней проблемой страдают очень многие приложения в Marketplace, чьи разработчики не потрудились адаптировать их под новую платформу, а просто стянули дизайн с существующей версии под iPhone или Android.

В «Кинопоиске», конечно же, мы использовали панорамы. Всё приложение устроено таким образом, что в любой панораме самая важная информация отображается на первом экране, информация, чуть меньшая по важности, всегда отображается при одном скролле вправо, и ещё чуть меньшая по важности — при одном скролле влево. И в этом огромный плюс панорам и Metro UI. Такого нет ни в iOS, ни в Android.

— Были ли при разработке использованы какие-нибудь хинты, о которых можно рассказать и которыми хотелось бы поделиться?

Какое-то время мы потратили на создание правильной инфраструктуры для разработки приложений — некоторой нашей внутренней базовой платформы по тому, как строить мобильный софт. Есть такой архитектурный паттерн Model-View-ViewModel, и существует несколько разных его реализаций в виде базовых библиотек. Мы на них посмотрели и написали свой шаблон MVVM. Сделали мы это потому, что у нас уже был некоторый набор базовых библиотек, с которыми мы привыкли работать, и на эти библиотеки концепция MVVM очень хорошо ложилась. В результате мы не думали, как, например, описать получение данных и ещё что-то — в основном работа шла над представлением.

— Как устроен API, были ли с ним какие-то проблемы? Если были, то как решались?

Для нашего приложения «Кинопоиск» написал отдельный API, отличный от оного для собственного iOS-клиента. По-хорошему, API разрабатывается под нужды клиента, и нам не были нужны вызовы, использующиеся в iOS-клиенте «Кинопоиска». Дело в том, что версия под iPhone использовала отдельные вызовы для каждого экрана — список популярных на сегодня фильмов, список популярных людей на сегодня, лента новостей и так далее. Нам же, в панорамах, все эти данные были нужны вместе, поэтому для «Кинопоиска» под Windows Phone часть запросов была переделана для более удобного, быстрого и компактного получения необходимых нам данных.

— Как происходило взаимодействие с Microsoft Marketplace? Сразу ли допустили приложение в магазин?

Так как «Кинопоиск» разрабатывался по инициативе Microsoft и Nokia, у нас ещё до похода в Marketplace был обзор проекта, где мы представляли нашу дизайн-концепцию и информационную архитектуру ребятам из Microsoft, и после их одобрения уже разрабатывали приложение. После разработки они тестировали «Кинопоиск» и смотрели на выполнения ряда строгих, но справедливых требований. Собственно, в Marketplace все проверки проходили очень быстро.

— Что можно посоветовать начинающим разработчикам приложений под Windows Phone?

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

Второй совет: используйте сторонние системы управления ошибками. Есть один замечательный сервис с названием BugSense — это единая система сбора и обработки ошибок, которые возникают при работе приложения. Сервис доступен не только для Windows Phone, но и для iOS и Android. При возникновении какой-либо ошибки BugSense показывает пользователю окно о проблеме, а на сайт отправляет данные о самой ошибке и всю техническую информацию о состоянии смартфона, при котором эта ошибка возникла. В итоге на сайте вся эта информация собирается и обрабатывается, позволяя быстро реагировать на возникающие проблемы. Данный сервис гораздо удобнее того, что предлагает Microsoft в своём App Hub. Сервис платный, но имеет и бесплатную версию подписки с рядом ограничений, которой, впрочем, вполне хватает.

www.smsrostov.ru

«Кинопоиск» кардинально изменился и вернул себе прежний дизайн под натиском пользователей

В конце прошлой недели принадлежащий компании «Яндекс» сайт «Кинопоиск» резко изменил дизайн, растерял часть прежних функций и стал агрегатором онлайн-кинотеатров. Изменилась только веб-версия «Кинопоиска», приложения, в том числе для Windows и Windows Phone, разработчики обновить не успели, хотя такие планы у них, конечно же, были.

Для многих пользователей «Кинопоиска» изменения дизайна и функциональности стали очень неприятной неожиданностью, и волновать действительно было из-за чего — сервис требовал привязки к себе аккаунта «Яндекса» (даже у тех, у кого его не было), и из него пропали многие важные элементы. Вот лишь небольшое перечисление пропавшего:

— Рейтинг кинокритиков.— Список премьер и календарь новинок.— Календарь выхода DVD & Blu-ray.— Бокс-офис (топ фильмов в США, мире, России).— Рекомендации от пользователей/от сайта на основе оценок.— Сортировка добавленных фильмов в коллекциях (бывшие папки) по дате выхода, по рейтингам, по выходу на DVD и т.д.— Разнообразные графики и приятные эстетические мелочи вроде индекса активности.— Прокрутка списков вместо страниц.— Невозможно восстановить старый пароль учетной записи, если учётка была привязана к Google-почте.— Даты к оценкам, графики, средние оценки по жанрам, актерам, режиссерам, годам.— Просмотр сеансов в кинотеатрах, возможность заказать или купить билеты в кино.— Подсказки в строке поиска с прямой ссылкой на фильм.— Оценки друзей по интересам.— Личная переписка с другими пользователями.— Агрегация твитов звезд.

Люди, которые использовали «Кинопоиск» на постоянной основе заметили, что исчезли и многие другие элементы (либо были спрятаны далеко вглубь сайта).

Программисты «Яндекса» осовременили дизайн «Кинопоиска» — сайт стал светлее, просторнее, текста на нем очень мало, в основном картинки и короткие описания. Наиболее заметными стали кнопки покупки билетов и просмотра фильмов в онлайн-кинотеатрах (само собой, в основном платных). Впрочем, просмотр работал с перебоями, а ночью с 8 на 9 октября сайт вообще в основном лежал или показывал страницу с ошибкой 404, что ещё сильнее злило пользователей.

Разъярённая общественность начала нападать на «Яндекс» и «Кинопоиск» в блогах и социальных сетях — аккаунты компании «ВКонтакте» и на Фейсбуке были завалены негативной критикой о дизайне «Кинопоиска». Компания спокойно наблюдала за этим, но в конце недели всё же объявила о том, что на сайту будет возвращён прежний дизайн — но на отдельном домене. В понедельник под давлением недовольных пользователей сайт «Кинопоиск» вернул себе прежний дизайн. Новая версия сайта тоже работает и доступна по адресу beta.kinopoisk.ru.

Комментарий из блога «Кинопоиска»:

Бета-версия останется открыта для всех пользователей. Вы сможете следить за ее доработкой, а мы будем очень благодарны за пожелания и комментарии. Одновременно с использованием привычных возможностей прежнего «Кинопоиска» можно будет продолжать выбирать и смотреть фильмы и сериалы в бета-версии.

«Кинопоиск» был кардинально обновлен вечером 8 октября. Изменениям в его дизайне и функциональности оказались не только пользователи, но и основатель сайта Виталий Таций. Недовольства имели под собой основания: многие привычные элементы сайта были убраны далеко, пропали сохраненные фильмы, но появилась система рекомендаций, теги и работающий со сбоями агрегатор онлайн-кинотеатров.

Комментарий Виталия Тация:

У меня тут журналисты интервью пытаются взять, колоночки какие-то просят. Вот вам моя колонка:Это провал. Войдёт в учебники — про то, как не надо делать.«Яндекс» умудрился совершить все ошибки, которые можно было совершить. Наступил на все грабли, на которые можно было наступить. В итоге выкатили никому не нужный, сырой кусок говна.Два года «Кинопоиск» не развивался и был заморожен, все ждали перезапуск проекта, и вчера он случился. Почитайте, что думают пользователи (какой-то хороший человек уже наваял агрегатор отзывов): newkinopoisk.ruТам много всего: и подписи собирают, и президенту писать собираются, и предлагают сжечь напалмом офис «Яндекса».Хороший перезапуск — это когда положительных отзывов больше, чем отрицательных;Обычный перезапуск —это когда их 50/50;Провал — это когда отрицательных отзывов 100%.Я не знаю, что надо сделать с людьми, которые так поиздевались над миллионами любителей кино, уничтожив лучший киносайт рунета… Зато знает «Яндекс»: надо устроить вечеринку и выдать всем премию.Боюсь, что через пару лет «Кинопоиска» не будет. То есть, вообще не будет. Очень жаль.

«Кинопоиском» владеет компания «Яндекс». Она приобрела его два года назад за 80 миллионов долларов.

На сайте Roem.ru были опубликованы выдержки из внутренней переписки «Яндекса», в которой неизвестные сотрудники обсуждают разработку новой версии «Кинопоиска». По их словам, работа над сайтом велась последние два года, его код был полностью переписан с нуля, запуск изначально был запланирован на начало 2015 года, но несколько раз откладывался. Многим сотрудникам «Яндекса» не нравились планируемые нововведения, но к ним никто не прислушивался, поскольку перед компанией стояла вполне конкретная задача — сменить устаревший дизайн, убрать не пользующиеся популярностью и не приносящие денег разделы и добавить функциональность, на которой можно будет прилично зарабатывать. Сотрудники также пишут, что программисты, работавшие над новой функциональностью сайта, не назвать любителями кинематографа, они смотрят фильмы в основном «ВКонтакте», так что почти не имели представления о том, каким должен быть сайт, посвящённый фильмам.

В блогах пошли слухи, что за нововведения в «Кинопоиске» отвечала сотрудница «Яндекса» Светлана Яворская. Пользователи сайта нашли её профили в социальных сетях и начали атаковать её сообщениями, содержащими оскорбления и угрозы.

Вот что пнаисала Яворская на внутреннем форуме «Яндекса»:

Привет! Меня зовут Света, я маркетолог КиноПоиска. В ночь с 8 на 9 октября, параллельно с волной фидбека, в соц сетях и блогах на меня начали травлю, с оскорблениями и угрозами, нарекая меня руководителем перезапуска КиноПоиска. Кто-то выложил ссылки на мои профили и уже через часы меня завалило и продолжает валить до сих пор. Именно в связи с запуском КиноПоиска мне пишут, что я убийца и мразь — это из цензурного. Мне пишут, что «нужно подкараулить у офиса и «варианты физической расправы. Что мне лучше озираться и не ходить по улицам одной, «после того что я сделала с КиноПоиском».

Почему Компания меня не защищает от публичной травли? Почему PR делает вид, что ничего не происходит? Почему юристы не предлагают мне помощь, не инициируют обращения в полицию? Не знают об этом? Среди моих «друзей» в соц сетях есть и PR, и руководитель направления медиасервисов яндекса, и еще много-много коллег, которые посещали соц сети в эти дни (все говорят, что видят тонны отзывов в соц сетях). Они не могли не видеть этого потока ада, ведь лента формируется таким образом, что эти комментарии видно. Ок, допустим, не видели. Но ведь у нас настроена куча мониторилок, коллеги из саппорта и smт видят все, что пишут люди про перезапуск кп, видят как в блогах дают ссылки на мой профиль и обсуждают как меня травят и так мне и надо, ведь это я убила КиноПоиск.

Ок, допустим Компании все равно, что ее сотрудника (указавшего во всех профилях место работы и должность) оскорбляют и засыпают угрозами. Так как подтравливать начали и в этушке, я допускаю это. Ну, может быть политика внутренняя такая. Но ведь через меня ocкoрбляют Компанию, высказываются о ее действиях. Почему же Компания меня не защищает? Ведь это все происходит, потому что я выполняла свои обязанности как сотрудник и именно мне «повезло» стать лицом запуска КиноПоиска. Ведь это не последний запуск в Компании, эта история может повториться с любым другим сотрудником.

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

Впрочем, то, что не под силу программистам «Яндекса», уже давно реализовано людьми, которые не имеют никакого отношения к этому проекту. Умельцы уже выпустили расширение для браузера Chrome, которое добавляет на сайт кнопки для бесплатного просмотра, скачивания или поиска фильма в Google. На новой версии сайта оно заменяет кнопки платного просмотра кнопкой бесплатного просмотра, которая редиректит на сторонние ресурсы или на торрент-трекер. Конечно, это расширение по сути пиратское, поэтому мы не приводим ссылки на него (к тому же, в любой момент оно может быть удалено и веб-магазина Chrome за нарушение правил).

Конечно, вся эта история пошла «Кинопоиску» скорее на пользу. О сайте снова заговорили как о чём-то уникальном и феноменальном, не имеющем никаких аналогов. Выяснилось, что за этим сайтом стоит огромнейшее комьюнити, которое не даст его в обиду никому, даже тем, кто владеет им и по праву может делать с ним всё, что угодно. Но самое главное — возможно, в «Яндексе» призадумались, что не всё в этом миру измеряется деньгами. Есть вещи, которые должны существовать, пусть даже они не приносят столько денег, как хочется их хозяевам.

Если бы история развивалась по-другому, и «Яндекс» отказался бы идти на попятную и возвращать «Кинопоиску» старый дизайн, возможно платформе Windows Phone это пошло бы на пользу. Как вы знаете, приложения на этой платформе обновляются самыми последними, поэтому фанаты «Кинопоиска» покупали бы WP-смартфоны только ради того, чтобы иметь возможность пользваться старой версией приложения. Впрочем, что-то подсказывает мне, что история ещё не завершилась, «Яндекс» учтёт некоторые ошибки и спустя какое-то время повторит попытку убить «Кинопоиск» в том виде, в котором мы его знаем и любим.

w7phone.ru


Смотрите также