Tuesday, February 21, 2012

Friday, February 17, 2012

Phone App Development: Windows Phone 7

I attended a presentation at GLUG.net East Lansing & Flint last night on the Seven Deadly Sins for Windows Phone Developers presented by Samidip Basu. Thank you GLUG.net and Samidip for the great introduction to Windows Phone development.

Windows Phone 7 has some really great features. If you are a .Net developer, it doesn't take much to build a WP7 application. But that's not what blew my mind last night.

It's all about the infrastructure!

I've been teaching myself hybrid phone development for a couple of months. Since I cannot learn everything at once, I've focused on the phone application itself. I really want to have a single code base that is cross platform so I've been looking at hybrid development with PhoneGap. I know that eventually I'll bump into limitations this way and end up writing native applications. But you've got to start somewhere.

The throw-away application I'm using to learn is an "X Shop" application (where X is a coffee shop, pizza store, bakery, ...). It would give customers a mobile app to view the shop menu, select favorites, and place orders. The shop owner could push information like the coffee flavor of the day or other promotions to the customer. While brainstorming the features I'd like, I've started to consider how I'm going to implement the needed infrastructure for these features. Eventually, the mobile app would need to be part of an integrated solution. I think my code base just grew rather large.

The actual phone application has become the easiest piece of the puzzle. How am I going to interface with the point of sale application? Should I offer one? What about inventory?

Microsoft has created a really great enterprise infrastructure behind their phone. In future posts, I'll flesh out how this can be used to support my "throw-away" coffee shop experiment.

Thursday, February 9, 2012

iOS App Development with PhoneGap and Spine Mobile: Coffee Shop App

After looking at several mobile application frameworks I’ve finally decided to use Spine Mobile and PhoneGap to build an application.


Most first applications should be tossed out. I'm learning new stuff and whatever I create in this first application is guaranteed to have, at best, a whiff of code smell (if not reek of it). I don’t want to be saddled with an application that will most likely be mangled by the time I’m done. It’s a proof of concept prototype, or at least it should be. This also takes away the pressure to make it perfect.


I need something more than a sample application, but nothing too complex. It should be something I can start small and build on while still being somewhat useful. I’d like it to perform at least the following functions:
  • CRUD operations
  • Navigation between modules
  • Local data storage
  • Auto-magic data updates from the "cloud"
  • Some form of membership or identity
I think a simple coffee shop application should fit the bill. It can start out small, a simple menu for users to browse what’s available. Then I’ll add features as I go.


Version 0.1

  • A home page with a logo
  • A menu of available beverages
  • Location and hours of operation information

Version 0.2

  • A list of “my favorite” beverages
  • Loyalty punch card
  • Build a beverage (size, to go, flavors, etc.) 

Version 0.3

  • Order a beverage and update my loyalty card

Version 0.4

  • Coupons and/or promotions
  • Management of coupons and/or promotions
and so on...


Wednesday, February 1, 2012

JavaScript Frameworks: Still looking...

So many choices!

There are so many MV* frameworks and libraries available for client side JavaScript application development it’s nearly impossible to give them the proper amount of time to investigate them.

I’ve looked at Backbone.js, Knockout.js, Spine.js, Ember.js, Zappa, Express, JavaScriptMVC, Require.js, jQuery, jQuery Mobile, Handlebars.js, Jasmine, Angular.js, the list goes on.

For the server side I’m looking at Node.js and possibly MongoDB or CouchDB. Not sure…

I’ve also learned just how much I don’t know about JavaScript and how far it’s come. I had no idea what a REPL was until someone mentioned jsFiddle on Twitter.

Then there’s the whole JavaScript or CoffeeScript thing. I think it’s important to learn JavaScript before jumping into CoffeeScript, but it sure looks inviting…

At the moment, entirely subject to change, it looks like either Knockout.js or Backbone.js. I like the MVVM-like nature of Knockout.js data binding. But, Backbone.js has a very active community behind it. I’m nearing the point where I’ll just have to bite the bullet and pick one or I’ll never get going.

More examples soon. I promise!

I’m cursed, but I love it. May you live in interesting times or something like that…