Coder Social home page Coder Social logo

cloudmusicplayer's People

Contributors

reloni avatar

Stargazers

 avatar  avatar

Watchers

 avatar

cloudmusicplayer's Issues

Настроить carthage в ветке develop

Регулярно делаю ветки из девелопа, а там не настроен carthage и нет ссылок на зависимые библиотеки.
Так же возможно нужно удалить бранч yandex-json

Убрать enum CloudResourceType и OAuthError

OAuthError не используется, а CloudResourceType используется очень редко, поэтому гораздо лочше заменить его на обычную строку внутри класса OAuthResourceBase.

Яндекс диск неправильно указывает MIME type

При скачке трека с яндекс диска он говорит, что это octet/stream, а не audio/mpeg к примеру, из-за чего музыка не играется. При этом он сообщает правильный тип данных в url запроса, нужно это обрабатывать и вручную подсовывать правильный contentType в методе setResponseContentInformation

Split project

Distinguish http code (especially streaming) into separate project. Rename RxPlayer into something less weird and also distinguish into separate project.

OAuthResourceBase refactoring

Убрать internal static var resources = String: OAuthResource и переместить все управление созданными экземплярами ресурсов (в том числе поиск, загрузку и т. д.) в другой класс, оставив тут только те методы, которые имеют отношение непосредственно к самому ресурсу

Offline mode

Add caching of cloud resource requests, this add ability to choose music tracks offline

Переделать парсинг callBackUrl, на который приходит ответ при регистрации OAuth ресурса

Сейчас вызывается статический метод OAuthResourceBase.parseCallbackUrl в котором захардкожен вызов метода, который парсит ответ от яндекса (так же в последствии будет захардкожен лобой другой ресурс).
Для экземпляров ресурсов (яндекс и так далее) лучше сделать метод на уровне экземпляра, который будет парсить ответ.
Базовый статический метод переделать, что бы он сначала как-то определял URL схему (которая является ключем в словаре resources), достает нужный класс по этой схеме из кеша (на этот момент он уже должен там быть) и вызывает у этого класса метод парсинга.

Managing local storage

Add ability to see amount of cached files and space. Also provide methods to clear storage

Неправильная работа метода OAuthResourceBase.loadResourceById

Сейчас метод ищет ресурс в локальном словаре, если не находит, то загружает из NSUserDefaults, если же и там не находит, то возвращает новый экземпляр (на данным момент только яндекс).
При этом он приватный и вызывается из метода getResourceById, который больше ничего не делает.
Наверно лучше оставить loadResourceById только загрузку ресурса из кеша (соответственно он будет возвращать nil, если ничего не найдет) и сделать его публичным, а создаиние нового объекта перенести в getResourceById. После этого переделать расширение у YandexOAuthResource, что бы он вызывал loadResourceById, и если ему вернется nil, то создавал новый объект.

CloudResource refactoring

Возможно лучше добавить в протокол CloudResource объект CloudResourceManager, что бы этот ресурс все через него и загружал. А метод загрузки корневых ресурсов перенести в менеджер

SwiftyJSON isExists

Необходимо делать так:
if json["name"].isExists()
Для проверки существует узел или нет. Потому что
if let notNullVar = json["notExists"] { // войдет в блок, но notNullVar на самом деле nil. XCode крашится вообще на этом

Все файлы лежат в корневой директории

Внутри проекта файлы организованы по группам, но оказывается, что физически они все лежат в одной директории. Необходимо это переделать, что бы структура в XCode соответствовала физической структуре. Советы тут.

AVPlayer and caching

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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.