Phoenix is a Web Framework inspired by Ruby On Rails, the father of all modern Web Frameworks. It’s written on Elixir, which is a functional dynamic language that runs on the Erlang Virtual Machine. The ErlangVM, also known as BEAM, is an incredible piece of engineering. It has been around for about 30 years but for some reason, it didn’t get mainstream. Its reliability is contrasted: around 50% of the worlds telephone switches work on top of BEAM. Another example is WhatsApp (link, link), which is able to handle more than 900 million users thanks to the ErlangVM.
The idea of this post is to illustrate how to apply the Actor Model, by taking advantage of its concurrence model to solve parallel problems. The kind of parallel problems that we can solve with the Actor Model are the same kind of problems that we can solve while using MPI systems.
Have you heard about the FSharp TypeProviders? Type Providers allow you to access to a defined data scheme with static typing, which means to have intellisense for your data source. You can create your own or use one that the community has already created. Of course, there is already a JSON Type Provider, it will allow you to consume a JSON based REST api in a statically typed way. This increases the productivity a lot, you don’t have to spend time anymore trying to figure out what the name of a field is (see video below). If you combine this with the conciseness of FSharp and the productivity in the View side thanks to Xamarin.Forms, you end up with a triple win. This makes FSharp the best choice for mobile development. In this post I will try to show how to use the JSON Type Provider for building a Movies App using the TMDb API. There is an Apiary Type Provider too, but we won’t use it because the idea of this post is to figure out how to quickly build prototypes of your current APIs.
In the last entry we were talking about how to reuse the Xamarin.Forms Pages in a fully native Xamarin application for Android and iOS. The idea is to keep the use of Xamarin.Forms in the place where it fits: when we have simple views or views that follow the guidelines. Now we are going to see how to achieve that in Windows Phone 8.1.
Xamarin.Forms is a great tool, it allows you to share UI *and* navigation code across all platforms. I emphasized the navigation part, because when speaking about Xamarin.Forms it seems like many people forget about this: the navigation system is different in each platform!