User Profile & Activity

Jimmy Petrus Member

Hi Thomas,

Glad to hear that your issues are now resolved with the latest build.

We don't usually experience breaking changes with Xamarin or Android, so we didn't expect to see this issue happened. FYI, when Crosslight 2.5 is released, it works fine with the current release of Xamarin. This issue apparently occurred due to breaking changes in the latest Xamarin Android build which is released after Crosslight 2.5. So we quickly create a patch and published build 96.

We highly recommend our customers to always install and use the latest version of our products as well as the dependent platforms/products. This helps us and our customers stay ahead with the latest technologies. If youencountered issues with one of the latest updates, best chance is our team is already aware with the issue and will publish an update very soon. So, don't be afraid to install the latest stable updates.

We appreciate your feedback regarding which Xamarin versions and OS are tested in the published build. We will implement that in our next documentation update. Again, thank you for your feedback and compliment.

Best,
Jimmy

Hi Thomas,

Please try the Crosslight nightly build 96 provided in the attachment. Please make sure you clean your projectsand perform rebuild to ensure the new assemblies are referenced.

Let me know if it resolves the Android problem.

Thanks,
Jimmy

Dear Thomas,

Good questions! We do not recommend building apps using Unified View pattern such as in Xamarin Forms. It has numerous drawbacks such as limited UI definitions, poor maintainability, low adaptability, and more. Read my blog post to learn more about design pattern.

Integrating third party components to Crosslight is very easy and straightforward. It also doesn't need XamarinForms. You can integrate third party components by creating binding adapter using interfaces and base classes available in Crosslight.

We'll create an example to integrate one of the Syncfusion components soon.

Hope this helps,
Jimmy

Hello Domingo,

While it's possible for the development team to implement this behavior as a built-in feature (through an option), you can also implement this behavior directly in your app.

Most of our components are designed with solid architecture and interfaces which expose a number of methods that you can call in the platform-specific view context. Since this task relates to the iOS specific view, you can easily achieve this behavior by getting the instance of the IMasterDetailViewController from the table view controller in question, and then call the SetDetailViewController method in the ViewDidDisappear method override.

Crosslight also comes with a lot of convenience APIs which might not be easily discovered. For instance, you can use GetParentViewController(parentType) and pass in an interface type to get the instance of the parent view controller with the particular type.

Here's the code example, referring to the MyInventory_MasterDetail sample.

 

private IMasterDetailViewController _masterDetailController = null;

protected override void InitializeView() { base.InitializeView(); // gets the master detail instance that host this view controller _masterDetailController = this.GetParentViewController(typeof(IMasterDetailViewController)) as IMasterDetailViewController; } public override void ViewDidDisappear(bool animated) { base.ViewDidDisappear(animated); // set the detail view controller with animation _masterDetailController.SetDetailViewController(new ItemDetailViewController(), true); }

With the code above applied, when you go back from the items list to category, notice the detail view is now nicelyanimating back to "No items selected".

Hope this helps,
Jimmy

Posted: May 21, 2014 1:56 PM

Hello Domingo, thank you for your valuable feedback.

The individual templates (a.k.a. project item templates) for Crosslight was already on our radar, however, we didn't manage to ship it in the release. We plan to include the Crosslight project item templates in June's service pack release.

Best,
Jimmy

Hi Domingo,

While you can navigate to any ViewModels in Crosslight v1, there's actually an unsupported scenario where users can still go back to the previous screen which is undesirable for "login" to "main page" scenario.

The good news is that we've a new feature in v2 called Navigation to Root View feature. We've make this really easy to implement which allows you to continue using NavigationService.Navigate as usual. All you need to do later is simply adding IsRootView="true" property in the RegisterNavigation of the particular view that should be treated as root. When navigation service encounters such attribute, it will set the view as root, and automatically prevent users to go back to the previous screen. There are no extra code needed in your side to handle the "back" behavior and so on.

We're currently in final sprints of Crosslight v2 features, and we expect to roll out v2 very soon. Please bear with us for a while.

Posted: February 20, 2014 9:13 PM

Hello Domingo,

Welcome to Crosslight Community Forum!

Crosslight is entirely built upon Dependency Delegation architecture which offers the utmost flexibility and extensibility support. Unlike other frameworks, Crosslight features powerful yet high-performance dependency injection which supports constructors injection, methods injection, nested child container, configurable container lifetime, and best of all, they are built with developer-friendly API.

You can register a resolver with constructor injection using lambda function overload such as shown below.


Container.Current.Register<IEntityContainer>("Default", (c) => new EntityContainer()).WithLifetimeManager(new ContainerLifetime());

The above example also uses container life time, which means every Resolve will return the same instance, if it was created previously.

You can register a resolver with nested constructor injection such as shown below.


Container.Current.Register<IEntityContainer>("Default", (c) => new EntityContainer(c.Resolve<IUserRepository>)).WithLifetimeManager(new ContainerLifetime());

Notice that you can resolve another instance from the container at runtime, just in-time when the parent/root container is being resolved.

You can find more methods in the IDependencyResolver members, available in the Intersoft.Crosslight assembly.

With regards to the documentation, we're preparing a major launch on a new developer center which features comprehensive API documentation. This will be launched on the same time with the much anticipated Crosslight 2.0 release. Expect a quality close to Apple's and Android's developer center soon.

At the meantime, please feel free to ask any questions in the community forum here. We'll be pleased to assist.

Best,
Jimmy


Posted: September 18, 2013 12:08 PM
Hi Dave, The drawer navigation support is scheduled for the October update which will be available from Update Manager. Regarding the missing resources and sample issues, could you collaborate more details? Which resources you find missing, and which samples are crashing, as well as the error details and stack trace will be great. Thanks, Jimmy
All times are GMT -5. The time now is 3:34 AM.
Previous Next