Xamarin is such a powerful platform to develop mobile apps. It Can help us to develop mobile apps for iOS , Android, and Windows platforms. It is very easy to develop apps in xamarin forms but when we want to use GPS and camera or hardware features then we will have to put in some extra effort or we want to change the look and feel of the Button or text box.
This blog is to explore some features of xamarin that will enable the developers to write native codes in C# or xamarin and that is Dependency services and renderers. For example, one is an SQLite database and another is a native control such as entry, textbox, etc…
When we want to use the SQLLite database in Android and IOS then there will be totally different methods to use SQLLite and that method will be in platform-specific projects when we want to use that method in shared project then we will have to write an interface that will be dependency services and that will be implemented in native projects. In case of any control or view, we will have to write renderers to modify the look and feel of the control.
Let's say we want to add all borders to the textbox then we will have to write a renderer.
Here's some details and the code snippet is available for both dependency services and Renderers.
What are dependency services?
Whenever an app is dealing with a camera or native function then we will have to write dependency services in order to use native features.
Steps to create and execute Dependency Service
- Create an Interface
- Implement an interface in each platform
- Register the platform implementations
- Resolve the platform implementations
Here, one sample of dependency services,
1) Create an interface
2) Implement an interface in each platform
–Universal Windows Platform
3) Register the platform implementations
Using DependencyAttribute It will Register for each platform, Here is a sample for IOS
4. Resolve the platform implementations
DeviceOrientation orientation = DependencyService.Get<IDeviceOrientationService>().GetOrientation();
- What are renderers?
We want to achieve the same look and feel in Android and IOS then we will have to use render to get the same look and feel for all the platforms using renderers.
Here is the screenshot and code snippet for entry control,
Need to override “OnElementChanged“ method, In that method, we will change the look and feel of any controls.
There are simple steps to create custom renderers,
- Create xamarin.forms custom controls
- Consume the custom control from xamarin.forms
- Create custom renderer for control on each platform
Example for Entry :
1. Create xamarin.forms custom controls
2. Consume the custom control from xamarin.forms
3. Create custom renderer for control on each platform
–Universal Windows Platform
Hence to achieve native components' look-alike look and feel, we can use renderers, and to implement features that use hardware components, we can use Dependency services. So if you are an organization that is looking forward to having a cross-platform application with various features, you can get Xamarin development services, which help to deliver flexible and interactive mobile applications with a good time and money savings.
Need a consultation?
Drop us a line! We are here to answer your questions 24/7