The Holy Grail of Modern Android Development

Creating beautiful and modern Android Material experience is no longer rocket science.

With Crosslight 5, you can now build Material Design experiences such as Floating Action Button, Material Toolbar, Shared Element Transitions, Parallax Scrolling, Material Navigation Drawer, and more with just simple property sets from Crosslight Fragments.

The Material Design Experience

Let’s take a look at some of the Material Design Experience offered in this release.

Vibrant Material Colors

Crosslight 5 adheres to the striking, vibrant color palettes Google defined for Material Design, which made Material Design apps easily distinguishable.

These colors are easily overridable just by changing the colors.xml inside the Resources/values folder.

Floating Action Buttons

These prominent buttons provide an easy access to primary actions in the screen. Crosslight 5 lets you add Floating Action Buttons very easily, with just simple API calls from the Fragment.

protected override void Initialize()
{
   base.Initialize();
   this.FloatingActionButtons.Add(new FloatingActionButton("AddButton")
   {
      Position = FloatingActionButtonPosition.BottomRight,
      CommandItemType = CommandItemType.Add
   });
}
                

Collapsing Toolbars

As an integral part of the Material Design, Collapsing Toolbars allow for more content to shine when user consumes content on mobile devices.

Crosslight Android Material offers several predefined Toolbar interactions that will delight Android developers, notably that the behavior can easily be enabled with just simple property sets.

Material Toolbar

To customize the Toolbar behavior, all you need to do is simply set the desired behavior in the Fragment level. Very convenient.

protected override void Initialize()
{
   base.Initialize();
   this.ToolbarSettings.Mode = ToolbarMode.Collapsing;
   this.ToolbarSettings.CollapsingToolbarSettings.EnableParallaxImage = true;
   this.ToolbarSettings.CollapsingToolbarSettings.ExpandedHeight = 240;
   this.ToolbarSettings.CollapsingToolbarSettings.ParallaxImageId =
   Resource.Drawable.contact;
   this.ToolbarSettings.CollapsingToolbarSettings.ScrollFlags =
   DesignWidget.AppBarLayout.LayoutParams.ScrollFlagScroll |
   DesignWidget.AppBarLayout.LayoutParams.ScrollFlagExitUntilCollapsed;
   this.IconId = Resource.Drawable.ic_toolbar;
}
                

Shared Element Transitions

One of the most interesting interactions in Material Design is the Shared Element Transitions, in which UI elements from the previous screen is persisted and transformed into the other screen.

With Crosslight 5, we’ve made it super easy for you to achieve this effect. No more dealing with tedious TransitionSets and XMLs, just simple property sets.

Then, in the target Fragment, specify the ID of the shared element.

In the source Fragment, specify the ID of the shared element.

protected override void Initialize()
{
   base.Initialize();
   this.InteractionMode = ListViewInteraction.Navigation;
   this.SourceSharedElementIds.Add(Resource.Id.Icon);
}
                

Then, in the target Fragment, specify the ID of the shared element.

protected override void Initialize()
{
   base.Initialize();
   this.TargetSharedElementIds.Add(Resource.Id.parallax_image);
}
                

Parallax Scrolling

The comprehensive Material Design specs defined by Google even covers user interactions such as scrolling. The scrolling techniques presented in the document highlights many of the interesting behaviors Material Design has to offer.

To achieve this effect in Crosslight Android Material, all you have to do is just override the Initialize method in the Fragment and specify the behavior settings as follows.

protected override void Initialize()
{
    base.Initialize();
 
    this.ToolbarSettings.Mode = ToolbarMode.Collapsing;
    this.ToolbarSettings.CollapsingToolbarSettings.EnableParallaxImage = true;
    this.ToolbarSettings.CollapsingToolbarSettings.ExpandedHeight = 240;
    this.ToolbarSettings.CollapsingToolbarSettings.ParallaxImageId = Resource.Drawable.contact;
 
    this.FloatingActionButtons.Add(new FloatingActionButton("FavoriteButton")
    {
        Position = FloatingActionButtonPosition.BottomRight,
        IconId = Resource.Drawable.favorite,
        AnchorId = Resource.Id.app_bar_layout
    });
}
                

