<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Développement iPhone, webdesign et SEO à Montréal</title>
	<atom:link href="http://blog.yannbouschet.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.yannbouschet.com</link>
	<description>Il n&#039;y a pas de problèmes, que des solutions.</description>
	<lastBuildDate>Sat, 10 Dec 2011 16:51:57 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
	<div id='fb-root'></div>
					<script type='text/javascript'>
						window.fbAsyncInit = function()
						{
							FB.init({appId: null, status: true, cookie: true, xfbml: true});
						};
						(function()
						{
							var e = document.createElement('script'); e.async = true;
							e.src = document.location.protocol + '//connect.facebook.net/fr_FR/all.js';
							document.getElementById('fb-root').appendChild(e);
						}());
					</script>	
						<item>
		<title>Alquerque &#8211; El Quirkat pour iPhone et iPad</title>
		<link>http://blog.yannbouschet.com/alquerque-el-quirkat-iphone-ipad/</link>
		<comments>http://blog.yannbouschet.com/alquerque-el-quirkat-iphone-ipad/#comments</comments>
		<pubDate>Sat, 10 Dec 2011 16:50:16 +0000</pubDate>
		<dc:creator>yannbouschet</dc:creator>
				<category><![CDATA[Développement iPhone / iPad]]></category>

		<guid isPermaLink="false">http://blog.yannbouschet.com/?p=338</guid>
		<description><![CDATA[Disponible gratuitement sur l&#8217;AppStore ! &#62;&#62; Connaissez-vous l&#8217;ancêtre du Jeu de Dames : El Quirkat ? Son histoire peut être retracée jusqu&#8217;au Xème siècle. Originaire du Moyen Orient ce jeu est arrivé en Europe lors des Invasions Barbares. Le nom se transforme en Alquerque durant l&#8217;occupation de l&#8217;Espagne par les Arabes. Il va ensuite traverser [...]]]></description>
			<content:encoded><![CDATA[<div class='wpfblike' style='height: 40px;'><fb:like href='http://blog.yannbouschet.com/alquerque-el-quirkat-iphone-ipad/' layout='default' show_faces='true' width='300' action='like' colorscheme='light' send='false' /></div><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><h2><a href="http://itunes.apple.com/fr/app/alquerque/id377436056?mt=8">Disponible gratuitement sur l&#8217;AppStore ! &gt;&gt;</a></h2>
<p><strong>Connaissez-vous l&#8217;ancêtre du Jeu de Dames : El Quirkat ?</strong></p>
<p><img class="alignright" title="Alquerque / El Quirkat - Wikipedia" src="http://upload.wikimedia.org/wikipedia/commons/thumb/c/c1/Alquerque_in_Libro_de_los_juegos.jpg/320px-Alquerque_in_Libro_de_los_juegos.jpg" alt="" width="320" height="225" />Son histoire peut être retracée jusqu&#8217;au Xème siècle. Originaire du Moyen Orient ce jeu est arrivé en Europe lors des Invasions Barbares. Le nom se transforme en <strong>Alquerque</strong> durant l&#8217;occupation de l&#8217;Espagne par les Arabes. Il va ensuite traverser l&#8217;Atlantique avec les conquistadors et continuer d&#8217;évoluer à partir du Nouveau-Mexique. (<a href="http://fr.wikipedia.org/wiki/Alquerque" target="_blank">Plus d&#8217;infos sur Alquerque sur Wikipedia !</a>)</p>
<p>C&#8217;est un vieux projet que j&#8217;ai repris a zero récemment. Ma première version comprenait seulement la planche de jeu, les pions et les règles. Il n&#8217;y avait pas d&#8217;intelligence artificielle, donc pas moyen de jouer contre le iPhone.</p>
<p>Bien que cela soit clairement affiché dans la description du jeu sur l&#8217;AppStore, les commentaires négatifs des utilisateurs prouvent que ces descriptions ne sont souvent lues qu&#8217;après l&#8217;achat ou pendant le téléchargement du jeu !</p>
<p><img class="alignright" title="el Quirkat iphone alquerque ipad" src="http://www.yannbouschet.com/alquerque/Intro.png" alt="" width="320" height="480" /><strong>Refonte totale</strong></p>
<p>Donc reprise à zéro du projet avec les idées suivantes en tête :<br />
- Une I.A.<br />
- format iPhone / iPad<br />
- Un nouveau modèle de monétisation<br />
- Utilisation du Game Center  pour du multi-joueurs en ligne</p>
<p><strong>Intelligence Artificielle&#8230; assez forte, merci !</strong></p>
<p>Après quelques recherches sur le net j&#8217;ai trouvé un algorithme d&#8217;I.A. pour ce jeu, que j&#8217;ai adapté pour iOS et l&#8217;utilisation future du jeu en ligne. L&#8217;adaptation vers Obj-C a été assez simple finalement, mais demanderait encore un peu de travail pour fignoler les effets de déplacement des pièces.</p>
<p><strong>Question argent</strong></p>
<p>La première version d&#8217;Alquerque était en vente à 1$ sur l&#8217;AppStore. Bilan : 74 exemplaires vendus : 50$. C&#8217;est pas lourd !!!</p>
<p>On change donc d&#8217;approche pour cette nouvelle version. <strong>Pour offrir du multi-joueurs en ligne&#8230; il faut des joueurs, l&#8217;app de base est donc gratuite.</strong></p>
<p><img class="alignright" title="alquerque el quirkat iphone ipad 5 level AI" src="http://www.yannbouschet.com/alquerque/in_game.png" alt="" width="320" height="480" /><br />
Mais elle comporte un bandeau de pub et des options payantes :<br />
- une option pour enlever justement ce bandeau ce pub qui devrait assez vite devenir agaçant<br />
- et l&#8217;option pour jouer en ligne, via le Game Center, qui sera introduite lorsque le nombre de joueurs sera suffisant.</p>
<p>Premiers résultats de l&#8217;opération : L&#8217;app approuvée hier a déjà été téléchargée 60 fois dans la nuit depuis qu&#8217;elle est gratuite, c&#8217;est un début! Et une personne a même déjà acheté l&#8217;option pour supprimer la pub, cool.</p>
<p>Pour l&#8217;instant la pub n&#8217;est distribuée que par iAd, mais le taux d&#8217;impression est assez ridicule, voir quasi-inexistant. Donc la prochain mise à jour intégrera aussi <a href="https://www.adwhirl.com/" target="_blank">AdWhirl, pour diffuser des annonces provenant d&#8217;autres régies lorsque iAd ne servira rien</a> (ce qui est plutôt la norme&#8230;)</p>
<p>Le but est donc bien de se servir de la pub comme élément perturbateur que les utilisateurs pourront supprimer en payant, plutôt que d&#8217;espérer gagner le moindre $ avec les impressions&#8230;</p>
<p><strong>Multi-joueurs en ligne = Game Center Turn Based  API</strong></p>
<p>Enfin, ce projet me permet de découvrir et mettre en application les outils multi-joueurs qu&#8217;iOS proposent aux développeurs. Et il y a de quoi se réjouir ! Grâce à cet <a href="http://www.raywenderlich.com/5480/beginning-turn-based-gaming-with-ios-5-part-1" target="_blank">excellent tutoriel sur le Game Center</a> l&#8217;intégration a été assez simple et rapide. Il faut dire que le jeu s&#8217;y prête bien : les deux joueurs jouent à tout de role et les conditions de victoire sont très claires. De ce coté là, même si Alquerque ne rapporte que très peu d&#8217;argent, <strong>le gain en savoir-faire est très appréciable.</strong> En fait j&#8217;ai même déjà commencer à décliner ces nouvelles compétences sur un autre jeu d&#8217;un tout autre style !</p>
<p><img class="alignright" title="alquerque ipad er qirkat iphone ipod" src="http://www.yannbouschet.com/alquerque/tigers.png" alt="" width="320" height="480" /><strong>Pourquoi pas de multi-joueurs en ligne dès le lancement ?</strong></p>
<p>Je préfère attendre que l&#8217;app se diffuse suffisamment avant d&#8217;offrir cette option payante. Je pense qu&#8217;un utilisateur achetant cette option et ne trouvant pas assez rapidement de partenaires pour jouer en ligne, sera forcément déçu : on aime pas ça !</p>
<p>Et cela me permettra aussi de refaire une nouvelle petite promo à la mise en ligne de la nouvelle option.</p>
<h2><a href="http://itunes.apple.com/fr/app/alquerque/id377436056?mt=8">Disponible gratuitement sur l&#8217;AppStore ! &gt;&gt;</a></h2>
<p>&nbsp;</p>
<p>&nbsp;<!-- PHP 5.x --></p>
<div class="shr-publisher-338"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://blog.yannbouschet.com/alquerque-el-quirkat-iphone-ipad/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ma première navette spatiale / My First Orbiter</title>
		<link>http://blog.yannbouschet.com/ma-premiere-navette-spatiale-my-first-orbiter/</link>
		<comments>http://blog.yannbouschet.com/ma-premiere-navette-spatiale-my-first-orbiter/#comments</comments>
		<pubDate>Tue, 01 Nov 2011 18:31:37 +0000</pubDate>
		<dc:creator>yannbouschet</dc:creator>
				<category><![CDATA[Développement iPhone / iPad]]></category>

		<guid isPermaLink="false">http://blog.yannbouschet.com/?p=329</guid>
		<description><![CDATA[Une nouvelle app qui va faire du bruit! Destiné aux enfants, ce jeu transforme le iPad en cockpit de navette spatiale. Les boutons du tableau de bord clignotent et déclenchent une multitude de sons bizarres. C&#8217;est une véritable invitation à de passionnants voyages imaginaires, au plus profond de l&#8217;espace. Il n&#8217;y a pas de but à [...]]]></description>
			<content:encoded><![CDATA[<div class='wpfblike' style='height: 40px;'><fb:like href='http://blog.yannbouschet.com/ma-premiere-navette-spatiale-my-first-orbiter/' layout='default' show_faces='true' width='300' action='like' colorscheme='light' send='false' /></div><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p><a href="http://blog.yannbouschet.com/wp-content/uploads/2011/11/my_first_orbiter_ipad.png" rel="lightbox[329]"><img class="size-medium wp-image-330 alignright" title="My First Orbiter - Ma première navette spatiale" src="http://blog.yannbouschet.com/wp-content/uploads/2011/11/my_first_orbiter_ipad-300x225.png" alt="" width="300" height="225" /></a></p>
<p><strong>Une nouvelle app qui va faire du bruit!</strong></p>
<p>Destiné aux enfants, ce jeu transforme le iPad en cockpit de navette spatiale. Les boutons du tableau de bord clignotent et déclenchent une multitude de sons bizarres.</p>
<p>C&#8217;est une véritable invitation à de passionnants voyages imaginaires, au plus profond de l&#8217;espace.</p>
<p>Il n&#8217;y a pas de but à atteindre, de mission à remplir ou de scénario à suivre : juste un simple écran interactif pour stimuler et accompagner l&#8217;imagination de vos astronautes en herbe.</p>
<p><a title="my first orbiter iPad" href="http://itunes.apple.com/fr/app/id469819934?mt=8" target="_blank"><strong>Ma première navette spatiale, pour iPad<br />
</strong>est disponible sur l&#8217;AppStore pour .99 cents &gt;&gt;</a></p>
<p>&nbsp;</p>
<p>&nbsp;<!-- PHP 5.x --></p>
<div class="shr-publisher-329"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://blog.yannbouschet.com/ma-premiere-navette-spatiale-my-first-orbiter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Stockage de données pour Unity3D : Array, ArrayLists, Hashtables&#8230;</title>
		<link>http://blog.yannbouschet.com/stockage-de-donnees-pour-unity3d-array-arraylists-hashtables-co/</link>
		<comments>http://blog.yannbouschet.com/stockage-de-donnees-pour-unity3d-array-arraylists-hashtables-co/#comments</comments>
		<pubDate>Sun, 04 Sep 2011 02:22:17 +0000</pubDate>
		<dc:creator>yannbouschet</dc:creator>
				<category><![CDATA[Développement iPhone / iPad]]></category>

		<guid isPermaLink="false">http://blog.yannbouschet.com/?p=323</guid>
		<description><![CDATA[En cherchant de quoi recréer un NSDictionary pour Unity3D, je suis tombé sur cet excellent article qui décrit les différentes solutions de stockage de données pour Unity, en JS et C#. http://robotduck.wordpress.com/2009/11/04/88/ Article tréééés instructif. Je pense que le reste du blog contient aussi bien d&#8217;autres trésors. &#160;]]></description>
			<content:encoded><![CDATA[<div class='wpfblike' style='height: 40px;'><fb:like href='http://blog.yannbouschet.com/stockage-de-donnees-pour-unity3d-array-arraylists-hashtables-co/' layout='default' show_faces='true' width='300' action='like' colorscheme='light' send='false' /></div><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>En cherchant de quoi recréer un NSDictionary pour Unity3D, je suis tombé sur cet excellent article qui décrit les différentes solutions de stockage de données pour Unity, en JS et C#.</p>
<p><a href="http://robotduck.wordpress.com/2009/11/04/88/" target="_blank">http://robotduck.wordpress.com/2009/11/04/88/</a></p>
<p>Article tréééés instructif.<br />
Je pense que le reste du blog contient aussi bien d&#8217;autres trésors.</p>
<p>&nbsp;<!-- PHP 5.x --></p>
<div class="shr-publisher-323"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://blog.yannbouschet.com/stockage-de-donnees-pour-unity3d-array-arraylists-hashtables-co/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cadre noir qui tourne (Unity3D &#8211; iPhone)</title>
		<link>http://blog.yannbouschet.com/cadre-noir-qui-tourne-unity3d-iphone/</link>
		<comments>http://blog.yannbouschet.com/cadre-noir-qui-tourne-unity3d-iphone/#comments</comments>
		<pubDate>Sat, 04 Jun 2011 23:25:56 +0000</pubDate>
		<dc:creator>yannbouschet</dc:creator>
				<category><![CDATA[Développement iPhone / iPad]]></category>

		<guid isPermaLink="false">http://blog.yannbouschet.com/?p=308</guid>
		<description><![CDATA[Un quicky tant que je suis dessus. Vous avez peut être déjà remarqué que certaines app ont un drôle de cadre noir qui apparait parfois quand on change d&#8217;orientation. Le cadre effectue une rotation mais pas l&#8217;écran principal&#8230; bizarre&#8230; bizarre. En fait il s&#8217;agit du clavier virtuel de l&#8217;iPhone qui se met automatiquement à la [...]]]></description>
			<content:encoded><![CDATA[<div class='wpfblike' style='height: 40px;'><fb:like href='http://blog.yannbouschet.com/cadre-noir-qui-tourne-unity3d-iphone/' layout='default' show_faces='true' width='300' action='like' colorscheme='light' send='false' /></div><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>Un quicky tant que je suis dessus.</p>
<p>Vous avez peut être déjà remarqué que certaines app ont un drôle de cadre noir qui apparait parfois quand on change d&#8217;orientation. Le cadre effectue une rotation mais pas l&#8217;écran principal&#8230; bizarre&#8230; bizarre.</p>
<p>En fait il s&#8217;agit du clavier virtuel de l&#8217;iPhone qui se met automatiquement à la bonne orientation, même quand il est caché !</p>
<p>Pour corriger ça sur les jeux développés avec Unity3D voici ce qu&#8217;il faut insérer dans votre script  principal (javascript) au lancement de l&#8217;app :</p>
<div class="codecolorer-container javascript geshi" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #003366; font-weight: bold;">function</span> Start <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
iPhoneKeyboard.<span style="color: #660066;">autorotateToPortrait</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">false</span><span style="color: #339933;">;</span><br />
iPhoneKeyboard.<span style="color: #660066;">autorotateToPortraitUpsideDown</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">false</span><span style="color: #339933;">;</span><br />
iPhoneKeyboard.<span style="color: #660066;">autorotateToLandscapeRight</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">false</span><span style="color: #339933;">;</span><br />
iPhoneKeyboard.<span style="color: #660066;">autorotateToLandscapeLeft</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">false</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span></div></div>
<p>Plus de rotation de clavier, plus de cadre noir.<!-- PHP 5.x --></p>
<div class="shr-publisher-308"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://blog.yannbouschet.com/cadre-noir-qui-tourne-unity3d-iphone/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>UINavigationController : viewWillAppear n&#8217;est pas appelé&#8230;</title>
		<link>http://blog.yannbouschet.com/uinavigationcontroller-viewwillappear-nest-pas-appele/</link>
		<comments>http://blog.yannbouschet.com/uinavigationcontroller-viewwillappear-nest-pas-appele/#comments</comments>
		<pubDate>Sun, 06 Mar 2011 04:38:50 +0000</pubDate>
		<dc:creator>yannbouschet</dc:creator>
				<category><![CDATA[Développement iPhone / iPad]]></category>

		<guid isPermaLink="false">http://blog.yannbouschet.com/?p=293</guid>
		<description><![CDATA[Grosse surprise ce soir : viewWillAppear n&#8217;est pas appelé lorsque qu&#8217;on met en place un UINavigationController dans son code, sans utiliser Interface Builder&#8230; Ben là, c&#8217;est n&#8217;importe quoi ! Heureusement il y a un remède pas trop compliqué, il suffit de pointer l&#8217;utilisation de UINavigationControllerDelegate sur le UIViewController à la base de la navigation. Donc [...]]]></description>
			<content:encoded><![CDATA[<div class='wpfblike' style='height: 40px;'><fb:like href='http://blog.yannbouschet.com/uinavigationcontroller-viewwillappear-nest-pas-appele/' layout='default' show_faces='true' width='300' action='like' colorscheme='light' send='false' /></div><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>Grosse surprise ce soir : viewWillAppear n&#8217;est pas appelé lorsque qu&#8217;on met en place un UINavigationController dans son code, sans utiliser Interface Builder&#8230; Ben là, c&#8217;est n&#8217;importe quoi !<br />
Heureusement il y a un remède pas trop compliqué, il suffit de pointer l&#8217;utilisation de UINavigationControllerDelegate sur le UIViewController à la base de la navigation.</p>
<p>Donc dans .h on a par exemple :</p>
<div class="codecolorer-container objc geshi" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="objc codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #a61390;">@interface</span> RootViewController <span style="color: #002200;">:</span> UIViewController &nbsp;<span style="color: #002200;">&#123;</span><br />
<br />
UINavigationController <span style="color: #002200;">*</span>navigationController;<br />
<br />
<span style="color: #002200;">&#125;</span><br />
<br />
<span style="color: #a61390;">@property</span> <span style="color: #002200;">&#40;</span>nonatomic, retain<span style="color: #002200;">&#41;</span> UINavigationController <span style="color: #002200;">*</span>navigationController;</div></div>
<p>Et dans  .m, on pointe le delegate sur soi-même et on rajoute les 2 fonctions de UINavigationControllerDelegate.</p>
<p>Ne pas oublier aussi d&#8217;ajouter la &laquo;&nbsp;view&nbsp;&raquo; de navigationController à la hiérarchie sinon&#8230; ben le système de nav ne sera jamais visible.</p>
<div class="codecolorer-container objc geshi" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:300px;"><div class="objc codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #002200;">-</span> <span style="color: #002200;">&#40;</span><span style="color: #a61390;">void</span><span style="color: #002200;">&#41;</span>viewDidLoad <span style="color: #002200;">&#123;</span><br />
<br />
navigationController <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span><span style="color: #002200;">&#91;</span>UINavigationController alloc<span style="color: #002200;">&#93;</span> init<span style="color: #002200;">&#93;</span>;<br />
<br />
<span style="color: #002200;">&#91;</span>navigationController setDelegate<span style="color: #002200;">:</span>self<span style="color: #002200;">&#93;</span>;<br />
<br />
SplashViewController <span style="color: #002200;">*</span>tempoVC <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span><span style="color: #002200;">&#91;</span>SplashViewController alloc<span style="color: #002200;">&#93;</span> initWithNibName<span style="color: #002200;">:</span><span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;SplashViewController&quot;</span> bundle<span style="color: #002200;">:</span><span style="color: #a61390;">nil</span><span style="color: #002200;">&#93;</span>;<br />
<br />
<span style="color: #002200;">&#91;</span>navigationController pushViewController<span style="color: #002200;">:</span>tempoVC animated<span style="color: #002200;">:</span><span style="color: #a61390;">NO</span><span style="color: #002200;">&#93;</span>;<br />
<br />
<span style="color: #002200;">&#91;</span>tempoVC release<span style="color: #002200;">&#93;</span>;<br />
<br />
<span style="color: #002200;">&#91;</span>self.view addSubview<span style="color: #002200;">:</span>navigationController.view<span style="color: #002200;">&#93;</span>;<span style="color: #002200;">&#91;</span>super viewDidLoad<span style="color: #002200;">&#93;</span>;<br />
<br />
<span style="color: #002200;">&#125;</span><br />
<br />
<span style="color: #002200;">-</span><span style="color: #002200;">&#40;</span><span style="color: #a61390;">void</span><span style="color: #002200;">&#41;</span>navigationController<span style="color: #002200;">:</span><span style="color: #002200;">&#40;</span>UINavigationController <span style="color: #002200;">*</span><span style="color: #002200;">&#41;</span>navigationController didShowViewController<span style="color: #002200;">:</span><span style="color: #002200;">&#40;</span>UIViewController <span style="color: #002200;">*</span><span style="color: #002200;">&#41;</span>viewController animated<span style="color: #002200;">:</span><span style="color: #002200;">&#40;</span><span style="color: #a61390;">BOOL</span><span style="color: #002200;">&#41;</span>animated <span style="color: #002200;">&#123;</span><br />
<br />
<span style="color: #a61390;">if</span> <span style="color: #002200;">&#40;</span><span style="color: #002200;">&#91;</span>viewController respondsToSelector<span style="color: #002200;">:</span><span style="color: #a61390;">@selector</span><span style="color: #002200;">&#40;</span>viewDidAppear<span style="color: #002200;">:</span><span style="color: #002200;">&#41;</span><span style="color: #002200;">&#93;</span><span style="color: #002200;">&#41;</span> <span style="color: #002200;">&#123;</span><br />
<br />
<span style="color: #002200;">&#91;</span>viewController viewDidAppear<span style="color: #002200;">:</span>animated<span style="color: #002200;">&#93;</span>;<br />
<br />
<span style="color: #002200;">&#125;</span><br />
<br />
<span style="color: #002200;">&#125;</span><br />
<br />
<span style="color: #002200;">-</span><span style="color: #002200;">&#40;</span><span style="color: #a61390;">void</span><span style="color: #002200;">&#41;</span>navigationController<span style="color: #002200;">:</span><span style="color: #002200;">&#40;</span>UINavigationController <span style="color: #002200;">*</span><span style="color: #002200;">&#41;</span>navigationController willShowViewController<span style="color: #002200;">:</span><span style="color: #002200;">&#40;</span>UIViewController <span style="color: #002200;">*</span><span style="color: #002200;">&#41;</span>viewController animated<span style="color: #002200;">:</span><span style="color: #002200;">&#40;</span><span style="color: #a61390;">BOOL</span><span style="color: #002200;">&#41;</span>animated <span style="color: #002200;">&#123;</span><br />
<br />
<span style="color: #a61390;">if</span> <span style="color: #002200;">&#40;</span><span style="color: #002200;">&#91;</span>viewController respondsToSelector<span style="color: #002200;">:</span><span style="color: #a61390;">@selector</span><span style="color: #002200;">&#40;</span>viewWillAppear<span style="color: #002200;">:</span><span style="color: #002200;">&#41;</span><span style="color: #002200;">&#93;</span><span style="color: #002200;">&#41;</span> <span style="color: #002200;">&#123;</span><br />
<br />
<span style="color: #002200;">&#91;</span>viewController viewWillAppear<span style="color: #002200;">:</span>animated<span style="color: #002200;">&#93;</span>;<br />
<br />
<span style="color: #002200;">&#125;</span><br />
<br />
<span style="color: #002200;">&#125;</span></div></div>
<p><!-- PHP 5.x --></p>
<div class="shr-publisher-293"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://blog.yannbouschet.com/uinavigationcontroller-viewwillappear-nest-pas-appele/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SOAP sur iPhone : terrain glissant !</title>
		<link>http://blog.yannbouschet.com/soap-sur-iphone-terrain-glissant/</link>
		<comments>http://blog.yannbouschet.com/soap-sur-iphone-terrain-glissant/#comments</comments>
		<pubDate>Tue, 01 Mar 2011 02:55:41 +0000</pubDate>
		<dc:creator>yannbouschet</dc:creator>
				<category><![CDATA[Développement iPhone / iPad]]></category>

		<guid isPermaLink="false">http://blog.yannbouschet.com/?p=255</guid>
		<description><![CDATA[Sur un projet récent,  j&#8217;ai du me frotter à l&#8217;utilisation de SOAP pour communiquer avec une API, aussi efficace que mal documentée&#8230; Tout d&#8217;abord, un grand merci aux créateurs de http://www.webutils.pl/ Ce site propose une panoplie d&#8217;outils en ligne de cryptage/décryptage/checksum, etc. Bref, tout ce qu&#8217;il faut pour s&#8217;y retrouver quand, par exemple, il faut [...]]]></description>
			<content:encoded><![CDATA[<div class='wpfblike' style='height: 40px;'><fb:like href='http://blog.yannbouschet.com/soap-sur-iphone-terrain-glissant/' layout='default' show_faces='true' width='300' action='like' colorscheme='light' send='false' /></div><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>Sur un projet récent,  j&#8217;ai du me frotter à l&#8217;utilisation de SOAP pour communiquer avec une API, aussi efficace que mal documentée&#8230;</p>
<p><strong>Tout d&#8217;abord, un grand merci </strong>aux créateurs de http://www.webutils.pl/</p>
<p>Ce site propose une panoplie <a href="http://www.webutils.pl/" target="_blank">d&#8217;outils en ligne de cryptage/décryptage/checksum</a>, etc. Bref, tout ce qu&#8217;il faut pour s&#8217;y retrouver quand, par exemple, il faut transmettre dans un fichier XML une image codée en Base64 et signée par un CRC-32.</p>
<p>J&#8217;ai utilisé ces outils pour comparer mes envois avec un dump d&#8217;un envoi correct fourni par le service, jusqu&#8217;à ce que pour la même image (extraite du dump !) les codages et signatures soient les mêmes. Une adresse à retenir donc.</p>
<h2><strong>SOAP 1.1 sur iPhone/iPad/iOS</strong></h2>
<p>Ca commence par une recherche sur le web (et c&#8217;est peut être ce qui vous amène ici, hein ?!)<br />
Peu de ressources disponibles, des exemples souvent incomplets, alors voici ma petite contribution en français !</p>
<p>J&#8217;utilise <a href="http://allseeing-i.com/ASIHTTPRequest/" target="_blank">ASIHTTPRequest</a> pour tous mes envois, c&#8217;est complet, pratique, synchrone ou non = un gain de temps considérable !<br />
Suffit juste de prendre le temps <strong>DE LIRE LA DOC</strong> !</p>
<p>La première chose à faire, si on veut une communication asynchrone sera de rendre l&#8217;objet capable de gérer les delegate de ASIHTTP. <strong>Attention, j&#8217;utilise ASIHTTPRequest et non pas ASIFormDataRequest, qui a aussi ses delegate.</strong></p>
<pre><!-- p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo} span.s1 {color: #bb2ca2} -->@interface votre_object : NSObject &lt;ASIHTTPRequestDelegate&gt; {</pre>
<p>Ensuite, ben on y va pour une requête SOAP simple, par exemple pour lancer une session, pas de paramètres à envoyer, juste une action. Notez que dans l&#8217;exemple suivant il vous faudrait remplacer le texte SOAP_ACTION par votre propre action. Notez aussi que cette balise est une &#8216;singlette&#8217;, elle n&#8217;a pas de balise fermante et doit avoir un / avant le &gt; . Avec les \&nbsp;&raquo;,  / et autre \n  ça peut vite devenir un poil confus et celui-là on le rate assez facilement. Je pense que les \n sont en option, mais très utiles quand on veut lire les logs plus facilement.</p>
<pre>-(void)startSession {</pre>
<pre>NSString *soapMessage = @"&lt;?xml version=\"1.0\" encoding=\"utf-8\"?&gt;\n"</pre>
<pre>"&lt;soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"
xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\"&gt;\n"</pre>
<pre>"&lt;soap:Body&gt;\n"</pre>
<pre>"&lt;SOAP_ACTION xmlns=\"http://votreadresse.com/\" /&gt;\n"</pre>
<pre>"&lt;/soap:Body&gt;\n"</pre>
<pre>"&lt;/soap:Envelope&gt;";</pre>
<pre>NSString *soapMessageLength = [NSString stringWithFormat:@"%d", [soapMessage length]];</pre>
<pre>NSLog(@"%@",soapMessage);</pre>
<pre>ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:[NSURL URLWithString:serverURL]];</pre>
<pre>[request addRequestHeader:@"Content-Type" value:@"text/xml; charset=utf-8" ];</pre>
<pre>[request addRequestHeader:@"Content-Length" value:soapMessageLength];</pre>
<pre>[request addRequestHeader:@"SOAPAction" value:@"http://votreadresse.com/SOAP_ACTION"];</pre>
<pre>[request setPostBody:(NSMutableData*)[soapMessage dataUsingEncoding:NSUTF8StringEncoding]];</pre>
<pre>[request setDidFinishSelector:@selector(startSessionDone:)];</pre>
<pre>[request setDelegate:self];</pre>
<pre>[request startAsynchronous];</pre>
<pre>}</pre>
<p>Ce a quoi répondra la fonction startSessionDone au retour du serveur :</p>
<p><!-- p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo} p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; min-height: 13.0px} p.p3 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #d12f1b} p.p4 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #008400} p.p5 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #31595d} span.s1 {color: #bb2ca2} span.s2 {color: #4f8187} span.s3 {color: #000000} span.s4 {color: #3d1d81} span.s5 {color: #703daa} span.s6 {color: #31595d} span.s7 {color: #d12f1b} span.Apple-tab-span {white-space:pre} --></p>
<pre>-(void)startSessionDone:(ASIHTTPRequest *)request {</pre>
<pre>NSLog(@"startSessionDone");</pre>
<pre>NSString *StartSessionResult = [request responseString];</pre>
<pre>//Et vous faites ce que vous voulez de la réponse ensuite...</pre>
<pre>}</pre>
<p><strong>Si maintenant on veut envoyer plus de paramètres</strong>, mettons une clé de session, ça va alors prendre cette forme ci-dessous. Notez comme SOAP_ACTION change, c&#8217;est maintenant une balise qui s&#8217;ouvre et se referme après les paramètres à envoyer.</p>
<p><span style="font-family: Consolas, Monaco, 'Courier New', Courier, monospace; line-height: 18px; font-size: 12px; white-space: pre;">-(void)queryWithParams {</span></p>
<pre>NSString *soapMessage = [NSString stringWithFormat:@"&lt;?xml version=\"1.0\" encoding=\"utf-8\"?&gt;\n"</pre>
<pre>"&lt;soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"
xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\"&gt;\n"</pre>
<pre>"&lt;soap:Body&gt;\n"</pre>
<pre>"&lt;SOAP_ACTION xmlns=\"http://votreadresse.com/\"&gt;\n"</pre>
<pre>"&lt;sessionKey&gt;%@&lt;/sessionKey&gt;\n"</pre>
<pre>"&lt;/SOAP_ACTION&gt;\n"</pre>
<pre>"&lt;/soap:Body&gt;\n"</pre>
<pre>"&lt;/soap:Envelope&gt;\n", sessionKey];</pre>
<pre>NSString *soapMessageLength = [NSString stringWithFormat:@"%d", [soapMessage length]];</pre>
<pre>NSLog(@"%@",soapMessage);</pre>
<pre>ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:[NSURL URLWithString:serverURL]];</pre>
<pre>[request addRequestHeader:@"Content-Type" value:@"text/xml; charset=utf-8" ];</pre>
<pre>[request addRequestHeader:@"Content-Length" value:soapMessageLength];</pre>
<pre style="font: normal normal normal 12px/18px Consolas, Monaco, 'Courier New', Courier, monospace;">[request addRequestHeader:@"SOAPAction" value:@"http://votreadresse.com/SOAP_ACTION"];</pre>
<pre>[request setPostBody:(NSMutableData*)[soapMessage dataUsingEncoding:NSUTF8StringEncoding]];</pre>
<pre>[request setDidFinishSelector:@selector(queryWithParamsDone:)];</pre>
<pre>[request setDelegate:self];</pre>
<pre>[request startAsynchronous];</pre>
<pre>}</pre>
<pre><span style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; line-height: 19px; white-space: normal; font-size: 13px;"><strong>
Et la fonction de retour :

</strong></span></pre>
<pre>-(void) queryWithParamsDone:(ASIHTTPRequest *)request {</pre>
<div id="_mcePaste"><span style="font-family: Consolas, Monaco, 'Courier New', Courier, monospace; line-height: 18px; font-size: 12px; white-space: pre;">NSLog(@&nbsp;&raquo;queryWithParamsDone</span><span style="font-family: Consolas, Monaco, 'Courier New', Courier, monospace; line-height: 18px; font-size: 12px; white-space: pre;">&laquo;&nbsp;);</span></div>
<div id="_mcePaste">
<pre style="font: normal normal normal 12px/18px Consolas, Monaco, 'Courier New', Courier, monospace;">NSString * queryWithParamsResult = [request responseString];</pre>
<pre style="font: normal normal normal 12px/18px Consolas, Monaco, 'Courier New', Courier, monospace;">//Et vous faites ce que vous voulez de la réponse ensuite...</pre>
<pre style="font: normal normal normal 12px/18px Consolas, Monaco, 'Courier New', Courier, monospace;">}</pre>
</div>
<div id="_mcePaste">Voilà, en espérant que cela pourra en aider quelques-uns. Pour ma part j&#8217;y ai passé quand même quelques heures avant d&#8217;arriver à mes fins et c&#8217;est en croisant un article en espagnol sur la 10 ou 12 ème page de résultats  de Google que j&#8217;ai trouvé une trace de code qui a débloqué la situation, <strong>la morale : des fois il faut s&#8217;obstiner dans ses recherches !</strong></div>
<p><!-- PHP 5.x --></p>
<div class="shr-publisher-255"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://blog.yannbouschet.com/soap-sur-iphone-terrain-glissant/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lancement du nouveau site AVOCADO</title>
		<link>http://blog.yannbouschet.com/lancement-du-nouveau-site-avocado/</link>
		<comments>http://blog.yannbouschet.com/lancement-du-nouveau-site-avocado/#comments</comments>
		<pubDate>Thu, 17 Feb 2011 18:17:39 +0000</pubDate>
		<dc:creator>yannbouschet</dc:creator>
				<category><![CDATA[Développement web]]></category>

		<guid isPermaLink="false">http://blog.yannbouschet.com/?p=246</guid>
		<description><![CDATA[Voilà un beau projet rondement mené ! AVOCADO, le traiteur montréalais connu pour ses productions d&#8217;évènements spectaculaires et ses mariages somptueux , a dignement fêté ses 10 ans en s&#8217;offrant une nouvelle image de marque&#8230; Et un nouveau site web que j&#8217;ai eu le privilège de réaliser :-) A la demande de Rachelle Houde, directrice [...]]]></description>
			<content:encoded><![CDATA[<div class='wpfblike' style='height: 40px;'><fb:like href='http://blog.yannbouschet.com/lancement-du-nouveau-site-avocado/' layout='default' show_faces='true' width='300' action='like' colorscheme='light' send='false' /></div><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p><a href="http://avocadotraiteur.com"><img class="alignright size-full wp-image-250" style="margin-left: 25px; margin-right: 25px;" title="logo_avocado" src="http://blog.yannbouschet.com/wp-content/uploads/2011/02/logo_avocado.jpg" alt="Avocado traiteur Montréal, le site web" width="190" height="85" /></a>Voilà un beau projet rondement mené !</p>
<p>AVOCADO, <a title="avocado traiteur montréal évènements" href="http://avocadotraiteur.com/avocado/evenement/les-services/" target="_blank">le traiteur montréalais connu pour ses productions d&#8217;évènements spectaculaires</a> et <a title="avocado traiteur montréal mariages" href="http://avocadotraiteur.com/avocado/le-mariage/les-services/" target="_blank">ses mariages somptueux</a> , a dignement fêté ses 10 ans en s&#8217;offrant une nouvelle image de marque&#8230;</p>
<p><strong>Et un nouveau site web que j&#8217;ai eu le privilège de réaliser :-)</strong></p>
<p>A la demande de Rachelle Houde, directrice des communications chez AVOCADO et sous la direction artistique de Catherine Gravel, épaulée de Catherine Girondeau-Gouin comme graphiste.Ce site/magazine rend grâce en textes et en images à l&#8217;expertise d&#8217;AVOCADO qui est à présent bien plus qu&#8217;un traiteur : une équipe de créateurs !</p>
<p>Je dois avouer que c&#8217;est le genre de projet dont je ne me lasse pas : de l&#8217;implication de la part du client, une énergie et un souci de l&#8217;autre aussi incroyable que permanent dans l&#8217;équipe&#8230; Bref c&#8217;est même plus un travail de monter un site dans ces conditions, c&#8217;est juste du bonheur.</p>
<p><strong>Longue vie&#8230;<br />
<a title="Pop-up foodie montreal avocado" href="http://avocadotraiteur.com/avocado/les-pop-up/" target="_blank">et rendez-vous au prochain Pop-up</a> !</strong><!-- PHP 5.x --></p>
<div class="shr-publisher-246"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://blog.yannbouschet.com/lancement-du-nouveau-site-avocado/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nouvelle année, nouveau défi !</title>
		<link>http://blog.yannbouschet.com/nouvelle-annee-nouveau-defi/</link>
		<comments>http://blog.yannbouschet.com/nouvelle-annee-nouveau-defi/#comments</comments>
		<pubDate>Sat, 29 Jan 2011 13:57:58 +0000</pubDate>
		<dc:creator>yannbouschet</dc:creator>
				<category><![CDATA[Développement iPhone / iPad]]></category>
		<category><![CDATA[Développement web]]></category>

		<guid isPermaLink="false">http://blog.yannbouschet.com/?p=242</guid>
		<description><![CDATA[A partir du 7 février j&#8217;intègre l&#8217;équipe de développement iPhone/iPad de l&#8217;entreprise montréalaise Tactio. Mon mandat sera principalement de continuer à faire évoluer leurs produits : app Jean Coutu, Target Weight, RxVigilance, Aim High!]]></description>
			<content:encoded><![CDATA[<div class='wpfblike' style='height: 40px;'><fb:like href='http://blog.yannbouschet.com/nouvelle-annee-nouveau-defi/' layout='default' show_faces='true' width='300' action='like' colorscheme='light' send='false' /></div><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p><a href="http://www.tactiosoft.com/"><img class="alignright size-full wp-image-244" title="Tactio" src="http://blog.yannbouschet.com/wp-content/uploads/2011/01/logo_whitetxt.png" alt="Tactio Soft, health mobile apps for iPhone an iPad" width="143" height="59" /></a>A partir du 7 février j&#8217;intègre <a href="http://www.tactiosoft.com" target="_blank">l&#8217;équipe de développement iPhone/iPad de l&#8217;entreprise montréalaise Tactio</a>. Mon mandat sera principalement de continuer à faire évoluer <a href="http://www.tactiosoft.com/products.php" target="_blank">leurs produits : app Jean Coutu, Target Weight, RxVigilance, Aim High!</a><!-- PHP 5.x --></p>
<div class="shr-publisher-242"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://blog.yannbouschet.com/nouvelle-annee-nouveau-defi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MouseMasher et l&#8217;effet &#171;&#160;iPad de Noël&#160;&#187;</title>
		<link>http://blog.yannbouschet.com/mousemasher-et-leffet-ipad-de-noel/</link>
		<comments>http://blog.yannbouschet.com/mousemasher-et-leffet-ipad-de-noel/#comments</comments>
		<pubDate>Thu, 30 Dec 2010 16:22:24 +0000</pubDate>
		<dc:creator>yannbouschet</dc:creator>
				<category><![CDATA[Développement iPhone / iPad]]></category>

		<guid isPermaLink="false">http://blog.yannbouschet.com/?p=235</guid>
		<description><![CDATA[L&#8217;iPad a été le grand cadeau de Noël de cette année, une preuve de cette explosion : les ventes de mon jeu iPad pour chat : MouseMasher ! En général, depuis sa sortie, il en part 2 à 3 exemplaires par semaines, à 0.99$ ou 0.79€. Mais sur la période de Noël qui vient de [...]]]></description>
			<content:encoded><![CDATA[<div class='wpfblike' style='height: 40px;'><fb:like href='http://blog.yannbouschet.com/mousemasher-et-leffet-ipad-de-noel/' layout='default' show_faces='true' width='300' action='like' colorscheme='light' send='false' /></div><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>L&#8217;iPad a été le grand cadeau de Noël de cette année, une preuve de cette explosion : les ventes de mon <strong><a href="http://itunes.apple.com/fr/app/mousemasher/id368199870?mt=8" target="_blank">jeu iPad pour chat : MouseMasher !</a></strong></p>
<p><a href="http://blog.yannbouschet.com/wp-content/uploads/2010/12/Capture-d’écran-2010-12-29-à-08.52.46.png" rel="lightbox[235]"><img class="alignnone size-full wp-image-236" title="Ventes MouseMasher iPad, Noël 2010" src="http://blog.yannbouschet.com/wp-content/uploads/2010/12/Capture-d’écran-2010-12-29-à-08.52.46.png" alt="Ventes MouseMasher iPad, Noël 2010" width="633" height="574" /></a></p>
<p>En général, depuis sa sortie, il en part 2 à 3 exemplaires par semaines, à 0.99$ ou 0.79€. Mais sur la période de Noël qui vient de passer, c&#8217;est environ 50 unités qui se sont vendues en quelques jours. Soit presque 1/5 de toutes les ventes de l&#8217;année pour cette app.</p>
<p><a href="http://blog.yannbouschet.com/wp-content/uploads/2010/12/Capture-d’écran-2010-12-30-à-11.20.09.png" rel="lightbox[235]"><img class="alignnone size-full wp-image-238" title="MouseMasher jeu iPad pour chats" src="http://blog.yannbouschet.com/wp-content/uploads/2010/12/Capture-d’écran-2010-12-30-à-11.20.09.png" alt="MouseMasher jeu iPad pour chats" width="477" height="357" /></a></p>
<p><strong>MouseMasher est une app ultrabasique</strong>, <a href="http://www.gamesalad.com" target="_blank">développée en quelques heures grâce à GameSalad</a> et <strong>qui ne présente vraiment aucun intérêt pour un joueur-humain.</strong> L&#8217;écran unique présente un bout de parquet sur lequel se déplacent au hasard des rongeurs couinants !</p>
<p>Le chat-joueur marque des points à chaque rongeur touché : très-très basique.</p>
<p>Reste à avoir un chat joueur et curieux, ce qui ne semble pas être le cas de tous&#8230; :-/<!-- PHP 5.x --></p>
<div class="shr-publisher-235"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://blog.yannbouschet.com/mousemasher-et-leffet-ipad-de-noel/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AppStore Nord-Amérique Vs France, petite différence drôle</title>
		<link>http://blog.yannbouschet.com/petites-differences-appstore-nord-amerique-vs-france/</link>
		<comments>http://blog.yannbouschet.com/petites-differences-appstore-nord-amerique-vs-france/#comments</comments>
		<pubDate>Mon, 06 Dec 2010 02:05:05 +0000</pubDate>
		<dc:creator>yannbouschet</dc:creator>
				<category><![CDATA[Développement iPhone / iPad]]></category>

		<guid isPermaLink="false">http://blog.yannbouschet.com/?p=218</guid>
		<description><![CDATA[Il y a quelques jours une personne m&#8217;a fait connaître le concept du Bullshit Bingo. Petit jeu fort sympathique qui trouverait certainement sa place sur iPhone ! Donc revenu à la maison, une petite vérification sur l&#8217;AppStore s&#8217;impose. Histoire de voir s&#8217;il existe déjà une version (c&#8217;est de plus en plus rare  d&#8217;avoir une idée [...]]]></description>
			<content:encoded><![CDATA[<div class='wpfblike' style='height: 40px;'><fb:like href='http://blog.yannbouschet.com/petites-differences-appstore-nord-amerique-vs-france/' layout='default' show_faces='true' width='300' action='like' colorscheme='light' send='false' /></div><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p><img class="alignright size-full wp-image-220" title="Bullshit Bingo AppStore France" src="http://blog.yannbouschet.com/wp-content/uploads/2010/12/Image-2.png" alt="Bullshit Bingo AppStore France" width="286" height="255" /></p>
<p>Il y a quelques jours une personne m&#8217;a fait connaître le concept du <a href="http://olivier.davy.free.fr/misc/bullshit/index.htm" target="_blank"><strong>Bullshit Bingo</strong></a>. Petit jeu fort sympathique qui trouverait certainement sa place sur iPhone !</p>
<p>Donc revenu à la maison, <strong>une petite vérification sur l&#8217;AppStore s&#8217;impose</strong>. Histoire de voir s&#8217;il existe déjà une version (c&#8217;est de plus en plus rare  d&#8217;avoir une idée vraiment neuve  sur iPhone&#8230;)</p>
<p>Je fais une recherche sur mon <strong>&laquo;&nbsp;vieux&nbsp;&raquo; G5 Quad</strong>, dont le iTunes est lié à un profil français donc sur <strong>l&#8217;AppStore français.</strong> Tristesse, le BullShit Bingo existe déjà et en plus il est gratuit&#8230; Bon tant pis pour l&#8217;idée originale, je vais télécharger le jeu pour voir comment il est fait.</p>
<p><img class="alignright size-full wp-image-217" title="Bullshit bingo AppStore Canada" src="http://blog.yannbouschet.com/wp-content/uploads/2010/12/AppStore_Ca.png" alt="Bullshit bingo AppStore Canada" width="302" height="372" /></p>
<p>Là, je dois changer d&#8217;ordi et passer sur mon <strong>MacBook Pro qui gère mon iPhone</strong> et qui est pour sa part lié à l&#8217;<strong>AppStore canadien.</strong></p>
<p>Re-petite recherche et &#8230; suprise !!!<br />
Je vous laisse constater sur la seconde capture d&#8217;écran.</p>
<p>Et oui, <strong>un coup de censure est passé sur l&#8217;AppStore, </strong>sans doute pour protéger les yeux chastes des petits enfants nord-américains.</p>
<p>Enfin, ça m&#8217;a fait bien rire sur le coup j&#8217;avoue.</p>
<p>Du reste, l&#8217;app gratuite est vraiment nulle et mérite d&#8217;être refaite correctement&#8230; à suivre donc.<!-- PHP 5.x --></p>
<div class="shr-publisher-218"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://blog.yannbouschet.com/petites-differences-appstore-nord-amerique-vs-france/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

