Documentation
If you are new to Swift, you may want to check out these additional resources.
Swift Language
The Swift Programming Language Book
The Swift Programming Language is the authoritative reference for Swift, offering a guided tour, a comprehensive guide, and a formal reference of the language.
We welcome your contributions to the book — pull requests, new issues, and comments on existing topics — in the book’s repository.
Translations
We encourage you to participate in translating The Swift Programming Language into other languages. Get involved with an existing translation project, or start a new one.
If you know of a quality translation project underway, please let us know on the Swift.org repository by opening an issue or submitting a Pull Request.
Standard Library
The Swift standard library defines a base layer of functionality for writing Swift programs. Documentation for the standard library is presently hosted on the Apple Developer website.
Packages
There are a number of packages that are part of the core Swift project. Below is a list of packages that currently offer hosted documentation.
Swift-DocC
DocC is a documentation compiler that makes it easy for you to produce documentation for your Swift frameworks and packages. The compiler builds your documentation by combining the comments you write in source with extension files, articles, and tutorials that live alongside your package’s source code. This documentation is for using the DocC tool to generate documentation for your project.
API Design Guidelines
Delivering a clear, consistent developer experience when writing Swift code is largely defined by the names and idioms that appear in APIs. These design guidelines explain how to make sure that your code feels like a part of the larger Swift ecosystem.
Mixing Swift and C++
A development version of Swift has support for bidirectional interoperability with C++. A great variety of C++ APIs can be called directly from Swift, and select Swift APIs can be used from C++.
Swift’s support for C++ interoperability is actively evolving. Some C++ APIs and API patterns are not yet available in Swift, and vice-versa. This status page describes the extent to which interoperability is supported between the two languages:
Tools
Swift Package Manager
The Swift Package Manager is a tool for managing the distribution and use of “packages” of Swift code. It’s integrated with the Swift build system to automate the process of downloading, compiling, and linking dependencies into target products.
Migration Guidelines
For users of Xcode, there is an included Swift migrator tool that helps you move your project to the latest version of Swift, or update it to work with the latest SDKs.