Navigation Drawer

You can now take advantage of the immersive Navigation Drawer. Originally popularized by Google default apps such as Gmail, Play Store, Inbox, Maps, Google Now, etc, the Material navigation drawer is now implemented automatically when you use the new DrawerActivity. The Material navigation drawer follows the same design guidelines as imposed by the Material Design document.

Android Programming, Simplified.

Say goodbye to tedious lines of codes and boost your productivity with these simplified development experiences in Crosslight 5.
Modernized Project Structure

The new Crosslight Android Material development patterns are now more simplified and organized than ever. Right after a Material project is created with the Crosslight Project Wizard, you'll see a new and refreshed project structure.

Most of the unnecessary files are removed, Android class files are now logically grouped. Activity files inside the Activities folder, Fragment files inside the Fragments folders, infrastructural bootstrapper files inside the Infrastructure folder. Launcher icons now use the modern mipmap folders.

Resource Overrides

The new Crosslight Android Material is now loaded with customizations. Customizing different elements and colors for your Android app is now easier than ever.

What you need to do is simply override existing keys and values in your application and your it will immediately take effect across your entire application.

Automatic Back Button

In previous versions of Crosslight Android, you have to explicitly write a certain code to show the back button in the view. Well, all that has changed with the new Crosslight Android Material. The back button is now visible automatically when you perform push, modal or nested modal navigation. Less code to deal with.

Add Toolbar Items with Simple API

In traditional Android development patterns, to specify menu items for your Toolbar, you need to create an XML file and put them under the Resources/menu folder, then specify the layout Id in the Fragment or Activity. That's very tedious.

With Crosslight Android Material, all you need to do is simply override the Initialize method and add one line-of-code to add a toolbar item to the Toolbar.

protected override void Initialize()
{
   base.Initialize();
   this.BarItems.Add(new BarItem("SaveButton", CommandItemType.Done));
}
                
Smart Fragment Navigation

Crosslight Android Material takes the pain out of thinking which view context to use, Activity or Fragment. With the new library, Fragment is now the first-class view context with full navigation support. This means you can just create fragments for all your content views. Under the hood, Crosslight Android Material will seamlessly manage the Activity creation when needed.

This results in much simplified, rapid and maintainable Android development, where you can simply create views by focusing solely on Fragments. Note that Activity is needed only for the main container in the app, and in certain scenarios when different kind of container is desired.

Comprehensive Material Components

To achieve all the amazing Material Design experience with simplicity, the existing Crosslight Android needs to be re-engineered from the ground-up to achieve full Material Design compliance, resulting to a powerful Crosslight Android Material library.

Many tedious operations were streamlined into fragments such as smart TransitionDrawable orchestration needed for shared transitions, parallax effects, floating action buttons, data binding, navigation patterns, and so much more.

Let's explore many of the new Fragment classes available in Crosslight Android Material.

The RecyclerViewFragment

When working on a list of items, ListView was the popular choice for Android developers. In Material Design, the RecyclerView is now the more preferred component when dealing with large amount of data. With strong view holder pattern, the RecyclerView allows for efficient reuse of item cells without any performance degradation.

In order to fully support true Material Design experience, a new RecyclerViewFragment is introduced in Crosslight Android Material. This new fragment supports several new experiences, such as CardView, swipe gesture support, shared transitions and multiple selection.

CardView Support

Available from API 21 and above, modernize your Crosslight app right away with CardView support for RecyclerView. It is the perfect presentation technique to display items with rich visual display that fully complies with Material Design standards.

Swipe Gesture Support

Provide quick actions for an item with the swipe gesture support for RecyclerView. The quick actions now shares the same pattern with iOS development, allowing the actions to be defined at the Core level. Building on mature Crosslight Foundation, it comes with comprehensive data binding support allowing you to reuse the same UI logic and action commands in ViewModel.

