It’s time for a second part of article series about what bothers Xamarin developers. We love using Xamarin and therefore we want to make it better. This post series is about identifying things that bother us and should be improved.
So far there are these post in the series:
Today I would like to introduce you to Tomasz Szczepanik and Oleksandr Ropianyi. Let’s check their opinions.
Tomasz Szczepanik. Mobile developer at Edge One Solutions, a fast-growing company that provides its clients with skills and experience of highly qualified IT consultants. Previously, Tomasz worked as a Windows Phone developer for a company from financial sector. In personal life, he is a passionate gamer that one day would like to create games on his own.
For an old C#/XAML developer like me, Xamarin is a great tool. Not only does it allow me to create Android and iOS applications without the need to learn Java or Objective-C, but also, thanks to Xamarin.Forms, I can write them in a way which is very similar to creating apps for WPF, UWP, or Windows Phone.
As a C#/XAML developer, I’m far more familiar with the concept of Pages than with Intents, Activities, or View Controllers. Of course, it is good to know exactly how Android and iOS work, but thanks to Xamarin.Forms it is not required.
Unfortunately, Xamarin.Forms has also some disadvantages. Since the main reason behind this framework existence is to create a common UI layer for various platforms that it supports, some of the functionalities and UI options that are available on those platforms, are hard to achieve in Xamarin.Forms.
Here is a list of things I’d really welcome in this framework:
- No custom transitions between pages – when you create native applications in Java, Swift, Objective-c or even in Xamarin.Android or Xamarin.iOS, it is relatively easy to setup how the app should transition between two views – in Xamarin.Forms it is hard (or even impossible) to do this.
- Applications created in Xamarin.Forms has slower startup time than native apps. You can see this with a naked eye. Even an empty Xamarin.Forms application launches slower than Xamarin.Android or Xamarin.iOS app.
- Dependency Injection framework shipped with Xamarin.Forms is too simple – personally, I don’t know anyone who would use it for commercial apps. It would be really nice to see Xamarin.Forms integrated with MvvmCross or Prism out of the box.
- Xamarin Live player is a great tool. However, as soon as you add any new native control (with custom renderers), it breaks. It would be nice to have it working despite the usage of custom controls.
- It would be also nice to have an easier way to set border and rounded corners on container views.
My last wish for Xamarin.Forms? I would like it to be more popular. Still a lot of companies are looking for native developers (Xamarin.Android and Xamarin.iOS). Maybe if it was faster and more flexible, companies would begin to notice its advantages.
Oleksandr Ropianyi. Xamarin Developer with 2 years of experience. Passionate about mobile and .NET technologies. Yoga lover and healthy lifestyle practitioner.
Overall, I am happy with direction Xamarin.Forms is being developed today. It’s great to see more platform specific features available right inside Xamarin.Forms project like Android’s elevation or Label’s maximum lines constraint.
One additional thing I always wanted, is a possibility to create more sophisticated interactions and animations in a cross-platform manner. For example, add animations to lists, change navigation transitions animation. It would be cool to use built-in mechanism without need to resort to custom renderers or 3-rd party libraries.
I hope that some day it will become possible and Xamarin.Forms team and community will continue to improve the framework with such a pace and great effort.
What do you think about Tomasz’s and Oleksandr’s opinions? Let me know in the comments! Also stay tuned for another post in the series.