Windows Phone

Use Telerik RadControls for WP? Then use RadDiagnostics to enable users to find bugs!

I know this is a little provocative title – that is my intention. And of course I will tell you why.

I am participating in several betas for Windows Phone apps. I know some of the developers from Twitter, and had several conversations  about bug finding and solving methods. In the end, we as developers have all one goal: a buttery smooth running app without any bugs.

Some of the betas I use are also using Telerik RadControls. They enable us developers to easily create awesome apps without writing the controls form the ground up. On Top, we are able to customize them for our needs with a bit of XAML manipulation.

One of these controls is RadDiagnostics. RadDiagnostics is catching all unhandled exceptions from your application. And believe me, there will be a ton of it – even if you handle a lot of them already.

I didn’t believe that, too. But then I ran the beta of my TweeCoMinder app for Windows Phone. I tested the app a lot before publishing my beta, including several scenarios like no network connection available, low battery, and so on. At this time, I stumbled over the RadDiagnostics Control in the documentation.
I immediately saw the advantages of using this control:

  • advanced error logging, including a great bunch of information like OS Version, device, network type, and more
  • the app won’t crash even on unhandled exceptions
  • the user feels more integrated in the development process
  • users tend to use the app in other ways than we developers think – and we can’t even get close to catch all those usage scenarios while testing alone
  • there are a lot of users that are really searching for bugs – which is both a good and a bad thing

Let me hook into the last point a bit deeper – as we are able to get the most from it. If users find bugs, they will get either annoyed and stop using our apps or they will talk about it. Let us make them talk about the problems to us, the developer! Like I mentioned above, the RadDiagnostics control makes this very easy for the user.

A MessageBox shows up where the user is asked to send us the report, which is done via email. This has two additional advantages: First, we are able to collect all kind of errors. An even bigger advantage: We are able tor respond directly to the user as we have their mail address. I learned a lot during the first beta versions of TweeCoMinder, be it how users use my app as well as from the coding part – and I was able to continuously improve my app.

Some of you might argue that you don’t want the user to see your code. Really, that is stupid. An average user does not even know what all those lines in of the exception mean. Only developers are able to understand what is going on. Where is the problem? That they see you have an exception at point x? Chances are very high, that they had the same exception at another point and needed them to iron out.

Personally, I don’t have a problem with the fact that the exception is readable for some beta tester/users. I made the experience that users love to give feedback – if you make it very easy for them. RadDiagnostics is a very easy way as it needs only three taps (ok => choose mail account => send button).

As this is a dev post, here is how easy it is to integrate it into your app:

  • Declare the RadDiagnostics in public partial class App : Application
    public RadDiagnostics diagnostics;
  • Initiate Telerik ApplicationUsageHelper in private void Application_Launching(object sender, LaunchingEventArgs e)
ApplicationUsageHelper.Init("0.9.5");
  • call RadDiagnostic in the App() constructor:
diagnostics = new RadDiagnostics();
 {
diagnostics.EmailTo = "yourmail@outlook.com";
diagnostics.EmailSubject = "Here is your email subject";
diagnostics.HandleUnhandledException = true;
diagnostics.Init();
 }

That’s all you need to get it working. A few line of codes that will give you so much input to improve your app, which will result in this message:

ReadDiagnosticsMSG

Once again, if you use RadControls for Windows Phone, then use RadDiagnostics to let users help you finding bugs. You will not get better and more helpful feedback other than this!

You can find the complete documentation of RadDiagnostics here: http://www.telerik.com/help/windows-phone/diagnostics-gettingstarted.html

Another great article that helps you to deeply understand how RadDiagnostics work is over at Kunal Chowdhury’s blog.

Feel free to discuss your sight below in comments. Until then, Happy coding!

Posted by msicc in Dev Stories, wpdev, 0 comments

Nokia promoting his Lumia 925 at German carrier o2

WP_20130709_004

As some of you know, I am working for the German phone carrier o2. Today a Nokia promotion team visited us to show us more of the Lumia awesomeness and gifted us some ice cream.

