Skip to content

Instantly share code, notes, and snippets.

View leontiy's full-sized avatar

Leon Deriglazov leontiy

  • JPMorgan Chase & Co.
  • London, UK
View GitHub Profile
// View Model layer
final class Product {
let title: String
let text: String
let imageUrl: URL
// ...
}
// Networking layer
func downloadImage(url: URL) -> SignalProducer<UIImage, NSError> {
final class ProductTableViewCell: UITableViewCell {
@IBOutlet var label: UILabel!
@IBOutlet var imageView: UIImageView!
@IBOutlet var titleLabel: UILabel!
let viewModel: MutableProperty<Product?>
var disposable: Disposable?
deinit() {
func awakeFromNib() {
super.awakeFromNib()
self.titleLabel.reactive.text <~ self.viewModel.map { $0?.title }
self.label.reactive.text <~ self.viewModel.map { $0?.text }
self.imageView.reactive.image <~ self.viewModel.producer.flatMap(.latest) {
downloadImage($0.imageUrl).map(Optional.some).prefix(value: nil)
}
}