Shared Transition Support

Navigate between the list screen to the item editor screen with Crosslight Form Builder with shared transition support.

To enable this feature, you only need to define the shared element and SharedImageIndex in the source Fragment and the target Fragment.

Multiple Selection Support

With the new RecyclerViewFragment, multiple selection action is also supported. Although the cells are being heavily reused, the RecyclerViewFragment is designed smart enough to remember the multiple selection state for each item when the user scrolls through the list of items.

Upon entering multiple selection mode, the existing Toolbar is overlaid by another Toolbar that shows contextual actions. During multiple selection mode, the RecyclerViewFragment's swipe gesture is automatically disabled as swipe gesture makes lesser sense in editing mode.

New Fragment Variants

In addition to RecyclerViewFragment, this release sports even greater and wider range of Fragment components to cater existing scenarios supported in Crosslight Android Classic and even newer scenarios.

SearchableRecyclerViewFragment

The new SearchableRecyclerViewFragment lets you implement search against your collection in the RecyclerView with the ViewModel.

Best of all, it works seamlessly with existing search architecture, so you don’t have to perform any additional effort.

GridViewFragment

Crosslight Android Material comes with an advanced GridViewFragment designed with intuitive API. For example, you can specify the number of GridView columns, item offset, paddings and interaction mode.

It also caters to common business scenarios such as displaying items in a horizontal manner, as shown in the following video. This is all made possible, thanks to the new GridViewFragment for Crosslight Android Material.

FormFragment

The new Material Design language introduced in Crosslight Android Material allows forms to shine on a new level. With clear design guidelines from Google, Material Design has also manifested in forms, effectively changing how Crosslight Form Builder should look and feel, therefore a new FormFragment is introduced.

The entire lineup consisting of 15+ form builder editors are now redesigned and refined for Material design, including its font size, margin, and paddings are now taken into account.

MasterDetailFragment

In this release, a new MasterDetailFragment is introduced for Material Design. This component was originally introduced back in Crosslight 2, which allows users to perform master detail navigation on tablets. With the new MasterDetailFragment, you can easily replicate the same user experience with Material Design look and feel.

NestedFragment

Similar to the MasterDetailFragment, the new NestedFragment allows users to perform two-level master detail navigation on tablets. This is useful for business scenarios in which the list may contain a sublist of items. Originally introduced in Crosslight 2, the new NestedFragment is now refined and redesigned to match Material Design standards

SplitFragment

If you prefer a iPad style split view, then this is the right Fragment for you.

Introducing the new SplitFragment, this Fragment allows you to have a completely two separate Fragments where the Fragment have their own Toolbars each with its own navigation.

SearchActivity

The new SearchActivity is a special Activity class which handles search performed by child views, for example, view pagers, centralized in just one parent SearchActivity. Inspired from the simplicity and elegant beauty of iOS, the new search activity also feature a translucent background in initial state, giving subtle transition effect and better user experience.

Gorgeous Material UI Components

The new and modern UI language introduced in Material Design also affects how Crosslight Android Material apps look and behave. Re-engineering was inevitable, and the end result is Android apps now looks even more stunning UI components that blends perfectly with Material Design.

MapFragment

Crosslight Maps are also compiled and tested against the new Xamarin support libraries, ensuring maximum compatibility with Lollipop.

ViewPagerFragment

Due to shared transitions framework introduced in Material Design, the existing ViewPagers also need to be revamped.

Now ViewPagers support the use of multiple floating action buttons, for each tab, which are smoothly animated during tab transition from one tab to another.

Material Activity Presenter

In older versions of Crosslight, Activity Presenters's designs were heavily influenced by the Holo theme, which looks very dark and black. In Crosslight 5, the Activity Presenter's UI is upgraded to use enhanced ProgressDialog so that it displays presenters Android users are familiar with.

It still retains three method overloads supported by Crosslight Activity Presenter in the ViewModel. It will be automatically applied when you migrate to Crosslight 5.

