Building apps just got Swifter! - Announcing Appwrite v0.11
Tags: news, showdev, ios, swift
Published: 2021-10-18 14:07:08

![Apple Platforms](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mvairablp1shxzlzvqe9.gif)

The last month has been [a wild one](https://github.com/pulls?q=is%3Aopen+is%3Apr+created%3A%3E2021-09-30+org%3Aappwrite+org%3Autopia-php) at the Appwrite community! We've been working tirelessly to bring you some awesome new features with each new version. That said, we're excited to announce our newest release: **Appwrite 0.11** 🥳 Packed with a ton of cool new features like support for Apple platforms (**iOS, macOS, watchOS and tvOS**), as well a brand new **Swift Server SDK**, **a Swift Cloud Function runtime** and more! 

Let's not forget, this is also an Appwrite release, where our open source contributors have **outnumbered the maintainers! 🤯** We've merged over 150 PRs from our [contributors during Hacktoberfest](https://appwrite.io/hacktoberfest), and still have over 450 PRs waiting to be merged! With all those exciting numbers aside, let's dive right in! 🐳

> Appwrite is an open-source, self-hosted Backend-as-a-Service that aims to make app development **easier** with SDKs available in a variety of programming languages. Come hang out with us on [Discord](https://appwrite.io/discord).

## 🍎 Apple Support 

It's finally here 🌟 Appwrite now has official support for Apple platforms! [Our SDK](https://github.com/appwrite/sdk-for-apple) has just been released, and we're looking to gather some feedback from our amazing community! We've got all the setup instructions in our new [Getting Started Guide](https://appwrite.io/docs/getting-started-for-apple). If you just can't wait to try it out, here are the steps to get you started ASAP.

### Add the SDK

The Appwrite Apple SDK is available via Swift Package Manager. In order to use the Appwrite Apple SDK from **Xcode**, select File > Swift Packages > **Add Package Dependency**. 

- In the dialog that appears, enter the Appwrite Apple SDK [package URL](https://github.com/appwrite/sdk-for-apple) and click **Next**.
- Once the repository information is loaded, add your version rules and click **Next** again.
- On the final screen, make sure `Appwrite` is selected to add to your target as a library.

### Make a Request

You can now make your first request 😍 below are two examples of simple integrations with the SDK, one for SwiftUI and one for UIKit.

#### Using SwiftUI

```swift
import Appwrite
import SwiftUI

@main
struct TestApp: App {
    var body: some Scene {
        WindowGroup {
            ContentView()
        }
    }
}

struct ContentView: View {
    var body: some View {
        Button("Click Me!", action: {
            let client = Client()
                .setEndpoint("https://[HOSTNAME_OR_IP]/v1")
                .setProject("5df5acd0d48c2")
            
            let account = Account(client)
            
            account.create(email: "email@example.com", password: "password") { result in
                switch result {
                case .failure(let error): break
                case .success(let user): break
                }
            }
        })
    }
}
```

#### Using UIKit

```swift
import Appwrite
import UIKit

class ViewController: UIViewController {

    let client = Client()
        .setEndpoint("https://[HOSTNAME_OR_IP]/v1")
        .setProject("5df5acd0d48c2")
    
    lazy var account = Account(client)
    
    @IBAction func clickMe(_ sender: Any) {        
        account.create(email: "email@example.com", password: "password") { result in
            switch result {
            case .failure(let error): break
            case .success(let user): break
            }
        }
    }
```

We also have some example apps to help you get started:
* A bare minimum [Playground with SwiftUI](https://github.com/appwrite/playground-for-apple-swiftui) to help you quickly start building apps.
* A bare minimum [Playground with UIKit](https://github.com/appwrite/playground-for-apple-uikit) to help you quickly start building apps.
* A [Job Portal App](https://github.com/appwrite/demo-job-portal-with-apple) built with Appwrite.

## 🏎️ Swift Server SDK 

We have also released a brand new [Swift Server SDK](https://github.com/appwrite/sdk-for-swift) to go along with the Apple one! Setting up the Swift SDK only requires adding the dependency to your `Package.swift` file. You can check out our [Getting Started Guide](https://appwrite.io/docs/getting-started-for-server) or follow along for a quick summary.

Add the package to your `Package.swift` dependencies:

```swift
    dependencies: [
        .package(url: "https://github.com/appwrite/sdk-for-apple", from: "0.1.0 "),
    ],
```

Then add the library as a dependency of your target:

```swift
    targets: [
        .target(
            name: "[YourAppTarget]",
            dependencies: [
                .product(name: "Appwrite", package: "sdk-for-apple")
            ]
        )
    ],
```

You can now make your first request using:

```swift
import Appwrite

let client = Client()
    .setEndpoint("https://[HOSTNAME_OR_IP]/v1")
    .setProject("5df5acd0d48c2")

func main() {
    let account = Account(client)

    account.create(email: "email@example.com", password: "password") { result in
        switch result {
        case .failure(let error): break
        case .success(let user): break
        }
    }
}
```

We also have some example apps to help you get started
* A bare minimum [Playground](https://github.com/appwrite/playground-for-swift) to help you quickly start building apps.
* We also have some really cool [Cloud Function demos](https://github.com/appwrite/demos-for-functions/tree/master/swift) using our Swift SDK.

## 🏃 Swift Cloud Function Runtime! 

Our Cloud Function runtimes list continues to grow with over 20+ (!) runtimes. This time we've added support for **swift-5.5**, which thanks to ABI stability, supports running code all the way back to Swift 4. We've got you covered 💪 no matter what your favourite language is! We have [demos available](https://github.com/appwrite/demos-for-functions) for a wide variety of languages.

![Swift Function](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ms2oq9m7477lj2w0mljl.png)

## 🚅 Everything else

* We've introduced new Cloud Function runtimes for `java-17`, `python-3.10`, `deno-1.12`, `deno-1.13` and `deno-1.14`. If you've been thinking about refactoring your Cloud Functions, this might a good time for it 😉

* Appwrite v0.11 would not have been possible without the collaboration of almost **100 open source developers (!)** who came together to help us during Hacktoberfest! Here's a huge shout out to all the amazing contributors 📢  
[@m1ga](https://github.com/m1ga) [@mishmanners](https://github.com/mishmanners) [@stnguyen90](https://github.com/stnguyen90) [@GarvitSinghal47](https://github.com/GarvitSinghal47) [@chefk5](https://github.com/chefk5) [@ivernus](https://github.com/ivernus) [@takmar](https://github.com/takmar) [@oovk](https://github.com/oovk) [@thet3o](https://github.com/thet3o) [@KaminskiDaniell](https://github.com/KaminskiDaniell) [@anshganatra](https://github.com/anshganatra) [@AmreshSinha](https://github.com/AmreshSinha) [@hardiksachan](https://github.com/hardiksachan) [@sakshamgurbhele](https://github.com/sakshamgurbhele) [@vishal-codes](https://github.com/vishal-codes) [@Gautam1302](https://github.com/Gautam1302) [@siw3kosky](https://github.com/siw3kosky) [@toir427](https://github.com/toir427) [@divshacker](https://github.com/divshacker) [@Asmit2952](https://github.com/Asmit2952)
[@HelloSeaNation](https://github.com/HelloSeaNation) [@Sin-Sumit](https://github.com/Sin-Sumit) [@aerabi](https://github.com/aerabi) [@nataliarossini](https://github.com/nataliarossini) [@kritika-srivastava](https://github.com/kritika-srivastava) [@felixjeromedelafuente](https://github.com/felixjeromedelafuente) [@DevGirisankar](https://github.com/DevGirisankar) [@PrerakMathur20](https://github.com/PrerakMathur20) [@RReiso](https://github.com/RReiso) [@NeonSpork](https://github.com/NeonSpork) [@mantasio](https://github.com/mantasio) [@Exouxas](https://github.com/Exouxas) [@Vidushi-Gupta](https://github.com/Vidushi-Gupta) [@krishguptadev](https://github.com/krishguptadev) [@ar-ankou](https://github.com/ar-ankou) [@avinashupadhya99](https://github.com/avinashupadhya99) [@waridrox](https://github.com/waridrox) [@kostapappas](https://github.com/kostapappas) [@charithesh16](https://github.com/charithesh16) [@banaboi](https://github.com/banaboi) [@mazedlx](https://github.com/mazedlx) [@jakubhi](https://github.com/jakubhi) [@Emiliaaah](https://github.com/Emiliaaah) [@crossphoton](https://github.com/crossphoton) [@minna-xD](https://github.com/minna-xD) [@mendoza](https://github.com/mendoza) [@didair](https://github.com/didair) [@ezioishan](https://github.com/ezioishan) [@tacoelho](https://github.com/tacoelho) [@Rutam21](https://github.com/Rutam21) [@harshita214](https://github.com/harshita214) [@kalpeshT101](https://github.com/kalpeshT101) [@ErfanBahramali](https://github.com/ErfanBahramali) [@hdkhoasgt](https://github.com/hdkhoasgt) [@ArtixAllMighty](https://github.com/ArtixAllMighty) [@Biki-das](https://github.com/Biki-das) [@und1n3](https://github.com/und1n3) [@cristina-sirbu](https://github.com/cristina-sirbu) [@wenzdey](https://github.com/wenzdey) [@yalematta](https://github.com/yalematta) [@visheshjindal](https://github.com/visheshjindal) [@abxhr](https://github.com/abxhr) [@MatteoGheza](https://github.com/MatteoGheza) [@torn4dom4n](https://github.com/torn4dom4n) [@loftwah](https://github.com/loftwah) [@Sooraj-s-98](https://github.com/Sooraj-s-98) [@OscarRG](https://github.com/OscarRG) [@teeradon43](https://github.com/teeradon43) [@Kokoden](https://github.com/Kokoden) [@dazzlerkumar](https://github.com/dazzlerkumar) [@Nikhil-1503](https://github.com/Nikhil-1503) [@Sangwan5688](https://github.com/Sangwan5688) [@chuiizeet](https://github.com/chuiizeet) [@Ganzabahl](https://github.com/Ganzabahl) [@2002Bishwajeet](https://github.com/2002Bishwajeet) [@KKVANONYMOUS](https://github.com/KKVANONYMOUS) [@mbos2](https://github.com/mbos2) [@ilmalte](https://github.com/ilmalte) [@TheLearneer](https://github.com/TheLearneer) [@deshankoswatte](https://github.com/deshankoswatte) [@vj-codes](https://github.com/vj-codes) [@renato04](https://github.com/renato04) [@Hrdtr](https://github.com/Hrdtr) [@JaswanthRemiel](https://github.com/JaswanthRemiel) [@ssong](https://github.com/ssong) [@aniketh-varma](https://github.com/aniketh-varma) [@anoopmsivadas](https://github.com/anoopmsivadas) [@Ln11211](https://github.com/Ln11211) [@vivekkj123](https://github.com/vivekkj123) [@achromik](https://github.com/achromik) [@willtryagain](https://github.com/willtryagain) [@eigengravy](https://github.com/eigengravy) [@honeykpatel](https://github.com/honeykpatel) [@vendz](https://github.com/vendz) [@Obnoxious-coder](https://github.com/Obnoxious-coder) [@izqalan](https://github.com/izqalan) [@arsangamal](https://github.com/arsangamal) [@daniloff200](https://github.com/daniloff200)


* Let's not forget, you also helped us reach a major milestone of **13k GitHub stars** ⭐️ making us one of the **top 1500** projects in GitHub history! Thank you so much for all your support!

![Team Work](https://media0.giphy.com/media/l3vRfyh5b1MqngPx6/giphy.gif)

* We've been having a lot of fun on our Discord server! Weekly chats and AMAs with the Appwrite maintainers, Live PR reviews, Hacktoberfest Countdown parties, **impromptu chess games** and most importantly, **The community run #meme channel!**. You'll find yourself right at home. [Come on in](https://appwrite.io/discord)  

![PR Party](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1s8qv5bdlgwyp1p4i74x.png)

## ⛏️ Breaking Changes
This release introduces **no breaking changes**, which means you can upgrade your Appwrite instance without needing to run the Appwrite migration script.

![Computer Crash](https://media1.giphy.com/media/MCw5eKTuKsgjr73t5A/giphy.gif)

## 😍 And More! 

That's not all! We've included other small fixes and optimizations to make everyone's Appwrite experience the best it can be. For full details of the 0.11 release, you can check out the [changelog on GitHub](https://github.com/appwrite/appwrite/blob/master/CHANGES.md).

If you're upgrading from an older version of Appwrite, be sure to follow our [upgrading guide](https://appwrite.io/docs/upgrade) so that you don't lose your way in uncharted territories 😉.

If you're curious about what's next for Appwrite, or have a great idea, head on over to our [RFC repo](https://github.com/appwrite/rfc) for more details.

Our list of awesome tutorials, videos, and demos keeps growing, head over to the [awesome-appwrite repo](https://github.com/appwrite/awesome-appwrite) to check them out.

If you've just discovered Appwrite and would like to get started, check out our [30 Days of Appwrite](https://30days.appwrite.io/) series where we explain step-by-step everything you need to know to build awesome Appwrite-powered apps. Come hang out on [Discord](https://appwrite.io/discord), follow us on [Twitter](https://twitter.com/appwrite_io), [Dev](https://dev.to/appwrite), or wherever you find your friendly neighborhood Appwriter.