Подтвердить что ты не робот

Какой язык или технология использовались для разработки настольного приложения Spotify?

Кто-нибудь знает, какой язык или технология используется для разработки рабочего стола Spotify? Он стабильный, красивый и легкий.

4b9b3361

Ответ 1

Вот список сторонних компонентов, которые они используют (например, поверх С++):

  • Повышение
  • Expat
  • FastDelegate
  • giflib
  • libjpeg
  • libogg
  • libvorbis
  • Mersenne Twister
  • Zlib
  • NSIS (только для Windows)
  • Библиотека шаблонов Windows (только для Windows)
  • Growl (только для Max OS X)
  • MATrackingArea (только для Mac OS X)

Ответ 2

Отсюда: http://www.quora.com/What-is-the-technology-behind-the-Spotify-desktop-app
Датировано: 2014-09-09

Andreas Blixt, 5-летний сотрудник Spotify:

Ядром всех наших клиентов является С++, но это ядро ​​с тех пор, как Rasmus пост получил сжатый, с функциональностью, разделенной на модули. В виде Spotify становится доступным на все более и более платформах, а также получив более богатый набор функций, нам необходимо убедиться, что "ядро" не стать "немного всего". Это означало разрастание некоторые функции, такие как управление воспроизведением, в свои собственные модули. Эти модули все еще С++, но достаточно автономны что их логика теоретически может быть реализована в других языки. Мы называем интерфейсный слой этими модулями "Космос" и он работает не так, как с HTTP. Космос позволяет любой части клиента взаимодействуют с модулем с использованием произвольных путей и полезными нагрузками, что обеспечивает гораздо более гибкую архитектуру. Некоторые очевидные преимуществами являются интерфейсы с версией (пример: GET sp://player/v1/main возвращает состояние игрока) и JSON для передачи данных. Это важно для другого изменения в нашем настольном клиенте.

В наши дни многие наши пользовательские интерфейсы на самом деле используют Chromium Embedded Framework (CEF), что в основном означает, что наши взгляды JavaScript, HTML и CSS. Для всех наших функциональных команд, чтобы иметь возможность работайте над их функциями, не опасаясь сломать кого-то другого, каждый вид изолирован в собственном "браузере" (думаю, вы можете думать просмотров как вкладки в Chrome, за исключением того, что мы показываем несколько время). Это приносит с собой одно ограничение: обмен данными между представлениями становится все труднее. Здесь приходит Космос и действительно упрощает связь между ядром (С++) и JavaScript Земля: клиенты JS могут выполнять произвольные запросы, и если есть привязка, этот запрос обрабатывается и отвечает. Одним из примеров является конечная точка "сообщений", которая позволяет любому представлению выводить данные JSON на любой другое мнение, что прослушивание (вроде как window.postMessage в HTML5, кроме этого можно также взаимодействовать с модулями С++). Это также все кнопки воспроизведения в клиенте знают, играет ли трек или нет, или доступен ли он в автономном режиме (другой модуль Cosmos), или вы сохранили песню в своей музыке.

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

Ответ 3

Согласно дизайну Spotify:

http://twitter.com/#!/tobiasahlin/status/96483609799692288

"Некоторые из них находятся в С++, а некоторые из них находятся в языке разметки HTML-ish, называемом Spider" "Он построен исключительно для использования в Spotify"

Ответ 4

Spotify теперь использует Chromium Embedded Framework (CEF) для отображения веб-интерфейса, состоящего из HTML/CSS/JavaScript в настольном приложении.

Ответ 5

Из своего сайта:

Spotify построен в основном на Python и С++

Ответ 6

Учитывая, что он работает в Windows, это явно не .NET(Process Explorer сообщает мне об этом), не выполнял процесс установки AIR, я бы сказал, что С++ использует библиотеки кросс-платформенной.

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

W.r.t to Techno... я думаю, они использовали Hardhouse Electronica

Ответ 7

Интерфейс написан в FLEX, проверяет источники на вашем компьютере Mac или Windows. Вы увидите много файлов xml, которые находятся в формате файла flex.

Конечно, соединение с сервером и интеграция платформы, вероятно, написаны изначально на языке С++. Но часть пользовательского интерфейса - это просто FLEX...