Thursday, March 23, 2017

Cache Images and Handle a Byte Array in the Xamarin Forms ListView

Article Url: https://visualstudiomagazine.com/articles/2017/03/01/xamarinforms-ios-android-mobile-visual-studio.aspx

I’ve always been concerned when working with images. I'm always careful with how my applications use them, as images can be relatively large and apps will typically download them via a cellular or slow Wi-Fi connection. So you might not be so concerned with image size when it takes only a few hundred milliseconds to download, but those milliseconds can add up when your app is trying to download a large number of them.

In a number of previous columns, I’ve focused on how to make a Xamarin Forms (XF) application look and act more like a native application. I'll continue along and this time I’ll look at how you can use the Xamarin.Forms ListView to cache images so that you can use the images in other locations in your application with application performance in mind.

Xamarin.Forms ListView is the equivalent of the UITableView in iOS and the ListView in Android. It allows you to present a simple grid of data to the user. The user is able to easily scroll through the data, and binding textual data to it is also a snap.

One of the problems that I see with XF ListView is that there has only been one way to easily bind the image in an ImageCell in a ListView, and that's by passing the URL of the image to the cell. ListView is then responsible for downloading the contents of the URL, handling the contents of the download, formatting the image contents and displaying the image.

The problem is that I would like to download the bytes of an image once, to a cache, and then have the cached bytes available whenever the application needs them. For example, the golf application I've been developing along with this article series displays a list of team pictures. I would like it to be able to touch the cell, have another screen open and display the image without going to the server to get it. To do this, I need to be able to cache the images. Because the application will cache the image content as a byte array, the application will need to convert from a byte array to an image, so there will need to be a Xamarin.Forms image converter to handle the binding.

I hope you enjoy the article.

Monday, March 6, 2017

Intellectual Property and Your Startup


Now that you've gotten deep into thinking about your startup, it's time to think about the meaning of intellectual property. So, what is it and why is it important to define it in the context of your startup?

You're familiar with personal property as well as business property. Personal and business property – those are fairly tangible items. It encompasses things like the desks, chairs, the computer equipment, the office lease. But your startup is riding on the code you – and maybe a team of other developers or people you might contract out for hire -- create and it's not as tangible.

So, have you given any thought to what encompasses your startup's Intellectual property, or IP? I bet it wasn't the first thing that came to mind when you started thinking about a startup or even when you were in the middle of doing the work necessary to get your startup off the ground. But guess what? It's incredibly important because, as you'll soon realize, your IP is the foundation of your startup. Let's look at the basics of IP, what make up the various types of items in an IP, what's their value, and what you should be doing to protect them.