The promotion is called “Nacht.Sicht.Gerät”, which means “Night. Sight. Device”.

Within the truck Nokia showed off the FatBoy chargers and the Purity wireless headset. They weren’t working with my current Lumia 925 testing device – the promoter said it was due to the fact that my battery was already full. Honestly I think there was no charger in it.

WP_20130709_010

 

There was also the possibility to win something. For that, Nokia put up giant Lumia Buzzer automat, where you had to hit the buzzer as often as the screen said. The price was some Nokia Lumia swag (yes, that’s me on that pic).

 

WP_20130709_009

 

At least Nokia was demonstrating Nokia SmartCam. You could wear a “Man of Steel” costume and be photographed behind in front of this scenery from the movie:

 

WP_20130709_008

 

Sadly I did not find the time to let me photograph there. Funny thing:  there was also some Kryptonite Candy swag (get it?).

Here one final image for all the swag I was able to get:

WP_20130709_015

 

Good to see Nokia is still pushing their Lumia phone(s) and their accessories and helping Windows Phone to get more acceptance.

Posted by msicc in Windows Phone, 0 comments

How to use and customize “pull to refresh” on Telerik RadDataBoundListBox

If you are following me and my development story a little bit, you know that I am building a new app (ok, it’s RTM already).

I wanted to add a manual refresh button to my MainPage, but there was no place left on the AppBar. So I started thinking about alternatives. As I am using a lot of Telerik controls, I found something that perfectly suits my needs: RadDataBoundListBox .

Wait… what?

You read it right, I am using a ListBox that holds only one item. The reason is very easy: It has the “pull to refresh” feature built in. But it is not all about adding it and you are fine.

raddataboundlistbox-features-pulltorefresh

The first thing we need to do is to set the “IsPullToRefreshEnabled” property to “True”. Honestly I don’t like the controls arrow as well as I wanted to remove the time stamp line on it.

Luckily, we are able to modify the control’s style. Just right click on the RadDataBoundListBox in the designer window and extract the “PullToRefreshIndicatorStyle”.

Screenshot (187)

After choosing whether you want the new Style to be available only on one page or in your app over all, name the new Style as you like. This will add the XAML code as a new style to your application/page resources. Now the fun begins. The first thing I changed was the arrow.

To do this,  I added the beloved metro arrow in a circle (go for the “ContentPresenter  with the name “PART_Indicator””) – done:

<Viewbox xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<Grid>
 <Grid Name="backgroundGrid" Width="48" Height="48" Visibility="Visible">
   <Path Data="M50.5,4.7500001C25.232973,4.75 4.75,25.232973 4.7500001,50.5 4.75,75.767029 25.232973,96.25 50.5,96.25 75.767029,96.25 96.25,75.767029 96.25,50.5 96.25,25.232973 75.767029,4.75 50.5,4.7500001z M50.5,0C78.390381,0 101,22.609621 101,50.5 101,78.390381 78.390381,101 50.5,101 22.609621,101 0,78.390381 0,50.5 0,22.609621 22.609621,0 50.5,0z" Stretch="Fill" Fill="#FFF4F4F4" Name="Stroke" Visibility="Visible" />
     </Grid>
       <Path Data="F1M-224.887,2277.19L-240.615,2261.47 -240.727,2261.58 -240.727,2270.1 -226.173,2284.66 -221.794,2289.04 -202.976,2270.22 -202.976,2261.47 -218.703,2277.19 -218.703,2235.7 -224.887,2235.7 -224.887,2277.19z" Stretch="Uniform" Fill="#FFFFFFFF" Width="26" Height="26" Margin="0,0,0,0" RenderTransformOrigin="0.5,0.5">
         <Path.RenderTransform>
             <TransformGroup>
                <TransformGroup.Children>
                  <RotateTransform Angle="0" />
                     <ScaleTransform ScaleX="1" ScaleY="1" />
                 </TransformGroup.Children>
              </TransformGroup>
          </Path.RenderTransform>
   </Path>
