<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" version="2.0">

<channel>
	<title>Miximum</title>
	
	<link>http://www.miximum.fr</link>
	<description>Le blog d'un ingénieur web freelance</description>
	<lastBuildDate>Fri, 11 May 2012 09:05:03 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/LeBlogDunDeveloppeur" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="leblogdundeveloppeur" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Dernière chance d’attraper tes places pour Sud Web</title>
		<link>http://www.miximum.fr/actus/860-derniere-chance-dattraper-tes-places-pour-sud-web</link>
		<comments>http://www.miximum.fr/actus/860-derniere-chance-dattraper-tes-places-pour-sud-web#comments</comments>
		<pubDate>Fri, 11 May 2012 09:05:03 +0000</pubDate>
		<dc:creator>thibault</dc:creator>
				<category><![CDATA[Actus]]></category>
		<category><![CDATA[actu]]></category>
		<category><![CDATA[sudweb]]></category>

		<guid isPermaLink="false">http://www.miximum.fr/?p=860</guid>
		<description><![CDATA[
Et toi l&#224;&#160;! Oui toi&#160;! As-tu d&#233;j&#224; ta place pour Sud Web&#160;? Comment non&#160;?!
Sais-tu qu&#8217;il s&#8217;agit d&#8217;un des meilleurs cycle de conf&#233;rences francophones de par le monde&#160;? Que c&#8217;est organis&#233; par une pure &#233;quipe de passion&#233;s b&#233;n&#233;voles qui tron&#231;onnent du castor&#160;? Que la cr&#232;me de la cr&#232;me sera pr&#233;sente&#160;?
En plus, contrairement aux hommes politiques, Sud [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;"><a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.miximum.fr%2Factus%2F860-derniere-chance-dattraper-tes-places-pour-sud-web"><img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.miximum.fr%2Factus%2F860-derniere-chance-dattraper-tes-places-pour-sud-web" height="61" width="51" /></a></div><div class="alignleft img"><img src="http://sudweb.fr/2012/wp-content/uploads/2012/04/Banniere2012-240px.png" title="SudWeb, j'y serai" /></div>
<p>Et toi l&agrave;<span class="fine">&nbsp;</span>! Oui toi<span class="fine">&nbsp;</span>! As-tu d&eacute;j&agrave; <a href="http://sudweb.fr">ta place pour Sud Web</a><span class="fine">&nbsp;</span>? Comment non<span class="fine">&nbsp;</span>?!</p>
<p>Sais-tu qu&#8217;il s&#8217;agit d&#8217;un des meilleurs cycle de conf&eacute;rences francophones de par le monde<span class="fine">&nbsp;</span>? Que c&#8217;est organis&eacute; par une pure &eacute;quipe de passion&eacute;s b&eacute;n&eacute;voles qui tron&ccedil;onnent du castor<span class="fine">&nbsp;</span>? Que <a href="http://sudweb.fr/2012/orateurs/">la cr&egrave;me de la cr&egrave;me sera pr&eacute;sente<span class="fine">&nbsp;</span>?</a></p>
<p>En plus, contrairement aux hommes politiques, <a href="http://sudweb.fr/2012/programme/">Sud Web tient toujours son programme</a>, qui est fort all&eacute;chant.</p>
<p>Alors, si tu veux passer un bon moment au milieu de gens g&eacute;niaux, apprendre plein de trucs utiles et <a href="http://sudweb.fr/2012/repartir-avec-la-banane-pour-six-mois/">repartir avec la banane pour six mois</a>, prends vite ta place, les inscriptions seront closes dimanche. Sinon, tu aura une ann&eacute;e enti&egrave;re pour te morfondre dans ton regret et te contenter de vid&eacute;o toutes pixellis&eacute;es (mais fort bien mont&eacute;es au demeurant).</p>
<p>Alors, on se voit l&agrave; bas<span class="fine">&nbsp;</span>?</p>
<div class="tweetmeme_button" style="float: right; margin-left: 10px;"><a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.miximum.fr%2Factus%2F860-derniere-chance-dattraper-tes-places-pour-sud-web"><img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.miximum.fr%2Factus%2F860-derniere-chance-dattraper-tes-places-pour-sud-web" height="61" width="51" /></a></div>]]></content:encoded>
			<wfw:commentRss>http://www.miximum.fr/actus/860-derniere-chance-dattraper-tes-places-pour-sud-web/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Porting the contextual anction mode for pre-Honeycomb Android apps</title>
		<link>http://www.miximum.fr/tutos/849-porting-the-contextual-anction-mode-for-pre-honeycomb-android-apps</link>
		<comments>http://www.miximum.fr/tutos/849-porting-the-contextual-anction-mode-for-pre-honeycomb-android-apps#comments</comments>
		<pubDate>Tue, 20 Mar 2012 16:01:27 +0000</pubDate>
		<dc:creator>thibault</dc:creator>
				<category><![CDATA[Tutos]]></category>
		<category><![CDATA[action bar]]></category>
		<category><![CDATA[action bar sherlock]]></category>
		<category><![CDATA[android]]></category>

		<guid isPermaLink="false">http://www.miximum.fr/?p=849</guid>
		<description><![CDATA[
A very nice Android design pattern that appeared in Honeycomb is the Contextual Action Bar (CAB). In a list view, when you select some items, the Action Bar is replaced with contextual actions that can be applied on selected item. Smart and sexy.
But, as for the Action Bar pattern, there is no easy way to [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;"><a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.miximum.fr%2Ftutos%2F849-porting-the-contextual-anction-mode-for-pre-honeycomb-android-apps"><img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.miximum.fr%2Ftutos%2F849-porting-the-contextual-anction-mode-for-pre-honeycomb-android-apps" height="61" width="51" /></a></div><p><img src="http://www.miximum.fr/wp-content/uploads/2012/03/reminder3-179x300.jpg" alt="Contextual action bar for pre-ics app" title="Contextual action bar for pre-ics app" width="179" height="300" class="alignleft size-medium wp-image-848" /></p>
<p>A very nice Android design pattern that appeared in Honeycomb is the <a href="http://developer.android.com/design/patterns/selection.html">Contextual Action Bar (CAB)</a>. In a list view, when you select some items, the Action Bar is replaced with contextual actions that can be applied on selected item. Smart and sexy.</p>
<p>But, as for the Action Bar pattern, there is no easy way to port this behavior to pre-Honeycomb devices.</p>
<p>In this article, we will see how to use the <a href="http://actionbarsherlock.com/">Action Bar Sherlock library</a> to emulate the CAB pattern. If you don&#8217;t know how to <a href="http://www.miximum.fr/tutos/837-give-your-pre-ice-scream-sandwich-android-app-an-action-bar">setup action bar sherlock, refer to my previous article</a>.</p>
<p>To see a live example of this tutorial, <a href="https://market.android.com/details?id=fr.miximum.reminder">you can refer to my Miximum reminder App</a> (shameless promotion).</p>
<h2>Creating a basic list</h2>
<p>Let&#8217;s start by creating a basic list activity.</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;color: #ccc; font: 12px Consolas, Lucida Console, Monaco, monospace;"><span class="kw1">package</span> <span class="co2">fr.miximum.article</span><span class="sy0">;</span>
&nbsp;
<span class="kw1">import</span> <span class="co2">com.actionbarsherlock.app.SherlockListActivity</span><span class="sy0">;</span>
&nbsp;
<span class="kw1">import</span> <span class="co2">android.os.Bundle</span><span class="sy0">;</span>
<span class="kw1">import</span> <span class="co2">android.widget.ArrayAdapter</span><span class="sy0">;</span>
<span class="kw1">import</span> <span class="co2">android.widget.ListView</span><span class="sy0">;</span>
&nbsp;
<span class="kw1">public</span> <span class="kw1">class</span> ArticleActivity <span class="kw1">extends</span> SherlockListActivity <span class="br0">&#123;</span>
&nbsp;
    <span class="kw1">static</span> <span class="kw1">final</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Astring+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span class="kw3">String</span></a><span class="br0">&#91;</span><span class="br0">&#93;</span> COUNTRIES <span class="sy0">=</span> <span class="kw1">new</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Astring+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span class="kw3">String</span></a><span class="br0">&#91;</span><span class="br0">&#93;</span> <span class="br0">&#123;</span>
        <span class="st0">&quot;Afghanistan&quot;</span>, <span class="st0">&quot;Albania&quot;</span>, <span class="st0">&quot;Algeria&quot;</span>, <span class="st0">&quot;American Samoa&quot;</span>, <span class="st0">&quot;Andorra&quot;</span>,
        <span class="st0">&quot;Angola&quot;</span>, <span class="st0">&quot;Anguilla&quot;</span>, <span class="st0">&quot;Canada&quot;</span>, <span class="st0">&quot;France&quot;</span>, <span class="st0">&quot;Spain&quot;</span> <span class="br0">&#125;</span><span class="sy0">;</span>
&nbsp;
    <span class="kw1">private</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Alistview+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span class="kw3">ListView</span></a> mListView<span class="sy0">;</span>
&nbsp;
    @Override
    <span class="kw1">public</span> <span class="kw4">void</span> onCreate<span class="br0">&#40;</span>Bundle savedInstanceState<span class="br0">&#41;</span> <span class="br0">&#123;</span>
        <span class="kw1">super</span>.<span class="me1">onCreate</span><span class="br0">&#40;</span>savedInstanceState<span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
        mListView <span class="sy0">=</span> getListView<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
        mListView.<span class="me1">setChoiceMode</span><span class="br0">&#40;</span><a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Alistview+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span class="kw3">ListView</span></a>.<span class="me1">CHOICE_MODE_MULTIPLE</span><span class="br0">&#41;</span><span class="sy0">;</span>
        setListAdapter<span class="br0">&#40;</span><span class="kw1">new</span> ArrayAdapter<span class="sy0">&lt;</span>String<span class="sy0">&gt;</span><span class="br0">&#40;</span><span class="kw1">this</span>,
                android.<span class="me1">R</span>.<span class="me1">layout</span>.<span class="me1">simple_list_item_multiple_choice</span>, COUNTRIES<span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span>
    <span class="br0">&#125;</span>
<span class="br0">&#125;</span></pre></div></div>

<p>Run the project. Notice that items can be selected, but there is not any contextual action bar yes.</p>
<p>In some native code, we would have used the <a href="http://developer.android.com/reference/android/widget/AbsListView.html#CHOICE_MODE_MULTIPLE_MODAL">CHOICE_MODE_MULTIPLE_MODAL constant</a> to enable <a href="http://developer.android.com/guide/topics/ui/menus.html#CAB">batch contextual actions</a>. Those methods are only available from the 11th version of the api (honeycomb).</p>
<h2>The Action Bar Sherlock ActionMode</h2>
<p>Let&#8217;s see how to use the ActionBarSherlock&#8217;s <em>ActionMode</em> class. First, create the menu that will define the contextual actions. In <em>res/menu/contextual_actions.xml</em>&nbsp;:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;color: #ccc; font: 12px Consolas, Lucida Console, Monaco, monospace;"><span class="sc3"><span class="re1">&lt;?xml</span> <span class="re0">version</span>=<span class="st0">&quot;1.0&quot;</span> <span class="re0">encoding</span>=<span class="st0">&quot;utf-8&quot;</span><span class="re2">?&gt;</span></span>
<span class="sc3"><span class="re1">&lt;menu</span> <span class="re0">xmlns:android</span>=<span class="st0">&quot;http://schemas.android.com/apk/res/android&quot;</span><span class="re2">&gt;</span></span>
    <span class="sc3"><span class="re1">&lt;item</span></span>
<span class="sc3">        <span class="re0">android:id</span>=<span class="st0">&quot;@+id/cab_action_delete&quot;</span></span>
<span class="sc3">        <span class="re0">android:title</span>=<span class="st0">&quot;@string/action_delete&quot;</span></span>
<span class="sc3">        <span class="re0">android:icon</span>=<span class="st0">&quot;@android:drawable/ic_menu_delete&quot;</span> <span class="re2">/&gt;</span></span>
<span class="sc3"><span class="re1">&lt;/menu<span class="re2">&gt;</span></span></span></pre></div></div>

<p>Then, let&#8217;s update our activity to enable action mode on item click&nbsp;:</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;color: #ccc; font: 12px Consolas, Lucida Console, Monaco, monospace;"><span class="kw1">package</span> <span class="co2">fr.miximum.article</span><span class="sy0">;</span>
&nbsp;
<span class="kw1">import</span> <span class="co2">com.actionbarsherlock.app.SherlockListActivity</span><span class="sy0">;</span>
<span class="kw1">import</span> <span class="co2">com.actionbarsherlock.view.ActionMode</span><span class="sy0">;</span>
<span class="kw1">import</span> <span class="co2">com.actionbarsherlock.view.Menu</span><span class="sy0">;</span>
<span class="kw1">import</span> <span class="co2">com.actionbarsherlock.view.MenuInflater</span><span class="sy0">;</span>
<span class="kw1">import</span> <span class="co2">com.actionbarsherlock.view.MenuItem</span><span class="sy0">;</span>
&nbsp;
<span class="kw1">import</span> <span class="co2">android.os.Bundle</span><span class="sy0">;</span>
<span class="kw1">import</span> <span class="co2">android.util.SparseBooleanArray</span><span class="sy0">;</span>
<span class="kw1">import</span> <span class="co2">android.view.View</span><span class="sy0">;</span>
<span class="kw1">import</span> <span class="co2">android.widget.AdapterView</span><span class="sy0">;</span>
<span class="kw1">import</span> <span class="co2">android.widget.AdapterView.OnItemClickListener</span><span class="sy0">;</span>
<span class="kw1">import</span> <span class="co2">android.widget.ArrayAdapter</span><span class="sy0">;</span>
<span class="kw1">import</span> <span class="co2">android.widget.ListView</span><span class="sy0">;</span>
&nbsp;
<span class="kw1">public</span> <span class="kw1">class</span> ArticleActivity <span class="kw1">extends</span> SherlockListActivity  <span class="kw1">implements</span> OnItemClickListener <span class="br0">&#123;</span>
&nbsp;
    <span class="kw1">static</span> <span class="kw1">final</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Astring+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span class="kw3">String</span></a><span class="br0">&#91;</span><span class="br0">&#93;</span> COUNTRIES <span class="sy0">=</span> <span class="kw1">new</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Astring+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span class="kw3">String</span></a><span class="br0">&#91;</span><span class="br0">&#93;</span> <span class="br0">&#123;</span>
        <span class="st0">&quot;Afghanistan&quot;</span>, <span class="st0">&quot;Albania&quot;</span>, <span class="st0">&quot;Algeria&quot;</span>, <span class="st0">&quot;American Samoa&quot;</span>, <span class="st0">&quot;Andorra&quot;</span>,
        <span class="st0">&quot;Angola&quot;</span>, <span class="st0">&quot;Anguilla&quot;</span>, <span class="st0">&quot;Canada&quot;</span>, <span class="st0">&quot;France&quot;</span>, <span class="st0">&quot;Spain&quot;</span> <span class="br0">&#125;</span><span class="sy0">;</span>
&nbsp;
    <span class="kw1">private</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Alistview+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span class="kw3">ListView</span></a> mListView<span class="sy0">;</span>
    <span class="kw1">private</span> ActionMode mMode<span class="sy0">;</span>
&nbsp;
    @Override
    <span class="kw1">public</span> <span class="kw4">void</span> onCreate<span class="br0">&#40;</span>Bundle savedInstanceState<span class="br0">&#41;</span> <span class="br0">&#123;</span>
        <span class="kw1">super</span>.<span class="me1">onCreate</span><span class="br0">&#40;</span>savedInstanceState<span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
        setListAdapter<span class="br0">&#40;</span><span class="kw1">new</span> ArrayAdapter<span class="sy0">&lt;</span>String<span class="sy0">&gt;</span><span class="br0">&#40;</span><span class="kw1">this</span>,
                android.<span class="me1">R</span>.<span class="me1">layout</span>.<span class="me1">simple_list_item_multiple_choice</span>, COUNTRIES<span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
        mMode <span class="sy0">=</span> <span class="kw2">null</span><span class="sy0">;</span>
        mListView <span class="sy0">=</span> getListView<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
        mListView.<span class="me1">setItemsCanFocus</span><span class="br0">&#40;</span><span class="kw2">false</span><span class="br0">&#41;</span><span class="sy0">;</span>
        mListView.<span class="me1">setChoiceMode</span><span class="br0">&#40;</span><a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Alistview+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span class="kw3">ListView</span></a>.<span class="me1">CHOICE_MODE_MULTIPLE</span><span class="br0">&#41;</span><span class="sy0">;</span>
        mListView.<span class="me1">setOnItemClickListener</span><span class="br0">&#40;</span><span class="kw1">this</span><span class="br0">&#41;</span><span class="sy0">;</span>
    <span class="br0">&#125;</span>
&nbsp;
    @Override
    <span class="kw1">public</span> <span class="kw4">void</span> onItemClick<span class="br0">&#40;</span>AdapterView<span class="sy0">&lt;?&gt;</span> parent, <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Aview+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span class="kw3">View</span></a> view, <span class="kw4">int</span> position, <span class="kw4">long</span> id<span class="br0">&#41;</span> <span class="br0">&#123;</span>
        <span class="co1">// Notice how the ListView api is lame</span>
        <span class="co1">// You can use mListView.getCheckedItemIds() if the adapter</span>
        <span class="co1">// has stable ids, e.g you're using a CursorAdaptor</span>
        SparseBooleanArray checked <span class="sy0">=</span> mListView.<span class="me1">getCheckedItemPositions</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
        <span class="kw4">boolean</span> hasCheckedElement <span class="sy0">=</span> <span class="kw2">false</span><span class="sy0">;</span>
        <span class="kw1">for</span> <span class="br0">&#40;</span><span class="kw4">int</span> i <span class="sy0">=</span> <span class="nu0">0</span> <span class="sy0">;</span> i <span class="sy0">&lt;</span> checked.<span class="me1">size</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="sy0">&amp;&amp;</span> <span class="sy0">!</span> hasCheckedElement <span class="sy0">;</span> i<span class="sy0">++</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
            hasCheckedElement <span class="sy0">=</span> checked.<span class="me1">valueAt</span><span class="br0">&#40;</span>i<span class="br0">&#41;</span><span class="sy0">;</span>
        <span class="br0">&#125;</span>
&nbsp;
        <span class="kw1">if</span> <span class="br0">&#40;</span>hasCheckedElement<span class="br0">&#41;</span> <span class="br0">&#123;</span>
            <span class="kw1">if</span> <span class="br0">&#40;</span>mMode <span class="sy0">==</span> <span class="kw2">null</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
                mMode <span class="sy0">=</span> startActionMode<span class="br0">&#40;</span><span class="kw1">new</span> ModeCallback<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span>
            <span class="br0">&#125;</span>
        <span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span>
            <span class="kw1">if</span> <span class="br0">&#40;</span>mMode <span class="sy0">!=</span> <span class="kw2">null</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
                mMode.<span class="me1">finish</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
            <span class="br0">&#125;</span>
        <span class="br0">&#125;</span>
    <span class="br0">&#125;</span><span class="sy0">;</span>
&nbsp;
    <span class="kw1">private</span> <span class="kw1">final</span> <span class="kw1">class</span> ModeCallback <span class="kw1">implements</span> ActionMode.<span class="me1">Callback</span> <span class="br0">&#123;</span>
&nbsp;
        @Override
        <span class="kw1">public</span> <span class="kw4">boolean</span> onCreateActionMode<span class="br0">&#40;</span>ActionMode mode, <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Amenu+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span class="kw3">Menu</span></a> menu<span class="br0">&#41;</span> <span class="br0">&#123;</span>
            <span class="co1">// Create the menu from the xml file</span>
            MenuInflater inflater <span class="sy0">=</span> getSupportMenuInflater<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
            inflater.<span class="me1">inflate</span><span class="br0">&#40;</span>R.<span class="me1">menu</span>.<span class="me1">contextual_actions</span>, menu<span class="br0">&#41;</span><span class="sy0">;</span>
            <span class="kw1">return</span> <span class="kw2">true</span><span class="sy0">;</span>
        <span class="br0">&#125;</span>
&nbsp;
        @Override
        <span class="kw1">public</span> <span class="kw4">boolean</span> onPrepareActionMode<span class="br0">&#40;</span>ActionMode mode, <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Amenu+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span class="kw3">Menu</span></a> menu<span class="br0">&#41;</span> <span class="br0">&#123;</span>
            <span class="co1">// Here, you can checked selected items to adapt available actions</span>
            <span class="kw1">return</span> <span class="kw2">false</span><span class="sy0">;</span>
        <span class="br0">&#125;</span>
&nbsp;
        @Override
        <span class="kw1">public</span> <span class="kw4">void</span> onDestroyActionMode<span class="br0">&#40;</span>ActionMode mode<span class="br0">&#41;</span> <span class="br0">&#123;</span>
            <span class="co1">// Destroying action mode, let's unselect all items</span>
            <span class="kw1">for</span> <span class="br0">&#40;</span><span class="kw4">int</span> i <span class="sy0">=</span> <span class="nu0">0</span><span class="sy0">;</span> i <span class="sy0">&lt;</span> mListView.<span class="me1">getAdapter</span><span class="br0">&#40;</span><span class="br0">&#41;</span>.<span class="me1">getCount</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span> i<span class="sy0">++</span><span class="br0">&#41;</span>
                mListView.<span class="me1">setItemChecked</span><span class="br0">&#40;</span>i, <span class="kw2">false</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
            <span class="kw1">if</span> <span class="br0">&#40;</span>mode <span class="sy0">==</span> mMode<span class="br0">&#41;</span> <span class="br0">&#123;</span>
                mMode <span class="sy0">=</span> <span class="kw2">null</span><span class="sy0">;</span>
            <span class="br0">&#125;</span>
        <span class="br0">&#125;</span>
&nbsp;
        @Override
        <span class="kw1">public</span> <span class="kw4">boolean</span> onActionItemClicked<span class="br0">&#40;</span>ActionMode mode, <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Amenuitem+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span class="kw3">MenuItem</span></a> item<span class="br0">&#41;</span> <span class="br0">&#123;</span>
            <span class="kw4">long</span><span class="br0">&#91;</span><span class="br0">&#93;</span> selected <span class="sy0">=</span> mListView.<span class="me1">getCheckedItemIds</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
            <span class="kw1">if</span> <span class="br0">&#40;</span>selected.<span class="me1">length</span> <span class="sy0">&gt;</span> <span class="nu0">0</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
                <span class="kw1">for</span> <span class="br0">&#40;</span><span class="kw4">long</span> id<span class="sy0">:</span> selected<span class="br0">&#41;</span> <span class="br0">&#123;</span>
                    <span class="co1">// Do something with the selected item</span>
                <span class="br0">&#125;</span>
            <span class="br0">&#125;</span>
            mode.<span class="me1">finish</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
            <span class="kw1">return</span> <span class="kw2">true</span><span class="sy0">;</span>
        <span class="br0">&#125;</span>
    <span class="br0">&#125;</span><span class="sy0">;</span>
<span class="br0">&#125;</span></pre></div></div>

<p>Well, that was not THAT hard, right<span class="fine">&nbsp;</span>? Notice that some ActionBarSherlock class names are the same as the Android API, so be careful to import the correct versions, or you will run into hard to find bugs.</p>
<p>Hope you find this article useful. See you.</p>
<div class="tweetmeme_button" style="float: right; margin-left: 10px;"><a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.miximum.fr%2Ftutos%2F849-porting-the-contextual-anction-mode-for-pre-honeycomb-android-apps"><img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.miximum.fr%2Ftutos%2F849-porting-the-contextual-anction-mode-for-pre-honeycomb-android-apps" height="61" width="51" /></a></div>]]></content:encoded>
			<wfw:commentRss>http://www.miximum.fr/tutos/849-porting-the-contextual-anction-mode-for-pre-honeycomb-android-apps/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Give your pre-Ice Scream Sandwich Android app an Action Bar</title>
		<link>http://www.miximum.fr/tutos/837-give-your-pre-ice-scream-sandwich-android-app-an-action-bar</link>
		<comments>http://www.miximum.fr/tutos/837-give-your-pre-ice-scream-sandwich-android-app-an-action-bar#comments</comments>
		<pubDate>Tue, 20 Mar 2012 14:41:36 +0000</pubDate>
		<dc:creator>thibault</dc:creator>
				<category><![CDATA[Tutos]]></category>
		<category><![CDATA[action bar]]></category>
		<category><![CDATA[action bar sherlock]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[ics]]></category>

		<guid isPermaLink="false">http://www.miximum.fr/?p=837</guid>
		<description><![CDATA[Hi everyone,

One thing that often pisses me off is the lack of ActionBar support in the Android compatibility library.
In my opinion, the Action Bar is the most interesting pattern introduced in the Android design guideline. Yet, if Google ported the fragment api for pre-honeycomb devices, there is no simple way to give your app an [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;"><a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.miximum.fr%2Ftutos%2F837-give-your-pre-ice-scream-sandwich-android-app-an-action-bar"><img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.miximum.fr%2Ftutos%2F837-give-your-pre-ice-scream-sandwich-android-app-an-action-bar" height="61" width="51" /></a></div><p>Hi everyone,</p>
<p><img src="http://www.miximum.fr/wp-content/uploads/2012/03/ledify1-179x300.jpg" alt="Ledify!: Select your text" title="Ledify!: Select your text" width="179" height="300" class="alignleft size-medium wp-image-823" /></p>
<p>One thing that often pisses me off is the lack of ActionBar support in the <a href="http://developer.android.com/sdk/compatibility-library.html">Android compatibility library</a>.</p>
<p>In my opinion, the <a href="http://developer.android.com/design/patterns/actionbar.html">Action Bar</a> is the most interesting pattern introduced in the <a href="http://developer.android.com/design/index.html">Android design guideline</a>. Yet, if Google ported <a href="http://android-developers.blogspot.fr/2011/02/android-30-fragments-api.html">the fragment api for pre-honeycomb devices</a>, there is no simple way to give your app an action bar.</p>
<p>Well, ok, they created an <a href="http://developer.android.com/resources/samples/ActionBarCompat/index.html">Action Bar compatibility sample</a>, but it&#8217;s not particularly easy to use.</p>
<p>Fortunately for us, the open-source world is full of talented and motivated developers, and <a href="http://twitter.com/JakeWharton">Jake Wharton</a> decided to create the <a href="http://actionbarsherlock.com">Action Bar Sherlock</a> extension to the compatibility package.</p>
<p>I sucessfuly used this library to add an ICS style to my <a href="https://play.google.com/store/apps/details?id=fr.miximum.reminder">Reminders</a> and <a href="https://play.google.com/store/apps/details?id=fr.miximum.ledboard">Ledify<span class="fine">&nbsp;</span>!</a> apps. The only problem is the (temporary?) lack of easily accessible documentation. Let&#8217;s see how to use Action Bar Sherlock to give your pre-honeycomb app a beautiful action bar.</p>
<h2>Installing Action Bar Sherlock</h2>
<p>At the time of writing this, the latest stable version is the 4.0.0. First, download and unpack the <a href="https://github.com/JakeWharton/ActionBarSherlock/tarball/4.0.0">tarball</a> wherever you want.</p>
<p>Once the tarball is extracted, create a new project in Eclipse&nbsp;:</p>
<ul>
<li>File > New > Project</li>
<li>Android Project</li>
<li>Create project from existing source</li>
<li>Project name&nbsp;: &laquo;&nbsp;&nbsp;ActionBarSherlock&nbsp;&nbsp;&raquo;</li>
<li>Browse to the tarball path. You must choose the &laquo;&nbsp;&nbsp;library&nbsp;&nbsp;&raquo; directory inside the extracted archive, or this won&#8217;t work.</li>
<li>Click on &laquo;&nbsp;&nbsp;Finish&nbsp;&nbsp;&raquo;</li>
</ul>
<p>You should see a new entry in your project list. If you see a bunch of error messages, right click on the project root, choose <em>Android tools > Add compatibility library</em>.</p>
<h2>Give your app a simple Action Bar</h2>
<p>Now that Action Bar Sherlock is installed, let&#8217;s see how to use it.</p>
<p>First, add the library to your project. Right click on your project name, choose <em>Properties</em> and select the <em>Android</em> item. Scroll down to the <em>Library</em> section, and click <em>Add</em> to select the ActionBarSherlock lib.</p>
<p>Note that your project must be build for an api version greater or equal to 14 (ICS).</p>
<p>Open your manifest file, and give your application the Sherlock theme&nbsp;:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;color: #ccc; font: 12px Consolas, Lucida Console, Monaco, monospace;">    <span class="sc3"><span class="re1">&lt;application</span></span>
<span class="sc3">        <span class="re0">android:icon</span>=<span class="st0">&quot;@drawable/ic_launcher&quot;</span></span>
<span class="sc3">        <span class="re0">android:label</span>=<span class="st0">&quot;@string/app_name&quot;</span></span>
<span class="sc3">        <span class="re0">android:theme</span>=<span class="st0">&quot;@style/Theme.Sherlock&quot;</span></span>
<span class="sc3">        <span class="re0">uiOptions</span>=<span class="st0">&quot;splitActionBarWhenNarrow&quot;</span> <span class="re2">&gt;</span></span></pre></div></div>

<p>Last step, your activity must inherit from <em>SherlockActivity</em> (or <em>SherlockListActivity</em> if it&#8217;s a list).</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;color: #ccc; font: 12px Consolas, Lucida Console, Monaco, monospace;"><span class="kw1">package</span> <span class="co2">fr.miximum.article</span><span class="sy0">;</span>
&nbsp;
<span class="kw1">import</span> <span class="co2">com.actionbarsherlock.app.SherlockActivity</span><span class="sy0">;</span>
<span class="kw1">import</span> <span class="co2">android.os.Bundle</span><span class="sy0">;</span>
&nbsp;
<span class="kw1">public</span> <span class="kw1">class</span> ArticleActivity <span class="kw1">extends</span> SherlockActivity <span class="br0">&#123;</span>
    <span class="co3">/** Called when the activity is first created. */</span>
    @Override
    <span class="kw1">public</span> <span class="kw4">void</span> onCreate<span class="br0">&#40;</span>Bundle savedInstanceState<span class="br0">&#41;</span> <span class="br0">&#123;</span>
        <span class="kw1">super</span>.<span class="me1">onCreate</span><span class="br0">&#40;</span>savedInstanceState<span class="br0">&#41;</span><span class="sy0">;</span>
        setContentView<span class="br0">&#40;</span>R.<span class="me1">layout</span>.<span class="me1">main</span><span class="br0">&#41;</span><span class="sy0">;</span>
    <span class="br0">&#125;</span>
<span class="br0">&#125;</span></pre></div></div>

<p>Run your project on an emulator (pre-11 api version)&nbsp;: taddaaaaam<span class="fine">&nbsp;</span>! Here&#8217;s a sexy action bar.</p>
<p>Well, it&#8217;s still very basic, since we only have a title. In the next articles, we will see how to add a few features&nbsp;:</p>
<ol>
<li>Action items (<a href="https://play.google.com/store/apps/details?id=fr.miximum.ledboard">Look into the Ledify<span class="fine">&nbsp;</span>! app screenshot for an overview</a>)</li>
<li>Contextual action bar (<a href="https://play.google.com/store/apps/details?id=fr.miximum.reminder">Look into the Miximum reminders app screenschot for an overview</a>)</li>
<li>And maybe others</li>
</ol>
<p>See you&hellip;</p>
<div class="tweetmeme_button" style="float: right; margin-left: 10px;"><a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.miximum.fr%2Ftutos%2F837-give-your-pre-ice-scream-sandwich-android-app-an-action-bar"><img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.miximum.fr%2Ftutos%2F837-give-your-pre-ice-scream-sandwich-android-app-an-action-bar" height="61" width="51" /></a></div>]]></content:encoded>
			<wfw:commentRss>http://www.miximum.fr/tutos/837-give-your-pre-ice-scream-sandwich-android-app-an-action-bar/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>New android app released: Ledify!</title>
		<link>http://www.miximum.fr/actus/818-new-android-app-released-ledify</link>
		<comments>http://www.miximum.fr/actus/818-new-android-app-released-ledify#comments</comments>
		<pubDate>Mon, 19 Mar 2012 14:29:02 +0000</pubDate>
		<dc:creator>thibault</dc:creator>
				<category><![CDATA[Actus]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[app release]]></category>

		<guid isPermaLink="false">http://www.miximum.fr/?p=818</guid>
		<description><![CDATA[
Have you ever been in a place so noisy that it&#8217;s impossible to talk&#160;? Well, if you have already tried to order a drink in a nightclub, or catch the waiter&#8217;s attention in a crowded bar, you know what I mean.
Sometimes, I wish there were a way to use my phone to broadcast a message [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;"><a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.miximum.fr%2Factus%2F818-new-android-app-released-ledify"><img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.miximum.fr%2Factus%2F818-new-android-app-released-ledify" height="61" width="51" /></a></div><p><img src="http://www.miximum.fr/wp-content/uploads/2012/03/ledify2-300x179.png" alt="Android application capture, ledify scrolling text" title="Ledify! android application" width="300" height="179" class="alignleft size-medium wp-image-826" /></p>
<p>Have you ever been in a place so noisy that it&#8217;s impossible to talk<span class="fine">&nbsp;</span>? Well, if you have already tried to order a drink in a nightclub, or catch the waiter&#8217;s attention in a crowded bar, you know what I mean.</p>
<p>Sometimes, I wish there were a way to use my phone to broadcast a message and catch people&#8217;s attention.</p>
<p>Well, it&#8217;s not a problem anymore, because I build an Android application for that. <a href="https://play.google.com/store/apps/details?id=fr.miximum.ledboard">It&#8217;s called Ledify<span class="fine">&nbsp;</span>!</a>, because it can turn your phone into a scrolling red led display.</p>
<p>Type in your text, or choose among a preselected list, and watch your text scroll on your phone. It will be readable from a long distance, a quick and sexy way to communicate in crowded places.</p>
<p><a style="float: right; margin-left: 1em" href="http://play.google.com/store/apps/details?id=fr.miximum.ledboard"> <img alt="Get it on Google Play" src="http://www.android.com/images/brand/get_it_on_play_logo_large.png" /></a></p>
<p><a href="https://play.google.com/store/apps/details?id=fr.miximum.ledboard">Ledify<span class="fine">&nbsp;</span>! is available on the Android Market</a> (sorry, the Google Play Store). You can also <a href="https://github.com/thibault/Miximum-apps/issues">report a bug or ask for a new feature</a>. A <a href="http://files.miximum.fr/press_release_ledify_en.pdf">press release is available</a>.</p>
<p>If you have any question about this app, don&#8217;t hesitate to <a href="http://twitter.com/thibaultj">contact me on twitter</a>. You can alse <a href="http://apps.miximum.fr/en/">check my other apps</a>.</p>
<div class="tweetmeme_button" style="float: right; margin-left: 10px;"><a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.miximum.fr%2Factus%2F818-new-android-app-released-ledify"><img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.miximum.fr%2Factus%2F818-new-android-app-released-ledify" height="61" width="51" /></a></div>]]></content:encoded>
			<wfw:commentRss>http://www.miximum.fr/actus/818-new-android-app-released-ledify/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Des applis android, en veux-tu en voilà</title>
		<link>http://www.miximum.fr/actus/804-des-applis-android-en-veux-tu-en-voila</link>
		<comments>http://www.miximum.fr/actus/804-des-applis-android-en-veux-tu-en-voila#comments</comments>
		<pubDate>Wed, 07 Mar 2012 16:37:50 +0000</pubDate>
		<dc:creator>thibault</dc:creator>
				<category><![CDATA[Actus]]></category>
		<category><![CDATA[android]]></category>

		<guid isPermaLink="false">http://www.miximum.fr/?p=804</guid>
		<description><![CDATA[ photo credit&#160;: nathangibbs
Depuis quelques temps, j&#8217;emploi les (rares) heures de temps libre &#224; ma disposition pour me remettre au d&#233;veloppement Android. La folle id&#233;e m&#8217;est m&#234;me venue que peut-&#234;tre, je pourrais en tirer une satisfaction un peu plus substantielle[1] (i.e, du pognon).
Oui mais voil&#224;, un d&#233;veloppeur sans utilisateurs n&#8217;est rien. Et des utilisateurs, j&#8217;en [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;"><a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.miximum.fr%2Factus%2F804-des-applis-android-en-veux-tu-en-voila"><img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.miximum.fr%2Factus%2F804-des-applis-android-en-veux-tu-en-voila" height="61" width="51" /></a></div><div class="postimg alignleft"><a href="http://www.flickr.com/photos/57954193@N00/390790524/" title="Euros 50mm f/2.8" target="_blank"><img src="http://farm1.static.flickr.com/144/390790524_d410f3dbd8_m.jpg" alt="Euros 50mm f/2.8" border="0" /></a><br /><small><a href="http://creativecommons.org/licenses/by-nc-sa/2.0/" title="Attribution-NonCommercial-ShareAlike License" target="_blank"><img src="http://www.miximum.fr/wp-content/plugins/photo-dropper/images/cc.png" alt="Creative Commons License" border="0" width="16" height="16" align="absmiddle" /></a> <a href="http://www.photodropper.com/photos/" target="_blank">photo</a> credit&nbsp;: <a href="http://www.flickr.com/photos/57954193@N00/390790524/" title="nathangibbs" target="_blank">nathangibbs</a></small></div>
<p>Depuis quelques temps, j&#8217;emploi les (rares) heures de temps libre &agrave; ma disposition pour me remettre au <a href="http://www.miximum.fr/tag/android">d&eacute;veloppement Android</a>. La folle id&eacute;e m&#8217;est m&ecirc;me venue que peut-&ecirc;tre, je pourrais en tirer une satisfaction un peu plus substantielle<sup><a href="#footnote-1-804" id="footnote-link-1-804" title="Voir la note.">[1]</a></sup> (i.e, du pognon).</p>
<p>Oui mais voil&agrave;, un d&eacute;veloppeur sans utilisateurs n&#8217;est rien. Et des utilisateurs, j&#8217;en manque cruellement. La visibilit&eacute; sur le market (r&eacute;cemment renomm&eacute; google play market, ou un truc comme &ccedil;a), ce n&#8217;est pas &eacute;vident.</p>
<p>Et, mais<span class="fine">&nbsp;</span>! J&#8217;y pense&hellip; Toi, l&agrave;&hellip; Oui, toi<span class="fine">&nbsp;</span>! Tu as un t&eacute;l&eacute;phone (ou une tablette) Android<span class="fine">&nbsp;</span>? Alors, tu m&#8217;int&eacute;resse. Car tu es un utilisateur potentiel (sisi). Laisse moi donc te pr&eacute;senter les quelques applis que j&#8217;ai eu <a href="https://play.google.com/store/apps/developer?id=Thibault+Jouannic+%E2%88%92+Miximum">l&#8217;outrecuidance de publier sur le market</a>.</p>
<p>Mais avant toute chose, je dois te pr&eacute;venir. Si tu installes ne serait-ce que l&#8217;une de ces merveilles de l&#8217;industrie logicielle, <strong>ta vie va changer</strong>. Par exemple, un utilisateur m&#8217;a rapport&eacute; qu&#8217;apr&egrave;s avoir install&eacute; une de mes applis, sa femme est revenue, il a gagn&eacute; son poids en choucroute au loto du village et son contr&ocirc;leur des imp&ocirc;ts a p&eacute;ri dans un accident de brouette. Tout &ccedil;a LE M&Ecirc;ME JOUR<span class="fine">&nbsp;</span>! C&#8217;est presque trop de bonheur pour un seul homme.</p>
<p>Bref, si tu ne peux pas assumer tant d&#8217;extraordinarit&eacute; (traduction hasardeuse du terme <em>awesomeness</em>, ne lit pas la suite.</p>
<h2>Miximum citations</h2>
<p>J&#8217;aime para&icirc;tre intelligent et cultiv&eacute;. Et pour &ccedil;a, rien de telle que de belles citations philosophiques. Mais comment toujours avoir sous la main quelque belle phrases toute faite, destin&eacute;e &agrave; rabattre leur caquet aux facheux ou &agrave; s&eacute;duire les jolies femmes<span class="fine">&nbsp;</span>?</p>
<p>Facile<span class="fine">&nbsp;</span>! Installe <a href="https://play.google.com/store/apps/details?id=fr.miximum.qotd">ce joli widget</a>, simple et &eacute;l&eacute;gant. Ainsi, tu aura toujours sous les yeux d&#8217;indispensables perles de sagesse.</p>
<h2>Napply, le widget du siesteur</h2>
<p>Toi je ne sais pas, mais apr&egrave;s le d&eacute;jeuner, j&#8217;aime bien me taper une petite sieste. Le probl&egrave;me, c&#8217;est qu&#8217;il faut configurer le r&eacute;veil, activer le mode silencieux, etc. Enfin, l&#8217;ancien probl&egrave;me, parce que maintenant, il y a <a href="https://play.google.com/store/apps/details?id=fr.miximum.napply">Napply<span class="fine">&nbsp;</span>! Napply, c&#8217;est le meilleur ami du siesteur</a>. Un seul clic, et te voil&agrave; pr&ecirc;t pour les bras de Morph&eacute;e.</p>
<p>Oh, et puis petite feature bien sympa, si toi aussi tu as du mal &agrave; &eacute;merger&nbsp;: quand le r&eacute;veil sonne, retourne ton t&eacute;l&eacute;hpone en tat&ocirc;nnant pour activer la fonction snooze. M&ecirc;me pas besoin d&#8217;ouvrir les yeux, classe non<span class="fine">&nbsp;</span>?!</p>
<h2>Miximum rappels</h2>
<p>(Oui, les noms de mes applis sont pourries. Je sais merci. Je voudrais t&#8217;y voir, aussi. Bref !)</p>
<blockquote><p>Ch&eacute;rie, tu pourra me faire penser &agrave; acheter de la pur&eacute;e mousseline tout &agrave; l&#8217;heure<span class="fine">&nbsp;</span>?</p></blockquote>
<p>Qui n&#8217;a jamais du s&#8217;abaisser &agrave; pareille requ&ecirc;te<span class="fine">&nbsp;</span>; servir de post-it vivant &agrave; un proche paresseux<span class="fine">&nbsp;</span>?</p>
<p>Avant&nbsp;:</p>
<ol>
<li>Cliquer sur une appli qui g&egrave;re les todo list&nbsp;<span class="fine">&nbsp;</span>;</li>
<li>Cr&eacute;er une t&acirc;che sp&eacute;cifique &laquo;&nbsp;Pur&eacute;e mousseline&nbsp;&raquo;&nbsp;<span class="fine">&nbsp;</span>;</li>
<li>Configurer la <i>due date</i> &agrave; l&#8217;heure voulue&nbsp;<span class="fine">&nbsp;</span>;</li>
<li>Configurer un rappel&nbsp;<span class="fine">&nbsp;</span>;</li>
<li>Enregister la t&acirc;che&nbsp;<span class="fine">&nbsp;</span>;</li>
<li>Quand la t&acirc;che expire, envoyer un sms au conjoint &agrave; la m&eacute;moire d&eacute;faillante&nbsp;<span class="fine">&nbsp;</span>;</li>
<li>Supprimer la t&acirc;che inutile&nbsp;<span class="fine">&nbsp;</span>;</li>
</ol>
<p>Maintenant&nbsp;:</p>
<ol>
<li>Cliquer sur <a href="https://play.google.com/store/apps/details?id=fr.miximum.reminder">Miximum rappels</a>&nbsp;<span class="fine">&nbsp;</span>;</li>
<li>Cr&eacute;er un rappel&nbsp;<span class="fine">&nbsp;</span>;</li>
<li>C&#8217;est tout&hellip;&nbsp;<span class="fine">&nbsp;</span>;</li>
</ol</p>
<p>Il vous faut un dessin<span class="fine">&nbsp;</span>?</p>
<h2>Elle est pas belle la vie<span class="fine">&nbsp;</span>?!</h2>
<p>Franchement, si tu n&#8217;installes pas ces applis tout de suite, c&#8217;est que je ne te comprends vraiment pas. En plus, tu peux <a href="https://github.com/thibault/Miximum-apps/issues">soumettre tes rapports de bugs et feature requests sur Github</a>, et ils seront pris en compte<span class="fine">&nbsp;</span>! Incroyable non<span class="fine">&nbsp;</span>?!</p>
<p>Ah, et si tu veux te tenir au jus de mes futures applis, jette un coup d&#8217;&oelig;il de temps en temps sur <a href="http://apps.miximum.fr/fr/">mon catalogue d&eacute;di&eacute;</a>.</p>
<p>Voili voilou, merci de m&#8217;avoir lu, tu peux reprendre une activit&eacute; normale. &Agrave; bient&ocirc;t dans la vraie vie.</p>
<h4>Notes&nbsp;:</h4><ol class="footnotes"><li id="footnote-1-804">Mon mari<span class="fine">&nbsp;</span>!  [<a href="#footnote-link-1-804">retour</a>]</li></ol><div class="tweetmeme_button" style="float: right; margin-left: 10px;"><a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.miximum.fr%2Factus%2F804-des-applis-android-en-veux-tu-en-voila"><img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.miximum.fr%2Factus%2F804-des-applis-android-en-veux-tu-en-voila" height="61" width="51" /></a></div>]]></content:encoded>
			<wfw:commentRss>http://www.miximum.fr/actus/804-des-applis-android-en-veux-tu-en-voila/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Freelance, deux ans plus tard…</title>
		<link>http://www.miximum.fr/tranche_vie/759-freelance-deux-ans-plus-tard%e2%80%a6</link>
		<comments>http://www.miximum.fr/tranche_vie/759-freelance-deux-ans-plus-tard%e2%80%a6#comments</comments>
		<pubDate>Wed, 16 Nov 2011 16:25:14 +0000</pubDate>
		<dc:creator>thibault</dc:creator>
				<category><![CDATA[Tranche de vie]]></category>
		<category><![CDATA[freelance]]></category>

		<guid isPermaLink="false">http://www.miximum.fr/?p=759</guid>
		<description><![CDATA[


Voici maintenant un peu plus de deux ans, j&#8217;&#233;tais encore salari&#233; dans une SSII sympa sur Montpellier. Le salaire fixe, la bonne ambiance de bureau, pas de probl&#232;mes pour trouver un appart&#8217;. C&#8217;&#233;tait la belle vie.
Et puis, un jour, j&#8217;ai r&#233;dig&#233; un document sur mon poste de travail. Je l&#8217;ai relu 50 fois. Je l&#8217;ai [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;"><a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.miximum.fr%2Ftranche_vie%2F759-freelance-deux-ans-plus-tard%25e2%2580%25a6"><img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.miximum.fr%2Ftranche_vie%2F759-freelance-deux-ans-plus-tard%25e2%2580%25a6" height="61" width="51" /></a></div><div class="postimg alignright">
<img src="http://i.imgur.com/BzJke.jpg?5596" alt="Freelance anteater" />
</div>
<p>Voici maintenant un peu plus de deux ans, j&#8217;&eacute;tais encore salari&eacute; dans une SSII sympa sur Montpellier. Le salaire fixe, la bonne ambiance de bureau, pas de probl&egrave;mes pour trouver un appart&#8217;. C&#8217;&eacute;tait la belle vie.</p>
<p>Et puis, un jour, j&#8217;ai r&eacute;dig&eacute; un document sur mon poste de travail. Je l&#8217;ai relu 50 fois. Je l&#8217;ai imprim&eacute;. Je l&#8217;ai &agrave; nouveau relu 50 fois. Je l&#8217;ai sign&eacute;. Je l&#8217;ai encore relu quelques petites dizaines de fois, pour &ecirc;tre s&ucirc;r, puis je me suis lev&eacute;, les jambes tramblotantes. J&#8217;ai avanc&eacute; jusqu&#8217;au bureau de mon chouette directeur d&#8217;agence. J&#8217;ai frapp&eacute;, suis entr&eacute;, et lui ai tendu mon document. Je crois que &ccedil;a a &eacute;t&eacute; le moment le plus stressant de toute ma vie<sup><a href="#footnote-1-759" id="footnote-link-1-759" title="Voir la note.">[1]</a></sup> C&#8217;&eacute;tait ma lettre de d&eacute;mission.</p>
<p><a href="http://www.miximum.fr/inclassable/378-besoin-dun-freelance">Voici donc un peu plus de deux ans que je suis d&eacute;veloppeur web &agrave; mon compte</a>, ou, comme j&#8217;aime me d&eacute;signer, &laquo;&nbsp;ing&eacute;nieur web freelance&nbsp;&raquo; (parce que &ccedil;a claque mieux, je trouve). Avec le recul, le referais-je<span class="fine">&nbsp;</span>? Hell Yeah<span class="fine">&nbsp;</span>!</p>
<p>&Ecirc;tre freelance est un m&eacute;tier (si si) g&eacute;nial. C&#8217;est aussi un m&eacute;tier un peu aventureux, ou il n&#8217;existe pas vraiment de moule tout fait, et dans lequel chacun doit tracer son propre chemin.</p>
<p>Sans oser pr&eacute;tendre &ecirc;tre un vieux routard du milieux, j&#8217;ai commis, en deux ans, quelques conneries qui ont donn&eacute;es lieux &agrave; quelques le&ccedil;ons int&eacute;ressantes. Voici donc un petit retour d&#8217;exp&eacute;rience, qui j&#8217;esp&egrave;re me fera bien marrer quand je le relirai dans deux ans.</p>
<h2>Pourquoi devenir freelance<span class="fine">&nbsp;</span>?</h2>
<p>&Eacute;tonnamment, quand j&#8217;ai annonc&eacute; mon intention &agrave; mes proches, &laquo;&nbsp;pourquoi<span class="fine">&nbsp;</span>?&nbsp;&raquo; est une question qui est revenue assez peu, remplac&eacute;e par des tonnes de &laquo;&nbsp;comment<span class="fine">&nbsp;</span>?&nbsp;&raquo;. Et comment tu va trouver du boulot<span class="fine">&nbsp;</span>? Et comment tu va payer ton loyer<span class="fine">&nbsp;</span>? Et comment tu va arriver &agrave; te lever le matin<span class="fine">&nbsp;</span>?</p>
<p><em>Comment n&#8217;est pas important. C&#8217;est pourquoi, qui est important.</em></p>
<p>Les &laquo;&nbsp;comment&nbsp;&raquo;, on verra quand on y sera. Mais sans une bonne raison pour se lancer, point de salut. Voici quelques uns des arguments qui m&#8217;ont fait franchir le pas&nbsp;:</p>
<ul>
<li><strong>La libert&eacute;<span class="fine">&nbsp;</span>!</strong> &Ecirc;tre freelance, c&#8217;est avoir le choix&nbsp;:
<ul>
<li>de son mode de travail</li>
<li>de ses clients</li>
<li>de ses outils</li>
<li>de ses projets</li>
<li>de ses horaires</li>
<li>de sa charge de travail</li>
<li>de sa r&eacute;mun&eacute;ration</li>
</ul>
</li>
<li><strong>La responsabilit&eacute;</strong>&nbsp;: point de sup&eacute;rieur hi&eacute;rarchique derri&egrave;re qui se retrancher en cas de probl&egrave;me. Vous &ecirc;tre responsable de vos projets et de vos clients. Et en cas de p&eacute;pin, bing<span class="fine">&nbsp;</span>! C&#8217;est pour votre pomme. &Ccedil;a met un peu de sel, non<span class="fine">&nbsp;</span>?</li>
<li><strong>La pression positive</strong>&nbsp;: finie la vie de bureau p&eacute;p&egrave;re. &Ecirc;tre freelance n&eacute;cessitera le meilleur de vous m&ecirc;me, et vous poussera dans vos retranchements.</li>
<li><strong>Le respect</strong>&nbsp;: &ecirc;tre freelance, c&#8217;est avoir le loisir de dire la v&eacute;rit&eacute; &agrave; son client. De lui offrir une relation de confiance et une prestation de qualit&eacute;.</li>
<li><strong>Le travail bien fait</strong>&nbsp;: on assiste dans certaines SSII &agrave; des d&eacute;bordements dus &agrave; la n&eacute;cessit&eacute; imp&eacute;rieuse de faire du chiffre<span class="fine">&nbsp;</span>! En passant freelance, vous aurez la possibilit&eacute; de devenir un artisan, et de ne pas transiger sur la qualit&eacute;.</li>
<li><strong>L&#8217;argument ultime&nbsp;: la coh&eacute;rence</strong><span class="fine">&nbsp;</span>! Aujourd&#8217;hui, je ne raccroche pas ma casquette de d&eacute;veloppeur web quand je quitte mon boulot. Jour apr&egrave;s jour, quand je mange, quand je respire, je suis freelance. Ce n&#8217;est pas simplement ce que je fais, c&#8217;est ce que je SUIS. Et j&#8217;aime &ccedil;a.</li>
</ul>
<p>Avant de se lancer, bien entendu, il faut &eacute;galement consid&eacute;rer les inconv&eacute;nients, qui sont nombreux.</p>
<ul>
<li>La paperasse<span class="fine">&nbsp;</span>;</li>
<li>Il faut se motiver pour se lever le matin et prendre le contr&ocirc;le de sa vie<span class="fine">&nbsp;</span>;</li>
<li>La paperasse<span class="fine">&nbsp;</span>;</li>
<li>Gestion financi&egrave;re incertaine</li>
<li>La paperasse<span class="fine">&nbsp;</span>;</li>
<li>T&#8217;as d&eacute;j&agrave; essay&eacute; de louer un appart&#8217; en &eacute;tant auto-entrepreneur<span class="fine">&nbsp;</span>?</li>
<li>La paperasse<span class="fine">&nbsp;</span>;</li>
<li>N&eacute;cessit&eacute; d&#8217;assumer des m&eacute;tiers qui ne sont pas forc&eacute;ment les siens (commerce, gestion d&#8217;entreprise, gestion de projet, etc.)</li>
<li>Ai-je mentionn&eacute; la paperasse<span class="fine">&nbsp;</span>?</li>
</ul>
<p>Ces inconv&eacute;nients sont r&eacute;els, et s&#8217;ils seront de simples obstacles pour certains, ils se r&eacute;v&egrave;leront insurmontables pour d&#8217;autres.</p>
<p>On trouve &eacute;galement les inconv&eacute;nients compl&egrave;tement bidons, que j&#8217;appelle &laquo;&nbsp;les fausses excuses du tire-au-flanc&nbsp;&raquo;&nbsp;:</p>
<p>&minus; Et la s&eacute;curit&eacute; de l&#8217;emploi<span class="fine">&nbsp;</span>?<br />
&minus; En &eacute;tant freelance, vous allez monter en comp&eacute;tence, vous faire un r&eacute;seau, une r&eacute;putation, vous diversifier. Ce sont les meilleurs garants pour garder un taf&#8217;. L&#8217;employ&eacute; de SSII qui se fait virer pour raisons &eacute;conomiques repart peu ou prou de z&eacute;ro. Le jour ou il n&#8217;y aura plus de taf&#8217; pour tout le monde, il sera le premier &agrave; jarter. Le freelance comp&eacute;tent avec un gros r&eacute;seau aura toujours du travail.</p>
<p>&minus; Je ne peux pas le faire<span class="fine">&nbsp;</span>!<br />
&minus; Si tu peux.</p>
<p>&minus; Tu comprends, j&#8217;ai une femme des enfants&hellip;<br />
&minus; Moi aussi<sup><a href="#footnote-2-759" id="footnote-link-2-759" title="Voir la note.">[2]</a></sup></p>
<p>&minus; J&#8217;ai peur<span class="fine">&nbsp;</span>!<br />
&minus; Bottes-toi le cul<span class="fine">&nbsp;</span>!</p>
<h2>Comment se lancer<span class="fine">&nbsp;</span>?</h2>
<div class="postimg alignright"><a href="http://www.flickr.com/photos/27027945@N07/5228406300/" title="Super Cat" target="_blank"><img src="http://farm6.static.flickr.com/5250/5228406300_27e05d74b7_m.jpg" alt="Super Cat" border="0" /></a><br /><small><a href="http://creativecommons.org/licenses/by-nd/2.0/" title="Attribution-NoDerivs License" target="_blank"><img src="http://www.miximum.fr/wp-content/plugins/photo-dropper/images/cc.png" alt="Creative Commons License" border="0" width="16" height="16" align="absmiddle" /></a> <a href="http://www.photodropper.com/photos/" target="_blank">photo</a> credit&nbsp;: <a href="http://www.flickr.com/photos/27027945@N07/5228406300/" title="Photo Extremist" target="_blank">Photo Extremist</a></small></div>
<p>&Eacute;videmment, je ne dispose que de ma propre exp&eacute;rience, toutefois il me semble que les &eacute;tapes pour devenir freelance sont peu ou prou toujours les m&ecirc;mes&nbsp;:</p>
<ul>
<li>Mettre du pognon de c&ocirc;t&eacute;, histoire de voir venir&nbsp;<span class="fine">&nbsp;</span>;</li>
<li>Trouver un client&nbsp;<span class="fine">&nbsp;</span>;</li>
<li>Prendre son courage &agrave; deux mains&nbsp;<span class="fine">&nbsp;</span>;</li>
<li>D&eacute;missionner&nbsp;<span class="fine">&nbsp;</span>;</li>
<li>Taffer&nbsp;<span class="fine">&nbsp;</span>;</li>
<li>Facturer&nbsp;<span class="fine">&nbsp;</span>;</li>
<li>Recommencer&nbsp;<span class="fine">&nbsp;</span>;</li>
</ul>
<p>Facile, non<span class="fine">&nbsp;</span>?</p>
<h2>Choisir un statut, cr&eacute;er une entreprise, trouver des locaux, etc.</h2>
<p>J&#8217;ai l&#8217;air d&#8217;un avocat<span class="fine">&nbsp;</span>? Il y a des bouquins tr&eacute;s bien qui expliquent &ccedil;a.</p>
<h2>Investir dans de p**ains d&#8217;outils</h2>
<p>Je n&#8217;insisterai jamais assez sur l&#8217;importance des outils que l&#8217;on va utiliser plus de 8h par jour pendant toute sa vie. &Agrave; titre d&#8217;exemple, ma chaise vaut actuellement plus cher que mon ordi, et c&#8217;est un achat que n&#8217;ai jamais regrett&eacute;.</p>
<h2>Trouver des clients</h2>
<p>Aha<span class="fine">&nbsp;</span>! Une des erreur que j&#8217;ai commise, et qui m&#8217;ont bien foutu dedans<span class="fine">&nbsp;</span>! Le moment n&#8217;est pas encore venu de trouver des clients&nbsp;: tu n&#8217;es pas pr&ecirc;t, petit scarab&eacute;e<span class="fine">&nbsp;</span>! Mais n&#8217;ai crainte, nous y reviendrons.</p>
<h2>Trouver son cr&eacute;neau</h2>
<div class="postimg alignleft"><a href="http://www.flickr.com/photos/10399480@N04/5811298628/" title="Mr. Dice" target="_blank"><img src="http://farm3.static.flickr.com/2234/5811298628_6f427f673a_m.jpg" alt="Mr. Dice" border="0" /></a><br /><small><a href="http://creativecommons.org/licenses/by-nc-sa/2.0/" title="Attribution-NonCommercial-ShareAlike License" target="_blank"><img src="http://www.miximum.fr/wp-content/plugins/photo-dropper/images/cc.png" alt="Creative Commons License" border="0" width="16" height="16" align="absmiddle" /></a> <a href="http://www.photodropper.com/photos/" target="_blank">photo</a> credit&nbsp;: <a href="http://www.flickr.com/photos/10399480@N04/5811298628/" title="Bikerock" target="_blank">Bikerock</a></small></div>
<p>Si quand on vous demande en soir&eacute;e &laquo;&nbsp;Et tu fais quoi dans la vie<span class="fine">&nbsp;</span>?&nbsp;&raquo; vous r&eacute;pondez quelque chose du genre &laquo;&nbsp;euh&hellip; ben&hellip; en fait&hellip; je fais&hellip; genre des sites web, tu vois&nbsp;&raquo;, je vous conspue.</p>
<p><em>Un bon cr&eacute;neau, c&#8217;est quelque chose qui claque<span class="fine">&nbsp;</span>!</em> C&#8217;est quelque chose que vous pouvez clamer haut en fort en pensant &laquo;&nbsp;Ouais, avec &ccedil;a, s&ucirc;r que je vais p&eacute;cho<span class="fine">&nbsp;</span>!&nbsp;&raquo;.</p>
<p>En soir&eacute;e, quand on me demande ce que je fais, je r&eacute;ponds un truc comme &laquo;&nbsp;Tu vois, je travaille pour des entreprises qui ont besoin de syst&egrave;mes d&#8217;information sp&eacute;cifiques. J&#8217;utilise mon exp&eacute;rience et mon expertise pour les aider &agrave; cerner leur besoin au plus juste, afin qu&#8217;ils puissent b&eacute;n&eacute;ficier d&#8217;une prestation de qualit&eacute; sans faire exploser les co&ucirc;ts. Je les conseille quand aux meilleures techniques &agrave; employer, puis je leur d&eacute;veloppe un outil sur mesure en m&#8217;appuyant sur les technologies du web et les m&eacute;thodologies agiles&nbsp;&raquo;.</p>
<p>Bam<span class="fine">&nbsp;</span>! Je ne vous dit pas le nombre de verres que je me fais offrir apr&egrave;s &ccedil;a.</p>
<p>D&eacute;buter une carri&egrave;re de freelance n&eacute;cessite &agrave; mon avis de se poser quelques questions essentielles&nbsp;:</p>
<ul>
<li>Qu&#8217;est-ce que je sais faire<span class="fine">&nbsp;</span>?</li>
<li>Qu&#8217;est-ce que j&#8217;aime faire<span class="fine">&nbsp;</span>?</li>
<li>Qu&#8217;est-ce que je veux faire<span class="fine">&nbsp;</span>?</li>
<li>Qu&#8217;est-ce qui est vendeur<span class="fine">&nbsp;</span>?</li>
<li>Quelle est ma sp&eacute;cialit&eacute;<span class="fine">&nbsp;</span>? Ma sp&eacute;cificit&eacute;<span class="fine">&nbsp;</span>? Mon &laquo;&nbsp;petit plus&nbsp;&raquo; qui fera la diff&eacute;rence<span class="fine">&nbsp;</span>?</li>
</ul>
<p>Me poser ces questions m&#8217;a aid&eacute; &agrave; d&eacute;finir clairement les types de prestations que je voulais mettre en avant, et &agrave; d&eacute;finir un argumentaire coh&eacute;rent et percutant. Au d&eacute;but, j&#8217;avais tendance &agrave; ratisser un peu large pour ne pas rater d&#8217;opportunit&eacute;. Aujourd&#8217;hui, je ne r&eacute;ponds qu&#8217;aux demandes de prestations qui m&#8217;int&eacute;ressent vraiment.</p>
<h2>D&eacute;finir ses conditions</h2>
<p>Rapidement, je me suis retrouv&eacute; au t&eacute;l&eacute;phone avec des clients qui m&#8217;ont soumis &agrave; des demandes plus ou moins farfelues, auxquelles j&#8217;aurais du &ecirc;tre mieux pr&eacute;par&eacute;s. J&#8217;ai du d&eacute;finir clairement mes limites, ce que j&#8217;&eacute;tais pr&ecirc;t &agrave; faire ou pas. Que d&#8217;emmerdes j&#8217;aurais pu &eacute;viter si j&#8217;avais pris ces quelques minutes d&eacute;s le d&eacute;but&hellip;</p>
<ul>
<li>Comment allez vous travailler<span class="fine">&nbsp;</span>?</li>
<li>Accepterez vous les d&eacute;placements<span class="fine">&nbsp;</span>?</li>
<li>Travaillerez-vous le week-end<span class="fine">&nbsp;</span>?</li>
<li>Quelles seront vos horaires dans la journ&eacute;e<span class="fine">&nbsp;</span>?</li>
<li>Quelles seront les horaires ou vous serez joignables<span class="fine">&nbsp;</span>?</li>
<li>Travaillerez vous en dehors des horaires de bureau<span class="fine">&nbsp;</span>?</li>
<li>Travaillerez-vous au forfait<span class="fine">&nbsp;</span>? En r&eacute;gie<span class="fine">&nbsp;</span>?</li>
<li>Commencerez-vous le travail avant la signature du contrat<span class="fine">&nbsp;</span>? (indice&nbsp;: non) </li>
<li>Accepterez-vous des prestations de maintenance<span class="fine">&nbsp;</span>?</li>
<li>Quelle sera le montant minimal de la prestation avant d&#8217;envisager un devis<span class="fine">&nbsp;</span>?</li>
<li>Ferez-vous des sites porno<span class="fine">&nbsp;</span>? (oui, on me l&#8217;a propos&eacute;)</li>
<li>Donnerez-vous des formations<span class="fine">&nbsp;</span>?</li>
<li>Accepterez-vous vos clients sur Facebook<span class="fine">&nbsp;</span>?</li>
<li>Travaillerez-vous sur site<span class="fine">&nbsp;</span>? &Agrave; domicile<span class="fine">&nbsp;</span>? Au caf&eacute; du coin<span class="fine">&nbsp;</span>?</li>
<li>Quel sera le d&eacute;lai maximum de facturation que vous accepterez (indice&nbsp;: comptant, c&#8217;est bien)<span class="fine">&nbsp;</span>?</li>
<li>Accepterez vous de travailler pour moins cher en &eacute;change de parts dans la boite<span class="fine">&nbsp;</span>?</li>
<li>Quel montant d&#8217;acompte demanderez-vous<span class="fine">&nbsp;</span>?</li>
<li>&Agrave; quelle fr&eacute;quence facturerez vous<span class="fine">&nbsp;</span>?</li>
<li>The Big Question&nbsp;: quel sera votre tarif<span class="fine">&nbsp;</span>? (plus l&agrave; dessus plus tard)</li>
</ul>
<p>R&eacute;pondre &agrave; ces questions &agrave; l&#8217;avance permet de pouvoir &eacute;viter les situations moisies, en opposant un &laquo;&nbsp;non&nbsp;&raquo; bien clair et bien franc &agrave; toute demande qui irait &agrave; l&#8217;encontre de vos int&eacute;r&ecirc;ts et de vos souhaits.</p>
<h2>D&eacute;finir un argumentaire</h2>
<div class="postimg alignright"><a href="http://www.flickr.com/photos/51035555243@N01/387971322/" title="The Devil That You Know" target="_blank"><img src="http://farm1.static.flickr.com/148/387971322_35b471aa3c_m.jpg" alt="The Devil That You Know" border="0" /></a><br /><small><a href="http://creativecommons.org/licenses/by-nc/2.0/" title="Attribution-NonCommercial License" target="_blank"><img src="http://www.miximum.fr/wp-content/plugins/photo-dropper/images/cc.png" alt="Creative Commons License" border="0" width="16" height="16" align="absmiddle" /></a> <a href="http://www.photodropper.com/photos/" target="_blank">photo</a> credit&nbsp;: <a href="http://www.flickr.com/photos/51035555243@N01/387971322/" title="Thomas Hawk" target="_blank">Thomas Hawk</a></small></div>
<p>L&agrave; est, je crois, la cl&eacute; du succ&egrave;s. Peu importe l&#8217;immense &eacute;tendue de vos comp&eacute;tences, si vous ne savez pas vous vendre, vous n&#8217;aurez pas l&#8217;occasion de les mettre en pratique.</p>
<p>Retenez-bien ceci&nbsp;: on peut tout vendre<span class="fine">&nbsp;</span>! N&#8217;importe quelle condition, n&#8217;importe quelle prestation, du moment que vous pr&eacute;sentez bien les choses, et que le client y trouve son compte. On peut vendre la journ&eacute;e &agrave; 5000&euro;, si la prestation suit derri&egrave;re. &Eacute;videmment, avant de convaincre quelqu&#8217;un que vous valez le coup<sup><a href="#footnote-3-759" id="footnote-link-3-759" title="Voir la note.">[3]</a></sup>, il va falloir cravacher s&eacute;v&egrave;re.</p>
<p>La n&eacute;gociation, ce n&#8217;est pas faire gober n&#8217;importe quoi &agrave; vos prospects, c&#8217;est leur faire prendre conscience de votre valeur.</p>
<p>J&#8217;ai d&eacute;gag&eacute; quelques arguments &agrave; mettre en avant. Pas plus de 4 ou 5, &ccedil;a me suffit. J&#8217;ai fait en sorte qu&#8217;ils soient percutants et coh&eacute;rents avec mon cr&eacute;neau.</p>
<p>J&#8217;ai &eacute;galement pr&eacute;par&eacute; des r&eacute;ponses aux objections les plus courantes. Je me suis rendu compte que la plupart des entretiens, t&eacute;l&eacute;phoniques ou en vis &agrave; vis, suivaient toujours plus ou moins le m&ecirc;me fil conducteur. Partant de ce constat, il devient assez facile, avec l&#8217;exp&eacute;rience, de fluidifier sa communication.</p>
<p>Un exercice int&eacute;ressant est de tirer parti de ses (supos&eacute;es) faiblesses, qui soul&egrave;veront probablement des objections, pour les transformer en arguments commerciaux.</p>
<p>Ex&nbsp;: Vous ne supportez pas de travailler plus de deux heures par jour, ce qui peut &ecirc;tre handicapant. Prenez les devants, et annoncez &agrave; votre client que &laquo;&nbsp;c&#8217;est un choix d&eacute;lib&eacute;r&eacute;, car cela vous permet de ne facturer que les heures ou vous &ecirc;tes &agrave; 120% productifs dans la journ&eacute;e&nbsp;&raquo;.</p>
<p>Il ne s&#8217;agit pas de produire du bullshit au paragraphe, il s&#8217;agit de b&acirc;tir une coh&eacute;rence entre vos envies, votre fa&ccedil;on de travailler, vos prestations et votre argumentaire. La coh&eacute;rence, c&#8217;est le secret de la confiance en soi, et du bonheur dans la dur&eacute;e.</p>
<p>Bien s&ucirc;r, il n&#8217;est jamais possible d&#8217;&ecirc;tre &agrave; 100% pr&eacute;par&eacute;. Un jour, un prospect a object&eacute; que j&#8217;&eacute;tais trop cher, parce que &laquo;&nbsp;j&#8217;avais les pieds dans l&#8217;eau&nbsp;&raquo; (j&#8217;habite &agrave; Montpellier), et qu&#8217;&laquo;&nbsp;&eacute;tant donn&eacute; que j&#8217;avais la belle vie, je pourrais faire un effort sur mes tarifs&nbsp;&raquo; (texto). R&eacute;pondre &agrave; ce genre d&#8217;objection n&eacute;cessite une sacr&eacute; facult&eacute; d&#8217;adaptation<sup><a href="#footnote-4-759" id="footnote-link-4-759" title="Voir la note.">[4]</a></sup>.</p>
<h2>D&eacute;finir son tarif</h2>
<p>Aaaahhhh&hellip; La vaste question du d&eacute;butant. L&agrave; dessus, je ne m&#8217;&eacute;tendrai pas trop, vu que <a href="http://ajblog.fr/entreprise/80-quels-tarifs-pratiquer-pour-un-independant.html">d&#8217;autres le font tr&eacute;s bien</a>. Si il y a une chose que je devais retenir, parmi mes le&ccedil;ons de ces deux derni&egrave;res ann&eacute;es, ce serait ceci&nbsp;:</p>
<p>&laquo;&nbsp;<em>Si tu es cher, on retiendra que tu es comp&eacute;tent. Si tu es bon march&eacute;, on retiendra que tu es bon march&eacute;.</em>&nbsp;&raquo;</p>
<p>Ne pas travailler pour des clopinettes est &agrave; mon avis essentiel dans le m&eacute;tier, pour deux raisons. D&#8217;abord, pour une simple question financi&egrave;re. Pas besoin de vous faire un dessin. Ne pas avoir de salaire mensuel n&eacute;cessite d&#8217;&ecirc;tre pr&eacute;par&eacute; &agrave; &eacute;ponger en cas de coup dur. Et puis, il faut pouvoir survivre aux longues p&eacute;riodes non factur&eacute;es n&eacute;cessaires &agrave; son auto-formation.</p>
<p>Mais surtout, bien se vendre pose un statut. Il y a l&agrave; un effet psychologique assez int&eacute;ressant&nbsp;: ce qui est cher ou difficile &agrave; obtenir a automatiquement plus de valeur &agrave; nos yeux. C&#8217;est &eacute;tonnant de voir &agrave; quel point, &agrave; travail &eacute;gal, l&#8217;on est mieux consid&eacute;r&eacute;, mieux respect&eacute;, d&eacute;s qu&#8217;on monte les tarifs. Un client qui vous paie cher r&eacute;fl&eacute;chira &agrave; deux fois avant de vous appeler pour d&eacute;caler ce petit carr&eacute; d&#8217;un pixel &agrave; gauche. De ce simple fait, vous serez tout simplement &agrave; m&ecirc;me de faire un meilleur travail. &Agrave; m&eacute;diter.</p>
<h2>Trouver du travail (enfin)</h2>
<p>Je vais vous avouer une chose. Je n&#8217;aime pas cherche du travail. Je n&#8217;aime pas prospecter. Prospecter, c&#8217;est hasardeux, long, fastidieux, ennuyeux, et ne repr&eacute;sente pas un investissement. Plut&ocirc;t que de chercher du travail, j&#8217;essaie de me donner une visibilit&eacute;, pour laisser le travail venir &agrave; moi. Pour ce faire, il me parait essentiel de&nbsp;:</p>
<ol>
<li>Se rendre visible&nbsp;: tenir un blog, &eacute;crire des articles, aller &agrave; des soir&eacute;es orient&eacute;es pro, assister &agrave; des conf&eacute;rences, <a href="http://sudweb.fr/">participer &agrave; l&#8217;organisation d&#8217;&eacute;v&eacute;nements </a>&nbsp;<span class="fine">&nbsp;</span>;</li>
<li>Se tailler une r&eacute;putation&nbsp;: participer &agrave; des projets open-source, s&#8217;investir dans une communaut&eacute;, d&eacute;velopper des logiciels et les exploiter soi-m&ecirc;me&nbsp;<span class="fine">&nbsp;</span>;</li>
<li>Se faire un r&eacute;seau&nbsp;: rencontrer plein de monde, retenir les noms, les adresses, les m&eacute;tiers&nbsp;<span class="fine">&nbsp;</span>;</li>
</ol>
<h2>Ne pas s&#8217;isoler</h2>
<p>Il peut &ecirc;tre un peu d&eacute;primant, apr&egrave;s avoir v&eacute;cue une vie de bureau riches en contacts humains, de se retrouver &agrave; bosser seul chez soi. Il m&#8217;a &eacute;t&eacute; imp&eacute;ratif de sortir le plus possible, de renouer des contacts et de rencontrer du monde avec qui je pouvais &eacute;changer sur mon m&eacute;tier. J&#8217;ai de la chance, il y a beaucoup de gens tr&eacute;s bien sur Montpellier (#fayot).</p>
<h2>Ma vie de freelance</h2>
<p>J&#8217;estime que ma vie de freelance se d&eacute;compose comme suit&nbsp;:</p>
<ul>
<li>1/4 = travail</li>
<li>1/4 = gestion de projet</li>
<li>1/4 = gestion commerciale, r&eacute;seautage, communication </li>
<li>1/4 = Auto-formation, mont&eacute;e en comp&eacute;tence</li>
<li>1/4 = compta, paperasse</li>
<li>1/4 = Glander, se reposer, faire autre chose</li>
</ul>
<p>Les plus sagaces d&#8217;entre vous auront remarqu&eacute; qu&#8217;il y a plus de quatre quarts. Je vous r&eacute;pondrai en soupirant de lassitude tout en levant les yeux au ciel. Qui a dit qu&#8217;on se la coulait douce<span class="fine">&nbsp;</span>?</p>
<h2>Quelques tips and tricks</h2>
<div class="postimg alignleft"><a href="http://www.flickr.com/photos/85169118@N00/5348462414/" title="Ready To Draw" target="_blank"><img src="http://farm6.static.flickr.com/5129/5348462414_0634d7fa78_m.jpg" alt="Ready To Draw" border="0" /></a><br /><small><a href="http://creativecommons.org/licenses/by-nc-nd/2.0/" title="Attribution-NonCommercial-NoDerivs License" target="_blank"><img src="http://www.miximum.fr/wp-content/plugins/photo-dropper/images/cc.png" alt="Creative Commons License" border="0" width="16" height="16" align="absmiddle" /></a> <a href="http://www.photodropper.com/photos/" target="_blank">photo</a> credit&nbsp;: <a href="http://www.flickr.com/photos/85169118@N00/5348462414/" title="jaxxon" target="_blank">jaxxon</a></small></div>
<p>Allez, en vrac, quelques astuces, parfois apprises dans la douleur.</p>
<p>Choper les bon &eacute;tat d&#8217;esprit est important. &laquo;&nbsp;Je suis un professionnel comp&eacute;tent. Je suis l&agrave; pour vous aider. J&#8217;offre des prestations de qualit&eacute;.&nbsp;&raquo;. Toute situation qui ne cadre pas avec cette affirmation (de votre c&ocirc;t&eacute; comme de celui du client) doit &ecirc;tre recadr&eacute;e d&#8217;urgence.</p>
<p>Toujours viser la satisfaction client en priorit&eacute;. Avoir un projet pourri mais un client content paie les factures. L&#8217;inverse non.</p>
<p>Peu importe la qualit&eacute; du travail fourni, si vous ne communiquez pas correctement avec votre client, il ne sera pas satisfait.</p>
<p>En cas de doute, la transparence et l&#8217;honn&ecirc;tet&eacute; sont en g&eacute;n&eacute;ral les bonnes options.</p>
<p>Le cas &eacute;ch&eacute;ant, avouer son incomp&eacute;tence sur certains points ne pose aucun probl&egrave;me. Surestimer ses comp&eacute;tences, en revanche, n&#8217;am&egrave;ne que des emmerdes.</p>
<p>L&#8217;auto-formation est vitale. Lisez des livres, allez &agrave; des conf&eacute;rences, r&eacute;alisez des projets persos representant des d&eacute;fis techniques, ne vous reposez pas sous vos lauriers.</p>
<p>N&#8217;h&eacute;sitez pas &agrave; dire non aux clients et projets qui puent. &laquo;&nbsp;C&#8217;est urgent&nbsp;&raquo;. &laquo;&nbsp;Tous mes d&eacute;veloppeurs pr&eacute;c&eacute;dents m&#8217;ont plant&eacute;&nbsp;&raquo;. &laquo;&nbsp;Je ne paierai qu&#8217;&agrave; la livraison finale, dans six mois&nbsp;&raquo;. &laquo;&nbsp;Je cherche &agrave; constituer une &eacute;quipe pour une r&eacute;gie de 500 jours qui commence la semaine prochaine&nbsp;&raquo;<sup><a href="#footnote-5-759" id="footnote-link-5-759" title="Voir la note.">[5]</a></sup>. Autant de drapeaux rouges qu&#8217;on apprend &agrave; d&eacute;tecter et &agrave; fuire comme la peste num&eacute;rique.</p>
<p>Le b&eacute;n&eacute;volat, c&#8217;est le mal. &laquo;&nbsp;Tiens, tu fais des sites<span class="fine">&nbsp;</span>? Tu ne veux pas faire le site de mon association de bienfaisance vite fait<span class="fine">&nbsp;</span>?&nbsp;&raquo;. Dire oui &agrave; ce genre de requ&ecirc;te est certe louable, mais c&#8217;est le d&eacute;but d&#8217;emmerdes sans fin et d&#8217;une perte de temps abyssale.</p>
<p>Le forfait, c&#8217;est le mal. Les m&eacute;thodes agiles et le travail en r&eacute;gie, c&#8217;est plut&ocirc;t sympa.</p>
<h2>Le mot de la fin</h2>
<p>Pour synth&eacute;tiser un peu tout &ccedil;a, je dirai qu&#8217;&ecirc;tre freelance, avant d&#8217;&ecirc;tre un m&eacute;tier, est avant tout un art de vivre. Et c&#8217;est &ccedil;a que me plait. J&#8217;aurais encore des choses &agrave; dire, mais je me r&eacute;serve pour l&#8217;ann&eacute;e prochaine. Freelancers of the world, je serais curieux d&#8217;avoir vos retours concernant tous ces points. &Agrave; pluche<span class="fine">&nbsp;</span>!</p>
<h4>Notes&nbsp;:</h4><ol class="footnotes"><li id="footnote-1-759">Ouah l&#8217;autre he<span class="fine">&nbsp;</span>! Quel m&eacute;lo<span class="fine">&nbsp;</span>!  [<a href="#footnote-link-1-759">retour</a>]</li><li id="footnote-2-759">En fait, non, mais c&#8217;&eacute;tait pour la beaut&eacute; de la d&eacute;monstration  [<a href="#footnote-link-2-759">retour</a>]</li><li id="footnote-3-759">et avant que ce soit vraiment le cas  [<a href="#footnote-link-3-759">retour</a>]</li><li id="footnote-4-759">J&#8217;avoue, sur ce coup l&agrave;, je n&#8217;ai pas su quoi r&eacute;pondre  [<a href="#footnote-link-4-759">retour</a>]</li><li id="footnote-5-759">Si si, v&eacute;ridique  [<a href="#footnote-link-5-759">retour</a>]</li></ol><div class="tweetmeme_button" style="float: right; margin-left: 10px;"><a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.miximum.fr%2Ftranche_vie%2F759-freelance-deux-ans-plus-tard%25e2%2580%25a6"><img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.miximum.fr%2Ftranche_vie%2F759-freelance-deux-ans-plus-tard%25e2%2580%25a6" height="61" width="51" /></a></div>]]></content:encoded>
			<wfw:commentRss>http://www.miximum.fr/tranche_vie/759-freelance-deux-ans-plus-tard%e2%80%a6/feed</wfw:commentRss>
		<slash:comments>26</slash:comments>
		</item>
	</channel>
</rss>

