AlbumFolks
这个库允许像插入即用一样下载音乐轨道(专辑信息),并提供简单的UI/界面进行搜索/获取。它受到了这个原始项目(持久专辑信息存储)的启发。
示例
要运行示例项目,请克隆仓库,然后首先从Example目录运行pod install
。
使用 - API_KEY
虽然示例项目中有一个填充的AF_LASTFM_API_KEY_VALUE,但在安装Pod时您应该提供自己的。在这里获取它。
然后简单地更改全局常量AF_LASTFM_API_KEY_VALUE。
安装
AlbumFolks可以通过(尚不支持)CocoaPods获取。要安装它,只需将以下行添加到您的Podfile中
pod 'AlbumFolks'
简单用法
查看示例 ViewController 这里。
AF_LASTFM_API_KEY_VALUE = "YOUR API KEY"
@IBAction func searchClicked(_ sender: UIBarButtonItem) {
let albumFolksController = AlbumFolksController(passingDelegate: self)
self.present(albumFolksController, animated: true, completion: nil)
}
extension ViewController : TrackChosenDelegate {
func trackChoosen(_ track: TrackViewPopulator) {
if let image = track.album.inMemoryImage {
self.albumImage.image = image
}
self.trackName.text = "Track: \(track.number) - \(track.title)"
self.trackLength.text = "Track Length: \(track.lengthStatic ?? "No Info")"
self.album.text = "Album: \(track.album.name)"
self.artist.text = "Artist: \(track.album.artist.name)"
self.tags.text = "Tags: \(track.album.tags ?? "No Info")"
}
}
可配置参数
所有可配置参数均以前缀 AF 开头。可以通过这些参数调整有用的参数。
搜索(SearchArtistsVC)
/* When not searching */
public var AF_MAX_RECENT_SEARCH_ENTRIES : Int
/* I recommend 2,3 minimum */
public var AF_MIN_SEARCH_QUERY_LENGTH : Int
/* Limit for the API Query - Limit number to display on the screen */
public var AF_MAX_SEARCH_RESULTS : Int
/* Last FM API present a lot of irrelevant pages w/unadmissible content... */
public var AF_MAX_PAGE_NUMBER : Int
/* load less pages as you write more content */
public var AF_PAGE_DECREMENT_FACTOR_PER_EXTRA_CHAR : Int
艺术家专辑(ArtistAlbumsVC)
/* After this threshold user gets a link displayed to open a webbrowser */
public var AF_MAX_ALBUMS_TO_SHOW : Int
依赖
Pods
- Alamofire
- AlamofireObjectMapper(及ObjectMapper)
- AlamofireImage
- PopupDialog(直接插入到AlbumFolks中)
连接代码(复制的Objective-C)
- UIScrollView+无限滚动
测试
AlbumVCEntryPointsTests.swift - 与APP核心用户交互对应的数据流测试,即从API或保存中可视化专辑。
作者
carlosmouracorreia, [email protected]
我也在推特 - twitter.com/correiask8
许可
AlbumFolks遵循MIT许可证。有关更多信息,请参阅LICENSE文件。