Build Swift Web Playground for Fun and Profit

By Kishikawa Katsumi

Elevator Pitch

Playgroundはプログラミング言語を理解するためのツールとしてもっとも有用なものの一つです。 Swiftは非常に使いやすいPlaygroundが提供されていて私たちはSwiftコードを簡単に試して実行結果を確認できます。

他のプログラミング言語に目を向けてみると、最近の言語は何かしらのPlayground の仕組みを備えています。さらにWebのPlaygroundが提供されている言語も多くあります。

残念ながら公式のSwiftのWeb Playgroundはまだ提供されていませんが、SwiftとWebの技術を使ってWebで動くPlaygroundを自分で作ることができます!

Description

Playgroundはプログラミング言語を理解するためのツールとしてもっとも有用なものの一つです。 Swiftは非常に使いやすいPlaygroundが提供されていて私たちはSwiftコードをとても簡単に試して実行結果を確認できます。

他のプログラミング言語に目を向けてみると、最近の言語は何かしらのPlayground の仕組みを備えています。さらにWebのPlaygroundが提供されている言語も多くあります。

WebのPlaygroundはさらにさまざまな応用ができます。 手元に環境がなくても実行できるのでiPhoneでちょっとアイデアを試したり、議論のために問題のあるコードと実行結果を人と共有したり、ドキュメントなどに載せるサンプルコードが実行できる、いわゆる「動くドキュメント」を提供することもできます。

残念ながら公式のSwiftのWeb Playgroundはまだ提供されていませんが、SwiftとWebの技術を使ってWebで動くSwift Playgroundを自分で作ることができます!

こちらが私の作ったSwiftのWeb Playgroundです=> https://swift-playground.kishikawakatsumi.com/ Web APIを備えているので、応用として、Discordを利用したSwiftのコミュニティ内で、コードを投稿すると実行結果が表示されるという議論のための便利なツールとして積極的に利用されています。 私の作ったライブラリの動作をセットアップ不要で試せる環境として利用することもあります。

このように、PlaygroundをWebの世界に持っていくと、とても強力で応用力があるツールになります。

現在、私は汎用的でないものも含めて5つのPlaygroundを利用可能な形で公開しています。 既存の技術の組み合わせて作られているので、難しいことは何もありませんが、DockerやLinuxサーバーのセットアップなど、広い範囲の技術に触れることができるので、このような仕組みを作ることはとても楽しいです。

いろいろなSwift Web Playgroundがたくさん作られてほしいと思っていますので、私の経験から、SwiftをWebで実行する(しているように見える)ために何が必要か、どのような技術をどう使って実現しているのか、気をつけることは何か、ということをお伝えします。