Pull to refresh
64
0
Павел Манылов @pavel_manylov

Разработчик

Send message
Если работаем с плеером приложения (MPMusicPlayerApplicationController), то провести транзакцию, которая не изменяет состояние очереди, но получает из неё объекты.

В вашем же случае речь идёт про интеграцию с Music.app, значит приходится использовать системный плеер, который не предоставляет методов для продвинутой работы с очередью. Тут ничего особо не поделать, можно лишь получать текущий проигрываемый трек (и подписываться на смену трека).

Могу лишь предложить перейти на использование applicationQueuePlayer, но это означает полный отказ от управления состоянием приложения Music.app и не даст обработать указанный сценарий перехода из Music.app в ваше приложение.

P.S. Есть, конечно, идиотский вариант: остановить проигрывание и поскипать треки туда-сюда проверяя какой трек обозначается как текущий, после чего вернуться на изначальный трек и продолжить проигрывания с заданной точки.
> Из плеера я не смог получить список песен, которые в очереди сейчас играют

Вот с этим проблем не было, если добавляются именно песни (по идентификаторам в iTunes Store), то в очереди будут `MPMediaItem` с соответствующими идентификаторами

> а получение лирики видимо требует дополнительный запрос

Тексты песен берутся из мета-тагов и не доступны для Apple Music (только если артист сам не прописал в мета-таги тексты). Apple Music в приложении берёт тексты из musixmatch, у них есть API и SDK (можно в частности получать тексты при установленном приложении musixmatch), однако имеются вопросы с авторскими правами при таком использовании. Разработчик приложения Soor был вынужден выключить показ песен за неимением формальной договорённости с musixmatch, потому что иначе приложение не проходило ревью в App Store

> iPad, на котором тестируют приложения, из коробки не умеет авторизацию в Apple music
Тут не очень понимаю в чём дело (локальная проблема с конкретным устройством?), будет интересно почитать подробности

А вот с плейлистами полная беда, даже абсурд какой-то: нельзя удалять плейлисты, которые были созданы в собственном приложении. Пока я не вижу альтернатив ведению собственных плейлистов в приложении с возможностью экспорта в Music.app и импортирования в одну сторону плейлистов из Music.app в приложение.
(удалено, неправильная ветка)
это не перевод, это дамп из моей головы

Сложно сказать по размерам, я тестировал только на ситуациях, приближенных к реальному использованию (три-четыре популярные группы, типа beatles и led zeppelin, с открытыми вложенными подграфами). Всё это дело работало на html5 (отрисовка на канвасе с помощью pixi.js, граф расчитывал с springy, приложение — cordova), была тестовая реализация на SVG, но последний оказался годен только для прототипа.


По производительности: сильно не тормозило, но лаги были. Во многом из-за однопоточности вычислений, которые в браузерном js вызывают боль (да, даже воркеры там в итоге не очень помогли). Если бы сейчас делал такую визуализацию интерактивную с расчётом графов на клиенте, то только на нативщине.


Но, честно говоря, я за оптимизацию особо не заморачивался — хотелось сначала получить базу пользователей и их реальные хотелки, что не очень удалось.

Я разрабатывал подобный сервис (с 2014 по начало 2017, самой идее ещё больше времени), но реальной заинтересованности у аудитории не нашлось и деньги надоело на него тратить. Весов не было, но были связи вида музыкант-группа. Много идей было, в том числе с рекомендациями.

Вот так вот оно выглядело:
habrastorage.org/webt/zv/xy/lu/zvxylugr6onc7o85ckypvhpjsnq.png
habrastorage.org/webt/la/gw/oq/lagwoq1mvmg_ytjjfmfe4bn3xvo.png
habrastorage.org/webt/jw/4z/fy/jw4zfy48yeiknxqd95dsxbzfkfe.png

Сейчас пытаюсь другой около-музыкальный проект сделать, где визуализаций и такого вида интерактивности будет меньше, но идеи и наработки пойдут в дело.

Пишите, если у кого интерес есть.
Спеллчекера в Visi On, судя по всему, тоже нет: “multiple apps are ruinning at the same time”!
«Кто хочет стать миллионером», не так уж и давно, 10 лет назад. На диком количестве вложенных ифов и миллионе вручную набитых копипаст для отрисовки шестигранников. Функции? Case? Random? Не, тогда не слышал. После этого была стрелялка по летящим кружочкам. Вот, найти бы сейчас всю эту прелесть и показать преподавателю. Чёрт возьми, если бы он не занимался со мной одним из всей школы бейсиком, чем бы я сейчас занимался? Но подожду другого уютного тредика для ламповых воспоминаний о крутых преподавателях.
Во время прочтения было чувство, что всё закончится предложением написать свою собственную книгу «Мой любимый язык за 24 часа».

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

И комментарий о спорной правовой основе для осуществления данного перевода.
Хотя, у последних всё впорядке с этим.

Privacy

We know that everyone cares about their privacy these days. We care about your privacy concerns, and guarantee all of your data will be completely discarded[1].

[1] Except for cases where it will be stored indefinitely to ensure compliance with government regulations[2].

[2] When we say 'government' we mean NSA, CIA, FBI, TSA, Communist Party of China (CPC), Nestle, The Coca-Cola Company, the KGB, some of your coworkers and our friends (especially if there is something funny).
Думается, вы блог будете создавать на блогоплатформе и, тогда, это будет батхерт владельцев платформы о сохранении всех фотографий вашего котёнка.

