- In this article we look at the newly released SwiftNIO framework from Apple.
- We wildly speculate about how Apple can take this project further and use it to compete with Amazon's AWS and other cloud providers.
- Finally, we look at an options strategy that could result in 140% upside if Apple was to trade up to $200 by 2020.
A few days ago at the try! Swift Conference Apple (NASDAQ:AAPL) software engineer Norman Maurer introduced SwiftNIO, a new high performance network for networked server and client applications. In this article we are going to discuss this new technology and then wildly speculate about what this could possibly mean for Apple in the future. With Swift and now SwiftNIO becoming open source we see Apple finally entering the cloud computing space and challenging Amazon's AWS (AMZN), Microsoft's Azure (MSFT) and Google's Cloud (GOOG) (GOOGL) sometime in the future.
Swift and SwiftNIO
Swift is a programming language introduced by Apple in 2014. It's a general-purpose compiled programming language used primarily for iOS, MacOS and WatchOS development. Apple describes it as "Objective-C without the C." It generally has a modern syntax, fast prototyping capabilities and it runs close to the metal when compiled, which allows it to be very efficient on Apple's hardware platforms.
On introduction in 2014 Apple announced that they will be open sourcing the Swift language, which immediately inspired developers to attempt to use Swift for web and server side applications as well. However, since the initial introduction Apple has not made any significant push to make Swift a serious player in the server side programming market, until now.
(Photo from the try! Swift presentation by Chris Bailey.)
A few days ago at the "try! Swift" Conference in Tokyo Apple introduced the SwiftNIO framework. SwiftNIO is short for Swift Non-Blocking IO. As described on the project's GitHub page, it's a "cross-platform asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients." That sounds fancy, but what does that all mean? Well, basically SwiftNIO is a low level framework that can be used to implement communication protocols and APIs in Swift, which then can communicate with back-end Swift code for your web and mobile applications.
Let's look at an example. Say you are making a social media app, they tend to be popular these days. The app lives on your user's phone, but all the up to date data, pictures and status updates reside on the back end servers in the "cloud" (AWS, Azure, Digital Ocean, etc.). In the past you would have your back end code run in PHP, Python, or any number of programming languages and the back-end would communicate with the client app through HTTP protocol and a web server such as Apache, NGINX, or Microsoft IIS (rarely IIS, unless you're a government or large nontechnical corporation contractor, because no one has ever been fired for choosing Microsoft, no matter how bad of a choice it is in this particular case).
So the communication pathway is something like this: back-end code <-> web server <-> Internet <-> client application. That doesn't look too bad, why switch away from that? Well, web servers are designed to do a slew of different things and accommodate all kinds of use cases by default. They are kind of a Swiss Army knife in this case, lots of features for all your life's little needs. The problem with this is that every server feature you are not using is also a potential attack vector for hackers. You can judiciously turn off unused features but this is rarely done properly in practice and even in the best case scenario a properly configured server with minimal number of features turned on will still expose a greater attack surface than a custom written application that's designed to ONLY answer specific API calls and throw an ERROR in all other instances.
As a result, in recent years we have seen a push from many online companies to bypass the whole web server link in the communication chain and have the back-end code implement the protocols directly. NodeJS, Google's GO language and several Python frameworks are popular for this, as is Netty, a popular client-server framework for Java. SwiftNIO is basically the same thing, Netty, but for Swift.
So, it finally looks like Apple is pushing Swift into the world of server computing and there is a HUGE opportunity waiting for them there.
Everything in this section will be speculation and supposition, but based on clues Apple has been sprinkling lately I think we are about to see some movement in the direction of them running their own cloud services company. Of course, being Apple, they are not going to try to compete in the highly competitive generic virtualization space currently dominated by Amazon's AWS and Microsoft's Azure. Instead, I believe they are going to offer, first internally and then externally, a Swift cloud. A cloud hosting provider for back-end swift code.
So, let's take a look at how this "Swift Cloud" could look like in a real world application. A few years ago I wrote a ToDo list app called Simplifi. It's currently available in the App Store, in case you want to check it out. At the moment Simplifi is a single device application, with no sync capabilities. It would be easy to rewrite the storage back-end to use the iCloud storage and allow the app to sync between multiple iOS devices, but let's say I wanted to make this app cross platform and let's say I wanted to add a web interface. Let's look at the software stack I would currently use:
- Linux Server - either a containerized environment or a VPS.
- Web Server - NginX, Apache, etc.
- Back-end Code - Django, PHP, JS, etc.
- Back-end Storage - mySQL, MariaDB, or Postgre SQL.
- HTML and CSS.
- The App - It's currently written in Swift.
So, let's sum up. At the very least this project would involve maintaining some sort of Linux environment and 5 different code basis. Hmm, not a happy prospect. It would be nice to get it down to 2, wouldn't it? And it would be possible with the proposed "Swift Cloud."
Now let's imagine how this could be done on the proposed Swift Cloud.
The entire web app, including the back-end and the front end could be developed in Swift. Libraries would have to be written to generate CSS and HTML necessary for various interface elements and client side Swift code would be compiled to WebAssembly. The server side code would be a compiled, self-contained, native application, also written in Swift using the SwiftNIO framework to communicate with the front end code over the Internet.
Deploying this would also be simple. You would upload it to the Swift Cloud, configure a few things and you are off to the races. Because the entire code base is a single executable application, it can be easily propagated to multiple physical servers and load balanced between them on the fly. MacOS and iOS apps are kernel sandboxed by default and a similar system would be used for the web apps, which eliminates the need to run containers or virtual servers.
So, you have one code base for the back-end and one code base for the front end, both in the same language and no web server or Linux server configurations! For a small startup, that's a win! And when those small startups become large startups Apple will make a killing on the hosting service fees. Look at Snap Chat (SNAP), a company that's making more money for Amazon's shareholders than it does for its own, by a huge margin.
Here are a few other potential benefits for the developers of this approach:
- It significantly simplifies development, especially at the MVP (minimum viable product) stage, by reducing deployment complexity and providing easy to access scalability.
- Maintaining one codebase is way easier than 4 or 5 and allows for faster iteration with a smaller development team.
- Built in security by only having to ship fully compiled code. Since only compiled code is shipped to Apple servers, you don't have to worry about code security as much. This is not a significant concern for most startups at the moment, but could become so in the future with more AI development.
- Binary libraries also allow for further code security inside the organization. This is more useful for larger organizations.
- Built in efficiency. Fully compiled code runs faster. This means less server load, which in turn means lower hosting bills at the end of the day.
- Overall security. Having a single codebase allows for more predictable failure scenarios. You don't have to rely on 3rd party programs to fail properly without leaking information.
And here is a non-exhaustive reason why this is a huge opportunity for Apple, if they execute on it well and quickly:
- Money! There is a lot of money in cloud hosting nowadays. AWS is Amazon's cash cow. That alone should be worth the investment into this project.
- Cloud differentiation. While it can't be done with a snap of the fingers or a press of a button, switching between AWS and Azure is NOT a Herculean undertaking in most cases. On the other side, switching from the Swift Cloud would mean rewriting most of the codebase. And even though Swift is open source, the component and storage libraries do not have to be. Apple can Open Source most of the language, but keep nice and easy to develop against libraries and components close sourced, encouraging developer buy-in at first and lock-in later. It's a good place to be for a cloud host provider.
- More money! I know, I have mentioned money already, but there is even more money here! Web app marketplace. In addition to simply hosting for other companies, Apple can also start a WebApp marketplace that allows people to purchase and use web apps, such as blogs, accounting software, or any number of consumer oriented software. They would handle the subscription charges, login, authentication, data storage and load balancing, so as a developer you only need to worry about developing a compelling SaaS (software as a service) solution and marketing it. Of course Apple would charge a percentage of the subscription to cover hosting fees and to compensate them for the platform access.
With an idea like this the implementation is the tough part. Apple has the cash, resources and the capability to design something like the proposed Swift Cloud. Further, with their current push to shift from products into a service based revenue model, this would be just the project to accomplish that goal. This project would be very uniquely Apple. Bringing elegance to web app development.
In this article we talked about the newly introduced SwiftNIO framework and proposed a Swift Cloud solution that would be a huge opportunity for Apple. Of course, there is no evidence as of yet that Apple is working on anything similar to the Swift Cloud, but there are hints, from the open sourcing Swift and now SwiftNIO, to their current push into the business market, to their increased emphasis on the service model. Apple is becoming much more than just a device manufacturer and this is just the project to build an enormous service juggernaut.
We have been quite optimistic on Apple since before the pre-split days, bought on the weakness at $92 and again recently when Apple slipped below $160 during the recent small correction. Our end of the year target remains at $205, but if there are hints that Apple will expand into the hosting market, we can see the stock trading much higher on valuation adjustment.
It is our hope that Apple will use their overseas cash for capital investment and expansion, rather than capital returns, as in the long run that would be much more profitable for the current shareholders. With a project like the proposed "Swift Cloud" above we believe they will do exceptionally well deploying that cash.
At the time of writing this APPL is trading at $177, which might be a short term peak. We suggested loading up on Apple on weakness post earnings and this might be a good strategy come next earnings around May, or if you are comfortable with options, you can consider a vertical spread.
You can purchase a 2020 call with a strike of 170 for $29 and sell a 2020 call with a strike of 200 for $16.50, which should give you a net debit of roughly 12.50 (give or take due to exchange volatility). If Apple hits $200 by 2020, you would be looking at roughly 140% upside and your break-even is at $182.50, not too bad. This is similar to one of our own current positions. Of course, if we experience a significant overall market correction, you can lose the entire position, so trade options with care.
This article was written by
Analyst’s Disclosure: I am/we are long AAPL. I wrote this article myself, and it expresses my own opinions. I am not receiving compensation for it (other than from Seeking Alpha). I have no business relationship with any company whose stock is mentioned in this article.
Seeking Alpha's Disclosure: Past performance is no guarantee of future results. No recommendation or advice is being given as to whether any investment is suitable for a particular investor. Any views or opinions expressed above may not reflect those of Seeking Alpha as a whole. Seeking Alpha is not a licensed securities dealer, broker or US investment adviser or investment bank. Our analysts are third party authors that include both professional investors and individual investors who may not be licensed or certified by any institute or regulatory body.