locked
How to install, setup and use XLabs? RRS feed

  • Question

  • User65389 posted

    Hi all

    As the installation and use of XLabs is not self-explaining and there is no clear and easy documentation available right now, I have wrote a document (parallel to implement some functions from XLabs) in the hope, this may help some others like me :sunglasses:?

    I further think, that much of the interested users are not hard-core-developers, that have maximum experience with Xamarin and can follow the “snipped-description’s”. I think that much of the developers simply want to enhance standard-XF with functions of XLabs and can be overwhelmed by the hurdles to install and use it, what is very pity for the awesome work in this extension.

    :love: I want to thank the whole XLabs-team here for their awesome work! :love:

    Link: matrixguide.ch/Datenablage/diverses/HowtoInstallandSetup_XLabs.pdf

    The .pdf behind the link below contains:

    • How to install/update XLabs with NuGet?
    • How to use a XLabs-control?
    • How to register and use a XLabs-Service (examples: device and Geolocation)?
    • Possible hurdles?

    I think, also XF-beginner’s should be able to use XLabs with the description :)

    Finally, I hope you like the description and it helps you over the first hurdles with the awesome XLabs!

    Tuesday, March 17, 2015 12:41 PM

All replies

  • User99341 posted

    Nice of you to take the time to do this.

    Wednesday, March 18, 2015 7:55 AM
  • User65389 posted

    I am pleased that like it and have posted here. So I know that my work have helped somebody, what was the target :)

    Wednesday, March 18, 2015 8:03 AM
  • User69837 posted

    I'd suggest it would be better to contribute back to XLabs and enrich the documentation there

    Thursday, March 19, 2015 1:20 AM
  • User65389 posted

    @cliftonvaughn: Thanks for your posting, but I am not in the XLabs-Team (I am just a user, that want to help other users) and wrote the document, as I don't have found any information's like this on the XLabs-Page.
    So... it's not up to me, to enrich the documentation on the XLabs-page :sunglasses:. But I have posted on the XLabs-page, that this tread/documentation exists - maybe someone from the XLabs-team can/will post a link from the XLabs-page (if they find it useful). :flushed:

    Thursday, March 19, 2015 8:24 AM
  • User69837 posted

    @FredyWenger, You don't have to be a member of the team. It's open-source software (OSS). Anyone can fork the code, and documentation i believe, and contribute. It's up to the leads to accept, sure, but that shouldn't prevent you from contributing. So, it is up you to help OSS if you want to. :wink:

    Thursday, March 19, 2015 11:59 PM
  • User65389 posted

    @cliftonvaughn: I don't have code to fork and - as I wrote - have posted a message with a link also on XLabs. So... XLabs can feel free to post a Link (in a minute), if they want to do :smirk:

    Friday, March 20, 2015 8:12 AM
  • User12403 posted

    https://github.com/XLabs/Xamarin-Forms-Labs

    Fork the project, modify either code or the documentation/wiki, create pull request and then someone from the team will review it, merge into the main branch (if everything is ok) and add you to the contributors list.

    Friday, March 20, 2015 1:28 PM
  • User65389 posted

    @Skall: Sorry, but I don't have any experience how to fork, create pull-request and so on...
    Further, it's (only) a .pdf...

    So... my suggestion: - Someone check the .pdf and - if O.K. - add a simple link in the Wiki (see attachment) - If something is wrong in the .pdf, send me a PM and I will "PM you" then my mail-address (so that the changes can be mailed to me) => I then will change the false information's and update the document :smile:

    Friday, March 20, 2015 2:04 PM
  • User43611 posted

    I'm using the Xamarin IDE (not Visual Studio) running on OSX. When I search for XLab in nuget, I get no results (both with and without pre-release checked). Any ideas?

    Wednesday, March 25, 2015 2:32 AM
  • User65389 posted

    @KarlKopp: Unfortunately, I don't know Xamarin Studio. But I think, the installation of a NuGet should be similar to Visual Studio..?

    The NuGet package is there. NuGet-Link: https://nuget.org/packages/XLabs.Forms/

    According to a blog, I found: blog.xamarin.com/xamarin-studio-and-nuget/ there also should be a NuGet-Console in XS.
    So I think (not know), there also should be possible to install the package manually (copy paste the command like:

    Install-Package XLabs.Forms In the console...?

    Wednesday, March 25, 2015 8:31 AM
  • User18049 posted

    @KarlKrop - For some reason searching for "XLab" returns no results but searching for "XLabs" or "XLabs.Forms" returns the NuGet packages. The search not returning any matches seems to be a NuGet server problem since you get no results if you search directly on nuget.org for "XLab".

    Wednesday, March 25, 2015 10:48 AM
  • User104756 posted

    @FredyWenger I read your documentation on XLabs.Forms. you not added XAML example. Can you update the document with XAML example.It will helpfull to many. Thanks

    Thursday, March 26, 2015 7:21 AM
  • User73752 posted

    @mattward you have to search for 'XLabs': http://www.nuget.org/packages?q=xlabs or use the nuget package exlorer in VS and serach for 'XLabs'

    Thursday, March 26, 2015 7:57 AM
  • User65389 posted

    @Mabu:
    Unfortunately, I don't work with XAML, but I think, your should find some examples, If you do a Google-search.

    Thursday, March 26, 2015 8:56 AM
  • User1080 posted

    @FredyWenger : Thank you so much for writing this up. I'm very excited about Xamarin.Forms, and the XLabs stuff seems to have a lot of promising components. But I've tried to get it set up several times and failed after hours of trying. I am the kind of developer you wrote this for and I'm surprised you're not getting more "thank you's" so from me to you: "THANK YOU!".

    To the other commenters suggesting he should incorporate this into the official wiki, sure I agree with that too. Just glad to have found it somewhere!

    Thursday, March 26, 2015 8:49 PM
  • User65389 posted

    @NeilMcKechnie:
    Thanks for your reply, so I know, that my work is estimated and have helped some others (what was the target). :-)

    Thursday, March 26, 2015 9:34 PM
  • User1080 posted

    Hey Fredy, would you mind sharing your code on how to get the current location? I've been playing with it but no luck, especially doing it asynchronously.

    Thursday, March 26, 2015 10:31 PM
  • User12403 posted

    Have you guys looked at the sample app?

    https://github.com/XLabs/Xamarin-Forms-Labs

    Thursday, March 26, 2015 11:44 PM
  • User65389 posted

    @NeilMcKechnie:

    As I have implemented the GPS-function before I have installed XLabs, I have implemented it directly with the Xamarin.Geolocation-package (without XLabs). Therefore I had to implement a small amount of platform-specific code (Android), what is not necessary by taking the XLabs-Interface.

    But I think (not sure), that also XLabs use the Xamarin-Package as base.

    Maybe, I will change to the XLabs-Implementation later.

    However, I post my code below for your. On my search-page I have various search-items. The user can define a zip-code OR the GPS-Position and a radius as base (start-point) for the search. Below you can see the code behind the GPS-Button (get GPS-position and overtake it for later search the web-service)

    To use the standard-geolocation, you have to install the Xamarin.Mobile-package. I think (not sure) that this package is installed as dependency automatically also, if you install XLabs).

    To use the Xamarin-Geolocation, you have to add the following using to the page:

    using Xamarin.Geolocation; // needed for query the GPS-Data via Xamarin-Geolocation

    Code behind GPS-Button:

    bt_GPS.Clicked += async (sender, e) => // Eventhandler to Button „Get GPS Coordinates” 
     {
       DatenLadenElement.IsVisible = true; // Show loading spinner (included on top of the page but invisible) 
    #if Android
      var ctx = Forms.Context;
      locator = new Geolocator(ctx) { DesiredAccuracy = 50 };
    #else
      locator = new Geolocator { DesiredAccuracy = 50 };
    #endif
    try
      {
        Xamarin.Geolocation.Position position = await locator.GetPositionAsync(timeout: 10000);
    // get the position
         string cPosLatKomma = position.Latitude.ToString();
         string cPosLongKomma = position.Longitude.ToString();
    // Change comma to point
         string cPosLatPunkt = cPosLatKomma.Replace(",", ".");
         string cPosLongPunkt = cPosLongKomma.Replace(",", ".");
         string cPosition = "Position: Lat: " + cPosLatPunkt + ", Long: " + cPosLongPunkt;
    // Overtake coordinates in central search-variables (for later search the web-service
         GV.SucheGuides.cLatiTuede = cPosLatPunkt;  
         GV.SucheGuides.cLongiTuede = cPosLongPunkt; 
      }
    catch
      {
        DisplayAlert("Fehler", "Die GPS-Position konnte nicht abgefragt werden. Aktivieren Sie die Positionsermittlung über WLAN oder suchen Sie nach PLZ/Ort", "OK");
      }
        DatenLadenElement.IsVisible = false; // Hide the loading spinner
    };
    

    Hope this helps... :)

    Friday, March 27, 2015 7:59 AM
  • User73752 posted

    @FredyWenger : I think the code from Xamarin.Mobile and XLabs according to the geolocator is quite the same!

    Friday, March 27, 2015 8:41 PM
  • User115237 posted

    Thanks for this awesome installation guide! That helped me very very much.

    Wednesday, April 22, 2015 11:52 AM
  • User65389 posted

    You are welcome :smile:

    Wednesday, April 22, 2015 4:31 PM
  • User18981 posted

    @FredyWenger : Thank you it helped me get it up and running fast!

    Friday, June 5, 2015 1:51 AM
  • User106639 posted

    is there anything that can be done to make it easier to use from source? I spent hours trying to get it to compile in xamarin studio.

    admittedly I was total noob back then; but I think it's prohibitively difficult to get it into a project as source.

    any suggestions on that, using git subtree etc.

    you guys would get more pull requests, I'm sure if it was easier to get started - I think a lot of dev's would've given up (I had no choice, as I wanted to add more features to gridview, and necessity is the mother of all invention, as we all well know).

    [EDIT:] I did get it working; it's just I had to edit many csproject files, remove all the packages and add them again and some other silly stuff. I think a lot of people would've given up.. is it just a vs/xs problem?

    Friday, June 5, 2015 4:08 AM
  • User65389 posted

    @TimChaffee: Your welcome and thanks for your nice comment (If I receive any Likes and/or positive comments here, I can see, that my work make some sense... :smile:). Further, any comment let this thread pop on the first forum-page so that also other users maybe can catch-up, if they want to use XLabs. @ all readers of this thread: The most important control in XLabs for me is the PopUp control.
    You can use it principally to show what you want from a page (e.g. button-event) on a PopUp, without the need to call/use a further page. I use it - e.g. - to show ListViews in a ScrollView (what don't work with plain XF, as the ListViews in the ScrollView are not scrollable in Android since a few XF-Versions and also LV's generally not should be used in ScrollViews ("...don't use a scrolling control (LV) in an scrolling control (SV)...").

    As - unfortunately - the PopUp control is not documented (also not mentioned under "Available controls") on the XLabs-Page - what is a pity b.t.w. - and it also is not trivial to implement it (without documentation), I also have created a description to it here: forums.xamarin.com/discussion/33587/how-to-use-a-listview-in-a-scrollview-with-xlabs-popup-control#latest

    For starters with Xamarin, especially also with XF, you can find a quick-start guide here: forums.xamarin.com/discussion/36821/quickstart-guide-to-start-developing-with-xamarin-forms#latest There are various themes described in it (including, e.g. how to use the forum, how to use nugget and much more). I think, some of the described themes also should be interesting for users that works with Xamarin since a while...

    ... and you can find some more descriptions/documentations, if you click on my profile (avatar, name).

    Hope this helps someone further :sunglasses:

    @GeorgeCook:
    Thanks also for your posting here.
    You should post such questions/suggestions on the XLabs-page (note: I'm not part of the XLabs team): https://github.com/XLabs/Xamarin-Forms-Labs/issues

    Friday, June 5, 2015 7:42 AM
  • User124439 posted

    @Fredy: you saved me once more, thank you so much!

    Saturday, August 22, 2015 12:13 PM
  • User12403 posted

    @GeorgeCook I have not had issues using it as a submodule. I am not sure if some of the changes others have posted have broken the NuGet references since then but once everything has been pulled the first thing you should do is open XLabs.sln. If using XS the NuGet references will get updated automatically. If using VS open the Package Manager Console and click on the reference button that shows up when it detects packages are missing. After that open your own solution and the XLabs projects should compile without errors. Of course this has to be repeated (open XLabs.sln) whenever there are updates to the NuGet references.

    NuGet can be a PITA to setup correctly with submodules and even when it has been setup then any package updates can easily break it. By default Nuget wants to set the paths relative to the Solution directory which of course won't work correctly with submodules...

    Saturday, August 22, 2015 8:18 PM
  • User65389 posted

    @gilbertomacedo Thanks for your posting - you're welcome :smile:

    Monday, August 24, 2015 7:59 AM
  • User176749 posted

    Do I have to install Xlabs.Core first then Xlabs.Forms or Xlabs.forms install already Xlabs.Core? I attempted to install Xlabs.Forms. I am getting error message. What is the different between 2?

    Sunday, January 3, 2016 8:30 PM
  • User65389 posted

    As I can remember me, you need both and there are dependencies between them. But you should see this in nuget manager (info to package -> dependencies).

    Sunday, January 3, 2016 9:34 PM
  • User176749 posted

    I think that it was some problem with my VS. I managed to install Xlab.forms after restarting VS and deleting cache, rebuilt . thanks

    Sunday, January 3, 2016 11:25 PM
  • User64224 posted

    We are trying to build nuget XLabs packages using the new cake scripts and failing on osx with the following error. Any help would be awesome


    Feeds used: /Users/cthakkar/.local/share/NuGet/Cache /Users/cthakkar/.nuget/packages/ https://www.nuget.org/api/v2/

    All packages listed in /Users/cthakkar/Development/XLabs/tools/packages.config are already installed. Analyzing build script... Processing build script... Installing tools... Installing addins... Compiling build script... versionUtils.cake (210,20): The member CakeBuildScriptImpl.VersionInfo.ToString(bool)' does not hide an inherited member. The new keyword is not required unknown.cake (512,38):Cake.Common.Tools.DNU.DNUAliases.DNURestore(this Cake.Core.ICakeContext)' is obsolete: Please use DotNetCoreRestore() instead.' unknown.cake (519,38):Cake.Common.Tools.DNU.DNUAliases.DNURestore(this Cake.Core.ICakeContext, Cake.Core.IO.FilePath)' is obsolete: Please use DotNetCoreRestore(string) instead.' unknown.cake (526,38):Cake.Common.Tools.DNU.DNUAliases.DNURestore(this Cake.Core.ICakeContext, Cake.Common.Tools.DNU.Restore.DNURestoreSettings)' is obsolete: Please use DotNetCoreRestore(DotNetCoreRestoreSettings) instead.' unknown.cake (533,38):Cake.Common.Tools.DNU.DNUAliases.DNURestore(this Cake.Core.ICakeContext, Cake.Core.IO.FilePath, Cake.Common.Tools.DNU.Restore.DNURestoreSettings)' is obsolete: Please use DotNetCoreRestore(string, DotNetCoreRestoreSettings) instead.' unknown.cake (540,38):Cake.Common.Tools.DNU.DNUAliases.DNUBuild(this Cake.Core.ICakeContext, string)' is obsolete: Please use DotNetCoreBuild(string) instead.' unknown.cake (547,38):Cake.Common.Tools.DNU.DNUAliases.DNUBuild(this Cake.Core.ICakeContext, string, Cake.Common.Tools.DNU.Build.DNUBuildSettings)' is obsolete: Please use DotNetCoreBuild(string, DotNetCoreBuildSettings) instead.' unknown.cake (554,38):Cake.Common.Tools.DNU.DNUAliases.DNUPack(this Cake.Core.ICakeContext, string)' is obsolete: Please use DotNetCorePack(string) instead.' unknown.cake (561,38):Cake.Common.Tools.DNU.DNUAliases.DNUPack(this Cake.Core.ICakeContext, string, Cake.Common.Tools.DNU.Pack.DNUPackSettings)' is obsolete: Please use DotNetCorePack(string, DotNetCorePackSettings) instead.' unknown.cake (1750,43):Cake.Common.Xml.XmlPokeAliases.XmlPoke(this Cake.Core.ICakeContext, string, string, string)' is obsolete: Please use XmlPokeString(string, string, string) instead.' unknown.cake (1757,43):Cake.Common.Xml.XmlPokeAliases.XmlPoke(this Cake.Core.ICakeContext, string, string, string, Cake.Common.Xml.XmlPokeSettings)' is obsolete: `Please use XmlPokeString(string, string, string, XmlPokeSettings) instead.' Stacktrace:

    at <0xffffffff> at (wrapper managed-to-native) System.Reflection.Emit.TypeBuilder.createruntimeclass (System.Reflection.Emit.TypeBuilder,System.Reflection.Emit.TypeBuilder) <0x00012> at System.Reflection.Emit.TypeBuilder.CreateTypeInfo () <0x00464> at System.Reflection.Emit.TypeBuilder.CreateType () <0x0001d> at Mono.CSharp.TypeDefinition.CloseContainer () <0x00133> at Mono.CSharp.TypeContainer.CloseContainer () <0x0005f> at Mono.CSharp.TypeDefinition.CloseContainer () <0x001bb> at Mono.CSharp.TypeContainer.CloseContainer () <0x0005f> at Mono.CSharp.TypeContainer.CloseContainer () <0x0005f> at Mono.CSharp.ModuleContainer.CloseContainer () <0x0013b> at Mono.CSharp.Evaluator.CompileBlock (Mono.CSharp.Class,Mono.CSharp.Undo,Mono.CSharp.Report) <0x00b23> at Mono.CSharp.Evaluator.Compile (string,Mono.CSharp.CompiledMethod&) <0x00207> at Mono.CSharp.Evaluator.Evaluate (string,object&,bool&) <0x0005f> at Mono.CSharp.Evaluator.Run (string) <0x00033> at Cake.Scripting.Mono.MonoScriptSession.Execute (Cake.Core.Scripting.Script) <0x00087> at Cake.Core.Scripting.ScriptRunner.Run (Cake.Core.Scripting.IScriptHost,Cake.Core.IO.FilePath,System.Collections.Generic.IDictionary`2) <0x00789> at Cake.Commands.BuildCommand.Execute (Cake.CakeOptions) <0x0003f> at Cake.CakeApplication.Run (Cake.CakeOptions) <0x0003a> at Cake.Program.Main () <0x0031f> at (wrapper runtime-invoke) .runtimeinvokeint (object,intptr,intptr,intptr) <0x000b0>

    Native stacktrace:

    Debug info from gdb:

    (lldb) command source -s 0 '/tmp/mono-gdb-commands.aut1Dw' Executing commands in '/tmp/mono-gdb-commands.aut1Dw'. (lldb) process attach --pid 9271 warning: (i386) /Library/Frameworks/Mono.framework/Versions/4.4.2/lib/mono/4.5/mscorlib.dll.dylib empty dSYM file detected, dSYM was created with an executable with no debug info. Process 9271 stopped * thread #1: tid = 0x24fd38, 0x97d14cee libsystemkernel.dylib__wait4 + 10, name = 'tid_a0b', queue = 'com.apple.main-thread', stop reason = signal SIGSTOP frame #0: 0x97d14cee libsystem_kernel.dylibwait4 + 10 libsystemkernel.dylib`wait4: -> 0x97d14cee <+10>: jae 0x97d14cfe ; <+26> 0x97d14cf0 <+12>: calll 0x97d14cf5 ; <+17> 0x97d14cf5 <+17>: popl %edx 0x97d14cf6 <+18>: movl 0xb9be32f(%edx), %edx

    Executable module set to "/usr/local/bin/mono". Architecture set to: i386-apple-macosx. (lldb) thread list Process 9271 stopped * thread #1: tid = 0x24fd38, 0x97d14cee libsystemkernel.dylib__wait4 + 10, name = 'tid_a0b', queue = 'com.apple.main-thread', stop reason = signal SIGSTOP thread #2: tid = 0x24fd50, 0x97d143ea libsystem_kernel.dylibpsynchcvwait + 10 thread #3: tid = 0x24fd51, 0x97d0d4d6 libsystemkernel.dylibsemaphore_wait_trap + 10, name = 'tid_1803' thread #4: tid = 0x24fd52, 0x97d14d5e libsystem_kernel.dylibworkqkernreturn + 10 thread #5: tid = 0x24fd53, 0x97d157fa libsystemkernel.dylibkevent_qos + 10, queue = 'com.apple.libdispatch-manager' thread #6: tid = 0x24fd54, 0x97d14d5e libsystem_kernel.dylibworkqkernreturn + 10 (lldb) thread backtrace all * thread #1: tid = 0x24fd38, 0x97d14cee libsystemkernel.dylib__wait4 + 10, name = 'tid_a0b', queue = 'com.apple.main-thread', stop reason = signal SIGSTOP * frame #0: 0x97d14cee libsystem_kernel.dylibwait4 + 10 frame #1: 0x958727e0 libsystemc.dylibwaitpid$UNIX2003 + 48 frame #2: 0x0012249d monomonohandlenativesigsegv(signal=11, ctx=0x00743fe0, info=0x00743fa0) + 541 at mini-exceptions.c:2348 [opt] frame #3: 0x00172512 monomono_arch_handle_altstack_exception(sigctx=<unavailable>, siginfo=<unavailable>, fault_addr=<unavailable>, stack_ovf=0) + 162 at exceptions-x86.c:1107 [opt] frame #4: 0x00064c53 monomonosigsegvsignalhandler(dummy=, _info=, context=) + 467 at mini-runtime.c:2888 [opt] frame #5: 0x91f6379b libsystemplatform.dylib_sigtramp + 43 frame #6: 0x00181521 monomonoclasslayoutfields [inlined] monotypegetbasictypefromgeneric(type=0x00000000) + 9 at class.c:1796 [opt] frame #7: 0x00181518 monomono_class_layout_fields(klass=0x7d9ecd98) + 168 at class.c:1875 [opt] frame #8: 0x002628d9 monomonoreflectioncreateruntimeclass [inlined] typebuildersetupfields(klass=, error=0x00000000) + 2233 at reflection.c:11629 [opt] frame #9: 0x002624df monomono_reflection_create_runtime_class(tb=0x7c830200) + 1215 at reflection.c:11924 [opt] frame #10: 0x007d1630 frame #11: 0x01a6cdb5 mscorlib.dll.dylibSystemReflectionEmitTypeBuilderCreateTypeInfo + 1125 frame #12: 0x01a6c93e mscorlib.dll.dylibSystem_Reflection_Emit_TypeBuilder_CreateType + 30 frame #13: 0x036d7c64 frame #14: 0x032a7dc0 frame #15: 0x036d7cec frame #16: 0x032a7dc0 frame #17: 0x032a7dc0 frame #18: 0x032a7d44 frame #19: 0x032a404c frame #20: 0x030f2b50 frame #21: 0x030f2768 frame #22: 0x030f26ec frame #23: 0x032be300 frame #24: 0x02702b3a frame #25: 0x02702358 frame #26: 0x025fdf83 frame #27: 0x006a7210 frame #28: 0x006a7561 frame #29: 0x00068487 monomonojitruntimeinvoke(method=, obj=, params=, exc=) + 951 at mini-runtime.c:2578 [opt] frame #30: 0x00240b26 monomono_runtime_invoke(method=0x7d2e0cc0, obj=<unavailable>, params=<unavailable>, exc=<unavailable>) + 150 at object.c:2897 [opt] frame #31: 0x00246ae1 monomonoruntimeexecmain(method=0x7d2e0cc0, args=, exc=0x00000000) + 401 at object.c:4223 [opt] frame #32: 0x00246898 monomono_runtime_run_main(method=0x7d2e0cc0, argc=<unavailable>, argv=<unavailable>, exc=<unavailable>) + 632 at object.c:3837 [opt] frame #33: 0x000e68e5 monomonojitexec(domain=, assembly=, argc=, argv=) + 213 at driver.g.c:1031 [opt] frame #34: 0x000e8dac monomono_main [inlined] main_thread_handler + 8396 at driver.g.c:1091 [opt] frame #35: 0x000e8d74 monomonomain(argc=, argv=) + 8340 at driver.g.c:2162 [opt] frame #36: 0x000596c1 monomain [inlined] mono_main_with_options(argc=6, argc=6, argc=6, argv=0xbffa9c74, argv=0xbffa9c74, argv=0xbffa9c74) + 33 at main.c:28 [opt] frame #37: 0x000596a0 monomain(argc=6, argv=0xbffa9c74) + 1184 at main.c:177 [opt] frame #38: 0x000591f5 mono`start + 53

    thread #2: tid = 0x24fd50, 0x97d143ea libsystemkernel.dylib__psynch_cvwait + 10 frame #0: 0x97d143ea libsystem_kernel.dylibpsynchcvwait + 10 frame #1: 0x9a68d538 libsystempthread.dylib_pthread_cond_wait + 757 frame #2: 0x9a68f276 libsystem_pthread.dylibpthreadcondwait$UNIX2003 + 71 frame #3: 0x002a228b monothread_func [inlined] mono_os_cond_wait(mutex=0xb00810b0) + 18 at mono-os-mutex.h:105 [opt] frame #4: 0x002a2279 monothreadfunc(threaddata=0x00000000) + 457 at sgen-thread-pool.c:118 [opt] frame #5: 0x9a68c780 libsystempthread.dylib_pthread_body + 138 frame #6: 0x9a68c6f6 libsystem_pthread.dylibpthreadstart + 155 frame #7: 0x9a689f7a libsystempthread.dylib`threadstart + 34

    thread #3: tid = 0x24fd51, 0x97d0d4d6 libsystemkernel.dylibsemaphore_wait_trap + 10, name = 'tid_1803' frame #0: 0x97d0d4d6 libsystem_kernel.dylibsemaphorewaittrap + 10 frame #1: 0x0023e40e monofinalizer_thread [inlined] mono_os_sem_wait(flags=MONO_SEM_FLAGS_ALERTABLE) + 14 at mono-os-semaphore.h:72 [opt] frame #2: 0x0023e400 monofinalizerthread [inlined] monocoopsemwait(flags=MONOSEMFLAGSALERTABLE) + 10 at mono-coop-semaphore.h:40 [opt] frame #3: 0x0023e3f6 monofinalizer_thread(unused=0x00000000) + 118 at gc.c:711 [opt] frame #4: 0x00217979 monostartwrapper [inlined] startwrapperinternal + 540 at threads.c:717 [opt] frame #5: 0x0021775d monostart_wrapper(data=<unavailable>) + 29 at threads.c:764 [opt] frame #6: 0x002d19bd monoinnerstartthread(arg=) + 349 at mono-threads-posix.c:92 [opt] frame #7: 0x9a68c780 libsystempthread.dylib_pthread_body + 138 frame #8: 0x9a68c6f6 libsystem_pthread.dylibpthreadstart + 155 frame #9: 0x9a689f7a libsystempthread.dylib`threadstart + 34

    thread #4: tid = 0x24fd52, 0x97d14d5e libsystemkernel.dylib__workq_kernreturn + 10 frame #0: 0x97d14d5e libsystem_kernel.dylibworkqkernreturn + 10 frame #1: 0x9a68c34b libsystempthread.dylib_pthread_wqthread + 1289 frame #2: 0x9a689f56 libsystem_pthread.dylibstartwqthread + 34

    thread #5: tid = 0x24fd53, 0x97d157fa libsystemkernel.dylibkevent_qos + 10, queue = 'com.apple.libdispatch-manager' frame #0: 0x97d157fa libsystem_kernel.dylibkeventqos + 10 frame #1: 0x9da9d7ea libdispatch.dylib_dispatch_mgr_invoke + 234 frame #2: 0x9da9d3be libdispatch.dylibdispatchmgr_thread + 52

    thread #6: tid = 0x24fd54, 0x97d14d5e libsystemkernel.dylib__workq_kernreturn + 10 frame #0: 0x97d14d5e libsystem_kernel.dylibworkqkernreturn + 10 frame #1: 0x9a68c34b libsystempthread.dylib_pthread_wqthread + 1289 frame #2: 0x9a689f56 libsystem_pthread.dylibstartwqthread + 34 (lldb) detach

    ================================================================= Got a SIGSEGV while executing native code. This usually indicates a fatal error in the mono runtime or one of the native libraries

    used by your application.

    Monday, August 8, 2016 8:51 PM
  • User64224 posted

    We are trying to build nuget XLabs packages using the new cake scripts and failing on osx with the following error. Any help would be awesome


    Feeds used: /Users/cthakkar/.local/share/NuGet/Cache /Users/cthakkar/.nuget/packages/ https://www.nuget.org/api/v2/

    All packages listed in /Users/cthakkar/Development/XLabs/tools/packages.config are already installed. Analyzing build script... Processing build script... Installing tools... Installing addins... Compiling build script... versionUtils.cake (210,20): The member CakeBuildScriptImpl.VersionInfo.ToString(bool)' does not hide an inherited member. The new keyword is not required unknown.cake (512,38):Cake.Common.Tools.DNU.DNUAliases.DNURestore(this Cake.Core.ICakeContext)' is obsolete: Please use DotNetCoreRestore() instead.' unknown.cake (519,38):Cake.Common.Tools.DNU.DNUAliases.DNURestore(this Cake.Core.ICakeContext, Cake.Core.IO.FilePath)' is obsolete: Please use DotNetCoreRestore(string) instead.' unknown.cake (526,38):Cake.Common.Tools.DNU.DNUAliases.DNURestore(this Cake.Core.ICakeContext, Cake.Common.Tools.DNU.Restore.DNURestoreSettings)' is obsolete: Please use DotNetCoreRestore(DotNetCoreRestoreSettings) instead.' unknown.cake (533,38):Cake.Common.Tools.DNU.DNUAliases.DNURestore(this Cake.Core.ICakeContext, Cake.Core.IO.FilePath, Cake.Common.Tools.DNU.Restore.DNURestoreSettings)' is obsolete: Please use DotNetCoreRestore(string, DotNetCoreRestoreSettings) instead.' unknown.cake (540,38):Cake.Common.Tools.DNU.DNUAliases.DNUBuild(this Cake.Core.ICakeContext, string)' is obsolete: Please use DotNetCoreBuild(string) instead.' unknown.cake (547,38):Cake.Common.Tools.DNU.DNUAliases.DNUBuild(this Cake.Core.ICakeContext, string, Cake.Common.Tools.DNU.Build.DNUBuildSettings)' is obsolete: Please use DotNetCoreBuild(string, DotNetCoreBuildSettings) instead.' unknown.cake (554,38):Cake.Common.Tools.DNU.DNUAliases.DNUPack(this Cake.Core.ICakeContext, string)' is obsolete: Please use DotNetCorePack(string) instead.' unknown.cake (561,38):Cake.Common.Tools.DNU.DNUAliases.DNUPack(this Cake.Core.ICakeContext, string, Cake.Common.Tools.DNU.Pack.DNUPackSettings)' is obsolete: Please use DotNetCorePack(string, DotNetCorePackSettings) instead.' unknown.cake (1750,43):Cake.Common.Xml.XmlPokeAliases.XmlPoke(this Cake.Core.ICakeContext, string, string, string)' is obsolete: Please use XmlPokeString(string, string, string) instead.' unknown.cake (1757,43):Cake.Common.Xml.XmlPokeAliases.XmlPoke(this Cake.Core.ICakeContext, string, string, string, Cake.Common.Xml.XmlPokeSettings)' is obsolete: `Please use XmlPokeString(string, string, string, XmlPokeSettings) instead.' Stacktrace:

    at <0xffffffff> at (wrapper managed-to-native) System.Reflection.Emit.TypeBuilder.createruntimeclass (System.Reflection.Emit.TypeBuilder,System.Reflection.Emit.TypeBuilder) <0x00012> at System.Reflection.Emit.TypeBuilder.CreateTypeInfo () <0x00464> at System.Reflection.Emit.TypeBuilder.CreateType () <0x0001d> at Mono.CSharp.TypeDefinition.CloseContainer () <0x00133> at Mono.CSharp.TypeContainer.CloseContainer () <0x0005f> at Mono.CSharp.TypeDefinition.CloseContainer () <0x001bb> at Mono.CSharp.TypeContainer.CloseContainer () <0x0005f> at Mono.CSharp.TypeContainer.CloseContainer () <0x0005f> at Mono.CSharp.ModuleContainer.CloseContainer () <0x0013b> at Mono.CSharp.Evaluator.CompileBlock (Mono.CSharp.Class,Mono.CSharp.Undo,Mono.CSharp.Report) <0x00b23> at Mono.CSharp.Evaluator.Compile (string,Mono.CSharp.CompiledMethod&) <0x00207> at Mono.CSharp.Evaluator.Evaluate (string,object&,bool&) <0x0005f> at Mono.CSharp.Evaluator.Run (string) <0x00033> at Cake.Scripting.Mono.MonoScriptSession.Execute (Cake.Core.Scripting.Script) <0x00087> at Cake.Core.Scripting.ScriptRunner.Run (Cake.Core.Scripting.IScriptHost,Cake.Core.IO.FilePath,System.Collections.Generic.IDictionary`2) <0x00789> at Cake.Commands.BuildCommand.Execute (Cake.CakeOptions) <0x0003f> at Cake.CakeApplication.Run (Cake.CakeOptions) <0x0003a> at Cake.Program.Main () <0x0031f> at (wrapper runtime-invoke) .runtimeinvokeint (object,intptr,intptr,intptr) <0x000b0>

    Native stacktrace:

    Debug info from gdb:

    (lldb) command source -s 0 '/tmp/mono-gdb-commands.aut1Dw' Executing commands in '/tmp/mono-gdb-commands.aut1Dw'. (lldb) process attach --pid 9271 warning: (i386) /Library/Frameworks/Mono.framework/Versions/4.4.2/lib/mono/4.5/mscorlib.dll.dylib empty dSYM file detected, dSYM was created with an executable with no debug info. Process 9271 stopped * thread #1: tid = 0x24fd38, 0x97d14cee libsystemkernel.dylib__wait4 + 10, name = 'tid_a0b', queue = 'com.apple.main-thread', stop reason = signal SIGSTOP frame #0: 0x97d14cee libsystem_kernel.dylibwait4 + 10 libsystemkernel.dylib`wait4: -> 0x97d14cee <+10>: jae 0x97d14cfe ; <+26> 0x97d14cf0 <+12>: calll 0x97d14cf5 ; <+17> 0x97d14cf5 <+17>: popl %edx 0x97d14cf6 <+18>: movl 0xb9be32f(%edx), %edx

    Executable module set to "/usr/local/bin/mono". Architecture set to: i386-apple-macosx. (lldb) thread list Process 9271 stopped * thread #1: tid = 0x24fd38, 0x97d14cee libsystemkernel.dylib__wait4 + 10, name = 'tid_a0b', queue = 'com.apple.main-thread', stop reason = signal SIGSTOP thread #2: tid = 0x24fd50, 0x97d143ea libsystem_kernel.dylibpsynchcvwait + 10 thread #3: tid = 0x24fd51, 0x97d0d4d6 libsystemkernel.dylibsemaphore_wait_trap + 10, name = 'tid_1803' thread #4: tid = 0x24fd52, 0x97d14d5e libsystem_kernel.dylibworkqkernreturn + 10 thread #5: tid = 0x24fd53, 0x97d157fa libsystemkernel.dylibkevent_qos + 10, queue = 'com.apple.libdispatch-manager' thread #6: tid = 0x24fd54, 0x97d14d5e libsystem_kernel.dylibworkqkernreturn + 10 (lldb) thread backtrace all * thread #1: tid = 0x24fd38, 0x97d14cee libsystemkernel.dylib__wait4 + 10, name = 'tid_a0b', queue = 'com.apple.main-thread', stop reason = signal SIGSTOP * frame #0: 0x97d14cee libsystem_kernel.dylibwait4 + 10 frame #1: 0x958727e0 libsystemc.dylibwaitpid$UNIX2003 + 48 frame #2: 0x0012249d monomonohandlenativesigsegv(signal=11, ctx=0x00743fe0, info=0x00743fa0) + 541 at mini-exceptions.c:2348 [opt] frame #3: 0x00172512 monomono_arch_handle_altstack_exception(sigctx=<unavailable>, siginfo=<unavailable>, fault_addr=<unavailable>, stack_ovf=0) + 162 at exceptions-x86.c:1107 [opt] frame #4: 0x00064c53 monomonosigsegvsignalhandler(dummy=, _info=, context=) + 467 at mini-runtime.c:2888 [opt] frame #5: 0x91f6379b libsystemplatform.dylib_sigtramp + 43 frame #6: 0x00181521 monomonoclasslayoutfields [inlined] monotypegetbasictypefromgeneric(type=0x00000000) + 9 at class.c:1796 [opt] frame #7: 0x00181518 monomono_class_layout_fields(klass=0x7d9ecd98) + 168 at class.c:1875 [opt] frame #8: 0x002628d9 monomonoreflectioncreateruntimeclass [inlined] typebuildersetupfields(klass=, error=0x00000000) + 2233 at reflection.c:11629 [opt] frame #9: 0x002624df monomono_reflection_create_runtime_class(tb=0x7c830200) + 1215 at reflection.c:11924 [opt] frame #10: 0x007d1630 frame #11: 0x01a6cdb5 mscorlib.dll.dylibSystemReflectionEmitTypeBuilderCreateTypeInfo + 1125 frame #12: 0x01a6c93e mscorlib.dll.dylibSystem_Reflection_Emit_TypeBuilder_CreateType + 30 frame #13: 0x036d7c64 frame #14: 0x032a7dc0 frame #15: 0x036d7cec frame #16: 0x032a7dc0 frame #17: 0x032a7dc0 frame #18: 0x032a7d44 frame #19: 0x032a404c frame #20: 0x030f2b50 frame #21: 0x030f2768 frame #22: 0x030f26ec frame #23: 0x032be300 frame #24: 0x02702b3a frame #25: 0x02702358 frame #26: 0x025fdf83 frame #27: 0x006a7210 frame #28: 0x006a7561 frame #29: 0x00068487 monomonojitruntimeinvoke(method=, obj=, params=, exc=) + 951 at mini-runtime.c:2578 [opt] frame #30: 0x00240b26 monomono_runtime_invoke(method=0x7d2e0cc0, obj=<unavailable>, params=<unavailable>, exc=<unavailable>) + 150 at object.c:2897 [opt] frame #31: 0x00246ae1 monomonoruntimeexecmain(method=0x7d2e0cc0, args=, exc=0x00000000) + 401 at object.c:4223 [opt] frame #32: 0x00246898 monomono_runtime_run_main(method=0x7d2e0cc0, argc=<unavailable>, argv=<unavailable>, exc=<unavailable>) + 632 at object.c:3837 [opt] frame #33: 0x000e68e5 monomonojitexec(domain=, assembly=, argc=, argv=) + 213 at driver.g.c:1031 [opt] frame #34: 0x000e8dac monomono_main [inlined] main_thread_handler + 8396 at driver.g.c:1091 [opt] frame #35: 0x000e8d74 monomonomain(argc=, argv=) + 8340 at driver.g.c:2162 [opt] frame #36: 0x000596c1 monomain [inlined] mono_main_with_options(argc=6, argc=6, argc=6, argv=0xbffa9c74, argv=0xbffa9c74, argv=0xbffa9c74) + 33 at main.c:28 [opt] frame #37: 0x000596a0 monomain(argc=6, argv=0xbffa9c74) + 1184 at main.c:177 [opt] frame #38: 0x000591f5 mono`start + 53

    thread #2: tid = 0x24fd50, 0x97d143ea libsystemkernel.dylib__psynch_cvwait + 10 frame #0: 0x97d143ea libsystem_kernel.dylibpsynchcvwait + 10 frame #1: 0x9a68d538 libsystempthread.dylib_pthread_cond_wait + 757 frame #2: 0x9a68f276 libsystem_pthread.dylibpthreadcondwait$UNIX2003 + 71 frame #3: 0x002a228b monothread_func [inlined] mono_os_cond_wait(mutex=0xb00810b0) + 18 at mono-os-mutex.h:105 [opt] frame #4: 0x002a2279 monothreadfunc(threaddata=0x00000000) + 457 at sgen-thread-pool.c:118 [opt] frame #5: 0x9a68c780 libsystempthread.dylib_pthread_body + 138 frame #6: 0x9a68c6f6 libsystem_pthread.dylibpthreadstart + 155 frame #7: 0x9a689f7a libsystempthread.dylib`threadstart + 34

    thread #3: tid = 0x24fd51, 0x97d0d4d6 libsystemkernel.dylibsemaphore_wait_trap + 10, name = 'tid_1803' frame #0: 0x97d0d4d6 libsystem_kernel.dylibsemaphorewaittrap + 10 frame #1: 0x0023e40e monofinalizer_thread [inlined] mono_os_sem_wait(flags=MONO_SEM_FLAGS_ALERTABLE) + 14 at mono-os-semaphore.h:72 [opt] frame #2: 0x0023e400 monofinalizerthread [inlined] monocoopsemwait(flags=MONOSEMFLAGSALERTABLE) + 10 at mono-coop-semaphore.h:40 [opt] frame #3: 0x0023e3f6 monofinalizer_thread(unused=0x00000000) + 118 at gc.c:711 [opt] frame #4: 0x00217979 monostartwrapper [inlined] startwrapperinternal + 540 at threads.c:717 [opt] frame #5: 0x0021775d monostart_wrapper(data=<unavailable>) + 29 at threads.c:764 [opt] frame #6: 0x002d19bd monoinnerstartthread(arg=) + 349 at mono-threads-posix.c:92 [opt] frame #7: 0x9a68c780 libsystempthread.dylib_pthread_body + 138 frame #8: 0x9a68c6f6 libsystem_pthread.dylibpthreadstart + 155 frame #9: 0x9a689f7a libsystempthread.dylib`threadstart + 34

    thread #4: tid = 0x24fd52, 0x97d14d5e libsystemkernel.dylib__workq_kernreturn + 10 frame #0: 0x97d14d5e libsystem_kernel.dylibworkqkernreturn + 10 frame #1: 0x9a68c34b libsystempthread.dylib_pthread_wqthread + 1289 frame #2: 0x9a689f56 libsystem_pthread.dylibstartwqthread + 34

    thread #5: tid = 0x24fd53, 0x97d157fa libsystemkernel.dylibkevent_qos + 10, queue = 'com.apple.libdispatch-manager' frame #0: 0x97d157fa libsystem_kernel.dylibkeventqos + 10 frame #1: 0x9da9d7ea libdispatch.dylib_dispatch_mgr_invoke + 234 frame #2: 0x9da9d3be libdispatch.dylibdispatchmgr_thread + 52

    thread #6: tid = 0x24fd54, 0x97d14d5e libsystemkernel.dylib__workq_kernreturn + 10 frame #0: 0x97d14d5e libsystem_kernel.dylibworkqkernreturn + 10 frame #1: 0x9a68c34b libsystempthread.dylib_pthread_wqthread + 1289 frame #2: 0x9a689f56 libsystem_pthread.dylibstartwqthread + 34 (lldb) detach

    ================================================================= Got a SIGSEGV while executing native code. This usually indicates a fatal error in the mono runtime or one of the native libraries

    used by your application.

    Monday, August 8, 2016 8:51 PM
  • User243799 posted
    I use the Xlabs for my xamarin forms. I registered the service in my android application as below, and resolver.resolve in the PCL project. Is the process right?  I donot know where to save the taken pictures. what is the path to the pictures?
    

    I cannot debug the camera implementation. However, I just want to make sure if my code implementation in android and pcl are right. Are they right in the process

    thanks -- Jeff

    The Android code is:

    [Activity(Label = "FSRApp", Icon = "@drawable/icon", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)] public class MainActivity : XFormsApplicationDroid //global::Xamarin.Forms.Platform.Android.FormsApplicationActivity { protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle);

            //new labs
            var container = new SimpleContainer();
            container.Register<IDevice>(t => AndroidDevice.CurrentDevice);
            container.Register<IGeolocator, Geolocator>();
            Resolver.SetResolver(container.GetResolver());
            //end labs
            global::Xamarin.Forms.Forms.Init(this, bundle);
            LoadApplication(new App());
        }
    }
    

    the PCL code in the App():

    private async Task TakePicture() { var device = Resolver.Resolve();

            var mediaPicker = device.MediaPicker;
    
    
    
    
            mediaPicker = Resolver.Resolve<IDevice>().MediaPicker;
    
    
    
    
    
            try
            {
                var mediaFile = await mediaPicker.TakePhotoAsync(new CameraMediaStorageOptions
                {
                     Name = "aaa",
                    Directory="MyAppName",
                    DefaultCamera = CameraDevice.Front,
                    MaxPixelDimension = 1,
                    PercentQuality = 2,
                });
    
    
    
    
           string a=     mediaFile.Path;
    
    
    
    
    
    
             //  var image = GetResizedImage(mediaFile.Source, 990, 560);
               //OnImageUpdate(this, image);
            }
            catch (Exception ex)
            {
    
    
    
    
                string status = ex.Message;
            }
        }
    
    Wednesday, August 10, 2016 6:17 PM
  • User41251 posted

    I am getting error on ios when the line

    await media.TakePhotoAsync(o);

    struck in the following code.

    PCL page code:

    XLabs.Platform.Services.Media.CameraMediaStorageOptions o = new XLabs.Platform.Services.Media.CameraMediaStorageOptions() { DefaultCamera = CameraDevice.Front, SaveMediaOnCapture = false, MaxPixelDimension = 400, PercentQuality=100 };

                try
                {
                    XLabs.Platform.Services.Media.MediaFile f = await media.TakePhotoAsync(o);
                    await DisplayAlert("Photo path", f.Path, "cancel");
                }
                catch (Exception ex)
                {
                    await DisplayAlert("Error!", ex.StackTrace, "Cancel");
                }
    

    AppDelegate.cs code:

    var container = new XLabs.Ioc.SimpleContainer(); container.Register(t => AppleDevice.CurrentDevice); container.Register(); Resolver.SetResolver(container.GetResolver());

            global::Xamarin.Forms.Forms.Init();
            LoadApplication(new App());
    

    Error: screenshot attached.

    Also the CameraDevice.Front does not open the front camera, always opens rear camera.

    Please help!

    Tuesday, April 25, 2017 1:13 PM
  • User249470 posted

    Hello All

    I have tried downloaded XLABS (https://github.com/XLabs/Xamarin-Forms-Labs) and try to execute it but its generate error. "System" not found. "Xamarin.Forms" not found. blah blah blah.......

    I have tried to resolved it and finally execute it in Android Simulator, but its crash while launching.

    Please anyone guide me how to use XLABS (https://github.com/XLabs/Xamarin-Forms-Labs) Framework using Visual Studio 2017. Its would be great if anyone suggest, any help document or readymade sample using XLABS to download.

    Thanks in advance for time.

    Waiting for reply

    Regards Kapil Dave https://in.linkedin.com/in/kapilkumardave

    Saturday, September 9, 2017 8:37 AM
  • User331804 posted

    As stated in the github page, xlabs is no longer maintained.

    ##NOTICE: This project is no longer maintained. It may not work with newer versions of Xamarin.Forms. https://github.com/XLabs/Xamarin-Forms-Labs

    Still, there is a lot of useful code that you can use for "inspiration" for your needs.

    Saturday, September 9, 2017 9:03 AM
  • User249470 posted

    Hi GiampaoloGabba

    Thanks for your most valuable comment, Please can you guide for minimum version of Xamarin.Forms with I can use with XLABS.

    Please can you guide for any other good MVVM Framework like XLABS.

    Actually I am looking for Same UI across platform using Xamarin.Forms. Please can you guide for this. https://forums.xamarin.com/discussion/38556/same-ui-across-platform-using-xamarin-forms

    Regards Kapil Dave

    Saturday, September 9, 2017 9:27 AM
  • User331804 posted

    Hey KapilDave, i'm not involved in the Xlabs project, i used it like... 2 years ago with xamarin forms version 1.3 - 1.4. I dont even remeber the setup (but i followed the github wiki, at that time it was working). Honestly i cant help with xlabs :(

    For a pure MVVM Framework i suggest PRISM, FreshMvvM or Exrin. There are a lot informations here in the forums.

    https://github.com/PrismLibrary/Prism https://github.com/rid00z/FreshMvvm https://github.com/exrin/Exrin

    The authors of the frameworks are active in the forums and very helpful.

    Xamarin forms supports MVVM out of the box, but the frameworks i posted are a great productivity boost (plus they help write better code)!

    Instead of xlabs you can use single plugins for your needs, here a good collection: https://github.com/xamarin/XamarinComponents

    Regarding the same UI across all platform i dont know. Xamarin forms has the ability to share most of the code between all platforms, but it uses native controls, so every platform look a bit different.

    You can standardize the most using styles but some differences will be always here: in the end with xamarin forms you are developing native apps using native controls for each OS. You can always try to not use standard ui element and design everything custom, but its a lot of work and you'll get a performance hit.

    Otherwise there is html + phonegap. You can achieve the exactly same UI in all platforms but the user experience is poor compared with pure native controls.

    Saturday, September 9, 2017 10:11 AM
  • User249470 posted

    Hi GiampaoloGabba

    Thanks for your quick help.

    your > @GiampaoloGabba said:

    Hey KapilDave, i'm not involved in the Xlabs project, i used it like... 2 years ago with xamarin forms version 1.3 - 1.4. I dont even remeber the setup (but i followed the github wiki, at that time it was working). Honestly i cant help with xlabs :(

    For a pure MVVM Framework i suggest PRISM, FreshMvvM or Exrin. There are a lot informations here in the forums.

    https://github.com/PrismLibrary/Prism https://github.com/rid00z/FreshMvvm https://github.com/exrin/Exrin

    The authors of the frameworks are active in the forums and very helpful.

    Xamarin forms supports MVVM out of the box, but the frameworks i posted are a great productivity boost (plus they help write better code)!

    Instead of xlabs you can use single plugins for your needs, here a good collection: https://github.com/xamarin/XamarinComponents

    Regarding the same UI across all platform i dont know. Xamarin forms has the ability to share most of the code between all platforms, but it uses native controls, so every platform look a bit different.

    You can standardize the most using styles but some differences will be always here: in the end with xamarin forms you are developing native apps using native controls for each OS. You can always try to not use standard ui element and design everything custom, but its a lot of work and you'll get a performance hit.

    Otherwise there is html + phonegap. You can achieve the exactly same UI in all platforms but the user experience is poor compared with pure native controls.

    Thanks for your quick help

    Saturday, September 9, 2017 10:21 AM
  • User249470 posted

    Thanks GiampaoloGabba

    As per my understanding XLABS team had developed marvelous framework, and most of necessary components / services they have developed under one namespace. Really Appreciate if someone has contact details(Skype or Email) of any member of XLABS Team then please share.

    XLABS Team, Humble request to All Team Members, Can we talk?

    Regards Kapil Dave https://in.linkedin.com/in/kapilkumardave

    Saturday, September 9, 2017 10:34 AM