返回

iOS 开发者必读:每周精选最值得关注的新闻和资源

IOS

iOS开发者每周简报:最新新闻、工具、项目和活动

头条新闻

Apple 发布 iOS 11.4,修复 Meltdown 和 Spectre 漏洞

Apple 最近发布了 iOS 11.4,其中包含一系列修复程序和安全更新,包括针对 Meltdown 和 Spectre 漏洞的修复程序。这些漏洞影响各种设备,包括 iPhone、iPad 和 Mac。强烈建议所有用户尽快更新到 iOS 11.4。

Swift 4.1 Beta 2 发布,新增 Codable 协议

Swift 4.1 Beta 2 已发布,它带来了期待已久的新 Codable 协议。该协议允许开发人员轻松地将 Swift 对象编码和解码为 JSON。它简化了数据的序列化和反序列化,并消除了在运行时编写自定义编码器和解码器的需要。

Xcode 9.3 Beta 2 发布,支持 iOS 11.4 和 Swift 4.1

Xcode 9.3 Beta 2 现已推出,它添加了对 iOS 11.4 和 Swift 4.1 的支持。此版本还包括错误修复和性能改进。开发人员应更新到此版本以充分利用 iOS 11.4 和 Swift 4.1 的新功能。

Cocoapods 1.5.0 发布,支持 Swift 4.1 和 Carthage 0.30

Cocoapods 1.5.0 已发布,它带来了对 Swift 4.1 和 Carthage 0.30 的支持。此版本还包括对 Xcode 9.3 Beta 2 的支持。Cocoapods 用户应更新到此版本以享受新功能和改进。

Carthage 0.30 发布,支持 Swift 4.1 和 Xcode 9.3

Carthage 0.30 已发布,它添加了对 Swift 4.1 和 Xcode 9.3 的支持。此版本还包括依赖项解决性能的改进。Carthage 用户应更新到此版本以受益于这些改进。

文章精选

如何使用 SwiftUI 构建一个简单的 iOS 应用程序

SwiftUI 是 Apple 为 iOS 应用程序开发引入的新 UI 框架。它提供了一种声明式方法来创建用户界面,从而简化了应用程序开发。在本文中,您将学习如何使用 SwiftUI 构建一个简单的 iOS 应用程序。

使用 Combine 在 iOS 中管理异步操作

Combine 是 Apple 为 iOS 应用程序开发引入的新响应式编程框架。它提供了一种一致的方法来处理异步操作,例如网络请求和数据流。在本文中,您将学习如何使用 Combine 来管理 iOS 中的异步操作。

如何使用 Vapor 4 在 Swift 中创建 REST API

Vapor 是一个流行的 Swift Web 框架,用于构建 Web 服务和 REST API。在本文中,您将学习如何使用 Vapor 4 在 Swift 中创建 REST API。

使用 Core ML 和 SwiftUI 创建图像分类器

Core ML 是 Apple 为 iOS 应用程序开发引入的机器学习框架。它允许开发人员轻松地将机器学习功能集成到他们的应用程序中。在本文中,您将学习如何使用 Core ML 和 SwiftUI 创建图像分类器。

使用 RxSwift 处理 iOS 中的事件

RxSwift 是一个用于 iOS 的流行响应式编程库。它提供了一种声明式方法来处理事件,从而简化了复杂事件流的处理。在本文中,您将学习如何使用 RxSwift 来处理 iOS 中的事件。

工具推荐

SwiftLint

SwiftLint 是一个用于强制执行 Swift 代码风格的工具。它有助于确保代码的可读性、可维护性和一致性。

XcodeGen

XcodeGen 是一个用于从命令行生成 Xcode 项目的工具。它允许开发人员以声明式方式定义其项目结构,并简化了项目的维护。

Sourcery

Sourcery 是一个用于从 Swift 代码生成代码的工具。它允许开发人员根据代码中的注释自动生成其他代码,从而简化了开发过程。

vapor-fluent

