March 16, 2012  

 

imageWant to learn how to build a windows phone application (Become a WP7Dev).  Then join us for the Windows Phone Unleashed Series.  The content was created by Daniel Egan (me) and Bret Stateham.

Register for an Event Near You.

Windows Phone Unleashed is put on by the community.  It is an all day event with 3 instructor led sessions paired with Hands On Labs that when you are finished complete the Coffee Findr application. At the end of the day there is a app contest with Prizes.

You can download the finished app from the Marketplace .  From this application you will learn the following skills.  Check it out now.

  • Working with Live Tiles
  • Periodic Execution
  • Pulling Data from Rest Services
  • Deserializing Json
  • Binding data to your UI
  • Using Bing for Maps and Directions
  • Using Isolated Storage and  SQL CE on the Phone
  • Navigation
  • And much much more

We also have TWO different events this time…. We have also added a Games Development Unleashed Event.  So look for an event near you.  But register quickly… seats go fast for this FREE event.

Register for an Event Near You.

(If you have been to an Unleashed Event before. This is NEW content)

 

Agenda for both types of events

 

Line of Business Apps

Introduction to Windows Phone 7 Programming

In this session, we start with a discussion of windows phone, the architecture changes made from 6.5 to 7.0, the hardware specifications and then move into the beginnings of building a WP7 application including...

  1. Application life cycle
  2. Hardware Foundation
  3. Files associated with project template
  4. Splash screen and the importance of 1 second / 19 second loading
  5. Application Bar
  6. Panorama and Pivot controls
  7. MVVM
  8. Marketplace

Connecting to Services

In this session, we will discuss how Cloud Services help to bring power to the phone. We will be binding to a rest based services and show how to search and display the information received. In this session we will also talk about Navigation, passing information between screens, while working with List and detail information.

  1. Navigation
  2. Location
  3. JSON Deserialization
  4. Bing Maps
  5. Isolated Storage
  6. Binding Sample Data
  7. Navigation

Recording Data

In this session we will be adding to our knowledge and learn the importance of live tiles. We will show you how to set up a periodic agent and how to set up and read and write to a SQL Database on Windows Phone.

  1. Live Tiles
  2. SQL CE
  3. Background Processes and Periodic Agents
  4. Launchers and Choosers

Games Development

Introduction to XNA

XNA Game Basics

  1. What is XNA
  2. Game Development Tools
  3. XNA Game Projects
  4. XNA Game Loop
  5. Debugging Games

Working with Images, Sounds and Text

  1. Working with Textures
  2. Playing Songs and Sound Effects
  3. Drawing text with SpriteFonts

Getting User Input

  1. Getting input on the phone
  2. Using the Accelerometer
  3. Using Touch

Game State Management

Managing Game Play

  1. Keeping Score
  2. Tracking Health and Lives
  3. Adding Levels

Managing Screens

  1. Creating Multi-Screen games
  2. Loading content in the background
  3. How to pause the game

Managing State

  1. Phone Application Lifecycle
  2. Supporting Fast Application Switching
  3. Persisting and Restoring State

Silverlight and XNA Integration

  1. Introduction to Silverlight
  2. Silverlight and XNA Integration
  3. Creating a Silverlignt and XNA Game

Advanced XNA Games

Marketplace and Advertisements

  1. Understanding the Windows Phone Marketplace
  2. Submitting your Game to the Marketplace
  3. Adding Advertisements to your game

3D Games

  1. 3D Support in XNA
  2. Creating a simple 3D Game

Multi-Platform Games

  1. Building Games for Phone, PC and XBOX
  2. Other Multi-Platform options

Cloud Integration

  1. Using Windows Azure
  2. Social Gaming Toolkit

 

Remember… Daniel Egan knows Windows Phone Smile

|Categories :  |  |    Comments [0] Trackback
February 21, 2012  

About a Year and a half back, I started http://TheSociableGeek.com and I do most of my posting over there.  I was keeping this blog and cross-posting since I still got traffic over here but I think I am now done with that.  If you want to follow me please do so over that

 

Moved to theTheSociableGeek.com

 

See you there.

|Categories :   Comments [0] Trackback
December 21, 2011  

Windows PhoneThe new Windows Phone 7.5 Training Kit have been released.  This time there is a Basic Version and an Advanced Version of the Windows Phone 7.5 Training Kit

You can download both of them here : http://bit.ly/w2xF6s

 

