All Projects → Amine-Smahi → Xamarin.Components-Architecture

Amine-Smahi / Xamarin.Components-Architecture

Licence: MIT license
A humble attempt to make Xamarin follows the components architecture

Programming Languages

C#
18002 projects

Projects that are alternatives of or similar to Xamarin.Components-Architecture

Xamarin Demos
This repository contains the Syncfusion Xamarin UI control’s samples and the guide to use them.
Stars: ✭ 218 (+990%)
Mutual labels:  xamarin, xamarin-forms, xamarin-android
Plugin.audiorecorder
Audio Recorder plugin for Xamarin and Windows
Stars: ✭ 140 (+600%)
Mutual labels:  xamarin, xamarin-forms, xamarin-android
Arcgis Toolkit Dotnet
Toolkit for ArcGIS Runtime SDK for .NET
Stars: ✭ 125 (+525%)
Mutual labels:  xamarin, xamarin-forms, xamarin-android
Xamuidemo
Xamarin Forms Login Page UI Kit
Stars: ✭ 82 (+310%)
Mutual labels:  xamarin, xamarin-forms, xamarin-android
Improvexamarinbuildtimes
Tips and tricks on how to speed up the time it takes to compile a Xamarin app
Stars: ✭ 180 (+800%)
Mutual labels:  xamarin, xamarin-forms, xamarin-android
Ffimageloading
Image loading, caching & transforming library for Xamarin and Windows
Stars: ✭ 1,288 (+6340%)
Mutual labels:  xamarin, xamarin-forms, xamarin-android
Connectivityplugin
Connectivity Plugin for Xamarin and Windows
Stars: ✭ 253 (+1165%)
Mutual labels:  xamarin, xamarin-forms, xamarin-android
Mvvmlight
The main purpose of the toolkit is to accelerate the creation and development of MVVM applications in Xamarin.Android, Xamarin.iOS, Xamarin.Forms, Windows 10 UWP, Windows Presentation Foundation (WPF), Silverlight, Windows Phone.
Stars: ✭ 973 (+4765%)
Mutual labels:  xamarin, xamarin-forms, xamarin-android
Microsoft.maui.graphics
Stars: ✭ 160 (+700%)
Mutual labels:  xamarin, xamarin-forms, xamarin-android
Simpleauth
The Simplest way to Authenticate and make Rest API calls in .Net
Stars: ✭ 148 (+640%)
Mutual labels:  xamarin, xamarin-forms, xamarin-android
Faceoff
An iOS, Android and UWP app created in Xamarin.Forms that uses Microsoft's Cognitive Emotion API Services to compare facial expressions
Stars: ✭ 79 (+295%)
Mutual labels:  xamarin, xamarin-forms, xamarin-android
Xamarin Playground
Random cool stuff I play around using Xamarin.. :3 Some of these cool projects I feature them on my blog, with step by step explanation. :) Don't forget to check it out. Go to: theconfuzedsourcecode.wordpress.com
Stars: ✭ 183 (+815%)
Mutual labels:  xamarin, xamarin-forms, xamarin-android
Facialrecognitionlogin
An iOS and Android app that uses facial recognition to enhance the security of a login page. Built using Xamarin.Forms and Microsoft Cognitive Services.
Stars: ✭ 46 (+130%)
Mutual labels:  xamarin, xamarin-forms, xamarin-android
Xaml Code Experiences
A collection of the experiences I have collected during days of Xamarin and Wpf, while following the MVVM design pattern.
Stars: ✭ 114 (+470%)
Mutual labels:  xamarin, xamarin-forms, xamarin-android
Azure For Developers Workshop
The Azure cloud is huge and the vast service catalog may appear daunting at first, but it doesn’t have to be!
Stars: ✭ 38 (+90%)
Mutual labels:  xamarin, xamarin-forms, xamarin-android
Xamarin Docs
Xamarin Documentation - public content repo
Stars: ✭ 136 (+580%)
Mutual labels:  xamarin, xamarin-forms, xamarin-android
Xamarin Bluetooth Le
Bluetooth LE plugin for Xamarin
Stars: ✭ 419 (+1995%)
Mutual labels:  xamarin, xamarin-forms, xamarin-android
Docs Archive
Xamarin docs archive
Stars: ✭ 553 (+2665%)
Mutual labels:  xamarin, xamarin-forms, xamarin-android
Xamarin.forms.videoplayer
A Xamarin Forms control to render the native video player on every platform.
Stars: ✭ 140 (+600%)
Mutual labels:  xamarin, xamarin-forms, xamarin-android
Denunciado
This project born from the need from people to have a way of communication between municipalities and communities. Some municipalities, have their platforms, but they are complex to validate the veracity of complaints. Denounced, it was born with the purpose of offering a free platform to these municipalities. Denounced consists of three main modules developed with Microsoft technologies, using the .Net Framework and Xamarin for its development: 1. Back End Web Project: Module of administration of the complaints, by the employees of the town councils. In this tool, the employees of the city council receive, validate, report and close the complaints, after being served. 2. Web Portal Client: It consists of a web project, so that the community make their complaints, in the same, the users of the service create a profile, must specify when making their complaint, evidence to support this. Through the portal, they can see the complaints of other community members, follow it, give their opinion or provide possible solutions or more evidence. 3. Mobile Project: It has the same functionalities as the web portal, with the addition, that the automatic location can be sent, from the cell phone.
Stars: ✭ 183 (+815%)
Mutual labels:  xamarin, xamarin-forms, xamarin-android