</Grid>
</Viewbox>

No we are going to  remove the time stamp. If you simply delete the TextBlock, you will get a couple of errors. The TextBlock is needed in the template. What works here is to set the Visibility to Collapsed. As the control has different Visual States, we need to set the Visibility of every occurrence of  “PART_RefreshTimeLabel” in every state to collapsed. Finally we need to do the same at the TextBlock itself to hide the time stamp line.

Ready… or not?

Now we have our style ready to be used, right? Let’s have a look how it looks when we are using our control right now:

(link for app users)

As you can see, the behavior of the Pull to refresh – control is not like expected. In this state, we have to throw it up first, then it will recognize the pull gesture. To get rid of this, we need to adjust two additional things.

The first thing we need to do is set the “UseOptimizedManipulationRouting” property to “False”.

Second, after setting the ItemsSource of the RadDataBoundListBox, we need to bring the first item into view. You can do this very easily:

RadDataBoundListBox.BringIntoView(ItemsSourceName.First());

After that, we have finally a customized and smooth Pull to refresh function on our RadDataBoundListBox:

(link for app users)

At this point I want to give a special thanks to Lance and Deyan from Telerik for their awesome support on this case.

Happy coding everyone!

Posted by msicc in Dev Stories, wpdev, 0 comments

Game Review: EA Real Racing 2 for Windows Phone

It has been a very long time now that I did my last game review, but Real Racing 2 somehow made me changing this.

wp_ss_20130523_0012

 

Although the game is a Lumia Exclusive and has a relatively high price ($4.99/€4,99), I love racing games. After playing around with the trial version, it was clear that I’ll buy it. It needs 243 MB of your phone storage to work.

So let’s get into the game:

First, you need to choose a car to get into the racing cups and leagues. Therefore you get 25.000 bucks to buy a new car. I started with the Volkswagen Golf GTI, but you are also able to choose a 2010 Volvo C30.

wp_ss_20130523_0007

After buying your first car, you will have no money left for the moment, so you need to start your first race. There are 5 different ways to control the game, I prefer the “Auto acceleration-Tilt to steer”-touch to brake combo.

I switched off the steering and the brake assistant because I want to control the car by myself (or even not, you will see).

wp_ss_20130523_0004

In most races you’ll start from the very last position and need to drive through to position 1. This is a bit tricky for the first races, because the CPU drivers are closing gaps very hard partly, but you will find a way to pass them after you have made some experiences with it. Sometimes it also helps to be as rough as the CPU drivers.

You have 5 different camera angles which you can use during a race:

  • in car
  • behind the car – near
  • behind the car – far
  • front on top of the engine hood
  • front bumper

I often us the front bumper angle, but with Real Racing 2 it is a lot of more fun to use the in car angle. The movements of the driver are realistic, which makes the whole game play more realistic.

Of course, like every good racing game, Real Racing 2 let’s you pimp your car a little bit. There are upgrade packages which you can buy like Racing brake pads or a chip tuning for your engine.

wp_ss_20130523_0009

Besides the career mode, you can also play Quick Race, Time Trial or Multi Player. There is also a Leaderboard, where you can check how good you are compared to your friends.

Cars from the following  constructors are available:

  • BMW
  • Chevrolet
  • Ford
  • Jaguar
  • Lotus
  • McLaren
  • Nissan
  • Volkswagen
  • Volvo

Every constructor has street models as well as special racing models to choose from. Over all, I already love this game, and hardly can put it down.

Here is a short demonstration of the game in action. Thanks to my son Daniele, who was the “camera man” for this video:

If you use my blog reader app, click here to open the browser.

You can download the game here in the Windows Phone Store.

Posted by msicc in Game Reviews, Windows Phone, 0 comments

Editorial: Samsung Ativ S – a Windows Phone that should not be

I managed to get my hands on a Samsung Ativ S recently and to play around with it a bit. This post is about my experience.

