{"id":81,"date":"2010-12-05T21:16:11","date_gmt":"2010-12-05T19:16:11","guid":{"rendered":"http:\/\/www.bittner.fr\/blogs\/pierre\/?p=81"},"modified":"2010-12-05T21:16:11","modified_gmt":"2010-12-05T19:16:11","slug":"cloud-mobile-development","status":"publish","type":"post","link":"https:\/\/www.bittner.fr\/blogs\/pierre\/blog\/2010\/12\/05\/cloud-mobile-development\/","title":{"rendered":"Cloud \/ Mobile Development"},"content":{"rendered":"<p>Hello \u00e0 tous,<\/p>\n<p>Objectif: D\u00e9velopper une application accessible via un smart phone et\/ou un navigateur web.<\/p>\n<p>Je n&rsquo;entre pas dans les d\u00e9tails \u00ab\u00a0fonctionnels\u00a0\u00bb de l&rsquo;application. L&rsquo;application doit avant tout \u00eatre modulaire (ajout de fonctionnalit\u00e9).<\/p>\n<p>L&rsquo;application devra \u00eatre h\u00e9berg\u00e9 \u00ab\u00a0<a href=\"http:\/\/en.wikipedia.org\/wiki\/Cloud_computing\">in the cloud<\/a>\u00ab\u00a0. Le budget initial est approximativement le temps que je passe pour faire une 1ere version \u00ab\u00a0utilisable\u00a0\u00bb de application. Par utilisable, J&rsquo;entends qui peut \u00eatre diffus\u00e9 \u00e0 un premier groupe d&rsquo;utilisateurs qui n&rsquo;ont pas peur des petits bugs . La solution de publicit\u00e9 pour le financement (du projet) est envisag\u00e9e mais pas souhait\u00e9e. L&rsquo;objectif est plut\u00f4t de fournir une application dont la valeur ajout\u00e9e est suffisante pour que l&rsquo;utilisateur accepte de payer pour son utilisation.<\/p>\n<p>Comment restreindre au maximum le cout de l&rsquo;infrastructure? La solution actuelle est les solutions \u00ab\u00a0Cloud\u00a0\u00bb d&rsquo;<a href=\"http:\/\/aws.amazon.com\/\">Amazon Web Services<\/a>, <a href=\"http:\/\/code.google.com\/intl\/fr\/appengine\/\">Google App Engine<\/a>, <a href=\"http:\/\/www.microsoft.com\/windowsazure\/\">Microsoft Azure<\/a>, <a href=\"http:\/\/www.rackspacecloud.com\/\">Rackspace Cloud<\/a>, etc&#8230; L&rsquo;int\u00e9r\u00eat de ces offres \u00e9tant de payer \u00e0 la consommation de ressource (bande passante, CPU, espace disque, etc&#8230;)<\/p>\n<p>Le seul cout est donc le temps (libre!) que je passe \u00e0 d\u00e9velopper la plateforme. N&rsquo;ayant pas une quantit\u00e9 infinie de temps libre puisque je suis actuellement sur une mission plus que prenante, une vie sociale, etc. il faut que les choix technologiques me permettent d&rsquo;optimiser le temps \u00e0 d\u00e9velopper tout en prenant en compte les contraintes de la solution d&rsquo;h\u00e9bergement.<\/p>\n<p>On \u00e9carte .net presque \u00e0 regret puisque cette technologie semble connaitre un certain \u00ab\u00a0momentum\u00a0\u00bb dans le domaine de la finance ou j&rsquo;exerce actuellement. Le langage semble cependant assez proche de java mais l&rsquo;offre d&rsquo;h\u00e9bergement se limite \u00e0 Azure qui est un peu plus cher que les concurrents. Pas de python, ruby non plus. Les quelques articles ou ligne de code que j&rsquo;ai pu lire\/modifier ne m&rsquo;ont pas fait trop accrocher.<\/p>\n<p>Ayant programmer sur Java pendant plus d&rsquo;une dizaine d&rsquo;ann\u00e9es, le choix est \u00e0 priori facile. De plus les offres de Google et d&rsquo;Amazon ont semble t il choisi Java comme solution principale. Good.<\/p>\n<p>Maintenant l&rsquo;application a pour plateforme cible les smart phones et l\u00e0 ca se complique un peu. On pourrait penser qu&rsquo;en 2010 le probl\u00e8me de la portabilit\u00e9 ne se poserait plus mais il n&rsquo;en est rien. iOS (iPhone \/ Apple), Android (Google), Windows Phone 7 (Microsoft) chacun a d\u00e9velopp\u00e9 sa propre solution et difficile de trouver une solution commune \u00e0 part en d\u00e9veloppant une pure application web. La solution de webOS (Palm\/HP) semble la plus ouverte puisque les applications se d\u00e9veloppent en HTML\/javascript.<\/p>\n<p>Bref c&rsquo;est pas la joie. Je pensais que Java avait r\u00e9solu ce probl\u00e8me il y a 10 ans&#8230; \ud83d\ude41 Seul Android a adopt\u00e9 cette plateforme. On a donc de l&rsquo;objective C pour Apple. Ouch. De toute facon j&rsquo;ai l&rsquo;impression qu&rsquo;il faut obligatoirement un mac pour pouvoir faire tourner le kit de d\u00e9veloppement iOS. Un moment d&rsquo;espoir avec <a href=\"http:\/\/monotouch.net\/\">Mono Touch<\/a> et <a href=\"http:\/\/monodroid.net\/\">Mono Droid<\/a> qui auraient permis de d\u00e9velopper en C# sur iphone, Android et bien sur WP7. Mais rebelote Mono Touch requiert un Mac et Mono Droid ne semble pas encore super mature. Point important, c&rsquo;est payant! Bon solution suivante&#8230; Cela reste tout de m\u00eame des solutions int\u00e9ressantes pour ceux qui ont investi sur .net&#8230;<\/p>\n<p>On cherche mais pas trop de solution \u00e0 part la bonne vieille web app. On va partir la dessus dans un premier temps. Android propose un dev kit qui permet d&rsquo;\u00e9muler un terminal, la part de march\u00e9 importante de cette plateforme et le fait que l&rsquo;on d\u00e9veloppe en java me permettraient de faire quelque chose rapidement.<\/p>\n<p>J&rsquo;ai achet\u00e9 un WP7 il y a moins d&rsquo;un mois. Je suis tr\u00e8s tr\u00e8s enthousiaste pour cette plateforme. C&rsquo;est d&rsquo;ailleurs cette premi\u00e8re exp\u00e9rience avec ce mobile qui m&rsquo;a pouss\u00e9 \u00e0 me lancer dans l&rsquo;aventure de ce projet. Je me mettrais \u00e0 d\u00e9velopper une application d\u00e9di\u00e9e \u00e0 cette plateforme rapidement.<\/p>\n<p>iPhone a une part de march\u00e9 \u00e9norme mais le cout d entr\u00e9e est trop \u00e9lev\u00e9 pour moi. On verra quand on aura un peu de tr\u00e9sorerie si on peut faire quelque chose&#8230;<\/p>\n<p>Bon je pense avoir fait le tour des grands choix techniques: h\u00e9bergement in the cloud en java, web app pour le prototype mais on d\u00e9veloppe rapidement une application d\u00e9di\u00e9e (Android ou wp7) pour une meilleure exp\u00e9rience.<\/p>\n<p>La liste des fonctionnalit\u00e9s de la V1 est d\u00e9j\u00e0 faite. A pr\u00e9sent je vais faire une rapide \u00e9tude du choix des framework pour le d\u00e9veloppement du cot\u00e9 serveur.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hello \u00e0 tous, Objectif: D\u00e9velopper une application accessible via un smart phone et\/ou un navigateur web. Je n&rsquo;entre pas dans les d\u00e9tails \u00ab\u00a0fonctionnels\u00a0\u00bb de l&rsquo;application. L&rsquo;application doit avant tout \u00eatre modulaire (ajout de fonctionnalit\u00e9). L&rsquo;application devra \u00eatre h\u00e9berg\u00e9 \u00ab\u00a0in the cloud\u00ab\u00a0. Le budget initial est approximativement le temps que je passe pour faire une 1ere [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-81","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.0 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Cloud \/ Mobile Development - Pierre&#039;s weblog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.bittner.fr\/blogs\/pierre\/blog\/2010\/12\/05\/cloud-mobile-development\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Cloud \/ Mobile Development - Pierre&#039;s weblog\" \/>\n<meta property=\"og:description\" content=\"Hello \u00e0 tous, Objectif: D\u00e9velopper une application accessible via un smart phone et\/ou un navigateur web. Je n&rsquo;entre pas dans les d\u00e9tails \u00ab\u00a0fonctionnels\u00a0\u00bb de l&rsquo;application. L&rsquo;application doit avant tout \u00eatre modulaire (ajout de fonctionnalit\u00e9). L&rsquo;application devra \u00eatre h\u00e9berg\u00e9 \u00ab\u00a0in the cloud\u00ab\u00a0. Le budget initial est approximativement le temps que je passe pour faire une 1ere [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.bittner.fr\/blogs\/pierre\/blog\/2010\/12\/05\/cloud-mobile-development\/\" \/>\n<meta property=\"og:site_name\" content=\"Pierre&#039;s weblog\" \/>\n<meta property=\"article:published_time\" content=\"2010-12-05T19:16:11+00:00\" \/>\n<meta name=\"author\" content=\"Pierre\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"Pierre\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.bittner.fr\/blogs\/pierre\/blog\/2010\/12\/05\/cloud-mobile-development\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.bittner.fr\/blogs\/pierre\/blog\/2010\/12\/05\/cloud-mobile-development\/\"},\"author\":{\"name\":\"Pierre\",\"@id\":\"https:\/\/www.bittner.fr\/blogs\/pierre\/#\/schema\/person\/3ab57f92769bc1c95b4f56d526b0b225\"},\"headline\":\"Cloud \/ Mobile Development\",\"datePublished\":\"2010-12-05T19:16:11+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.bittner.fr\/blogs\/pierre\/blog\/2010\/12\/05\/cloud-mobile-development\/\"},\"wordCount\":792,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.bittner.fr\/blogs\/pierre\/#\/schema\/person\/3ab57f92769bc1c95b4f56d526b0b225\"},\"articleSection\":[\"Uncategorized\"],\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.bittner.fr\/blogs\/pierre\/blog\/2010\/12\/05\/cloud-mobile-development\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.bittner.fr\/blogs\/pierre\/blog\/2010\/12\/05\/cloud-mobile-development\/\",\"url\":\"https:\/\/www.bittner.fr\/blogs\/pierre\/blog\/2010\/12\/05\/cloud-mobile-development\/\",\"name\":\"Cloud \/ Mobile Development - Pierre&#039;s weblog\",\"isPartOf\":{\"@id\":\"https:\/\/www.bittner.fr\/blogs\/pierre\/#website\"},\"datePublished\":\"2010-12-05T19:16:11+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.bittner.fr\/blogs\/pierre\/blog\/2010\/12\/05\/cloud-mobile-development\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.bittner.fr\/blogs\/pierre\/blog\/2010\/12\/05\/cloud-mobile-development\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.bittner.fr\/blogs\/pierre\/blog\/2010\/12\/05\/cloud-mobile-development\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/www.bittner.fr\/blogs\/pierre\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Cloud \/ Mobile Development\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.bittner.fr\/blogs\/pierre\/#website\",\"url\":\"https:\/\/www.bittner.fr\/blogs\/pierre\/\",\"name\":\"Pierre's weblog\",\"description\":\"Release 2.3\",\"publisher\":{\"@id\":\"https:\/\/www.bittner.fr\/blogs\/pierre\/#\/schema\/person\/3ab57f92769bc1c95b4f56d526b0b225\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.bittner.fr\/blogs\/pierre\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/www.bittner.fr\/blogs\/pierre\/#\/schema\/person\/3ab57f92769bc1c95b4f56d526b0b225\",\"name\":\"Pierre\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/www.bittner.fr\/blogs\/pierre\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.bittner.fr\/blogs\/pierre\/wp-content\/uploads\/2025\/09\/Pierre-Bittner.png\",\"contentUrl\":\"https:\/\/www.bittner.fr\/blogs\/pierre\/wp-content\/uploads\/2025\/09\/Pierre-Bittner.png\",\"width\":1920,\"height\":1080,\"caption\":\"Pierre\"},\"logo\":{\"@id\":\"https:\/\/www.bittner.fr\/blogs\/pierre\/#\/schema\/person\/image\/\"},\"sameAs\":[\"http:\/\/www.bittner.fr\/blogs\/pierre\",\"https:\/\/www.linkedin.com\/in\/pierre-bittner\/\",\"https:\/\/www.youtube.com\/@pierrebittner\"],\"url\":\"https:\/\/www.bittner.fr\/blogs\/pierre\/blog\/author\/admin\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Cloud \/ Mobile Development - Pierre&#039;s weblog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.bittner.fr\/blogs\/pierre\/blog\/2010\/12\/05\/cloud-mobile-development\/","og_locale":"fr_FR","og_type":"article","og_title":"Cloud \/ Mobile Development - Pierre&#039;s weblog","og_description":"Hello \u00e0 tous, Objectif: D\u00e9velopper une application accessible via un smart phone et\/ou un navigateur web. Je n&rsquo;entre pas dans les d\u00e9tails \u00ab\u00a0fonctionnels\u00a0\u00bb de l&rsquo;application. L&rsquo;application doit avant tout \u00eatre modulaire (ajout de fonctionnalit\u00e9). L&rsquo;application devra \u00eatre h\u00e9berg\u00e9 \u00ab\u00a0in the cloud\u00ab\u00a0. Le budget initial est approximativement le temps que je passe pour faire une 1ere [&hellip;]","og_url":"https:\/\/www.bittner.fr\/blogs\/pierre\/blog\/2010\/12\/05\/cloud-mobile-development\/","og_site_name":"Pierre&#039;s weblog","article_published_time":"2010-12-05T19:16:11+00:00","author":"Pierre","twitter_card":"summary_large_image","twitter_misc":{"\u00c9crit par":"Pierre","Dur\u00e9e de lecture estim\u00e9e":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.bittner.fr\/blogs\/pierre\/blog\/2010\/12\/05\/cloud-mobile-development\/#article","isPartOf":{"@id":"https:\/\/www.bittner.fr\/blogs\/pierre\/blog\/2010\/12\/05\/cloud-mobile-development\/"},"author":{"name":"Pierre","@id":"https:\/\/www.bittner.fr\/blogs\/pierre\/#\/schema\/person\/3ab57f92769bc1c95b4f56d526b0b225"},"headline":"Cloud \/ Mobile Development","datePublished":"2010-12-05T19:16:11+00:00","mainEntityOfPage":{"@id":"https:\/\/www.bittner.fr\/blogs\/pierre\/blog\/2010\/12\/05\/cloud-mobile-development\/"},"wordCount":792,"commentCount":0,"publisher":{"@id":"https:\/\/www.bittner.fr\/blogs\/pierre\/#\/schema\/person\/3ab57f92769bc1c95b4f56d526b0b225"},"articleSection":["Uncategorized"],"inLanguage":"fr-FR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.bittner.fr\/blogs\/pierre\/blog\/2010\/12\/05\/cloud-mobile-development\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.bittner.fr\/blogs\/pierre\/blog\/2010\/12\/05\/cloud-mobile-development\/","url":"https:\/\/www.bittner.fr\/blogs\/pierre\/blog\/2010\/12\/05\/cloud-mobile-development\/","name":"Cloud \/ Mobile Development - Pierre&#039;s weblog","isPartOf":{"@id":"https:\/\/www.bittner.fr\/blogs\/pierre\/#website"},"datePublished":"2010-12-05T19:16:11+00:00","breadcrumb":{"@id":"https:\/\/www.bittner.fr\/blogs\/pierre\/blog\/2010\/12\/05\/cloud-mobile-development\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.bittner.fr\/blogs\/pierre\/blog\/2010\/12\/05\/cloud-mobile-development\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.bittner.fr\/blogs\/pierre\/blog\/2010\/12\/05\/cloud-mobile-development\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.bittner.fr\/blogs\/pierre\/"},{"@type":"ListItem","position":2,"name":"Cloud \/ Mobile Development"}]},{"@type":"WebSite","@id":"https:\/\/www.bittner.fr\/blogs\/pierre\/#website","url":"https:\/\/www.bittner.fr\/blogs\/pierre\/","name":"Pierre's weblog","description":"Release 2.3","publisher":{"@id":"https:\/\/www.bittner.fr\/blogs\/pierre\/#\/schema\/person\/3ab57f92769bc1c95b4f56d526b0b225"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.bittner.fr\/blogs\/pierre\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":["Person","Organization"],"@id":"https:\/\/www.bittner.fr\/blogs\/pierre\/#\/schema\/person\/3ab57f92769bc1c95b4f56d526b0b225","name":"Pierre","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.bittner.fr\/blogs\/pierre\/#\/schema\/person\/image\/","url":"https:\/\/www.bittner.fr\/blogs\/pierre\/wp-content\/uploads\/2025\/09\/Pierre-Bittner.png","contentUrl":"https:\/\/www.bittner.fr\/blogs\/pierre\/wp-content\/uploads\/2025\/09\/Pierre-Bittner.png","width":1920,"height":1080,"caption":"Pierre"},"logo":{"@id":"https:\/\/www.bittner.fr\/blogs\/pierre\/#\/schema\/person\/image\/"},"sameAs":["http:\/\/www.bittner.fr\/blogs\/pierre","https:\/\/www.linkedin.com\/in\/pierre-bittner\/","https:\/\/www.youtube.com\/@pierrebittner"],"url":"https:\/\/www.bittner.fr\/blogs\/pierre\/blog\/author\/admin\/"}]}},"_links":{"self":[{"href":"https:\/\/www.bittner.fr\/blogs\/pierre\/wp-json\/wp\/v2\/posts\/81","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.bittner.fr\/blogs\/pierre\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.bittner.fr\/blogs\/pierre\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.bittner.fr\/blogs\/pierre\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.bittner.fr\/blogs\/pierre\/wp-json\/wp\/v2\/comments?post=81"}],"version-history":[{"count":11,"href":"https:\/\/www.bittner.fr\/blogs\/pierre\/wp-json\/wp\/v2\/posts\/81\/revisions"}],"predecessor-version":[{"id":112,"href":"https:\/\/www.bittner.fr\/blogs\/pierre\/wp-json\/wp\/v2\/posts\/81\/revisions\/112"}],"wp:attachment":[{"href":"https:\/\/www.bittner.fr\/blogs\/pierre\/wp-json\/wp\/v2\/media?parent=81"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.bittner.fr\/blogs\/pierre\/wp-json\/wp\/v2\/categories?post=81"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.bittner.fr\/blogs\/pierre\/wp-json\/wp\/v2\/tags?post=81"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}