Advanced developer lesson with AdvancedRecyclerView :)



Have you ever tried to implement all those fancy features seen in Google applications like: Swipe To Delete, Grouped lists with Expand Collapse features?

Have you ever needed to implement RecyclerView Header or Footer quickly ?

Maybe you have accomplished those tasks but you are one of #MvvmCross-fanatic (as I am 🙂 ) – and you are angry at the lack of data bindings..?

If you have said “yes” at least once during reading those questions I am coming with solution to your problems with my new library… MvvmCross.AdvancedRecyclerView !

MvvmCross.AdvancedRecyclerView is an AdvancedRecyclerView Mvx wrapper. It adds MvvmCross-style data bindings to AdvancedRecyclerView – a library which implements inter alia: high performance Expandable Grouped Lists, Swipe-To-Delete, Header and Footer RecyclerView support.
Besides MvvmCross support package I have published bindings library for AdvancedRecyclerView.

Just check this awesome library in action: – preview video available. Thanks Haruki Hasegawa !

Check documentation I have created today and feel free to type:

Install-Package MvvmCross.AdvancedRecyclerView
… or
Install-Package Xamarin.Bindings.AdvancedRecyclerView (if you plan to use pure library without MvvmCross bindings)

in your NuGet Package Manager Console 😉

… by the way – full story of MvvmCross grouping support  🙂

Some of you might remember my attempt/implementation of Grouping in MvvmCross RecyclerView support package which got to the official nuget channel.
I have even presented it on Xamarines – ..but well as it was my first public presentation I personally think I have failed there as well – buried with stress 🙂

No worries though – I am getting better 😀 … and I think I have solved Xamarin.Android grouped lists problem as well now 🙂

The things is – I have made biggest mistake software developer can make. Tried to be smarter than others and I tried to reimplement the wheel.

During testing it brought a lot of bugs, performance was not sufficient – therefore it had to be removed for a while – turns out implementing grouping is a really difficult task. Instead of trying to fix it at the all cost I decide to seek smarter way of doing grouping.

I recalled that I have used and even published some Pull Requests to library which implemented expandable lists (AdvancedRecyclerView). I looked at this library Java Code once again and it was pretty complex. Instead of coding all the logic in Xamarin – I decided to just create MvvmCross bindings around this java library. It wasn’t as easy as I thought though.

Lesson learned – if you plan to implement some pretty complex feature look at similar, open source code – if it looks difficult, try to take as much as possible from other people work (IF LICENSE ALLOWS THAT, I don’t want to visit my readers in jail 😀)

Thanks once again to InsaneLab – my developer home for giving me time to work on this awesome project!


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s