My latest app has been certified. I’ll publish in a couple days and do a post that talks all about it.
My first Windows Phone 7 app was an internal project not meant for general distribution. I was excited to use my existing skills on a new platform. But soon after starting that project, I ran into a number of hurdles. Some were surprises, some were expected. After seeing Mango demos at MIX 11, I knew that, going forward, developing was going to be much more pleasant. Here’s a look at the best 5 features for developers on Mango.
SQL CE and Code First EF
Prior to Mango, there was no built-in database. This was my first and biggest surprise. I just assumed it would be there since even Windows Mobile 6.5 had SQL. Mango changed that and provided us with a “code first” gateway into creating app databases with SQL CE. I love LINQ and I love decorating a class with attributes in order to create a database. It’s easy and with LINQ lets me feel right at home. I wish the database was faster on reads and one thing I am not looking forward to schema changes in a production app. I know there’s an upgrade mechanism, but I’m cautious. Hands down, this is the most important new feature for me.
Beta and Private Distribution
Devs are allowed 3 devices to “unlock” for development. Lucky for me, the app I was developing was only for 3 people, so I unlocked their phones for them to test it. Eventually I published it on the marketplace (so I wouldn’t have to plug in their phones every time there was an update) and to this day people still download it. But sometimes you want way more than 3 people to test your app.
Beta and private distribution isn’t a mango feature per se, but it came out around the same time. I used the beta distribution my latest app which enabled me to let others test my app without needing to unlock their phone. Unfortunately, you can’t update an existing beta. I know the reasons for this, but I wish there was an option to let the dev say, “It’s okay. This app can be updated”.
Honestly, I don’t really know what I’m doing with this tool yet. I know the general idea, but haven’t used it enough to really get the hang of it. In my latest app, I could sense a sort of “stutter” when switching panels on the Panorama control. Running the performance analyzer confirmed this: during a panel change the frame rate had this odd stutter. Unfortunately, I couldn’t figure out how to eliminate the stutter. So I changed to a pivot control instead. It wasn’t quite what I wanted (although now I’m glad I did), but at least I had the analyzer there to help me make that decision. I’m looking forward to this tool becoming more useful over time.
The missing feature people loved to hate on. Sure, prior to Mango, there was no real multitasking. Now that I have it, I’m super glad I do. But devs still need to be careful with their app. You can’t assume that your app is still running, and so there is some work to do. Luckily, fast application switching comes for free (as long as you do your own housecleaning if necessary).
Background agents are a cool way to deal with certain ongoing tasks. I used a background agent to do work that I might have had a push notification do before. Doing a background agent allowed me to offload that work to the client, rather than having a server take care of the work and send a message along to the client. Background Audio is pretty sweet too.
One of my favorite new features in Mango is live tiles. I love that we can change within the app (or background agent) the primary tile, add or remove content to the back of the tile, and add secondary tiles (with deep linking) all without needing to rely on the network for push notifications. The user experience is a little more consistent and reliable and I love watching the tiles flip and do their thing. Pushing this a little further, I wish we could put our own icons on the lock screen.
So there you go. My top 5 features of Mango for developers. There’s a lot more and I’ve yet to use many of them (new camera api, gyro, etc.) but Mango gets me a long way to what I need to write the apps I want to write.
In preparation for the Kindle Fire, I uploaded what MP3s I do have to the Kindle Cloud Player. Playing these on IE9 in Windows Phone Mango does work. The UI is a little slow and for some reason the volume on mine was crazy quiet. External amplification was needed. It’s a good example of the background audio features of Windows Phone Mango. So who do I have to talk to in order to get that volume issue solved?
I registered with the Amazon app store this morning. The release of the kindle fire coming in the next two months will put a huge number of android “tablets” in the hands of the people with the amazon app store mere touches away. Amazon is waiving the $99 fee for the first year. I can get on board with that.
The app is submitted. Now I wait. And wait.
It’s like asking a girl out for a date, but not getting a response for 5 days. Easily rife with anxiety. Do they like me? Was there something wrong with what I said? Will I need to ask again? At least with a girl, you typically know right away if it’s a go or not. Except when they call later to cancel. Not that I’ve ever had that happen to me. Betsy.
The first time I submitted an app I was really excited for the experience. Alas, a few days later, I was rejected. Not once, but twice. In those cases, it was for the best and a good learning experience. For my second app, my submission went through with no trouble. That, however, was a very simple application with almost no moving parts, so a rejection would have been hard pressed. The app I just submitted is certainly more complex than any one I’ve done before but it has an underlying simplicity that will hopefully keep it from getting caught up in any testing traps.
At the same time, if the approval folks can find something wrong with it, I’m all for it. Better them find it than my customers whom I’m asking to pay for this app. Mango just started rolling out today, so I consider my app delivery close, but a little late. A week ago might have been much better as I could choose my own app delivery destiny to coincide with Mango’s rollout. Then again, not all people will be getting Mango today, so I might still be in luck with the launch. This all goes out the window if I get a rejection back. But thankfully, a rejection comes with an explanation giving me a clear path to fixing the problem.
Image credit: D Sharon Pruitt
I’m not sure how long it has been since I started writing the app I’m about to publish. I wanted to make sure the app was ready to go by the time Mango rolled out to phones and we’re just at that point, so the timing worked out almost perfectly. I submitted to the marketplace tonight and hope there are no subtle issues in my app that will delay certification.
I could have shipped a few weeks back, but somewhere in the middle I decided to throw out the UI that I had worked so hard on. I did a lot of graphic design work and had a few tricks up my sleeve to provide an interesting experience. I struggled with making something unique and interesting, but still a metro experience. But I decided that the UI didn’t fit the type of user I was targeting with this app: I had veered too far away from metro. So, I tossed what I had and redesigned it and this time the metro experience had been maintained. Since I adhered to the MVVM pattern using MVVM Light, switching the UI wasn’t that big of a problem. I had some new graphical elements and those took some time, but the logic was done. In fact, I threw out a lot of code for the new UI. Less code, less bugs.
Getting the performance up required a few more changes but I think the changes are for the best. I’ve been using the app for a few weeks now and it’s a solid piece of work. I’ve learned much this time around and I’m a proud papa. I have 5 apps in total with 3 distinct ideas (some are paid vs. free versions) and this is the best so far. It’s a great stepping stone to whatever is next.
UPDATE: The shirt has been released. Purchase it at tshirtheavy.com.
Here’s a quick update on the Windows 8 t-shirts. They are off at the screen printer and have been paid for. I haven’t been told if there are any issues with the artwork provided, but I’ve not yet been given a time when they’ll be ready. I’m guessing it should be a little over a week from now. Once the shirts are done, I’ll have to get the store set up, and I’m not sure how much work that will entail or how quickly that will happen. I don’t think I have much to do beyond a couple pieces of artwork and some descriptions. I’m contracting with a fulfillment company to do the store and shipping, etc. because I really don’t want to have to ship t-shirts after work each day.
Here’s a sneak peak of what you can expect:
It’s gonna be sweet.
Here’s the truth: before I started this blog, I started a tumblr. The tumblr is nice and I’m still going to use it for certain things (maybe). It’s just that most folks there seem to be content curators, not necessarily content creators. When I started it, I had in mind being a content creator. But as the weeks went on, I felt more out-of-place with “long form” posts (and they’re not very long). I realized that what I really wanted what something more standalone where I could write extended posts about whatever I wanted. Inevitably, what I wanted to write about was not the specific topic I decided on for the tumblr.
The tumblr isn’t the first blog I’ve had either. I had one at least 4 years ago that I shut down because of trolls and lack of interest. Unfortunately, I am still related to one troll in particular, so I’m going to stay semi-anonymous as long as I can. For now, I expect this blog to be a little random until I find the voice. Here’s are topics I expect to see:
By definition, some of this will be narcissistic, and that’s okay. Hopefully, though, you’ll find a post that helps you do something, or at a minimum, interests you for a minute or two. I’m doing it for me and that’s what matters.
Its easy enough to just not create a blog and I’ve done that. There’s twitter and I do that too (see the sidebar). I’ve quit Facebook for the same reason I quit the original blog. But I need to work on my writing and I’m looking for a place to put some content so I can get it out of my head. I need a place to shill my wares, whether those wares are virtual or physical.
Despite the title of the blog, I hope this will be whimsical and easy-going. Dare I say delightful? That’s who I am underneath the veneers. So let’s see how it goes.