C4 3.0.1

C4 3.0.1

测试已测试
Lang语言 SwiftSwift
许可证 MIT
发布最后发布2017年10月
SwiftSwift 版本4.0
SPM支持 SPM

Alejandro IsazaTravis Kirton 维护。



C4 3.0.1

  • Travis 和 Alejandro Isaza 提供

代码,创造。

C4 是一个开源创意编程框架,它利用原生 iOS 编程的力量,使用简化的 API,让您立即开始处理媒体。构建艺术品,设计界面,探索与媒体和互动的新可能性。

版本 2.0

C4 是基于 Swift 构建的,将 UIKit 和 Core Animation 的力量交付给您,使您可以用更少的时间和精力创建创新的数字交互。此外,您将获得 Swift 的所有交互性、乐趣和表现力。您的应用程序将运行得非常快。

C4 的 API 简洁流畅,可以让初学者很容易地入门编程。对于经验丰富的开发者来说,C4 可以像链接任何其他原生框架一样轻松地集成到任何现有项目中。有了 C4,您在处理交互、动画和媒体时可以节省大量时间。

高效

花更少的时间在导航不同的框架之间,专注于将您的想法变为现实。C4 将 UIKit 和 Core Animation 的力量结合到一个单独的对象集中,这些对象的 API 易于理解且直接。而且由于 C4 的基础构建在原生框架之上,您将继承 Swift 的更快的代码、编译时间和对现代硬件的优化。

表现力

C4 通过让您专注于实验、设计、可视化和构建,而不是学习底层技术,使您的想法变为现实。对象一致且直观 - 它们都以基本相同的方式工作。C4 的语言经过设计,尽可能简单和有表现力。

例如,C4 压缩了属性的访问

let m = movie.width

而不是这样

let m = movie.frame.size.width

C4 中对视图和属性变化的动画更简洁,看起来像这样

ViewAnimation(duration: 0.5) {
  shape.center = self.canvas.center
  shape.lineWidth = 5
}.animate()

而使用 UIKit + Core Animation,您可能需要这样做

UIView.animateWithDuration(0.5) {
    v.center = self.view.center
}

CATransaction.begin()
CATransaction.setValue(NSNumber(float: 0.5), forKey: kCATransactionAnimationDuration)
if let shapeLayer = v.layer as? CAShapeLayer {
    shapeLayer.lineWidth = 5
}
CATransaction.commit()

C4 充分利用了 Swift 的所有现代功能:闭包、元组、泛型、交互、结构体、错误处理。而且,是的,您可以这样做

let bananaName = "Jimmy".banana

有关更多信息,请参阅 Swift 概述

易于学习

与它所基于的框架(如 UIKit、Core Animation 等)相比,C4 通过其简化的 API 和一致的对象结构,学习起来非常容易。C4 的语言经过设计,使新手和经验丰富的程序员都能够轻松上手并立即使用。

支持良好

C4 团队一直致力于发布高质量的文档、示例和教程,以便学习如何使用 C4 进行编程。

C4当前版本还包括一个完整的端到端教程,将引导您完成设计、创建和发布一个完整的移动应用:COSMOS。

从App Store获取COSMOS

从头到尾构建COSMOS

我们正在将200多个代码示例和30个教程转换为C4的新现代语法。这些示例和教程(即将推出)会指导新手用户了解核心概念,并为经验丰富的开发者提供参考,帮助他们跟上步伐。

强大

最初基于Objective-C,C4现在充分利用了Swift编程语言的特性——Swift本身就是为了快速和强大而构建的。Swift在优化直观、自然的编码方面进行了调整,而C4的每个组件——每一个类、每一个方法和每一个结构——都让这种性能得以显现。

通过C4,您能够以消除创建精美用户体验所需多种框架之间差异的方式,处理媒体、动画和交互。它无缝结合了UIKit、核心动画、核心图形、AVFoudation和QuartzCore的重要组件。

多功能

C4为希望为iOS构建精美用户体验的任何人而设计,旨在覆盖极其广泛的潜在用途。这种灵活性是C4最重要的方面之一,展示了其在各种不同用例和学科中的优势。

C4已被用于:

  • 原型设计
  • 移动应用程序
  • 数据可视化
  • 互动艺术作品
  • 计算设计教育
  • 通讯设计
  • 印刷设计

开源

采用MIT许可证,C4是一个开源项目,其功能和功能可以在教育、艺术甚至专业环境中自由使用。该项目欢迎任何人的贡献,项目的代码、文档和过程完全公开,供您阅读、学习和利用。我们核心团队和其他开发者的持续承诺保证了C4将不断更新并关注用户的兴趣。

加入我们的Slack社区!

简洁

简洁是C4的一项重大成就。总体而言,C4易于学习、使用、阅读和采用。C4将需要编写的代码量减少到最强大的基本元素。

以电影为例。您不需要AVQueuePlayer、AVPlayerItem、导航资产轨道,以及学习如何通过NSBundle加载文件,您只需从其文件名创建电影并将其添加到画布中

func setup() {
  let movie = Movie("halo.mp4")
  canvas.add(movie)
  movie?.play()
}

使用UIKit + AVFoundation,您需要手动构建电影对象,如下所示

func viewDidLoad() {
  guard let url = NSBundle.mainBundle().URLForResource("halo.mp4", withExtension: nil) else {
      fatalError("File not found")
  }

  let asset = AVAsset(URL: url)
  let player = AVQueuePlayer(playerItem: AVPlayerItem(asset: asset))
  player.actionAtItemEnd = .Pause

  let movieLayer = AVPlayerLayer(player: player)
  movieLayer.videoGravity = AVLayerVideoGravityResize

  let tracks = asset.tracksWithMediaType(AVMediaTypeVideo)

  let movieTrack = tracks[0]
  let size = movieTrack.naturalSize

  movieLayer.frame = CGRect(x: 0,y: 0,width: size.width,height: size.height)
  self.view.layer.addSublayer(movieLayer)
  player.play()
}

… 以及其他更多内容。