Material Buttons

The older Holo-themed buttons just won't cut it to Material Design. As a result, buttons are also upgraded to use the two variants of Material Design, the Raised and Flat buttons. The buttons feels modern and second nature to Material Design.

This will also be automatically applied when you migrate to Crosslight 5.

Upgrading Your Project to Material Design

Now can easily enjoy all these great features and start adopting Material Design right into your existing Crosslight apps.

Crosslight Core Improvements

In addition to sweet Material designs, Crosslight 5 also sports several API improvements when working with the the Core project.

New Action Toast Presenter

With the new Action Toast Presenter, you'll be able to present new possibilities to your users once they have performed an action, for example, undoing the previous action.

Easily Set Title from the ViewModel

The new Crosslight 5 lets you set the Title for each screen straight from the ViewModel, instead of having to manually set each view Title for each platform. Small, yet notable improvement.

Supercharged Development with NuGet Packages

It’s as simple as 1, 2, 3. Crosslight now fully takes advantage the power of NuGet Package Manager to install, restore and update Crosslight packages.

Installing Crosslight on Mac

1. Open your project using Xamarin Studio

2. Open Intersoft Package Console Extension

3. Run this command

Install-Package Intersoft Crosslight -allPackages

You've successfully installed Crosslight on Mac.
Say goodbye to tedious packages reference management.

Installing Crosslight on Windows

1. Open your solution in Visual Studio

2. Right click-on your solution and select Manage NuGet Packages for Solution.

3. Search for Intersoft.Crosslight and install to all products.

You've successfully installed Crosslight on Windows.

For a more comprehensive information on additional commands, updating and restoring NuGet packages, visit the documentation.

Revolutionary Crosslight UI Components

In addition to Material Support, Crosslight 5 also adds a variety of new UI components to help you build apps faster than ever.

Gauge and Circular Chart

With full MVVM compatibility and supporting 20+ types of charts, the new circular gauge lets you display real-time data with customizable chart elements. The charts are designed to load quickly in seconds with lightweight footprint.

Signature Pad

Capturing signatures with Crosslight is no longer a hassle with the new Signature Pad. Fully built from the ground up, it lets you take signatures with no lag and full MVVM compatibility with the ViewModel and integrates beautifully with Crosslight Form Builder.

Calendar 2.0

Display your custom events using Crosslight Calendar 2.0. The reintroduced Calendar View now renders more consistently and neater on smaller devices such as phones.

Crosslight.iOS Improvements

In addition to the very focused improvements towards Material Design, Crosslight.iOS also receives some nice upgrades in this release. These upgrades will surely help you take advantage of the latest and greatest SDKs available for your Crosslight app.

iOS 9 Support

With full MVVM compatibility and supporting 20+ types of charts, the new circular gauge lets you display real-time data with customizable chart elements. The charts are designed to load quickly in seconds with lightweight footprint.

Full Storyboard Support

With Crosslight 5, now you can use UICollectionViewController, UIMasterDetailViewController, and UITabBarController with full storyboard support. With Storyboards, you no longer need to specify multiple XIBs for content-based views. Simply use one storyboard for your entire iOS projects and adapt to various screen sizes and orientations using full Auto Layout support

Form Builder Improvements

Display your custom events using Crosslight Calendar 2.0. The reintroduced Calendar View now renders more consistently and neater on smaller devices such as phones.

Prior to Crosslight 5, when you use the ImageView editor with Form Builder, it can only be contained inside a section that has its layout specified to ImageWithFields. Now you can use ImageView independently regardless of its container's section layout.

Modern Transparency API

With Crosslight 5, now you can take advantage of the new modern transparency transition API for UINavigationControllers. Take a look at the video. Notice how the NavigationController's status bar is fully transparent while performing navigation.

Typically, achieving this effect is very hard, as common implementations require reengineering of the NavigationControllers, which may lead to a loss of native user experiences, such as the left-edge swipe gesture to return to previous screen. This new API retains the originality and native functionalities of the UINavigationControllers, while still achieving the transparency effect elegantly.

