---
title: Getting Started
framework: swift-org
role: article
path: swift-org/getting-started
---

# Getting Started

## Installing Swift

To kickstart your journey, [install Swift](/docs/swift-org/install/) to begin using it on **macOS**, **Linux**, or **Windows**.

Tip: To test that you have Swift installed, run `swift --version` from your shell or terminal app.

Swift comes bundled with the [Swift Package Manager (SwiftPM)](/docs/swift-package-manager/documentation/packagemanagerdocs/) that manages the distribution of Swift code. It allows easy importing of other Swift packages into your applications and libraries, making it a valuable tool for any Swift developer.

Swift is covered by the [Apache License, Version 2.0](https://swift.org/LICENSE.txt).

## Using Swift

- ✨ New to Swift? Swift is a great first language if you are just starting your programming journey. For a brief tour of the language, check out this introductory chapter in The Swift Programming Language book. [Read A Swift Tour](/docs/swift-book/documentation/the-swift-programming-language/guidedtour/)

Here are some examples of the many use cases of Swift, in case you want to jump in and start writing some code right away.

- Command-line Tool Learn how to create cross-platform command-line tools such as short-lived interactive programs, or long-lived daemons that run in the background. [Start tutorial](/docs/swift-org/getting-started/cli-swiftpm/) - Library Learn how to create a cross-platform library for sharing reusable code, or modularize large code-base. [Start tutorial](/docs/swift-org/getting-started/library-swiftpm/) - Web Service Learn how to create a web service using a web framework. This guide requires macOS or Linux. [Start tutorial](/docs/swift-org/getting-started/vapor-web-server/) - iOS and macOS Application Learn how to create an iOS or macOS application using SwiftUI. This guide requires macOS and Xcode. [Start tutorial](/docs/swift-org/getting-started/swiftui/)

Looking for a language reference? [The Swift Programming Language (TSPL)](/docs/swift-book/documentation/the-swift-programming-language/) book is available in [multiple languages](/docs/swift-book/The-Swift-Programming-Language/#translations).

## Go Further

Ready to dive deeper? Here are some hand-picked resources covering various Swift features.

- Value and Reference Types This article describes the differences in behavior between *value types* and *reference types*—a fundamental part of learning Swift and choosing between structures and classes. [Read article](/docs/swift-org/documentation/articles/value-and-reference-types.html/) - Generics In Swift, generics are a fundamental way to write abstract code. This video walks through the basics of Swift Generics and introducing generics into your code. [Watch video](/docs/wwdc/wwdc2022-110352/) - Concurrency Swift has concurrency features built into the language making it easier to write concurrent code with the assistance of the compiler. This video introduces the async/await mechanism, a key part of Swift Concurrency. [Watch video](/docs/wwdc/wwdc2021-10132/) - Regular Expressions Swift provides first-class regular expression support, commonly known as regex, for effective string processing. This video gives an overview of the power and flexibility of Swift Regex. [Watch video](/docs/wwdc/wwdc2022-110357/) - Wrapping C/C++ Library in Swift This article describes how to wrap a C or C++ library in Swift. [Read article](/docs/swift-org/documentation/articles/wrapping-c-cpp-library-in-swift.html/)

Looking for even more? In the [documentation](/docs/swift-org/documentation/) you can find resources, references, and guidelines related to the Swift project, including the [API Design Guidelines](/docs/swift-org/documentation/api-design-guidelines/).

## Topics

### Related Documentation

- [Swift Package Manager](swift-package-manager/documentation/packagemanagerdocs.md)