А вообще какой простор — так можно загружать на файлообменники тонны мусора из /dev/urandom и, по законодательству, его нельзя будет удалить. А если, скажем, ddos идёт в такой форме? Красота. Чуваки, это прекрасная инициатива. Ждём, когда вселенная коллапсирует.

И, кстати, вспомнился проект devnull-as-a-service.com — их бизнесу, увы, тоже скоро придёт конец.
Даже тогда большая часть контента шла через всякие iFree и “партнёрские” продажи на wap-сайтах.

Килобайт wap-трафика же, хоть и влетал в копеечку, но это вызывало проблемы у меньшинства активных пользователей, поскольку настройка интернета производилась автоматически редко и по большей части делалась людьми, кто разбирался как настроить ”internet-точку доступа” или, в конце концов, прописать левую wap-точку на чужой или самоподнятый сервер. Особые отчепенцы ещё и сервера оперы мини или свои zip-проксики прописывали в настройках.
Всё это больше напоминает стандартный подход по написанию фреймворка, вместо использования существующих. “Мне тут усё не нравится, сейчас усё сделаем”. На выходе имеем фреймворк (язык), который пригоден только для нас. Мы на нём что-то ещё где-то сможем сваять (если что, мы подправим фреймворк/язык), а другие — увольте.

В подтверждение к сказанному пара тезисов:
  • В отличие от разработчиков CoffeeScript, SASS/LESS, Dart и RubyMotion (ой, да оно же как раз и позволяет писать на другом языке под iOS), автор не является экспертом Objective C разработки
  • Автор так же не имел опыта iOS разработки и программирования на Objective C до разработки ”Objective D“
  • Почему вообще Objective D? Вот, например, существует Objective J и фреймворк Cappuccino: чуваки взяли Objective C, Cocoa и сделали красивый порт на JS.
  • Большая часть “фишек” не имеют строгой аргументации и скорее сделаны, потому что автору так больше нравится: “Ужасно, что Objective-C не поддерживает дженерики и использует утиную типизацию”, “Мне нравятся именованные параметры в Objective-C”, “Мне нравятся перечисления в Java


Как бы то ни было, я ни коим образом не принижаю работу автора, факт OpenSource выкладывания его работы и всё такое прочее. Игрушка получилась, судя по всему, классной и это главное.

P.S. Оно того стоило? Самое отстойное ведь — вместо продукта (игры) большую часть времени писать велосипед с другим цветом сидения.
Mockingbird был прекрасен, пользовался с год платным аккаунтом, но разработчики его забросили 2 года назад. Как результат имеем огромное количество наобещанного и висящих багов, которые никто не планирует исправлять. Чтобы не быть голословным, вот, два года назад они начали делать добавление кастомных картинок.
Интересный момент из истории Prince of Persia: изначально разработчик планировал выпустить его на двух дискетах, на одной из которых, кроме прочих ресурсов и магии, должен был располагаться как раз редактор уровней, но по ходу работы и количество изначальных уровней было урезано и редактор выкинут. Сделано это было исключительно для того, чтобы сэкономить место и сделать игру более интересной и захватывающей за счёт дополнительных анимаций, испытаний и персонажей (вспомним, например, скелет на одном из уровней), а не просто набором бесцельных прыжков по уровням с одинаково выглядящими соперниками (которых, к слову, по началу вовсе не было: беги себе и умирай на штырях). Всё это, конечно, касается исключительно версии под Apple II, портами же занимались сторонние разработчики (хотя, под DOS портирование немного контролировалось Джорданом).

P.S. Всё это вольный пересказ дневника разработчика, которой крайне советую к прочтению — отличный взгляд на IT индустрию конца 80х и … мотивация при работе над собственным проектом, особенно, если последний делается в одиночку.
Да, а количество пакетов в вашем хоумбрю… напомните, как их обновление происходит? Пул-реквестами? Ну, ну, для 100 пакетов может и нормально.
//Не холивара ради и предлагаю на этом данный спор прекратить, оставшись каждый при своём мнении

А макпортс — да, не сказка, особенно при отсутствии бинарных пакетов (хотя возможность техническая вполне себе есть), постоянными поломками и пересборками уже установленного (так у меня внезапно поломался gimp и не захотел воскрешаться). Потому и говорю использовать его только для того, что обычно в консоли пинается, ибо адекватного способа установки и обновления библиотек и всяких mongodb, кроме как с пакетным менеджером, нет.

Сам некоторое время назад горел желанием портировать (точнее запустить, ибо сорсы уже вполне себе мако-совместимые) pacman под макось, но вот незадача — хотел сделать как диплом, но тему оного сменили, а времени у меня вовсе не было на сторонние разработки.
>Как вы делаете все эти .dmg которые монтируют диск и ставятся чисто в Applications?
dmg ничего никуда не ставит, это лишь монтируемый пакет, приложения ставятся drag'n'drop-ом, ровно так же их можно поставить и без какого-либо dmg

>Есть какой-то нормальный пакетный менеджер, по-серьезнее homebrew?
macports. Тем не менее, советую пакетный менеджер использовать только для cli-утилит и всяких серверов, остальные приложения лучше ставить стандартным методом (или через App Store).
1
23 ...

Information

Rating
Does not participate
Location
Свердловская обл., Россия
Registered
Activity