Create with Swift at NSSpain 2021
This article will get you started with material created for our workshop on Creating a media streaming App with SwiftUI and AWS at NSSpain 2021.
On November 18th & 19th, the NSSpain 2021: Remote Edition conference was held as an online, continuous 36 hours event. Moritz was a speaker at the conference and presented a session about live and on-demand media streaming, called "How to create a media streaming app with SwiftUI and AWS".
The session introduced HTTP Live Streaming (HLS) and how it can be leveraged with the AVPlayer of the AVKit framework in SwiftUI with the VideoPlayer introduced at WWDC 2020. Building on the backdrop of an app development project for the Alles Neu Land online festival in late 2020, the presentation portraits the ambitious attempt to create a production-ready media streaming app with just SwiftUI in a few days and to explore the capabilities of the framework in a time where the debate on whether it is production-ready heated up.
The session covered:
- how to play remote media source with AVKit in SwiftUI using the VideoPlayer
- how to host videos on the cloud using AWS infrastructure
- how to develop a media library app with SwiftUI components exclusively
Resources
There are several resources mentioned in the presentation beyond what Apple provides in their extensive documentation for HTTP Live Streaming (HLS). Some articles on Create with Swift may serve as a reference to get you started if you want to explore the topic on your own:
- Developing A Media Streaming App Using SwiftUI In 7 Days
- HLS Streaming with AVKit and SwiftUI
- Switching between HLS streams with AVKit
- Using HTTP Live Streaming (HLS) for live and on‐demand audio and video
- Implementing Picture-In-Picture with AVKit and SwiftUI
- Custom video player with AVKit and SwiftUI supporting Picture-In-Picture
Additionally, Marco Falanga - who collaborated on the development of the Alles Neu Land App - also created a Github repository with sample code to illustrate the VideoPlayer implementation and how to monitor the playback buffer to switch to lower resolution streams based on network conditions.
This article is part of a series of articles derived from the presentation "How to create a media streaming app with SwiftUI and AWS" presented at the NSSpain 2021 conference on November 18-19, 2021.