During the festival period, also festival credentials from the festivals website’s payment system could be used. AWS Backend ServiceĪccess to the library is enabled either through valid In-App Purchase items procured through the App Store. Content is automatically added to the database and made available in the media library. Manifest playlists for streaming at different resolutions and compressions to accommodate user’s different bandwidth requirements. This triggered Lambda scripts for AWS Elemental MediaConvert to create HLS video files. The video content was produced with Final Cut Pro and Compressor, transferred to S3 with MSP360 Explorer. We used API Gateway with AWS Lambda for server-less computing with Swift AWS Lambda Runtime introduced at WWDC 2020. We chose S3 Storage, DynamoDB, CloudFront for storage and content delivery. The backend service is running on cloud infrastructure using AWS. For convenience, we moved some reusable elements into an external Swift Package for further usage in other projects using Swift Package Manager. Other latest technologies used in the app are Lazy Stacks and Grids, Combine, AppStorage, iCloud Storage, NSUbiquitousKeyValueStore, CryptoKit, Keychain, Sign in with Apple, Non-Renewing Subscriptions with In-App Purchase during the festival and Auto-Renewable Subscription afterwards, WidgetKit, MessageUI, AVKit, PictureInPicture and HTTP Live Streaming (HLS) technology with Low-Latency from Apple. With only few adaptations it also runs on Apple TV, which is a natural extension of the app and its use case. With the latest MacOS Big Sur, the app can also run on the Mac, using the iPad layout. We developed the app using only SwiftUI interface components and it runs on iOS for iPhone and iPad. We localised both backend service and app in English, German and Italian. It limits the number of devices that can stream video content with the same credentials and manages the access rights. The backend service also uses means to limit account abuse. The backend also serves HLS video streams in different qualities ranging from 360p up to 1080p. The app connects to a cloud based backend that provides authentication services and access to presenter and video data. All views rely on core functionality of the SwiftUI framework. In an account view, users can either enter their credentials and buy library access through an In-App Purchase subscription. A presenter view with a grid layout and modal detail views, allows users to explore short presenter bios. In a favourite view users can save videos or presenters in a list. The app also features a search view to query videos and presenters. Of course, there are also video descriptions, presenter info and other meta data. The detail views provide a video player with automatic bandwidth detection to pick stream quality. Nested inside are various horizontal scroll views in a table view with different sections and detail views for each video. It is a simple tab bar navigation app that serves a library view for the video content. Most of the time however, we spent on the App Store Review process. Including the review process, the app went from inception to publication in 21 days. We implemented the backend service on AWS. For the media library app we heavily relied on SwiftUI. I estimate the total development hours at around 40-50 for both of us combined. I collaborated on the app with Marco Falanga (who also collaborated with me on the heart/work project). The entire development process took less than a week. For all intends and purposes the goal was also to use SwiftUI exclusively for the interface and as many of the latest technologies as possible. With time running out, I had to develop the app within few days to complete the review process of the App Store in due time before the festival launch on October 30, 2020. It would allow asynchronous streaming of recorded festival sessions for registered attendees. I decided to augment the festival offering with a media library app. In late 2020, I was working on the web platform for the Alles Neu Land online festival with live video streams in late 2020. With the updates presented at WWDC 2020, it felt like a production ready environment for SwiftUI only app development for iPhone, iPad, Apple Watch, Apple TV or even the Mac. It is the latest framework for declarative development of user interfaces on every platform in the Apple technology ecosystem. Anyone can do it and the entry barrier is lower than ever, especially with Apple’s 2019 release of SwiftUI. These days, app development has become the web design of the early years of the millennia.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |