3rd party libraries never seems to be documented enough. It’s the old truth that every software developer learns sooner or later. In most cases after dozens of hours spent on trying to figure out “what the hell is wrong with my/that code!?”. This post is about one of such “hidden features” in Microsoft oData client - Simple.OData.
Standard Xamarin.Forms Xamarin.Forms.Editor control offers edit capabilities similar to
Entry but for multiline text. Unfortunately unlike
Entry it doesn’t support displaying placeholder text out of the box. Implementing this functionality with custom renderers can be tricky. Let’s see how to do this on Android and iOS.
Most of iPhone and iPad users can easily recognize icon badges - the pattern for application notifications typically presented in app icon or navigation bar. People that got used to this pattern might want to have the same user experience in their Xamarin Forms application. This post describes how to customize the navigation toolbar in iOS to dynamically display such elements.
Adding tap/click handling to Xamarin.Forms Label is fairly easy. You can do it both in XAML or code behind using
GesureRecognizers collection like it is described in this recipe. Unfortunately if you plan to use this solution intensively in your app it will add quite a lot of repeatable code for setting up those handlers (especially in XAML)
In this short recipe I will show how to implement a custom control that is easy to use and potentially to extend if needed.
Microsoft Azure Active Directory Authentication Libraries (ADAL) is a popular set wrapper around Azure Active Directory API distributed in the form of platform and language specific components. It’s especially useful in multi-platform applications that integrate with various AD APIs such as Outlook or Graph API. It not only wraps the oAuth endpoints but automates the entire application flow for retrieving, refreshing and persisting tokens.
Unfortunately, among many features, ADAL does not provide the logout functionality out of the box. Let’s see how to implement this in few simple steps.