Custom renderers are a very smart way of extending platform-specific behaviors to custom controls. They can also be used to override behaviors on controls that are already defined. In fact, all of the controls in Xamarin.Forms use renderers to translate the Xamarin.Forms control into a platform-specific control.
We are going to create two renderers, one for iOS and one for Android, that initialize the UrhoSurface on which we are going to render. The instantiation of the UrhoSurface differs on each platform, which is why we need two different implementations.