First, of course I am happy about every OEM that releases a Windows Phone Device. But Samsung achieved something I never thought it would happen to me: I wish they would have not released the Ativ S.

Ok, let’s check the device itself:

If you open the package and see the device, you will see immediately that the Ativ S is a revamped device. It looks identical to the Samsung Galaxy S3. Even the lock screen wallpaper is the same. First bad feeling on that device.

WP_20130326_002

First positive thing: the display. The Ativ S uses Samsung’s AMOLED technology, which is really a good piece of technology. Colors are strong, and the display illuminates very well in the dark as in the light.

As it is a Windows Phone, the social networks integration works as you’d expect. Apps are working like they should, no surprise here.

Let’s check the Samsung Zone in the Windows Phone Store. Samsung has only a few apps they provide. They have a diary app, some photo apps, a RSS reader, their on ChatON app and a Music Hub. The biggest part of the Samsung Zone are Dictionary apps.

wp_ss_20130330_0001

I did not test all of the apps, but the apps I tested did not feel spectacular or made me want to use them again.

Even HTC, who also produces also Android devices, has lead me to more enthusiasm for their apps than the Samsung Apps do.

Ok, now let’s take another look at the hardware. The device feels very light-weight in your hand. On the other side, it feels very cheap. They brushed the back cover to look like solid metal cover, but it feels just like plastic.

WP_20130330_009

I had multiple Smartphones in my hands already, even plastic could feel better.

The only advantage I can see is the extreme large battery, which has a very good life time.

Clearly Samsung needed to bring a Windows Phone 8 device to the market as a Microsoft Partner. But they did it in a wrong way.

Using the hardware of one of their Android devices makes sense from the economic view. But they could not expect to be successful with that.

My conclusion: This device will get some attention from Samsung fans, but I doubt it will be one of the top Windows Phones. The only recent news about the Ativ Series (both Windows and Windows Phone) were that Samsung discontinues distribution to certain markets, which is not surprising me after I had the chance to play around with the Ativ S.

Posted by msicc in Windows Phone, 10 comments

How to search the Windows Phone Store within your app

MPSearch

I am currently working on my NFC app, and I want to make it easier for the end user to search for the AppId which you need for the LaunchApp record. So I thought about a possible solution for this, and of course the easiest way is to search the app.

If you only want to search the Windows Phone Store and let show some search results, there is the MarketplaceSearchTask, which you can call as a launcher. The only problem is, you cannot get any values into your app this way. But I found a way to get the results into my app. This post is about how I did it.

The first thing you will need to add to your project is the HTMLAgilitypack. It helps you parsing links from an HTML-based document. Huge thanks to @AWSOMEDEVSIGNER (follow him!), who helped me to get started with it and understand XPath. Xpath is also important for the HAP to work with Windows Phone. You will need to reference to System.Xml.Xpath.dll, which you will find in

%ProgramFiles(x86)%Microsoft SDKsMicrosoft SDKsSilverlightv4.0LibrariesClient or
%ProgramFiles%Microsoft SDKsMicrosoft SDKsSilverlightv4.0LibrariesClient

Ok, if we have this, we can continue in creating the search. Add a TextBox, a Button and a ListBox to your XAML:

            <Grid.RowDefinitions>
                <RowDefinition Height="90"></RowDefinition>
                <RowDefinition Height="90"></RowDefinition>
                <RowDefinition Height="*"></RowDefinition>
            </Grid.RowDefinitions>
            <TextBox x:Name="MPsearchTerm" Height="80" Grid.Row="0"></TextBox>
            <Button x:Name="searchButton" Height="80" Grid.Row="1" Content="search" Click="searchButton_Click_1"></Button>
            <ListBox Grid.Row="2" x:Name="ResultListBox">
                <ListBox.ItemTemplate>
                    <DataTemplate>
                        <StackPanel Orientation="Horizontal">
                            <Image Source="{Binding AppLogo}" 
                                   Height="50" 
                                   Width="50" 
                                   Margin="10,0,0,0">
                            </Image>
                            <TextBlock Text="{Binding AppName}"
                                       FontSize="32"
                                       Margin="12,0,0,0" >
                            </TextBlock>

                        </StackPanel>

                    </DataTemplate>
                </ListBox.ItemTemplate>
            </ListBox>

