Windows Phone

Getting productive with WAMS: How to handle erroneous push channels

WAMS

As I wrote already in my former article ‘Getting productive with WAMS- about the mpns object (push data to the user’s Windows Phone)’, I needed to add some more detailed error handling to the mpns object on my Mobile Service.

There are two error codes that appear frequently: 404 (Not Found) and 412 (Precondition Failed).

The 404 error code

happens when the push channel gets invalid. Reasons for that can be uninstall or reinstall of the app, or also a hard reset of the users device. In this case, we are following the recommendation of Microsoft to stop sending push notifications via this channel.

There might be several ways, but I prefer to work with SQL queries.  This is how I delete those channels within error: function(error):

if (error.statusCode === 404)
{
 var sqlDelInvalidChannel = "DELETE from pushChannel WHERE id = " + channel.id;
 mssql.query(sqlDelInvalidChannel, {
 success: function(){
	console.log("deleted invalid push channel with id: " + channel.id);
	},
	error: function(err)
	 {
           console.log("there was a problem deleting push channel with id: " + channel.id + ", " + err)
         }
});

As you can see, this is a very simple approach to get rid of those invalid channels.

The 412 error code

needs some more advanced handling. Microsoft recommends to send the push notification as normal, but the code recommends a delay of 61 minutes to resend. Also, with some research on the web, I found out that often the 412 will turn into a 404 after those 61 minutes (at least I found a lot of developers stating this). This is why I went with a different approach. I am going to wait those 61 minutes, and do not send a push notification to those devices.

For that, I do a simple trick. I am saving the time the error shows up in my push channel table, as well as the  time after those 61 minutes. On top, I use a Boolean to determine if the channel is in the delay phase.

Here is the simple code for that, again within error: function(error):

if (error.statusCode === 412)
{
	var t = new Date();
	var tnow = t.getTime();
	var tnow61 = tnow + 3660000;

	var sqlSave412TimeStamp = "UPDATE pushChannel SET Found412Time=" +  tnow + ", EndOf412Hour=" + tnow61 + ", IsPushDelayed = 'true' WHERE id=" + channel.id;

	mssql.query(sqlSave412TimeStamp);
}

Now if my script runs the next time over this push channel, I need to check if the push channel is within the delay phase. Here’s the code:

if (channel.IsPushDelayed === true)
{
	var t = new Date();
	var tnow = t.getTime();
	var EndofHour = channel.EndOf412Hour;
	var tdelay = EndofHour - tnow;

	if (tdelay > 0)
	{
	 console.log("push delivery on id: " + channel.id + " is delayed for: " + (Math.floor(tdelay/1000/60)) + " minutes");
	}
	else if (tdelay < 0)
	{
	 var sqlDelete412TimeStamp = "UPDATE pushChannel SET Found412Time=0 , EndOf412Hour= 0, IsPushDelayed = 'false' WHERE id=" + channel.id;
	 mssql.query(sqlDelete412TimeStamp);
	}
}

As you can see, I am checking my Boolean that I added before. If it is still true, I am writing a log entry. If the time has passed already, I am resetting those time values to 0 respective the Boolean to false.

The script will now check if the push channel is still a 412 or turned in to a 404, and so everything starts over again.

Other error codes

There might be other error codes as well. I did not see any other than those two in my logs, but for the case there would be another, I simply added this code to report them:

else
{
 console.error("error in Toast Push Channel: " + channel.twitterScreenName, channel.id, error)
}

This way, you can easily handle push channel errors in your Mobile Service.

If you have other error codes in your logs, check this list from Microsoft to determine what you should do: http://msdn.microsoft.com/en-us/library/windowsphone/develop/ff941100(v=vs.105).aspx#BKMK_PushNotificationServiceResponseCodes

Note: there might be better ways to handle those errors. If you are using such a way, feel free to leave a comment with your approach.

Otherwise, I hope this post will be helpful for some of you.

Happy coding!

Posted by msicc in Azure, Dev Stories, 0 comments

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, windev, 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, windev, 0 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, windev, 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 Archive, 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, windev, 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, windev, 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 Archive, 1 comment

Editorial: 2012 – what a year!

logo_white

The year is coming to an end soon, so I wanted to write a short summary of my 2012 with Microsoft and MSicc.net.

Screenshot (47)

I started the year with a clean install of the Windows 8 preview, and was using it since then as my main PC OS. Everyday I felt more in love with the speed of Windows 8 and the idea of using apps on a PC. Microsoft constantly updated their previews over the year, until the final release.

Also Windows Phone was getting new attraction with the awesome Lumia 900. Nokia and Microsoft started a big ad campaign to support the launch of this device. Surely some of you will remember of “The smartphone beta test is over”.

WP_20121225_069

Over the year, Microsoft did tease us a few times with Windows Phone Apollo. We all thought in the beginning that our existing devices will be getting the Apollo treatment, until MS unleashes some more details about Windows Phone 8. Windows Phone 8 shares a lot of the OS with Windows 8, so naturally there has to be new hardware. Windows Phone 7 will get 7.8, which will bring at least the look of the start screen to older devices.

WP_000586

Another beta program was launched for the Xbox Dashboard, which had better voice functionality, and of course another big thing: Internet Explorer on Xbox! That is really awesome as we are now able to surf the web with Kinect support as well as the Smart Glass app on your phone/tablet/PC.

Screenshot (51)

Which leads me to another fantastic release from Microsoft. The Smart Glass apps, no matter on which platform you will use it, extends the experience of films, games and also your Music experience.

Screenshot (48)

Talking about Music, Microsoft finally launched their Music Pass in Germany. Personally, I was waiting for this since the initial release of Windows Phone 7, and now they finally launched it. I did not wait a second to cancel my Spotify subscription, and switched to the Music Pass. And I love the experience, be it on WP7, WP8 or Windows 8/ Xbox, my collection is synched across all devices. I can choose which Songs I ‘ll keep in the cloud for streaming and which I download, so there is always a growing collection for me now.

I was also attending several developer days from Microsoft, which helped me in some parts of my own dev story. I updated Fishing Knots SE and plus several times this year and created I learn to tie my shoes, which is getting really good reviews all over the web. If you want to take a look at these apps, they all come with a test version, just type MSiccDev in the search, you will get a list with all of my apps.

Screenshot (52)

Sadly I have a bit trouble with the updated version of MSicc’s Blog for Windows Phone, I hope I can release it in early 2013, so you all can read and discuss or share articles from your phone.

Of course all of my Windows Phone apps will receive a special Windows Phone 8 update while keeping the work on the WP7 version.

I have also started development of a Windows 8 app for MSicc’s Blog, which I will submit in the early 2013 days to Microsoft to get it approved for the Windows 8 store.

Screenshot (53)

My personal highlight this year was to attend a keynote of Steve Ballmer himself, which was absolutely motivating as user and even more as developer. He really knows how to keep the crowd attending, and I really have to thank Microsoft Germany for this unique experience.

I want to thank Mark and Sean for joining me here on MSicc.net to entertain and inform you all, I bet we will see some awesome articles of both next year!

A big thanks also to the WPDev & Win8Dev community out there (you all know who you are). Keep up your great work and please keep the community alive!

Now I will come to an end with this post, as I want to further play around with my awesome Lumia 920 which Santa (aka my lovely wife) gifted me this year at Xmas.

What were your highlights this year? Leave a comment below!

As here in Germany is said for the new year wishes in advance: “Have a good slide into the new year”, stay safe and enjoy your time!

Posted by msicc in Editorials, 5 comments

Merry Xmas from Msicc’s Blog

MSicc's Blog Team XMAS

We had an amazing year. Microsoft launched Windows 8, Windows Phone 8, updated the Xbox Dashboard and the Xbox Live services. And there are a lot of things that are worth a mention, but this post is a short salute from our small team here at MSicc’s Blog.

A special thanks goes to Mark and Sean, who have started to support me with their own thoughts and articles, which is a huge enrichment..

Now that Xmas is knocking on our doors, we want to salute you, our readers, followers and friends, with a short message of every team member.

 

Mark (BinaerForceOne):

Dear readers and visitors,

 

I have to admit that I’m terribly bad at these things, but I want to wish all of you a merry Christmas, happy holidays and just a beautiful time with those who matter most:

 

your loved ones. Be it your family or close friends. I hope you enjoy it as much as I do.

 

See you all next year. 🙂

 

Sean (TheWinPhan):

What’s on your Christmas list…Lumia 920? 8X? Ativ S maybe? Have you been naughty or nice?

 

Myself and the rest of my WinPhan Family want to wish all of you Windows Phone owning readers, the happiest and Merriest of Christmas and may all your wishes and hopes come to fruition!

 

Thank you all for taking the time to follow along as we continue to profess our love, discuss the many nuances, and talk about Windows Phone and Microsoft here. Please be safe, love your family, and take time to appreciate all that is in your life!

 

Good Health, Merry Christmas, and Happy New Year!!!

 

The WinPhan

 

Marco (MSicc):

Dear reader, visitor, follower and friend,

 

we had a year full of action, with ups and downs, troubles, amazing keynotes, waiting for releases from Microsoft and their OEMs.

 

Now it is time to calm down for a few days, and give all attention to our families and our friends – apart from our technical life.

 

I wish you and your families a merry, merry Christmas. May the Xmas star shine for you and your loved ones and keep you safe.

 

We will continue our work between the years, for now enjoy your family time!

 

Posted by msicc in Archive, 1 comment