The Basic Labs Include

  • Hello Windows Phone
  • Building your first Windows Phone 7 Application
  • Windows Phone Navigation and Controls
  • Application Lifecycle
  • Using the Pivot and Panorama Controls
  • Accessing Windows Phone 7 Devices
  • Game Development with XNA Framework
  • Discovering Windows Phone 7 Device Capabilities
  • PhotoFun
  • Launchers
  • Choosers
  • Weather Service Push Notifications
  • Using Bing Maps

The Advanced Labs Include

  • Catapult Wars Lab
  • Multi-Touch Game Development with XNA
  • 3D Game Development with XNA Framework
  • Using a local database in the “Tidy” application
  • Background Transfer Service in the “Tidy” application
  • Fast Application Switching in the “Tidy” application
  • Creating Notifications in the “Tidy” application
  • Adding Multitasking to your application
  • XNA 3D Model Viewer
  • Search Integration
  • Background Audio Agents

You can download both of them here : http://bit.ly/w2xF6s

|Categories :   Comments [5] Trackback
December 7, 2011  


Go HERE to Register

 

Practical Team Foundation Server - A Quick Start

An all-day free event to get you up and running quickly with Team Foundation Server 2010.
Continental breakfast and lunch are provided. Event starts at 9:00AM and ends at 5:00PM.
This event is held at three locations in January:
- January 11th - Microsoft Office, Los Angeles
- January 18th - Microsoft Office, San Diego
- January 25th - Microsoft Office, Orange County

Description
Our goal is to quickly bring you up to speed with the essentials features of Team Foundation Server 2010 so that you can quickly setup and be productive in your own TFS environment. We start out by outlining a generic development process which embodies basic activities that are encountered in any software development process.
We'll use those activities as the context in which you'll learn to use TFS and you'll be able to easily map those activities into the process that you use in your own development work.

Go HERE to register

|Categories :   Comments [5] Trackback
December 7, 2011  

While I was at the Silicon Valley Code Camp, I was interviewed by Russ Faustino for his Russ Cam show.  This episode also includes Paul Sherriff, Sara Ford, and John Papa.

If you want to see other episodes, head over to Russ’ blog http://www.clubfarpoint.com/Forums/blogs/russells_blog/default.aspx

|Categories :   Comments [5] Trackback
November 17, 2011  

In addition to the launch of the Phones from Nokia is the launch of the Nokia Developers Program.  The program includes Tools, Documentation, Code Examples, Videos and a vibrant community to get you on your way.  Head over to the developer site http://Developer.Nokia.com/WindowsPhones  or go directly to the code samples to check them out. http://www.developer.nokia.com/Develop/Windows_Phone/Code_examples/

Examples are a great way to jumpstart the development on that app you have been thinking about.

 

|Categories :   Comments [5] Trackback
November 16, 2011  
Starting Next week, I will be doing a series of Windows Phone Workshops online to teach people how to program with Windows Phone.  You can find the current workshops available by either clicking on the Upcoming Workshops link above or by clicking here : http://thesociablegeek.com/event-registration/

In these workshops I plan to talk about one subject matter at at time. I will be LiveStreaming from beautiful LA so you can follow along from wherever you are in the world.  I am completely open to suggestions, so feel free to join in the chat and suggest something OR email me daniel.egan AT microsoft DOT com.  Since this is new, there may be some bumps along the road while I get the technology sorted out.   I hope you enjoy the upcoming events.  Please Register for the events so I know how many people to expect.

Daniel – The Sociable Geek

|Categories :   Comments [3] Trackback

 

Sound is a funny thing, like its cousins, taste and smell, a sound can bring back distant memories that transport you to a place you have not been for a long time.  Today on TV I saw someone use an old rotary phone.  You know the kind with the dial of numbers that when released goes… tick, tick, tick tick, tick…….

Oh wait,  you don’t? How old are you? 

This made me realize that there are many technology sounds that our kids will never hear, so I decided to create a list of this sounds (links included where I could find them).

What other ones can you think of?  Add your own below.

|Categories :   Comments [5] Trackback

Foursquare has been around since the release of Windows Phone but they have made some cool new improvements lately.  They are utilizing the deep linking of the new secondary live tiles to pin specific places to your home screen.  If you would like to see how to do this in your own application, you can check out my post on the subject here http://thesociablegeek.com/2011/11/09/live-tiles-in-wp-mango/

Why is this cool?  Well, if you are a FourSquare addict, then you can save yourself some time by pinning the place you go to the most onto your homescreen.   1 Click will Deep link you into that specific check in.

 