vapor-fluent 是一个用于 Vapor 的数据库 ORM。它允许开发人员轻松地与数据库交互,并简化了数据建模和查询。

RxSwift

RxSwift 是一个用于 iOS 的流行响应式编程库。它提供了一种一致的方法来处理事件,从而简化了复杂事件流的处理。

开源项目

Alamofire

Alamofire 是一个用于 HTTP 请求和响应序列化的网络库。它提供了一个简单易用的 API,并支持多种功能,例如缓存、身份验证和进度跟踪。

Kingfisher

Kingfisher 是一个用于图像下载和缓存的图片库。它提供了高效的图像加载和缓存机制,并支持多种图像格式。

SnapKit

SnapKit 是一个用于自动布局的框架。它提供了一种简洁且可读的语法来定义约束,从而简化了用户界面的布局。

SwiftyJSON

SwiftyJSON 是一个用于 JSON 解析的库。它提供了一个简单的 API 来解析 JSON 数据,并支持各种功能,例如类型安全访问、转换和修改。

RxSwiftCommunity

RxSwiftCommunity 是一个用于响应式编程的社区驱动的库集合。它提供了各种库,用于扩展 RxSwift 的功能并支持其他编程范例。

代码片段

如何使用 Codable 协议将 Swift 对象编码和解码为 JSON

struct Person: Codable {
  let name: String
  let age: Int
}

let person = Person(name: "John", age: 30)

let encoder = JSONEncoder()
let data = try! encoder.encode(person)

let decoder = JSONDecoder()
let decodedPerson = try! decoder.decode(Person.self, from: data)

如何使用 Combine 创建数据流和处理事件

let subject = PassthroughSubject<Int, Error>()

subject.sink(
  receiveCompletion: { completion in
    switch completion {
    case .finished:
      print("Finished")
    case .failure(let error):
      print("Error: \(error)")
    }
  },
  receiveValue: { value in
    print("Value: \(value)")
  }
)

subject.send(1)
subject.send(2)
subject.send(3)
subject.send(completion: .finished)

如何使用 Vapor 创建 REST API

import Vapor

struct UserController: RouteCollection {
  func boot(routes: RoutesBuilder) throws {
    let users = routes.grouped("users")

    users.get { req -> EventLoopFuture<[User]> in
      return User.query(on: req.db).all()
    }

    users.post { req -> EventLoopFuture<User> in
      let user = try req.content.decode(User.self)
      return user.save(on: req.db).map { user }
    }
  }
}

如何使用 Core ML 创建图像分类器

import CoreML
import Vision

let model = try! VNCoreMLModel(for: Resnet50().model)

let request = VNCoreMLRequest(model: model) { req, _ in
  guard let results = req.results as? [VNClassificationObservation],
    let topResult = results.first else {
    return
  }

  print("Top result: \(topResult.identifier) (\(topResult.confidence))")
}

let handler = VNImageRequestHandler(cgImage: image, options: [:])
try! handler.perform([request])

如何使用 RxSwift 处理事件

let observable = Observable<Int>.just(1)

observable.subscribe(onNext: { value in
  print("Value: \(value)")
}, onError: { error in
  print("Error: \(error)")
}, onCompleted: {
  print("Completed")
})

即将举行的活动

iOS Dev UK 2018

Swift Summit 2018

WWDC 2018

常见问题解答

1. 什么是 SwiftUI?

SwiftUI 是 Apple 为 iOS 应用程序开发引入的新 UI 框架。它提供了一种声明式方法来创建用户界面,从而简化了应用程序开发。

2. 什么是 Combine?

Combine 是 Apple 为 iOS 应用程序开发引入的新响应式编程框架。它提供了一种一致的方法来处理异步操作,例如网络请求和数据流。

3. 什么是 Vapor?

Vapor 是一个流行的 Swift Web 框架,用于构建 Web 服务和 REST API。它提供了一组全面的功能,包括路由、中间件、数据库支持和模板引擎。

4. 什么是 Core ML?

Core ML