One of the common trends in the app development space today is the pattern of microservices and component-based architectures, which when done correctly, gives you ultimate flexibility and scalability where it matters.


So what is component-based architectures

Component-based architecture focuses on the decomposition of the design into individual functional or logical components that represent well-defined communication interfaces containing methods, events, and properties.

The primary objective of component-based architecture is to ensure component reusability. A component encapsulates functionality and behaviors of a software element into a reusable and self-deployable binary unit.

But what is a Component?

A component is a modular, portable, replaceable, and reusable set of well-defined functionality that encapsulates its implementation and exporting it as a higher-level interface.

Xamarin ?

Xamarin is an open-source platform for building modern and performant applications for iOS, Android, and Windows with .NET. Xamarin is an abstraction layer that manages communication of shared code with underlying platform code. Xamarin runs in a managed environment that provides conveniences such as memory allocation and garbage collection.

Story time !

Xamarin is a flexible platform that enable the developer to work with almost any pattern and architecture, At start the app needed some basic UI with few interactions for crud operations, Soon later the app has grown in size, complexity and the UI became much much complex, That made us challenges as we were debugging specific part of the UI and behavior also the newer recruited devs took a long time to follow the hierarchy.

What i did

  • I decoupled the pages into reusable components that we can use in other parts of the app.
  • The components are simple ContentView Views that contains a specific UI with it own behavior.
  • The components can be used in pages or can be used in other components

Challenges

  • When enabling, hot reload in visual studio, every change in the child components of the page make the app look blank, This needs relaunching the debugging process.
  • You cant bind an object from the parent directly into the components (Ex: from page to component), The binding happens specifically in the component code behind.
  • When using the CollectionView or ListView its hard to bind the iterated object from the list in the component

Benefits !

  • The page became a set of calls for the components.
  • Every component holds it own behavior with help us identifying bugs much faster.
  • The Reusability of the components removed repetitions witch means remove the redundant code.
  • Updating and improving components became easy because you don't have to deal with other none related code.
  • Dividing tasks have never been this easy.

Awesome! wanna see a demo?

The demo makes use of 3 components to load a list of objects and display them inside a stack list component with ability to like any of them witch is a behavior inside the card component, When you scroll to the bottom the loading component is shown before we load much more objects.

image


Requirement

Nothing to download, nothing to install its just an approach

Notice

Feel free to add more components to the demo project or if you have another approach that can improve this one then your more then welcomed

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].