Comme vu dans le post précédent, le choix coté serveur s’est fait sur java avec comme contrainte un hébergement « In the Cloud ».
Je dis contrainte car pour plein de bonnes raison, Google App Engine limite ce qu’on peut faire dans l’application. Amazon Web Services semble plus ouvert puisqu’il nous donne accès à une machine complète (IaaS vs Paas). Par contre leur solution me semble un peu plus heavy weigh et le cout d’entrée un peu plus élevé. Je me donne comme première contrainte le fait de pouvoir switcher ma plateforme. Cela me semble difficile a première vue car les 2 plateformes offrent beaucoup de solution « clé en main » apportant de grande valeur ajouté (SimpleDB et EC2 pour Amazon Web Services, Système de stockage spécifique – BigTable – pour Google).
De façon plus ou moins arbitraire, je choisi AppEngine de Google. Cela me semble un peu plus rapide de développer quelque chose sur cette plateforme, il y a une une intégration avec les comptes google et peut être des API pour les autres applications google (calendar, docs) qui pourrait m’intéresser.
Pour le développement maintenant que le choix, et donc de ses contraintes, est fait, que prendre? N’oublions pas la cible: les smartphones en plus des navigateurs classiques. A ce moment, je ne sais pas exactement quel est le standard de communication entre un smartphone et une application cloud ? REST? SOAP ? JSON ? HTTP? Atom?
Bon je fais un petit tour des centres de développement de chaque plateforme:
- iOS Dev Center Le site d’Apple est plutôt pas mal mais rien à part faire quelques articles sur les requêtes HTTP ou créer sa socket..
- Android Developers
- Create MSDN pour WP7
Je me dis que je prends le problème un peu à l’envers. Quel est le standard actuel pour les applications web (google calendar, twitter, facebook, foursquare, live.com) et forcément je verrais quelle API ciblée (coté serveur ou client)
Site API
- Google API : Mainly HTTP + Atom ou JSON
- Twitter; REST
- Facebook: Graph API / JSON
- Live.com: REST
- Foursquare.com (JSON, XML, HTTP)
Phone API
- REST Web Services In Windows Phone 7 (lukencode.com)
- Windows Phone 7 OData CTP, nope use REST and JSON (nickharris.net)
- Calling Web Services in Android (lukencode.com)
Framework
- Spring Android (springsource.com)
- Spring Mobile (springsource.com)
- Spring into mobile Application development (springsource.com)
- REST in Spring 3 (springsource.com)
- REST in Spring 3 MVC (springsource.com)
- Spring Social With Spring Social you can create applications that interact with various social networking sites such as Twitter, Facebook.
- Gaelyk
- Write your Google App Engine applications in Groovy