Baby Time – My first entry into the WP7 Marketplace

LargePCTile   SelectWeek   PickWeek CurrentWeek

Yesterday morning, my first Windows Phone application was accepted into the Marketplace.  It’s a pretty simple application that helps moms-to-be keep track of their baby’s development before they are born.

Why Baby Time?
We are currently expecting a baby girl and it seemed like every other day, my wife would ask me about which week she was on at the moment.  Also, as each week passed, she would go on the web and check for the expected baby weight/length as well as what was going on this week.  At the moment I was working on another (bigger) WP7 app an I thought that it would be fun to put something together for her.  Once I got started, a few other ideas came to mind (such as international measures) and the app was on its way.

Technology
Earlier in summer, at Jax Code Camp, I went to a session on the Caliburn.Micro framework, and I was hooked!  I worked on a couple of Silverlight apps this year where we used another framework and Caliburn.Micro just seemed like it was so much lighter to use and it was a lot easier to accomplish my “no code-behind” goal.  It also has great support for Tombstoning, and a few other features.  So I decided to give it a try for this project and it was a great decision. 
For my controls, I used the Silverlight Toolkit (WP7 version) since I needed a nice calendar control.  I used the standard Panorama control for my “week picker” and then plain standard textblock controls and buttons for everything else.
My data is stored in an xml file, which is an embedded resource, and I used LINQ to XML to load the data into my data object.

All in all, since I am pretty comfortable with Silverlight, the development experience was really good and felt very natural.  Granted, this is not the most advanced application in the world, but still, i would imagine that it would’ve been a ton more work on other platforms.  The hardest thing for me was to come up with my graphics, but that’s mostly because i’m very graphically-challenged 🙂

Some show-and-tell
As I mentioned, my “week picker” uses a panorama control. The items in the panorama are data-driven based on what weeks I have defined in my XML file.  So I used the ItemTemplate to define what each item should look like and bound the Panorama Control to a List in my ViewModel.  Yes…simple!

        <controls:Panorama x:Name="panoWeek" Grid.Row="1" 
                           ItemsSource="{Binding WeekNumbers}" 
                           DefaultItem="{Binding WeekNumber}">
            <controls:Panorama.HeaderTemplate>
                <DataTemplate>
                    <TextBlock Text=""/>
                DataTemplate>
            controls:Panorama.HeaderTemplate>
            <controls:Panorama.ItemTemplate>
                <DataTemplate>
                    <StackPanel>
                        <TextBlock TextAlignment="Center" FontSize="300" Text="{Binding}" Foreground="#FF1BA1E2"/>
                    StackPanel>
                DataTemplate>
            controls:Panorama.ItemTemplate>
        controls:Panorama>

And my ViewModel property (yes, Caliburn.Micro is that cool):

        public List<int> WeekNumbers
        {
            get
            {
                return BabyData.AvailableWeeks;
            }
        }

The calendar control was really easy to use.  I was not able to figure out how to hook up the control to Caliburn.Micro (I know, I’m a n00b) , so I ended up using the standard Binding sintax for that:

<toolkit:DatePicker x:Name="StartDate" Value="{Binding StartDate, Mode=TwoWay}"  />

And then to finish off, I had to send out an email and browse to my website. Note that this “magically” works because I named my buttons “Email” and “BrowseToM2E” respectively:

        public void Email()
        {
            EmailComposeTask task = new EmailComposeTask();
            task.To = EmailAddress;
            task.Subject = "Questions about BabyTime";
            task.Show();
        }

        public void BrowseToM2E()
        {
            WebBrowserTask task = new WebBrowserTask();
            task.URL = CompanyUrl;
            task.Show();
        }

Conclusion: It’s really easy to build a Windows Phone 7 application, especially if you already know .NET and Silverlight!

Here’s a quick recording of the app in action:

<\/param><\/embed><\/object><\/div>“;” alt=””>