Deeper and Better IDE Integrations

As software development world is constantly evolving, so do Crosslight. Adding deeper integration your favorite IDEs, Visual and Xamarin Studio, this release focuses on development productivity while achieving a frictionless getting started experience.

Crosslight Project Wizard

Creating Crosslight projects have never been easier, thanks to Crosslight Project Wizard. In our biggest release ever, the Project Wizard is now revamped and further refined.

  • Projects created using the Project Wizard now uses simplified and modernized project structure, with removal of unnecessary files.
  • The generated Core project now uses the standard Profile78 instead of Profile158 for greater compatibility with other third-party components such as Microsoft BCL.
  • WYSIWYG experience when choosing primary colors in creating Material projects. Android files are now logically grouped in respective folders, also adding support for mipmap icons.
  • Created iOS projects now uses full storyboard support, revised Info.plist files to add support for iOS 9 features, such as the use of StackView in Storyboards. Icons and launch screens now use AssetCatalog for centralized assets management.
  • Created projects now reference to Crosslight NuGet packages which greatly simplify cross-platform development workflow.
Visual Studio F1 Help Integration

Want to know more information about a particular class, method or property? Simply put your cursor over and press F1 on your keyboard and you'll be taken to the reference documentation. Works for Visual Studio 2012 and above.

NuGet Package Extension for Mac

After you've successfully installed Crosslight onto your Mac, you'll be able to take advantage of the new NuGet package extension for Mac. Resolving Crosslight assemblies are no longer a chore. Just execute this code in the Intersoft Package Manager Extension and Crosslight will be installed automatically to all of your projects.

Install-Package Intersoft.Crosslight -allPackages
Material Item Templates

This release adds new Android Material item templates targeting Crosslight Android Material project enabling you to get started quickly with the new Material classes available in Crosslight 5. Simply install the latest Mobile Studio to enjoy this feature on Xamarin Studio and Visual Studio.

Improved Documentation with New Starter Walkthroughs

To help you get started with Crosslight even faster and easier, we've created an entire new, walkthrough-style documentation which guide you through detailed, step-by-step instructions in various development aspects.

Note that the new walkthrough documentation is not meant to replace the existing conceptual documentation, but rather a supplementary to the current documentation. New starter walkthroughs will be added periodically.

Frictionless Crosslight Samples Experience

In this release, getting started with Crosslight samples is now a frictionless experience. All you have to do is just open up the sample, restore NuGet packages and run. Here’s a 2-minute video that shows the new getting started experience:

In addition, these samples also receive these great updates:

  • All samples are now directly runnable using NuGet packages, so you don't have to deal with tedious hassles to fix your references. It's as simple as three steps: download the sample, restore the NuGet packages, and run the sample.
  • Added Android.Material project — building on the new Crosslight.Android.v7 library.
  • Dropped classic Android project.
  • iOS project is now redesigned with universal storyboard instead of XIB.
  • Core project has been much improved to comply with best practices and API introduced in Crosslight 5. For instance, setting Title can be simply done in ViewModel. The associated view in iOS and Android will automatically take that. This means less code to concern in the view.
  • Core project now uses Profile78 as our new PCL standards. This will allow you to consume most BCL packages from Microsoft.
  • Crosslight samples that use WebAPI can now run directly – no Windows required. By default, all WebAPI samples are now pointing to Intersoft’s public WebAPI endpoint. If you wish to change it to your local WebAPI, that’s just one property value to set.

Cleaner and Modular Samples Repository

As Crosslight matures, more samples are being added to the repository, resulting in a humongous download size. This poses a problem when you need to download and try out a single sample. In this release, we’ve separated each sample into its own repostiory, resulting in a cleaner and modular samples.

In addition, the samples are now categorized into basic, data, app, services, and ui samples. If you just starting out with Crosslight, checking out basic samples are highly recommended.

Previous Next