Git Product home page Git Product logo

doubanfm's Introduction

#DoubanFM

========

github:@XVXVXXX
csdn:@XVXVXXX
please open DoubanFM.xcworkspace in ProjectFinal


The DoubanFM for iPhone,using MPMoviePlayer

&AFNetworking@AFNetworking/AFNetworking

&doubanAPI@ampm/Douban-FM-sdk @HakurouKen/douban.fm-api

&CDSideBarController @christophedellac/CDSideBarController


#Update

  • 2015.7.3:代码重构,渣渣渣结构变为渣渣结构,把一些原来放在AppDelegate里面的属性放在各自的实体中了。
  • 2015.5.13:频道下拉刷新
  • 2015.5.12:专辑图片旋转

###侧栏界面

  1. 侧栏采用了CDSideBarController
  2. 结构实际上是tabbarController
    • 第一view是播放界面
    • 第二view是选择频道界面
    • 第三view是登陆界面
    • 第四X是取消sidebar的选取


###播放界面

  1. 当前选定的channel 在点击第二view的tableviewcell时用改变appDelegate设定
  2. 当前播放歌曲所属专辑的cover 用的是AFN的[UIImageViewController setImageWithURL:(NSURL *)url];
  3. 歌曲进度条Progressbar 用了NStimer
  4. 歌曲的title,artist
  5. buttons,包括pause/play,like,ban,skip.都是通过AFN向douban发送request获取新的playlist


###选择频道界面

  1. 目前按照doubanFM官方的写了类似的,在登陆之后,获得的频道和歌曲都会不一样,推荐频道会变多,红心歌曲也会同步到douban那边的数据
  2. 点击相应的频道可以获取相应的playlist,同时主页信息也会更新
  3. 红心频道在没有数据的情况下,会有alertView提示


###用户信息界面

  1. 未登陆时只提供一个登陆的接口,下面的数据在没登陆的情况下,只会显示0,在登陆后则会根据用户信息更新
  2. 其中的登陆不是一个button,而是一个imageView添加了手势功能
  3. 用户点击上面的登陆之后,会presentViewController: LoginViewController


###登录界面

  1. 登陆界面包括账号、密码和验证码
  2. 验证码也是来自douban方提供的,原理是先向douban申请一个captchaID,然后用这个返回的captchaID申请一个验证码图片。
  3. 点击登陆的时候,parameter包括账号、密码、验证码、验证码ID,如果登陆成果就会dismiss:self,然后回到之前的界面,更新信息;登陆失败则有相应的错误信息用alertview显示。登陆成功要记录用户登陆的一系列数据,之后设置有用。
  4. 点击取消则是直接dismiss:self,给了一个退出 LogginViewController的接口。


###登陆成功界面

  1. 登陆成功就会更新信息,包括头像、昵称、自己在douban电台的播放信息,包括了played,liked,banned
  2. 头像其实还是刚才的登陆的图片,还是用AFN的setimagewithurl:,然后把图片的交互关闭就好了,_loginImage.userInteractionEnabled = NO;同时将下面原本hidden的but显示n登出,button.hidden =
  3. 点击登出就会进行登出操作,实际上也是向douban发送一个request,parameter中带了之前登录时返回的一个cookies。有问题的话,会登出失败的(囧)


###remote control

  1. 从屏幕底部滑出处进行remotecontrol
  2. 在lock情况下进行remotecontrol

doubanfm's People

Contributors

xvxvxxx avatar

Watchers

王小王 avatar

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.