Xamarin is a great technology for creating native mobile apps using C# and .NET. You can craft beautiful apps that will help your customers achive their goals. However, like every other technology, it has some drawbacks. I think it’s good to talk not only about good things, but also about things that bother us. You may ask why? I believe that technology should be constantly improved to make it better for every day development, but what should be improved exactly? Without talking what are these drawbacks, we can’t focus on things that really should be improved.
In this post series, I will be asking Xamarin developers about what bothers them the most with Xamarin devepment. In todays’ post, I would like to introduce you Krzysztof Stępnikowski and Łukasz Ławicki. Let’s check their opinions.
[edited 4 January 2019]
So far there are these post in the series:
Krzysztof Stępnikowski. Currently, I work as a Xamarin Developer and I’m a member of a team who creates cross-platform mobile application for spanish airlines. I’m focused on a mobile world, being passionate about Xamarin, Android and new technologies in general. I have been working with Xamarin and .NET technology for over two years now. In free time, I’m writing a blog about Xamarin and I like creating small apps, which are shared on my GitHub, helping another Xamarin Developers. I like playing football and volleyball in my free time.
Building and deploying
First of all, I think that building a solution with many projects is taking too long. I’m working on macOS and Windows and the difference between these operating systems is huge. At the moment, I’m thinking that building solution on macOS is faster than Windows.
Generally, I’m satisfied that Microsoft fixed pairing macOS to Windows – this functionality is great. A few months ago deploying an application to iOS platform wasn’t possible at all. There was probability that connection between macOS and Windows will be terminated.
I’m sorry, but I have to say it out loud – Visual Studio for Mac has only changed its name from Xamarin Studio to Visual Studio. The difference between the Visual Studio for Windows and macOS is huge. VS for Mac doesn’t have ReSharper and it’s problematic for daily working. The feature that I most missing is IntelliSense for XAML files. If you want to have similar functionality, then you have to install MFactor extension. In my opinion, such functionalities should be included in Visual Studio for Mac by default.
Xamarin.Forms is a framework that has lot of controls, e.g. buttons, entries, labels, etc. Unfortunately, they haven’t been updated for a long time now. If you create Xamarin.Forms project and you want to have a „beautiful” design, you usually have to implement custom renderers. I think Xamarin.Forms controls should be more extendable, for example button control should have properties like PressedColor, HoverColor, etc. Our clients often demand such functionalities.
In my opinion, Visual Studio for Mac and Xamarin.Forms controls should be improved in future releases.
Łukasz Ławicki. Xamarin developer from Wrocław, Poland. Mostly specialized in Xamarin.Forms. He has been developing mobile apps in Xamarin.Forms, Xamarin.Native and Kotlin. Highly focused on .NET framework and C#, but tries other technologies as well. Constantly trying to write cleaner and better code. The admirer of Software craftsmanship approach. Big fan of Scrum. In his spare time, he tries to write articles on his blog.
I have been working with Xamarin for about 2 years now. At first, I was using Visual Studio for Windows, to develop apps in Xamarin.Android. Later, I changed company and switched to Xamarin.Forms. At that moment, I started using Xamarin Studio on macOS. Being that experienced, there are several things that really bother me. On the other hand, there is a lot of things that I really like, but I believe that Damian would want not to focus on them ;-) In this short note, I will try to point out what makes me worried.
Right now, we can implement a cross-platform mobile app in Xamarin, React native, Flutter, Cordova etc. On top of that, there is Kotlin which can be easily translated to Swift. The amount of different technologies that can be used to build an app, bothers me the most. Clients have so many options and they don’t know what to choose. They have a feeling that nowadays Microsoft is putting more stress on JS technologies than on Xamarin. It’s hard to propose Xamarin when you also feel like Microsoft is starting to treat Xamarin as a legacy.
In September 2017, we were working on a project in Xamarin.Forms 2.something (I am not able to tell the exact version as I don’t have an access to the repo). A client was complaining about the performance of the app. We knew the issue. „But hey! Forms 3.0 are going to be released soon. We will update and the issue will be gone” – we thought. At that time, Forms were said to be released by the end of a year (source). We were waiting, waiting and waiting… Nothing was never said about the deadline being changed and we were still waiting. Finally (around February), we decided to improve the performance on our own. Forms 3.0 were released in mid-2018. That’s not a bad thing – everyone has problems with the deadlines. The problem is that not everyone is telling their clients if they are not going to meet the deadline. I would really love to see more information about releases eg. current status of work, bigger roadmap (the „Future” section on GitHub is very small), plans etc. That would be really nice.
As this note is growing longer, let’s move to the last thing. It is not something that bothers me; it’s the thing that frustrates me. As said earlier, I am working on macOS and I am using Visual Studio for Mac. That was quite obvious. When building UI’s I am using:
- Android Studio
- my imagination
Why? Because it’s nearly impossible to get designers/previewers/interface builders/whatever-we-call-them working. Let’s be honest. Xamarin.Forms Preview is not working. You have to imagine everything in your head, run it and hope it will work. Later you need to adjust it. Do you want to build something in Xamarin.Android or Xamarin.iOS? Better, download Android Studio/XCode and do it there. It’s quicker, better and less painful. I would save so much time if only I had „normal” preview. But I don’t have one for Xamarin.Forms… I’ve just noticed, I was lying. What bothers me in this field is the fact that everyone is complaining about it. For sure, people at Microsoft are aware of this problem but somehow they act like there isn’t one. Why?
Photo of Łukasz was taken by Łukasz Wolny.
Do you agree with Łukasz and Krzysztof? Or maybe you have other opinions? Let me know in comments!
New post from this series will appear soon on programistologia.pl with even more opinions and points of view from Xamarin developers. Stay tuned!