Besides my post (above), if you want more info on working with live tiles, check out the following :

Jeff Blankenburg has also created a post on Live tiles for his 31Days of Mango Series : http://www.jeffblankenburg.com/2011/11/11/31-days-of-mango-day-11-live-tiles

Or the Jump Start Video on Channel 9

http://channel9.msdn.com/Series/Mango-Jump-Start/Mango-Jump-Start-10-Tiles--Notifications-on-Windows-Phone

|Categories :   Comments [5] Trackback
November 10, 2011  

As a developer, and I mean as someone who gets his hands dirty in the code that is NEVER SEEN by whomever uses my software, I am always facinated by the design process that goes into making things “Look Good”.  In this short video, you can see how Nokia went about designing their new Nokia Lumia 800 phone which runs the Windows Phone OS codenamed Mango.   Let me know what you think.

 

|Categories :   Comments [4] Trackback
November 9, 2011  
Ever since Windows Phone came out, I have always contended that Live tiles are the coolest feature and one that is :

1) Not on any other platform (Yes, I know that Android has widgets… not the same thing)

2) A great way to drive people into your application. (Which you want if it is add based.)

 

I will do another post later about why you should do Live Tiles from a Monetizing standpoint, but for this post, I just want to show you how easy it is to work with live tiles. 

 

To begin with, live times have been around since 7.0 but to really take advantage of them you had to use Push Notifications.  While this is not THAT difficult, it did add quite a bit of complexity and the need to host your own service (or use scheduled tiles).  In the Mango release, we have made 4 great additions to live tiles.

 

1) You can change the live tiles from your code.

2) You can create secondary tiles to deep link into specific pages of your application

3) You can write on the back of tiles and have them flip

4) You can use background process to have them change when not even in your application

 

To create and modify live tile is fairly simple.

This firs thing we want to do is create a simple windows phone page that has three buttons on it:

  • Create App Tile
  • Create Second Tile
  • Delete Secondary Tile

Next we need to go to code behind and add a using statement for the phone shell.

 

using Microsoft.Phone.Shell;

Then inside the first button click we add the following code :

 

 private void button1_Click(object sender, RoutedEventArgs e)
        {

            //Tile is always the first Tile, even if  not pinned .
            ShellTile TileToFind = ShellTile.ActiveTiles.First();

            if (TileToFind != null)
            { 
            
                StandardTileData NewTileData = new StandardTileData();

                NewTileData.Title = "My Cool Tile";
                NewTileData.BackgroundImage = new Uri(
                    "CoolTile.jpg", UriKind.Relative);
                NewTileData.Count = 5;
                


                NewTileData.BackTitle = "Tiles Got Back";
                NewTileData.BackBackgroundImage = new Uri(
                    "CoolTileBack.jpg", UriKind.Relative);

                TileToFind.Update(NewTileData);

            
            
            }


        }
  • The first thing we do is get a reference to the Live Tile that comes with your application. (TileToFind)
  • Once we have a reference to it we can create our new tile data using the StandardTileData class.
  • We set the properties including the image we want on the live tile (a 173 by 173 png or jpg… make sure that your image is set to “content” in your project or you will not see it)
  • Next we set the back of the tile
  • And finally call the update method to change the live tile.

That is all you need to do to change your live tile.

If you want to create a secondary tile, it is slightly different.

 

for the second button click event we do the following

private void button2_Click(object sender, RoutedEventArgs e)
        {
            ShellTile SecondTile = ShellTile.ActiveTiles.FirstOrDefault(
                x => x.NavigationUri.ToString().Contains("Page2.xaml"));

            StandardTileData NewTileData;
            NewTileData = new StandardTileData();

            NewTileData.Title = "Secondary Tile";
            NewTileData.BackgroundImage = new Uri(
                "CoolTile.jpg", UriKind.Relative);
            NewTileData.Count = 5;
            NewTileData.BackTitle = "Second Tiles Got Back";
            NewTileData.BackBackgroundImage = new Uri(
                "CoolTileBack.jpg", UriKind.Relative);


            if (SecondTile == null)
            {
                ShellTile.Create(new Uri(
                    "/Page2.xaml", UriKind.Relative), NewTileData);
            }
            else
            {
                SecondTile.Update(NewTileData);
            }
        }

There are a couple of noticeable change.  To find the secondary tile, we need to search for it since we are not guaranteed that it exists.  We do this by searching the ActiveTiles collection for the NavigationUri of the tile that we set lower in the event.  The only other change is creating the tile if it does not exist.  Otherwise we update it like before.