After creating this, we will hook up the Click-Event of our Button to create our search. We are going to use the search of windowsphone.com to get all the information we want. You can parse any information that you need like ratings etc., but we focus on AppId, Name of the App and of course the store Logo of each app.

First, we need to create the search Uri. The Uri is country dependent like your phone. This is how we create the Uri:

string currentLanguage = CultureInfo.CurrentCulture.Name;
string searchUri = string.Format("http://www.windowsphone.com/{0}/store/search?q={1}", currentLanguage, MPsearchTerm.Text);

After that, we are using a WebClient to get the HTML-String of  the search. I used the WebClient as I want to make it usable on WP7.x and WP8.

//start WebClient (this way it will work on WP7 & WP8)
WebClient MyMPSearch = new WebClient();
 //Add this header to asure that new results will be downloaded, also if the search term has not changed
// otherwise it would not load again the result string (because of WP cashing)
MyMPSearch.Headers[HttpRequestHeader.IfModifiedSince] = DateTime.Now.ToString();
//Download the String and add new EventHandler once the Download has completed
 MyMPSearch.DownloadStringCompleted += new DownloadStringCompletedEventHandler(MyMPSearch_DownloadStringCompleted);
MyMPSearch.DownloadStringAsync(new Uri(searchUri));

In our DownloadStringCompletedEvent we now are parsing the HTML-String. First thing we need to do is to create a HTML-Document that loads our string:

//HAP needs a HTML-Document as it is based on Linq/Xpath
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(e.Result);

The next step is a bit tricky if you do not know Xpath. You need to got through all the HTML elements to find the one that holds the data you want to parse. In our case it is the class called “medium” within the result table “appList”.

var nodeList = doc.DocumentNode.SelectNodes("//table[@class='appList']/tbody/tr/td[@class='medium']/a");

Note that you have to use ‘ instead of ” for the class names in Xpath. I recommend to open a sample search page in an internet browser and look into the code view of the page to find the right path.

image

Now that we have a NodeList, we can parse the data we want:

foreach(var node in nodeList)
            {
                //get AppId from Attributes
                cutAppID = node.Attributes["data-ov"].Value.Substring(5, 36);

                //get ImageUri for Image Source 
                var ImageMatch = Regex.Match(node.OuterHtml, "src");
                cutAppLogo = node.OuterHtml.Substring(ImageMatch.Index + 5, 92);

                // get AppTitle from node
                //Beginning of the AppTitle String
                var AppTitleMatch = Regex.Match(node.InnerHtml, "alt=");
                var StringToCut = Regex.Replace(node.InnerHtml.Substring(AppTitleMatch.Index),"alt="",string.Empty);
                //End of the AppTitle String
                var searchForApptitleEnd = Regex.Match(StringToCut, "">");
                //FinalAppName - cutting away the rest of the Html String at index of searchForApptitelEnd
                // if we won't do that, it would not display the name correctly
                cutAppName = StringToCut.Remove(searchForApptitleEnd.Index);
           }

As you can see, we need to perform some String operations, but this is the easiest way I got the result I want – within my app. As always I hope this will be helpful for some of you.

You can download full working sample here:  MarketplaceSearch.zip

Happy coding!

Posted by msicc in Dev Stories, Windows Phone, wpdev, 0 comments

Announcement: beta test for NFC Toolkit

 wp_ss_20130201_0002

NFC Toolkit, my latest app project, is ready for a first beta look.

If you want to take part in this beta, please consider following points before applying:

  • You need a WP8 device with NFC
  • You will need NFC tags for now, as communication between devices is still in development
  • You are willing to give serious feedback to improve the app

This will be a long time beta, means that even if the app goes live for all customers, I will continue developing with this beta before launching new versions. If you join the beta, you can use and test all new features before all others.

NFC Toolkit aims at normal users, that don’t need all to technical information but want to use NFC.

The beta has following features at the moment:

  • basic tag reading
  • tag writing of most commonly used tag scenarios
  • profiles! This is one of the main features of NFC Toolkit. It is all about settings based on a NFC tag.
  • more unique features to come!

Send your MS Account via mail, if you want to participate in beta testing this all new Windows Phone 8 app.

 

Posted by msicc in my apps, 0 comments

Application ID’s of built in Windows Phone 8 apps

 

As you may have noticed, I am currently working on an NFC app. Development goes pretty well at the moment, thanks to the absolutely awesome and easy to use NDEF library by Andreas Jakl.

If you want to open apps from your app or from an NFC tag, you will need to use the AppId of the desired app. If you have an installed app from the Windows Phone Store, this is pretty easy. You can go to the application list on your phone, long tap and hit “send”. If you now choose mail or SMS, you can obtain the AppId very easy, as it is the last part behind “appId=” on the web address.

With the built in apps, it is a bit more difficult. Luckily, the app NFC interactor for Windows Phone 8, which is aimed at developers, has a solution. The app is written also by Andreas Jakl, who provides a huge tool with this app to support you on developing your own app and it is worth every cent.

I made it through all records for built in apps and extracted the following list, which might come handy for some of you:

  • Alarms AppId 5B04B775-356B-4AA0-AAF8-6491FFEA560A
  • Bing Scan AppId 5B04B775-356B-4AA0-AAF8-6491FFEA5682
  • Calculator AppId 5B04B775-356B-4AA0-AAF8-6491FFEA5603
  • Calendar AppId 5B04B775-356B-4AA0-AAF8-6491FFEA5612
  • Camera AppId 5B04B775-356B-4AA0-AAF8-6491FFEA5631
  • Data Sense AppId 5B04B775-356B-4AA0-AAF8-6491FFEA5646
  • Games AppId 5B04B775-356B-4AA0-AAF8-6491FFEA5634
  • Help+Tips AppId E05410F1-753B-47BC-B101-226E5802B9E1
  • IE AppId 5B04B775-356B-4AA0-AAF8-6491FFEA5660
  • Maps AppId 5B04B775-356B-4AA0-AAF8-6491FFEA5661
  • Messaging AppId 5B04B775-356B-4AA0-AAF8-6491FFEA5610
  • Music+Videos AppId 5B04B775-356B-4AA0-AAF8-6491FFEA5630
  • Office AppId 5B04B775-356B-4AA0-AAF8-6491FFEA561E
  • OneNote AppId 5B04B775-356B-4AA0-AAF8-6491FFEA561B
  • People AppId 5B04B775-356B-4AA0-AAF8-6491FFEA5615
  • Phone AppId 5B04B775-356B-4AA0-AAF8-6491FFEA5611
  • Photos AppId 5B04B775-356B-4AA0-AAF8-6491FFEA5632
  • Rooms AppId 5B04B775-356B-4AA0-AAF8-6491FFEA562D
  • SIM Applications AppId 5B04B775-356B-4AA0-AAF8-6491FFEA562C
  • Start (Home Screen) AppId 5B04B775-356B-4AA0-AAF8-6491FFEA5602
  • Store AppId 5B04B775-356B-4AA0-AAF8-6491FFEA5633
  • Wallet AppId 5B04B775-356B-4AA0-AAF8-6491FFEA5683

All credits for this App IDs goes to Andreas Jakl, I only put them together as a list to find them more easily.

Posted by msicc in Dev Stories, wpdev, 4 comments

Dev Story Series (Part 4 of many): How to open links from a WebBrowser/WebView in Internet Explorer

XAMLWebView

Today I will share my solution of how to open links from a WebBrowser or WebView on Windows Phone and Windows 8 (as I did in my app for msicc.net).

Generally links are opened within the same WebBrowser or WebView element. On Windows Phone you can solve this problem pretty easy with only one simple method:

public void WebBrowser_Navigating(object sender, NavigatingEventArgs e)
        {
            e.Cancel = true;
            WebBrowserTask wbt = new WebBrowserTask();
            wbt.Uri = e.Uri;
            wbt.Show();
        }

In Windows 8 this gets a bit more complex. There is no Navigating method, and this is why we have to combine different languages together. We will use the ScriptNotify event to pass the link via a small java script and launch IE with the new link.

First, you need to add the function to your HTML string.  I used a RegEx method to add all the pattern that is needed to all links. As I know that a lot of us (especially junior devs like me) have their problems with RegEx, here is my method to add them:

public static string AddScriptToLink(string text)
        {
            const string hrefScript = " onclick="return OnLinkClick('{0}')" ";
            const string pattern = @"href=""(.*?)""";

            var result = text;

            var matches = Regex.Matches(text, pattern);
            var sortedMatches = matches.Cast<Match>().OrderByDescending(x => x.Index);
            foreach (var match in sortedMatches)
            {
                var replacement = string.Format(hrefScript, match.Groups[1].Value);
                result = result.Insert(match.Index, replacement);
            }

            return result;
        }

After you did that, you will be able to use the following script:

<script type='text/javascript'>
	function OnLinkClick(a) 
		{       
         	 window.external.notify(a);       
		 return false;    
		}
</script>

I pass this script together with the HTML string (HTML methods need to be first!) to the WebView. I recommend to save the script as a static string, so you have do insert only the name of the string.

If you add the ScriptNotify Event to your WebView, you will be able to use LaunchUriAsync with the value of e, which is the link.

private async void WebView_ScriptNotify(object sender, NotifyEventArgs e)
        {
            await Windows.System.Launcher.LaunchUriAsync(new Uri(e.Value));
        }

I am not sure if there is a better way to do this, but that is my way. It works like it should and does not hurt the experience of my app.

As always I hope this is helpful for someone out there. If you have any way to improve that, feel free to leave a comment below.

Posted by msicc in Dev Stories, win8dev, wpdev, 0 comments

Tap+Send: The Love Story of 2 NFC Devices

NFC1

Innovation in technology is hit and miss for a number of reasons. To prognosticate what advances in technology will be accepted by the general public is by no means, an exact science. There’s a constant barrage of new expensive toys with exclusive features that are “sure” to turn the world upside down, only to hit the market and fade into oblivion as a “niche market” concept. There are more than a handful of these types of advancements in the devices we all use on a day-to-day basis now, regardless of preferred OS. Yet for all intent and purpose, most don’t get utilized because of a lack of end users with similar features. NFC is one of those exclusive features and having 2 devices with it, I’ll explain why I see this being a feature that is here to stay.

nokia-speakers

I won’t spend much time explaining NFC as most of you know about it. Quickly, NFC(near field communication) is a set of standards for devices to establish radio communication with each other by touching them together or bringing them into close proximity. Up to this point, most of the NFC ado has been made about NFC tags and the Qi wireless charging capabilities with our Windows Phone 8’s: Charging plates, charging stands, phone covers with Qi, the JBL PowerUp speaker that can charge your device while playing. Being such a new innovation in smartphones, there are limited accessories to aid in this new technology, even HTC used JBL’s speaker for Nokia to advertise its most recent Android device. In addition to the lack of accessories currently available for NFC enabled devices, there are a lack of end users who actually own a NFC enabled device. NFC is about sharing and if you have no one to share with, it becomes one of those “niche market” features fading into the past, full potential never being realized.

tap-send-wp8

My wife and I both have Nokia Lumia 920’s which has led to a unique experience among smartphone users, being able to utilize many aspects of the NFC’s features and that is what I’ll focus on now. One of the drawbacks to WP7 was the inability to share via Bluetooth. This was remedied in Windows Phone 8 allowing for the next evolutionary stage is sharing photos, videos, songs, documents, contacts, or websites…via NFC. No more waiting while you tried to get your Bluetooth to find the other incompatible device right next to you, no more waiting for the other person to email you with that important file or pic even though they’re standing next to you, no more waiting for file to download when opening your email, no…things have changed. Tap your phone and give or get that info now in a fun and engaging manner! I am beginning to see the Tap and Share feature as perhaps the most innovative feature with the largest amount of potential to the end-user. Of course like most new technologies this is assuming it can make it onto enough devices and into enough hands, driving the hardware cost down and finding its way onto lower cost devices for the masses to use. Without “the masses”, NFC, aside from wireless charging, losses its luster. In some sense, I’m actually rooting for HTC and Samsung to have some success with their Android devices utilizing NFC, the better they do, the better results all OS’s with this feature will do. Again, NFC’s success really does rely upon the masses.

Share1

My wife and I use the Tap+Send feature frequently. We’re constantly sharing pictures and with Tap+Send, it’s always much faster and a sure bet the recipient gets the file! I’ve found that we’re both more likely to share pics when it’s as simple as Tap+Send. Send 1 or send multiple, it doesn’t matter. Honestly, I’m finding myself impatient now when I know someone is sending me a file and I have to wait for it to arrive in my inbox and still have to download it! Another added benefit to sharing your pics or videos via NFC is the data aspect. I avoid having to use up my allotted data both with my carrier and at home on WiFi, for those of you with shared family plans or have data limits because of satellite internet, you understand.

App

A close 2nd in utilization when it comes to Tap+Send: App Sharing, we do this at least once a day! As many of you know sharing apps via your WP8 was made easier by Microsoft when they gave us the ability to share it directly from the app side of your device. By pressing and holding an app, “Share” is now listed as on option and even better…you can do it via Tap+Send! Lightning fast access to the app’s direct link in the Windows Phone Store! Again, no waiting for it to show up in your inbox, it’s just there! I actually transferred all my apps this way when switching over from my old 920 to my new 920 to see how arduous it was. I’ve used App Reinstaller and it can take quite a long time to auto-populate your entire app history. I was blown away at how fast I was able to get my new 920 up and running with all my old apps!

sharing

We also share music via Tap+Send. I’m going to start by saying that neither of us has a music pass of any sort. When we see something we like we purchase it, so I’m not sure how sharing music on a pass will work. My experience with music and Tap+Share has been sending and receiving music from my computer or music purchased from Zune and Xbox Music, all which has transferred and played without a hitch! It’s a relatively quick process, taking about 30 seconds from share to play!

Contacts1

My wife and I have busy schedules between our marriage, kids, friends, activities, and work. We have many people who are friends in common and some aren’t for one reason or another, thus our people hubs are similar but not an exact match. There are many apps that help share contacts and WP does a pretty good job at giving you ways to share contacts as well, however none come close to the efficiency and speed with which you can do it when shared using Tap+Share! 2 taps and a phone “high-five” and the info is waiting to be saved.

Ready-for-enterprise

The last way I’ll look at is actually tied into the “Gold Mine” Microsoft sees in enterprise, sharing your documents via Tap+Send. The ways I’ve talked about using Tap+Send have been for the average user, but we all know that Microsoft is targeting businesses globally with WP8. The ability to share documents as simply as touching phones can be a game changer. Running late and can’t wait for that file to get to your inbox…need it now…phone “high five” and off you go! Not a gimmick, time is money and that makes dollars and sense!

I hope in time that we’ll see more and more devices showing up on the market NFC enabled at every level of phone: high, mid, and low range. This will take time but it’s time well worth it. When I stop and think back 2 years ago, I think about my Windows Mobile HTC Touch Pro 2, it could share via Bluetooth but it was a disaster of a process to get it to pair or be paired with not to mention the inability to retrieve most of the files types being sent! Our beloved Windows Phone has come a million miles from its predecessor, not without bumps in the road. Without those bumps though, many would forget all the amazing feats accomplished and adversity Microsoft/Windows Phone has managed to overcome!

Posted by TheWinPhan in App Reviews, Windows Phone, 1 comment