40 thoughts on “Baby Time – My first entry into the WP7 Marketplace

  1. Mikey Cooper

    Obligatory screen shot, dood.

  2. Esteban Garcia

    Good suggestion…just added some screenshots and a video

  3. Anonymous

    nice job sir…

  4. JeffreyArtig

    buying cialis from canada generic cialis fast delivery pastillas cialis

  5. JeffreyArtig

    where can i buy cialis over the counter cialis cialis cost per pill

  6. JeffreyArtig

    cialis20mg cialis 20 mg best price buy cialis online in new zealand

  7. JeffreyArtig

    canadian drugstore online errectile dysfunction online meds for ed

  8. JeffreyArtig

    cialis going generic does generic cialis work differences between viagra levitra and cialis

  9. JeffreyArtig

    online buy cialis active ingredient in cialis cialis sale online

  10. JeffreyArtig

    ivermectin walmart ivermectin horse paste human dosage ivermectin for small animals

  11. JeffreyArtig

    30 day free trial of cialis best price for daily cialis soft cialis canadian pharmacy

  12. RogerCom

    buy generic propecia how do i get propecia buy propecia 5mg

  13. RogerCom

    best ed treatment pills ed pills that really work ed meds

  14. RogerCom

    cost of propecia finasteride hair loss finasteride 1 mg

  15. RogerCom

    cheapest ed pills medicine for erectile cheap erectile dysfunction pill

  16. RogerCom

    medicine erectile dysfunction medication for ed dysfunction erectile dysfunction drug

  17. Normanspoib

    canadian pharmacy online ship to usa buying from canadian online pharmacies canadian pharmacy online ship to usa

  18. Normanspoib

    india pharmacies online india pharmacies online generic drugs india order online

  19. Normanspoib

    stromectol 3 mg tablets price buy stromectol online stromectol 3 mg tablets price

  20. Normanspoib

    medications for ed medication for ed what are ed drugs

  21. JohnnyDom

    buy clomid 50mg online buy clomid 50mg online buy clomid 50mg online

  22. JohnnyDom

    where to buy cheap clomid online clomid tablets for sale clomid tablets

  23. JohnnyDom

    stromectol 3 mg tablets price stromectol without a doctor prescription stromectol pills for humans

  24. JohnnyDom

    cialis pills price of cialis 20 mg tadalafil 20 mg buy online

  25. JohnnyDom

    clomid clomid buy clomid

  26. JohnnyDom

    tadalafil best price 20 mg where to buy liquid cialis tadalafil 10mg price

  27. EddieNew

    ivermectin 9 mg stromectol for sale stromectol tablets for humans

  28. EddieNew

    stromectol tablets for humans can you buy ivermectin at a feed store stromectol for sale

  29. EddieNew

    ivermectin near me stromectol for sale stromectol for sale

  30. MichaelOmige

    online doctor prescription for viagra sildenafil 100 mg where to buy viagra

  31. MichaelOmige

    over the counter viagra viagra coupon viagra from canada

  32. MichaelOmige

    viagra discount sildenafil citrate tablets 100 mg where can i buy viagra over the counter

  33. Homermaype

    generic cialis tadalafil 20mg best price for daily cialis what is cialis used for

  34. Homermaype

    generic cialis australia tadalafil 20mg О±П…ОёОµОЅП„О№ОєОї П‡О±ПЂО№ cialis

  35. Homermaype

    generic cialis online pharmacy best price for daily cialis cialis precio

  36. Homermaype

    order cialis 20 online cialis pills cialis with no prescrption

  37. Homermaype

    cialis generic timeline tadalafil 20mg best price viagra or cialis or levitra trial

  38. Homermaype

    buy generic cialis australia price of cialis 20 mg levitra cialis

  39. dew

    There are two legs to the Mr. Spin sign up offer – the no deposit bonus & the matched deposit sign up offer. First of all, just for signing up and registering a Mr. Spin UK account, you’ll get a no deposit bonus of ВЈ3 FREE credit. Then, once you move on to make your first deposit, you can grab a bonus worth up to ВЈ100. All bonuses will be credited to your Bonus Credit account and are subject to the Bonus Credit Wagering Requirement. Winnings from Bonus Credit will also be credited to your Bonus Credit account. Mr Spin Casino offers new players a fantastic 50 Free Spins No Deposit bonus when registering a new account. You will receive 50 spins valued at 20p to be used on the Reel Royalty slot game. The maximum withdrawal from this offer stands at ВЈ50. All bonuses are subject to the Bonus Wagering Requirement and specific game stake contribution % as stated in Section 6 Term 38. Winnings arising out of Bonus Credit will also be credited to your Bonus Credit Account. When you have met your Bonus Credit Wagering Requirement, any remaining Bonus Credit will be transferred as winnings to your Cashable Credit account. http://100nodepositbonuscodes492.fotosdefrases.com/poker-star-bonus-code Get your GST & GMT tokens and enjoy crypto gambling at BC.Game casinos and sportsbook. STEPN fans can take advantage of provably fair games. The Yolo Group’s brands are enjoyed by millions of people around the world and have quickly emerged as the number one choice for bitcoin betting and gaming. It may seem apparent, but the crypto casinos on our list must accept a wide range of cryptos, including Bitcoin. In order for the casino to be labeled as a Bitcoin casino, it must accept Bitcoin as well as Litecoin, Ethereum, and Bitcoin Cash. A good bitcoin casino will allow you to deposit and withdraw in a variety of currencies. It’s easy to make deposits, and withdrawals are also fast and free. Most crypto casinos offer a welcome bonus, which can be as much as 1 BTC. Some offer a free spin for newcomers. However, if you’re looking for the best bitcoin casino, you should keep in mind that there are a few things to consider before choosing one.


Leave a Reply

Your email address will not be published. Required fields are marked *