Title of this blog post may sound very weird in 2018 while github / vsts / bitbucket are still up and running. However, it still seems to be very common to archive your solution and upload it to cloud or send it by email. Don’t ask me why, it is just still there.
The most painful and annoying mistake you can make is to include dependencies that can be easily downloaded or compiled code. Painful because it may significantly increase the size of the archive and annoying because you may have to download it for hours because of it. Continue reading “Archiving your code”
Switching from old good VS (for Windows) to a new cool VS for Mac can be painful. Original VS was released in 1997 (according to wikipedia) while VS for Mac was released only in 2016. Yes, it is based on XamarinStudio which is built on MonoDevelop but it still has a long way to go in order to be close to it’s ancient relative.
In this article we will take a look on VS for Mac “hidden gems” that can optimize and smooth your workflow. All you have to do is to open Mac’s VS Preferences and read this article on the side.
One of the very basic yet very important settings is the
Font. While there is nothing bad using the default font, FiraCode could beautify your code and improve it’s readability by replacing sequences of characters by a single ligature.
The project repository on github contains detailed information on how to install it in your system. It’s also great because this font can be used almost everywhere.
Continue reading “Visual Studio for Mac tips & tricks”
It is very common nowadays to express ourselves by using emojis. Instead of typing few words, we prefer to send one emoji that will express our feelings and emotions. Not sure that the other side will always get what we mean by sending a 🧞 , but that is another story.
In this article we will learn:
- How to use emojis in static content like Labels and Buttons
- How to define and use emoji in XAML only
- How to define and use emoji using C#
Continue reading “The ultimate guide to Emojis 🤹♂️”
One of the very common tasks that any mobile developer meets is validation of the user input. It can be an email, password complexity, length, not empty or any other sort of input validation. In this article we will try to find an appropriate light-weight and reusable solution, so let’s start!
Continue reading “User input validation in Xamarin.Forms”
Integrating Firebase Auth in Xamarin.Forms is very easy and basic authentication flow implementation can be achieved under 20 lines of code. There is more work with settings than code writing. In this article we will:
- Configure Firebase app
- Create Xamarin.Forms application to authenticate users via Firebase Auth
- Create a .NET Core WEB API project to validate Firebase Auth token and return simple data
Continue reading “Firebase authentication in Xamarin.Forms”
Every time you create a new Xamarin.Forms project in Visual Studio for Mac you have to manually convert it to .NET Standard. The conversion is very straightforward and can be done with just a few steps:
How to Convert a Portable Class Library to .NET Standard and Keep Git History
- Unload your PCL project (right click -> unload), and start editing it (right -> click edit)
- Delete Everything in the csproj and insert this:
<!--<PackageReference Include="" Version=""/>-->
- Add back NuGets (simply open packages.config, and add the package references above, or via the NuGet package manager.
- Delete AssemblyInfo.cs (this is now in the csproj) and packages.config (also in csproj via PackageReference)
Hopefully one day VS team will take care of it, till then, I decided to automate this process and created an add-in/extension for VS for Mac – Mutatio.
Mutatio – in Latin means change, transformation or exchange.
Mutatio can convert newly created or existing projects. Please keep in mind that there might be
NuGet packages that does not support .NET Standard 2.0, in this case you may see related exceptions.
In case you change your mind and you want to rollback,
Mutatio is making a backup of all the files it modifying and deleting under the project’s root directory within
mutatio_backup folder. So all you have to do is to copy the files back to your project and reload the solution.
One of the biggest challenges I met while development was related to reloading the project after conversion. Within VS for Mac after manually modifying the
*.csproj under the right click menu of the project there will appear a
Reload option, however I didn’t find a way to call this method programatically. Currently, the whole solution will be reloaded as a workaround. If you know how to solve the problem programatically I would really appreciate if you will share your knowledge by contributing or leaving a comment.
More details can be found on GitHub.
We live in a great time where technology evolves fast and we need to keep up with it if we want to stay relevant. Beside this, we also have to be productive, use the latest and greatest tools, implement the best available solutions and deliver on time. Following article mentions a list of most common mistakes we tend to do while using Xamarin.Forms.
Continue reading “Most common mistakes beginners make in Xamarin.Forms”
What can feel better than writing a code? Of course deleting it!
There are many good technical articles that explain why .NET Standard is great and why should we use it. My goal in this article is to demonstrate some benefits in practice.
If you didn’t switch yet from
Shared Projects to .NET Standard, I would highly recommend to do it. Most of the third party libraries are compatible and the switch is usually painless. After switching to .NET Standard you could benefit from reducing the code size and the amount of “hacks”. Let’s take a look on few practical examples. Continue reading “Reducing the amount of code by switching to .NET Standard”
Very often I hear questions like “Is there any Facebook SDK for Xamarin.Forms? Because there is one for Android Xamarin Native.”. This kind of questions can apply to different SDK that are compatible only with specific platforms and cannot be consumed directly in Xamarin.Forms. The answer to these questions usually is “If there is an available native Xamarin SDK it can be consumed in your Xamarin.Forms project. All you have to do is to create an abstraction like you would do with any other platform specific code.”.
As you might already understand, in this article we will create an abstraction over Xamarin.Facebook.Android and Xamarin.Facebook.iOS in order to display a native Facebook Login Button and handle the authentication related events in our Xamarin.Forms application.
Continue reading “Using Native Facebook Login Button in Xamarin.Forms”
Swagger is a very powerful tool that I highly recommend to integrate into your API projects. It will simplify and speed-up both the development and QA processes. This tutorial is going to demonstrate that. Just keep reading.
For this tutorial I assume that you should have a basic understanding of ASP.NET Core Web API and Xamarin.Forms. If you want to follow this tutorial while checking the source code you are welcome to clone this tutorial’s repo.
In this post we will create a simple ASP.NET Core API with Swagger, we will generate the API consumer code using NSwag and finally we will integrate it to our Xamarin.Forms application.
Continue reading “Using Swagger to automatically generate the client code”