20 March 2011
I’m pleased to announce that my app is called 4th & Mayor. It is a foursquare client for Windows Phone 7 and it is now available for free on the Windows Phone Marketplace. I previously hinted at the app with this other post.
This app brings all of the great new foursquare features that your iPhone and Android friends have been using: adding and experiencing photos at places, photos with tips, commenting on check-ins, and an early look at the cool new “explore” features that recommendations places and things to do. (fsq3 info on the foursquare blog)
It’s been a lot of fun building the client over the past few months, and I am excited to share a lot of my development experiences on this blog. Expect great things. Foursquare has a very solid and open API for developers to use (REST + JSON), and it’s a great, fun way to explore any city and stay in touch with your friends. Also, given all the recent news about Twitter, I’m super happy that I didn’t decide to make a Twitter client :-)
On top of being a fully functional, free foursquare app, I’ve also made sure to address key complaints that I heard from people regarding the official foursquare app for WP7: general touch responsiveness, feature completeness, and the ability to check-in to international locations (with accents and other special characters in their name).
You can find out more about 4th & Mayor on the web at http://www.4thandmayor.com/ – as well as on Twitter @4thandmayor and on Facebook. If you are interested in the app, its features and updates, please subscribe to the app’s blog at http://blog.4thandmayor.com/. I don’t want to inundate my technical subscribers with news about app updates and new features, so I want to keep that separate for the most part.
Do expect a great series of blog posts to come out of this learning experience, all the development-related information will be posted here. From the Windows Phone design system to development tips and tricks, this is the place to find that.
So my app is called 4th & Mayor. Instead of focusing on just raw performance from a development standpoint, I wanted to show how I would envision a great Windows Phone app. I believe that for a v1.0 release, I have delivered a great initial app experience. I decided to try and demonstrate a happy compromise, hoping to yield a wonderful experience that doesn’t take short-cuts.
This all started because one of the things I use my smart phone the most is foursquare, followed by email and Twitter. I just really wanted a better foursquare experience on the Windows Phone, and figured this would be the best way to gain excellent app development experience.
(The name? It's a little odd yet creative, is clearly not an official client, and it's all about working to become the mayor while having fun, right? The intersection of foursquare (4th) and the fun of the game – working to establish a mayorship (Mayor).
The design system for Windows Phone, code-named “Metro”, really is cool. Others have written about the experience before, but it really is a very developer-friendly design system that is crisp, clean, and once you understand the core principles and rules, it’s easy to build jaw-dropping apps. I’m just a geek, but feel I’ve come away with a pretty good first release when it comes to visual consistency and trying to adhere to the basics of “Metro”.
This comes through in a few ways. If you look to the screenshots below, on the left, you see the nice visuals in the “places” listing: no rounded corners, crisp and clean, etc. On the right, the “photos” pivot item for a page shows a few large, rich photos from the venue – and clicking them brings up the full-screen photo experience.
Both are very easy scenarios to polish thanks to XAML, but it takes an understanding of how to translate “Metro” ideas into XAML. A lot of off-by-12-pixel polishing goes into shipping a solid Windows Phone app.
There’s great incentive in the new foursquare 3 features to check-in and have fun doing it: a completely revamped points system. Get points for being a VIP (checking in with the mayor), being the first of your friends to check out a new place, and so on. This, combined with the new leaderboards and an ever-growing catalog of badges is just modern-day fun.
When I heard about the problems that people were having with the foursquare app for Windows Phone, I decided to try and move into “ship mode” immediately instead of completing all of the features I had planned. I forked my source and started polishing and fixing bugs last weekend. As a result, I apologize if there’s something missing or a few bugs in the first release.
My app does 2 things that people have been having issues with the foursquare WP7 app:
Now that the app is out there, an update coming soon will add specials support, and I’ll also work to address any large buckets of customer-reported bugs. Thanks to getting the build out earlier in the week for people with developer unlocked phones, I’ve been able to start identifying a few small bugs and issues that I hope to correct soon (thanks everyone).
I created a new Visual Studio project a few weeks after purchasing my first Windows Phone (a Samsung Focus, I’m pretty happy with it), and registered for the domain name 4thandmayor.com in early December 2010. Hoping to learn about the process of building a large, feature-complete Windows Phone app from the ground up, I had no idea how much time it would take, but it’s been a fun use of many a night and weekend over the past few months.
Most development happened in spurts as I found a free Sunday afternoon or a clear night or two. I’m really glad that I was able to the have the opportunity to build a feature-complete WP7 app and that Microsoft is open to this kind of project as appropriate.
A brief, approximate timeline of my development process:
Not knowing that fsq3 was coming out at SXSW, it’s a testament to the Windows Phone app platform that it only took a few hours to add these new views, models, and features into my app (exploring, enhanced leaderboards, etc.), allowing me to deliver a little more than a week and a half later a feature-complete implementation.
I will be covering a lot of the experiences and sharing a decent amount of code and samples over the next many blog posts, covering:
Please let me know if there are any things I’ve missed, or you’d like to know about, and I will add them to the list! I’ve learned a wealth of information along the way but I think this will be a long-term blogging project, there’s just so many different things here.
The app was a pretty big technical undertaking, the goal of building a feature-complete app for such a large service is a big challenge. Along the way I had to build out a number of components, and of course make use of many great things others have shared as well.
And I also built out a ton of specialized components, talk about fun:
“My Saturday night was great, thx to 4th & Mayor” – toowicked
“Been using 4th & Mayor foursquare app, gotta say it’s the best one I’ve used on any OS. Get it when it’s available in WP7 marketplace!” - Jonnie
“4th & Mayor you are beautiful and fill my heart with hope for #WP7 future.” - Sergey
“Wow, 4th & Mayor is incredible. Infinitely better than the official foursquare app for Windows Phone.” - Brian
“Inspired by the @4thandmayor application. I guess I will be doing some #wp7 coding this weekend.” - Laci
“Wish we could get you to make a Twitter app that looks as good as 4th & Mayor :-)” - Josh
This project could not have happened without the help and support of many good friends and engineers.
A big shout out to Naveen and all the folks at foursquare: thanks for building a beautiful product, great service, and having a solid, open API for developers to take advantage of!
As called out in the “About” page of my app, thanks:
Also, thanks to my excellent beta testers who have been checking in all over the world. Notably, Shawn, Eric, Gilles, Nimesh, Shoko, Sam, Johan, David, and Nic. You all rock!
There is a list of known issues up on the site. The app is designed to offer a rich, compelling and fun experience for people with up to 50 foursquare active friends, with slight performance degradation for people with more friends.
So, check out the site and download the app if you’re into foursquare.
Hope you enjoy the app!Foursquare™ is a trademark of Foursquare Labs, Inc.
Jeff Wilcox is a Principal Software Engineer at Microsoft in the Open Source Programs Office, helping Microsoft scale to 15,000+ engineers using, contributing to and releasing open source.