I have included all the code for the project HERE

If you want to run this code in the background so you can change the tile while users are not using the phone. You can check out my post on Background Agents

 

Enjoy

|Categories :   Comments [4] Trackback
November 9, 2011  
This is one of the funniest things I have seen in a long time. I used to have a Furby (Dont ask me why)... Watch the video and let me know what you think.
|Categories :   Comments [4] Trackback
November 9, 2011  

They have been talking about it for a while and it has finally hit the market place.  Tango, the Video Chat application for WP7.  It will obviously work better with the new phones with front facing cameras… but it also works on my Samsung Focus… Check out the video below.

 

 

 

 

 

It of course works best over wifi, but will also work over 4G and 3G

 

image

 

Learn more at http://www.tango.me/ Like us on Facebook at http://www.facebook.com/TangoMe Follow us on Twitter at http://www.twitter.com/tangome Watch us on YouTube at http://www.youtube.com/TangoMe Need Help? Visit http://support.tango.me

|Categories :  |  |    Comments [4] Trackback
October 25, 2011  

 

When working with Isolated Storage on the phone you sometimes have difficulty “seeing” what is located in the IsoStore for your application.  Luckily we have a tool that will help you take snapshots of the Sandboxed Isolated Storage for your application.  It is a command line tool called ISETool.exe and it is located in:

(for 32 bit os) c:\Program Files\Microsoft SDKs\Windows Phone\v7.1\Tools\IsolatedStorageExplorerTool

(for 64 bit) c:\Program Files (x86)\Microsoft SDKs\Windows Phone\v7.1\Tools\IsolatedStorageExplorerTool

To run the tool, bring up a command line and change the directory to the location above.

 

image

Then run the ISTool.exe with the following parameters

◦ts – take snapshot  (rs for restore)
◦xd – emulator
◦guid – product GUID from WPAppManifest.xml
◦desktop dir – where to copy the isolated storage files

image

 

It will download the contents of your Isolated Storage for that application to the folder you specified

image

 

You can also restore to the phone or emulator by doing the reverse.

ISETool.exe rs xd 11111111-2222-3333-4444-555555555555 “C:\snapshots\IsolatedStore”

 

This can also be used for local databases as well as restoring your environment to a specific state.  Let me know if you have any questions.

 

Camera Picture by Capt Kodak flickr cc

Another great feature for Windows Phone Mango is the ability to set up reminders and alerts in your application (While it is not running).  You would be surprised how many applications want/need this. During our Windows Phone 7 Unleashed events this was a recurring topic. 

The great part is that it is really simple.

 

 

imageFor this application, we are creating a very basic interface.  A text box for the title, a text box for the reminder message and a button that says “remind me”.  In addition, there is a label to hold the parameter that is sent back from the reminder.

The first thing you want to do once you build the UI is to click on the Remind Me button to create the click event for the button and add the following code to the event.

 private void OnRemindMeClick(object sender, RoutedEventArgs e)
        {
            Reminder r = new Reminder("reminder"); 
            r.Title = txtTitle.Text; 
            r.Content = txtContent.Text; 
            r.BeginTime = DateTime.Now.AddSeconds(10); 
            r.NavigationUri = new Uri("/MainPage.xaml?reminder=" + 
txtContent.Text ,UriKind.Relative); ScheduledActionService.Add(r); }

All we need to do is :

  • create an instance of the reminder
  • Set the title and content to the text boxes text property
  • set the begin time (in this instance I am doing it in 10 seconds from now)
  • Set the NavigationUri (this is where you will return when a user clicks on a message)
  • Add the reminder to the ScheduledActionService

Notice that we are passing the txtContent.Text back to the program when the user replies.  This can be userIDs, itemIDs, etc… .  Whatever makes sense for your program.

To capture the returning data, add this to an onNavigatedTo override.

protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
        {
            base.OnNavigatedTo(e);
            string param = null;
            if (NavigationContext.QueryString.TryGetValue("reminder", out param))
                Param.Text = param;

            if (ScheduledActionService.Find("reminder") != null)
                ScheduledActionService.Remove("reminder");

        }

We collect the reminder parameter from the Querystring and set it equal to our Param.txt . Notice that we are also removing the reminder from the service.  In the way ours is constructed, if the user clicked on it a second time it would try to add “reminder” a second time which is not allowed.

There you go…. easy as pie Smile

 

(Clock picture from “H is for Home on Flickr” Creative Commons)