This article is more than 1 year old

AWS previews SDKs for Rust, Kotlin, Swift, and Amplify Studio for rapid web apps

Plus: Why company foresees growth of Rust, already widely used internally

Re:invent AWS previewed new developer resources at its Re:invent conference, including new SDKs for Rust, Swift, and Kotlin, as well as Amplify Studio for rapid web applications, integrated with the Figma design tool.

The SDKs provide a language wrapper for APIs to AWS services. Existing SDKs target JavaScript, Python, PHP, .NET (C#), Ruby, Java, Go, Node.js, and C++. Now three more were this week added. Kotlin is the official language for Android and runs primarily on the JVM (Java Virtual Machine). Swift is Apple's language for iOS and macOS, and can also be used on a server. Rust is the language developed by Mozilla to be nearly as fast as C but with memory safety and other modern features.

"Rust has a lot of use internally as well, we've seen it become adopted quite rapidly within AWS and within Amazon," Ken Exner, GM for AWS Developer Tools, told The Register. "EC2 uses it, S3 uses it, CloudFront, DynamoDB."

What kind of things will developers use the Rust SDK for, bearing in mind that Rust is primarily a system language? "One simple example is parallel programming," said Exner. "Parallel programming has common bugs related to race conditions that cause memory leaks… we've seen the most common bug that you see for parallel programming go away with Rust because of how it manages memory. I think it's also going to start taking some of the workloads related to Python."

AWS has previewed SDKs for Rust, Kotlin and Swift

Emily Freeman and Ken Exner preview SDKs for Rust, Kotlin, and Swift at Re:invent

What about general-purpose programming such as web applications? "The Rust community is going to figure out where it goes. I think the most interesting use cases are going to be more low-level and back-end but there's no reason it has to be," Exner told us.

The Rust SDK was previously an alpha but is now a developer preview with access to 288 AWS services. It can be used with Lambda serverless functions, but requires a custom runtime so is not quite as straightforward as with other languages. No date is set for final release, and the API could still change.

"At GA we declare v1 and lock down the API," Exner said.

Another notable developer preview is Amplify Studio. Amplify has become a somewhat confusing AWS brand name. "It began with mobile SDKs, building around an Objective C or Android SDK," said Exner. "We started seeing the convergence of web and mobile as you started having things like React Native, which blur the difference between a web and mobile application. So Amplify extended beyond its original mobile roots."

Amplify Studio does not support mobile applications at all, only web. It is a low-code environment where developers start with a data model, add content and authentication, and then create a user interface integrated with Figma, a third-party collaborative design tool. Use of Amplify Studio is optional and the existing Amplify features for hosting and mobile development remain.

"We started providing higher level APIs on top of the core SDKs," Exner told us. "Then we provide UI tools and CLI tools on top of that. It's a layered approach, you can interface with it at any layer."

Amplify Studio replaces an earlier product called Amplify Admin UI, introduced a year ago. The big difference is that the new version includes a new UI library and Figma integration to become a complete application builder. The UI library includes primitives like buttons and text fields. It generates React components and supports data binding, for hooking up to the data model. Authentication is via AWS Cognito, which is easy to use on its own or with Facebook, Apple, Google or Amazon logins, and possible but more difficult to use with other providers such as Active Directory Federation Services or Azure Active Directory.

Previously, said Exner, Amplify did not do the front end. "It does that now, through this powerful canvas metaphor that allows you to drag a bunch of components, and because we manage all the back-end infrastructure, it wires it up together… it is very opinionated and very simple to use."

He sees the Figma integration as a big deal. "If you watch designers and front end developers work together, there this analogue hand-off. Designers come up with a prototype, for the engineer to recreate in their tool, and it just seemed very antiquated. By putting together design prototyping together with engineering, we're making that a digital hand-off."

The snag with this type of approach is that the skills of the designer in making a beautiful user interface do not necessarily align with the skills of the front-end coder in making it perform well and respond properly to different form factors. Although the idea of simply importing the designer's work is attractive, it can be problematic in practice.

The initial preview for Studio is React-only but support for Flutter, Google's cross-platform framework for mobile and web, may be added in future. The underlying Amplify framework already supports Flutter. Why React? "It's 70-80 per cent of today's apps," Exner told us.

Creating an instant application with Amplify Studio

Creating an instant application with Amplify Studio

What about support for native mobile applications? "You should expect to see us support all of these things," Exner said, though this is not part of the initial preview.

Although there is no charge for using Amplify Studio, it uses CloudFormation, the AWS service that provisions resources from JSON declarations, so billable services are generated under the covers. We created an application and found it confusing in this respect as it is not easy to see quickly what resources are being drawn upon and what they will cost. However, there is a one-click Delete option which removes the backend resources. ®

More about

TIP US OFF

Send us news


Other stories you might like