Home

Awesome

TCBlobDownloadSwift

Powerful file downloads for iOS 7+ with NSURLSession in Swift.

TCBlobDownloadSwift makes it easy to quickly download one or several large file(s) from your backend or the Internet right into your app. Give it an URL, a directory (or not, it can also download into the user's tmp folder), a name (or not, it can also give your file a default name), and it will take care of everything.

See the Usage section for examples.

Features

Requirements

Installation

CocoaPods

Add the following to your Podfile:

source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'
use_frameworks!

pod 'TCBlobDownloadSwift', '~> 0.1.0'

And run:

$ pod install

Here is a helpful article about setting up your project to use CocoaPods with Swift.

Import as an embedded framework
Import source files

For iOS 7 and other targets which do not support embedded frameworks, copy the source files (Source/*.swift}) into your project.

Usage

Before checking the iOS example project, here is how TCBlobDownloadSwift works in a few lines of code:

Closures

Coming!

Delegate
import TCBlobDownloadSwift

// Here is a simple delegate implementing TCBlobDownloadDelegate.
class DownloadHandler: NSObject, TCBlobDownloadDelegate {
  init() {}

  func download(download: TCBlobDownload, didProgress progress: Float, totalBytesWritten: Int64, totalBytesExpectedToWrite: Int64) {
    println("\(progress*100)% downloaded")
  }

  func download(download: TCBlobDownload, didFinishWithError error: NSError?, atLocation location: NSURL?) {
    println("file downloaded at \(location)")
  }
}

let fileURL = NSURL(string: "http://some.huge/file.mp4")
let download = TCBlobDownloadManager.sharedInstance
                                    .downloadFileAtURL(fileURL!, toDirectory: nil, withName: nil, andDelegate: DownloadHandler())

Roadmap