UNO+WIFI shield communicating with android app?

Dear arduino enthousiast,

I'm quite a beginner with arduino but able to write simple programs to control a servo and read out sensors.

But i'm planning to start a serious project with an arduino Wifi shield in combination with an android app.
i'm planning to do the following:

1:use an arduino uno rev3 to control 1 servo, the servo has 2 only positions 0 and 180.(open/close)
2:control this servo with a self made app(very simple app just 2 buttons: open and close) from out side the house (e.g MIT app inventor).

i would like to do this by using an arduino Wifi shield, but how?
-how to configure the Wifi shield?
-any tips for building an app?

I already googled a while, but nothing but trouble i find (not very encouraging).

of course i'm not asking for a complete code example, but some info from comparable projects or tutorials are very welcome.

thanks already!

For the arduino side, I'd start here.

arduino.cc/en/Tutorial/WiFiWebServer

That shows you how to use the WiFi shield to get network connectivity, and make a webserver out of that. What you want to do is make a webserver that will respond to a specific request by moving a servo in addition to responding with a success/error message. Make an effort to ensure that bogus requests are handled gracefully, since you have to assume you'll get those if your device is exposed to the wild web.

For the App side, just make your app fire off a the appropriate request. This is about as simple as it gets in Android.

The request should be directed at your external IP address (the one you get from whatismyip.com or similar) if you want to access it from outside your home network. If you want it to only work on your wifi, use the IP address of the Arduino. You probably still want to set up static lease for the Arduino (see below)

Finally, you need to configure your home network if you want it accessible from beyond your WiFi - In your router setup, you'll need to set up:
Static IP: DHCP/LAN settings - You need to have the router always give your arduino the same IP address. Look for an option for "static lease" or something like that - every manufacturer calls it something different - where you can assign a specific LAN IP address to a specific hardware MAC address. The MAC address, if it's not written on the shields, can be found on the router's "connected clients" list. The first 3 numbers of the IP address must match the router, the last one must be different from other devices on the network, preferably outside the range that your router assigns normal dynamic IP's from.

Port Forwarding: Forward whatever port you're running the arduino web server on (default is 80, as usual) to the IP address you set above.

You may want to use a dynamic DNS service (like dyn.com), particularly if your ISP changes your IP address periodically - so you don't have to change the app to point to a different IP address every time it does (many routers support automatically updating dyndns - though I've had little success with that feature)

As an aside, in a somewhat similar situation, I wound up writing a PHP page, running on XAMPP on a desktop that would be running 24/7 anyway, to act as a gateway between the microcontroller project (which was ill suited to serving large pages) and the client, which allowed me to serve up a nice, rich modern looking page. This would be a way to sidestep the whole mess that is android development - have it serve up a nice page with two buttons on it, and take the client's requests and send them off to the Arduino. This has another advantage, in that you can secure it better (using SSL/etc), because the Arduino doesn't have to be directly receiving the requests.