Silver is a free implementation of Apple's Swift programming language.
Built on over ten years of solid compiler knowledge and technology, with Silver, you can use Swift to write code directly against a wide range of development targets, from .NET over Java and Android to, of course, Cocoa. And you can also share a lot of non-UI code between platforms.
With Elements, you can use the Swift language to target pretty much every current development platform – all completely natively and with direct and full access of the respective APIs.
You can see a full overview of Elements' platform coverage here.
Silver comes with a couple of great choices for your development environment.
For developers on Mac, we have Fire, our lean, mean and powerful Mac IDE.
Fire is the best way to experience Elements, and our favorite way to develop on the Mac. It is powerful, yet lightweight enough to run great on a 12" MacBook Adorable. It provides all the features you need to create great apps, and fully supports all development for all the target platforms mentioned above.
If you prefer working on Windows, there's Water.
Water is the Windows IDE, rethought from the ground up. It brings the same light-weight development experience from Fire to Windows and it lets you target all platforms supported by Elements, including Mac and iOS, right from your Windows PC.
Fire and and Water are siblings of sorts, as they epitomize the approach Elements takes to multi-platform development: they share virtually all their code (and much of their design philosophy), yet are fully native on their respective operating systems – 100% Cocoa on Mac, and 100% WPF on Windows.
For Windows developers who like Visual Studio, Elements also integrates into that IDE, allowing you to use Swift next to Visual C# or Visual Basic, for example, right in Visual Studio 2015 or 2017.
Elements also has a powerful command-line and build toolchain: EBuild.
EBuild takes care of performing all build steps, for any of the platforms, giving you a consistent build chain and user experience no matter which platform (or platforms) you are working with. From source code to .ipa
or .apk
, EBuild takes care of you, and you don't need to learn or maintain different tool chains for each platform.
EBuild will be fully open source, so you can see what is going on, and even contribute changes on GitHub soon.
Silver is a great way for developers on Windows to start exporting Swift. Whether you want to create apps for Mac and iOS and merely want to work on Windows, or break Swift out of the Apple eco-system and create apps for Windows (and other platforms – you have come to the right place.
Work in Water or Visual Studio, create projects for the platform(s) of your choice using the Swift language. You can even mix it with your existing C# or Java code, or you can convert C#, Java and Objective-C code to Swift to re-use it in your projects.
Even if you're a full time Apple developer committed to Apple's tool chain, there are many reasons to choose Silver for your swift work. Fire, our IDE for Mac, is fast and lightweight, and works great on every Mac, from an (i)Mac Pro down to a 12" MacBook. In fact, we develop Fire in Fire, on a 12" MacBook, day-in, day-out. The Silver compiler is build on a foundation of over a decade of solid and well-tested compiler technology. It behaves predictably, is fast, and generates high-performance native Cocoa code – code that actually is closer to the metal than that Swift in Xcode and has less overhead when working with Cocoa APIs. It also provides reasonable and understandable error messages.
And that's before you even think about how Silver will let you leverage and share much of your Swift code with other platforms – for example for that Android port you have been dreading.
Silver is also a great way for Android developers to get into Swift. With Silver, you can write your Android apps using the same classes and APIs you already know, with full access to the Java and Android SDKs and additional .jar, .aar or Gradle libraries you might want to use – using the Swift language Syntax. You can even mix in your existing Java code in the same project – or have our Oxidizer feature convert it to Swift for you, semi-automatically.
And once you're running in Swift, you can take your code to other platforms as well – maybe re-use large portions for the iOS version of your app, to share code between the Android app and the .NET or Linux API based servers that power your app. You can also use Swift to write native Android NDK extensions – no more C/C++!
Silver, like all five Elements languages, comes with an extensive tool chain that takes care of all parts of your development process – from IDEs to work in, over the compiler and auxiliary build tasks, all the way to your final product.
It also integrates deeply with the existing ecosystem for whatever platform(s) you are targeting. For example:
On Mac or iOS, you have full access to the entire range of Cocoa APIs. You can use .xib files, storyboards, asset catalogs etc. just as you would in Xcode.
On Android and Java, Silver seamlessly uses the platform tools for "dex'ing" your Java code or creating .apk files, and has support for pulling in external Gradle packages like you'd expect.
On .NET, you have full access to the framework library and third-party .dlls and libraries, and you can use NuGet packages to pull in code. You can target the full desktop .NET Framework, as well as .NET Core or Mono, and you can create GUI apps using WinForms, WPF or the new Universal Windows Projects system.
And so on.
.2951 Stable/Public, October 25. Download.
The free "Community License" allows you to use stable builds of Silver for all platforms and for any purpose – including commercial projects – at absolutely no charge.
The "Community License" version is provided "as is", and unsupported except for peer-to-peer support on Talk.
If you would like to help support the development of Silver, and all of the Elements eco-system, we hope that you will consider purchasing a paid license the whole Elements package (with all six languages).
A Full Silver or Elements license gives you several benefits:
In particular the access to preview builds is a significant plus; we ship a new build every Friday, and these builds are usually production-stable(ish), and allow you to experience and help shape new features and benefit from the latest bug-fixes.
For Swift in particular, preview builds give you early access to new language features as Swift evolves – often even before Apple Swift has implemented new proposals, itself & ndash; and lets you be on the cutting edge with, right now, Swift 5 and beyond.
Your patronage is much appreciated.