Exrin | Demo Xamarin Forms MVVM Framework | Form library
kandi X-RAY | Exrin Summary
kandi X-RAY | Exrin Summary
Exrin is an extended Xamarin Forms MVVM Framework designed to enable teams to develop consistent, reliable and highly performant mobile apps. Exrin lets you put more focus on how the app will look and function, while Exrin takes care of handling the rest.
Support
Quality
Security
License
Reuse
Top functions reviewed by kandi - BETA
Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of Exrin
Exrin Key Features
Exrin Examples and Code Snippets
Community Discussions
Trending Discussions on Exrin
QUESTION
Is it possible in Exrin to push to the navigation a contentpage I create in run time and afterwards remove it from the navigation stack?
...ANSWER
Answered 2017-Nov-13 at 00:03Unfortunately it isn't possible at the moment, as you have to define the type, to create the navigation mapping.
If you wanted to look into a PR to do this, would be happy to accept this PR. It would involve creating a new method to navigate to an IView. Would also have to think about how it interacts with Stacks.
QUESTION
When working with the Exrin Isolates approach you define the stacks in each Isolater. How do you combine it to work with a MasterDetailContainer? For example if I want a menu in the old approach I would create a ViewContainer and pass it a stack for the menu and another one for the pages, but with Isolates I'll have a lot of stacks. how should I build the ViewContainer or maybe should I still have only one main stack and use the Isolates only to isolate views and viewmodels?
...ANSWER
Answered 2017-Nov-12 at 00:04If you need to blend the stacks, that you will place in isolates, then it would be a good idea to define all your stacks and keys in a single location.
However, remember that isolates are designed for splitting up large chunks of code into separate modules. I would only recommend a max of 3 isolates for any given project. Using Feature Grouping, is a good way to structure you Views/ViewModels in your project, if you have a large project but not quite big enough for isolates.
QUESTION
Context
I am discovering step by step Exrin infrastructure. I explored that there are many ready to use infra element to implement command execution in background. Among those I see IsBusyDelay, VisualState.IsBusy, Timeout message, etc. I also know that Exrin does not depend on Xamarin.Forms, so I suppose, no real visual implementation should be provided by Exrin, that very last step remains on me. (which is cool, let me decide the UI experience)
In my ViewModel I set IsBusyDelay = 1000;
. The background task is started by Execution.ViewModelExecute(... my task here ..., currently 5000msec delay )
Question
I suppose now I have to implement somewhere a handler(s) or override(s) which will be called automatically, and implement some visual UX to show and hide the a busy/inprogress UX feedback. I just do not know where and how...
...ANSWER
Answered 2017-Sep-26 at 01:03This is something you would implement yourself in the view. For example, if you wanted something that covered the whole screen, with a loading indicator, you would add this to your UI.
QUESTION
ANSWER
Answered 2017-Sep-22 at 03:05Because everything is wrapped in a NavigationPage, you need to set the Title of the NavigationPage. The easiest way to do this is via the Stack.
When you pass through a new NavigationPage, set it's title, as shown here.
QUESTION
In our app there is a master-detail container as main view container. We would like to have the tabbed page as the detail page of the master-detail container, so that the user is able to perform the navigation via both the menu and tab bar. Is there any way to achieve this with Exrin? As far as we can see, there is a support for master-detail page and for tabbed page separately. How to combine this pages together?
...ANSWER
Answered 2017-Aug-26 at 06:59You will need to have Exrin 2.0.2 and higher for this to work.
First, you need to slightly update your Container, that holds the MasterDetailPage. The interface definition is slightly changed.
QUESTION
I'm looking to create animations with Exrin. I understand the MVVM framework aspect of it requires that the View owns the animations, but firing these animations initially is something I'm unsure of.
I do know that attaching to UI events is a bit of a hot button issue because then commands and events might exist together.
Does Exrin have a way of dealing with animations that isn't touched on in the documentation, should I attach animations to the UI Events, or should I go with something external like attached behaviors?
...ANSWER
Answered 2017-Aug-04 at 00:30Animations are a part of Xamarin Forms, and Exrin doesn't specifically deal with them, as you noted.
To trigger an animation, and keeping inline with an MVVM purist mentality, I would use a trigger.
As an example, you create a trigger, with just a class
QUESTION
I'm thinking about upgrading from Exirn 1.x to 2.0.0. I read the Exrin 2.0.0 quick start, but it doesn't mention the changes. From what I can tell from the quick start project, there was a movement away from the grouping of projects based on Framework/Views/Logic/Bootstrapper/OS Level Impletementation.
What other changes occurred that I may need to know moving forward while upgrading?
And is it worth changing over to the new project layout implementation? It does appear to be easier to create and manage, but I'm worried about the lack of project separation leading to poor design. Will this be a personal preference or is there a benefit to switching that manifests itself in the update?
...ANSWER
Answered 2017-Jul-24 at 23:46Exrin 2.0.0, was designed to enable a quicker project setup, but certainly not to remove any of its advantages. Exrin 2.0.0 is fully backward compatible, meaning you can upgrade your existing project, and it will still run.
I still recommend the project separation approach for larger projects. I really just wanted to create a quick start, so people can see Exrin in action, before moving it to a slightly more complicated architecture.
The changes in this version are as follows:
- Added support for the Exrin Inspector
Enabled in class operations. This still allows the benefits of Operation Separation, but you don't need to create a new class each time to do it. e.g.
QUESTION
Within Exrin, using the normal hierarchy of ViewModel
having access to the IModel
, The Model
having access to the IService
, and Operation
s commonly having access to the IModel
yet being called from the ViewModel
, what is the proper use of methods and interactions within each scope?
For example, I need to clear a table in my SQLite database on navigating to a page. I have an IRepositoryService
that contains all my methods for interacting with our database. My Model
has a ClearUserInputTables
method that calls a few different methods within the IRepositoryService
.
I could either override the OnAppearing
method (may likely change it to a different point in the life cycle) within the ViewModel
to call the Model.ClearUserInputTables
method or I could create an Operation
that has access to the Model
to do the same thing. Which is favored in Exrin?
Maybe I need a better understanding of the purpose of Operation
s. I read up on Operation Separation (basically used for navigation), but am unsure if it should be used for other things such as this (calling Model
methods from the ViewModel
).
ANSWER
Answered 2017-Jun-14 at 02:17Operation's are designed to take code outside of the ViewModel, so it can
- Easily be Unit Tested (also due to return of IResult)
- Timeout Logic Added
- Pushes to background thread
- Catches exceptions
- Ensures only 1 operation runs at a time. (e.g. stops rapid click's of button firing off the operation multiple times before the last one has finished)
Operation's however are completely optional. You don't have to use them.
If you want to clear a table when you navigate to a page, I could recommend
QUESTION
From an Exrin design standpoint, should each database model have their own Service
?
I find that I may need to check the same thing within the database in multiple MainModel
s. I figured I would create a Service
for these database models to do these repeated operations and have the a service for a MainModel
not only implement its own IService
interface but also inherit from these database model services.
ANSWER
Answered 2017-Jun-07 at 01:18Each Database should have it's own repository class, but the service can cover many repositories.
I like to think of Services as an Aggregate Repository Layer, where you provide control logic on how the app interacts with the repositories.
If the repositories are extremely large, or it makes no sense to put them together in the same service, then by all means, split them.
However as an example, say I have a Database and an API repository. I have one service, that will retrieve data from the API or repository depending on what I am getting, and provide the information back to the app.
The premise here, is to ensure that the App doesn't concern itself with how it gets the information. The service layer is an abstraction layer on top of the repositories.
QUESTION
How is the binding between ModelState
and VisualState
changed from one way to two way?
In the Exrin introduction on YouTube and in this SO answer, it is stated that there is a binding between the ModelState
and the VisualState
(specifically ModelState
-> VisualState
). It is also stated that the binding can be changed from one way to two way.
I did some looking around and did find a BindingType
enum with the values being OneWay
and TwoWay
, but I was unable to find where to utilize these.
ANSWER
Answered 2017-Jun-07 at 01:07In the VisualState you can add this attribute to any property.
Community Discussions, Code Snippets contain sources that include Stack Exchange Network
Vulnerabilities
No vulnerabilities reported
Install Exrin
Support
Reuse Trending Solutions
Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items
Find more librariesStay Updated
Subscribe to our newsletter for trending solutions and developer bootcamps
Share this Page