<?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>desctrl</title>
	<atom:link href="http://www.desctrl.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.desctrl.com/blog</link>
	<description>ups!</description>
	<lastBuildDate>Mon, 19 Mar 2012 09:48:27 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>iPhone: Els Amics de les Arts</title>
		<link>http://www.desctrl.com/blog/2012/03/03/iphone-els-amics-de-les-arts/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=iphone-els-amics-de-les-arts</link>
		<comments>http://www.desctrl.com/blog/2012/03/03/iphone-els-amics-de-les-arts/#comments</comments>
		<pubDate>Sat, 03 Mar 2012 05:55:41 +0000</pubDate>
		<dc:creator>mariomir</dc:creator>
				<category><![CDATA[iphone]]></category>
		<category><![CDATA[musica]]></category>
		<category><![CDATA[app]]></category>
		<category><![CDATA[música]]></category>

		<guid isPermaLink="false">http://www.desctrl.com/blog/?p=612</guid>
		<description><![CDATA[<p>Aunque hace tiempo que no ponemos nada, no quiere decir que estemos parados.</p>
<p>Hoy nos complace presentaros la aplicación para iPhone de <strong>Els Amics de les Arts </strong><a title="iphone Els Amics de les Arts" href="http://itunes.apple.com/es/app/els-amics-de-les-arts/id505146724?mt=8" target="_blank">(link)</a></p>
<p>Noticias, conciertos, muro donde poder estar en contacto con ellos, todos sus videos y videoclips, letras de las canciones&#8230;</p>
<p><a href="http://www.desctrl.com/blog/2012/03/03/iphone-els-amics-de-les-arts/" class="more-link">Read more on iPhone: Els Amics de les Arts&#8230;</a></p>
]]></description>
			<content:encoded><![CDATA[<p>Aunque hace tiempo que no ponemos nada, no quiere decir que estemos parados.</p>
<p>Hoy nos complace presentaros la aplicación para iPhone de <strong>Els Amics de les Arts </strong><a title="iphone Els Amics de les Arts" href="http://itunes.apple.com/es/app/els-amics-de-les-arts/id505146724?mt=8" target="_blank">(link)</a></p>
<p>Noticias, conciertos, muro donde poder estar en contacto con ellos, todos sus videos y videoclips, letras de las canciones&#8230;</p>
<p>Esperamos que os guste, bon profit!</p>
<p><a title="iPhone Els Amics de les Arts" href="http://itunes.apple.com/es/app/els-amics-de-les-arts/id505146724?mt=8" target="_blank"><img class="aligncenter size-full wp-image-615" title="els-amics-de-les-arts-iphone" src="http://www.desctrl.com/blog/wp-content/uploads/2012/03/els-amics-de-les-arts-iphone1.jpg" alt="" width="580" height="400" /></a><br />
link | <a title="iPhone Els Amics de les Arts" href="http://itunes.apple.com/es/app/els-amics-de-les-arts/id505146724?mt=8" target="_blank">App Els Amics de les Arts</a></p>
<p>web | <a title="Els Amics de les Arts" href="http://elsamicsdelesarts.cat/" target="_blank">Els Amics de les Arts</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.desctrl.com/blog/2012/03/03/iphone-els-amics-de-les-arts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iPhone: Create Singleton instance</title>
		<link>http://www.desctrl.com/blog/2011/11/05/iphone-create-singleton-instance/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=iphone-create-singleton-instance</link>
		<comments>http://www.desctrl.com/blog/2011/11/05/iphone-create-singleton-instance/#comments</comments>
		<pubDate>Sat, 05 Nov 2011 12:07:08 +0000</pubDate>
		<dc:creator>oriolpons</dc:creator>
				<category><![CDATA[iphone]]></category>
		<category><![CDATA[ios]]></category>
		<category><![CDATA[xcode]]></category>

		<guid isPermaLink="false">http://www.desctrl.com/blog/?p=600</guid>
		<description><![CDATA[<p>A continuación veremos como crear una clase singleton en objective-c.</p>
<p>Un singleton es una clase con una única instancia. Puede servirnos para guardar variables globales de la aplicación.</p>
<p><strong>MySingletonInstance.h</strong></p>
<pre>#import &#60;foundation /Foundation.h&#62;
@interface MySingletonInstance : NSObject{
}
@property (nonatomic,retain) NSString *myString;
@property (nonatomic,retain) NSMutableArray *myArray;
+ (MySingletonInstance *) instance;
@end
&#60;/foundation&#62;</pre>
<p><a href="http://www.desctrl.com/blog/2011/11/05/iphone-create-singleton-instance/" class="more-link">Read more on iPhone: Create Singleton instance&#8230;</a></p>
]]></description>
			<content:encoded><![CDATA[<p>A continuación veremos como crear una clase singleton en objective-c.</p>
<p>Un singleton es una clase con una única instancia. Puede servirnos para guardar variables globales de la aplicación.</p>
<p><strong>MySingletonInstance.h</strong></p>
<pre>#import &lt;Foundation/Foundation.h&gt;
@interface MySingletonInstance : NSObject{
}
@property (nonatomic,retain) NSString *myString;
@property (nonatomic,retain) NSMutableArray *myArray;
+ (MySingletonInstance *) instance;
@end</pre>
<p><strong>MySingletonInstance.m</strong></p>
<pre>#import "MySharedSingleton.h"
@implementation MySharedSingleton
@synthesize myArray, myString;

static MySingletonInstance *sharedSingletonInstance = nil;

+ (FilterParams *) instance {
    @synchronized(self) {
        if(sharedSingletonInstance == nil) sharedSingletonInstance = [[self alloc] init];
    }
    return sharedSingletonInstance;
}

+ (id)allocWithZone:(NSZone *)zone {
    @synchronized(self) {
        if(sharedSingletonInstance == nil) {
            sharedSingletonInstance = [super allocWithZone:zone];
            return sharedSingletonInstance;
        }
    }
    return nil;
}

- (id) copyWithZone:(NSZone *)zone {
    return self;
}

- (id) retain {
    return self;
}

- (unsigned) retainCount {
    return UINT_MAX;
}

- (void) dealloc {
    [super dealloc];
    [myArray release];
    [myString release];
}

- (id) autorelease {
    return self;
}</pre>
<p><strong>Como llamar al singleton desde otra clase</strong></p>
<pre>MySingletonInstance *msi = [MySingletonInstance instance];
msi.myArray = self.myOtherArray;
msi.myString = self.myOtherString;</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.desctrl.com/blog/2011/11/05/iphone-create-singleton-instance/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Android: ScreenShot / ScreenCapture Code</title>
		<link>http://www.desctrl.com/blog/2011/10/20/android-screenshot-screencapture-code/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=android-screenshot-screencapture-code</link>
		<comments>http://www.desctrl.com/blog/2011/10/20/android-screenshot-screencapture-code/#comments</comments>
		<pubDate>Thu, 20 Oct 2011 12:03:08 +0000</pubDate>
		<dc:creator>oriolpons</dc:creator>
				<category><![CDATA[android]]></category>

		<guid isPermaLink="false">http://www.desctrl.com/blog/?p=596</guid>
		<description><![CDATA[<p>Con estas líneas podemos hacer una captura de pantalla de nuestra aplicación Android. En este ejemplo la captura se guarda en la sdCard.</p>
<p>Del codigo, hay que tener en cuenta que se hace la captura de un View (viewToBeCaptured), que le tenemos que asignar el layout que queramos capturar.</p>
<p><a href="http://www.desctrl.com/blog/2011/10/20/android-screenshot-screencapture-code/" class="more-link">Read more on Android: ScreenShot / ScreenCapture Code&#8230;</a></p>
]]></description>
			<content:encoded><![CDATA[<p>Con estas líneas podemos hacer una captura de pantalla de nuestra aplicación Android. En este ejemplo la captura se guarda en la sdCard.</p>
<p>Del codigo, hay que tener en cuenta que se hace la captura de un View (viewToBeCaptured), que le tenemos que asignar el layout que queramos capturar.</p>

<div class="bwp-syntax-block clearfix">
<div class="bwp-syntax-toolbar" style="right: 15px;" ><div class="bwp-syntax-control"><a href="javascript:;" class="bwp-syntax-source-switch" title="View Source Code"></a></div></div>
<div class="bwp-syntax-wrapper clearfix bwp-syntax-simple"style=" height: 252px;"><table class="java"><tbody><tr class="li1"><td class="ln"><pre class="de1">1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
</pre></td><td class="de1"><pre class="de1"><span class="kw1">package</span> <span class="co2">com.ideaknow.proves</span><span class="sy0">;</span>
&nbsp;
<span class="kw1">import</span> <span class="co2">java.io.File</span><span class="sy0">;</span>
<span class="kw1">import</span> <span class="co2">java.io.FileNotFoundException</span><span class="sy0">;</span>
<span class="kw1">import</span> <span class="co2">java.io.FileOutputStream</span><span class="sy0">;</span>
<span class="kw1">import</span> <span class="co2">java.io.IOException</span><span class="sy0">;</span>
<span class="kw1">import</span> <span class="co2">java.io.OutputStream</span><span class="sy0">;</span>
&nbsp;
<span class="kw1">import</span> <span class="co2">android.app.Activity</span><span class="sy0">;</span>
<span class="kw1">import</span> <span class="co2">android.graphics.Bitmap</span><span class="sy0">;</span>
<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.os.Environment</span><span class="sy0">;</span>
<span class="kw1">import</span> <span class="co2">android.util.Log</span><span class="sy0">;</span>
<span class="kw1">import</span> <span class="co2">android.view.Gravity</span><span class="sy0">;</span>
<span class="kw1">import</span> <span class="co2">android.view.LayoutInflater</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.view.View.OnClickListener</span><span class="sy0">;</span>
<span class="kw1">import</span> <span class="co2">android.view.ViewGroup</span><span class="sy0">;</span>
<span class="kw1">import</span> <span class="co2">android.widget.Button</span><span class="sy0">;</span>
<span class="kw1">import</span> <span class="co2">android.widget.ImageView</span><span class="sy0">;</span>
<span class="kw1">import</span> <span class="co2">android.widget.TextView</span><span class="sy0">;</span>
<span class="kw1">import</span> <span class="co2">android.widget.Toast</span><span class="sy0">;</span>
&nbsp;
<span class="kw1">public</span> <span class="kw1">class</span> ScreenCaptureActivity <span class="kw1">extends</span> Activity <span class="br0">&#123;</span>
&nbsp; &nbsp; <span class="kw1">private</span> <span class="kw3">View</span> viewToBeCaptured<span class="sy0">;</span>
&nbsp; &nbsp; <span class="kw1">private</span> <span class="kw3">Button</span> button<span class="sy0">;</span>
&nbsp;
&nbsp; &nbsp; @Override
&nbsp; &nbsp; <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>
&nbsp; &nbsp; &nbsp; &nbsp; <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; &nbsp; &nbsp; &nbsp; 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>
&nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; button <span class="sy0">=</span> <span class="br0">&#40;</span><span class="kw3">Button</span><span class="br0">&#41;</span> findViewById<span class="br0">&#40;</span>R.<span class="me1">id</span>.<span class="me1">button1</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; viewToBeCaptured <span class="sy0">=</span> <span class="kw1">this</span>.<span class="me1">findViewById</span><span class="br0">&#40;</span>R.<span class="me1">id</span>.<span class="me1">mainView</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; viewToBeCaptured.<span class="me1">setDrawingCacheEnabled</span><span class="br0">&#40;</span><span class="kw2">true</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; viewToBeCaptured.<span class="me1">buildDrawingCache</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; button.<span class="me1">setOnClickListener</span><span class="br0">&#40;</span><span class="kw1">new</span> OnClickListener<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; @Override
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">public</span> <span class="kw4">void</span> onClick<span class="br0">&#40;</span><span class="kw3">View</span> arg0<span class="br0">&#41;</span> <span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Log.<span class="me1">v</span><span class="br0">&#40;</span><span class="st0">&quot;Saved&quot;</span>, <span class="st0">&quot;Save screenshot?&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; saveFile<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; <span class="br0">&#125;</span>
&nbsp;
&nbsp; &nbsp; <span class="kw1">public</span> <span class="kw4">void</span> saveFile<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; Bitmap b <span class="sy0">=</span> viewToBeCaptured.<span class="me1">getDrawingCache</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">File</span> sd <span class="sy0">=</span> <span class="kw3">Environment</span>.<span class="me1">getExternalStorageDirectory</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">File</span> f <span class="sy0">=</span> <span class="kw1">new</span> <span class="kw3">File</span><span class="br0">&#40;</span>sd, <span class="st0">&quot;captureAndroid.png&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">try</span> <span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>sd.<span class="me1">canWrite</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Log.<span class="me1">v</span><span class="br0">&#40;</span><span class="st0">&quot;Saved&quot;</span>, <span class="st0">&quot;Screenshot saved&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; f.<span class="me1">createNewFile</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">OutputStream</span> os <span class="sy0">=</span> <span class="kw1">new</span> <span class="kw3">FileOutputStream</span><span class="br0">&#40;</span>f<span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; b.<span class="me1">compress</span><span class="br0">&#40;</span>Bitmap.<span class="me1">CompressFormat</span>.<span class="me1">PNG</span>, <span class="nu0">90</span>, os<span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; os.<span class="me1">close</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span> <span class="kw1">catch</span> <span class="br0">&#40;</span><span class="kw3">FileNotFoundException</span> e<span class="br0">&#41;</span> <span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; e.<span class="me1">printStackTrace</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span> <span class="kw1">catch</span> <span class="br0">&#40;</span><span class="kw3">IOException</span> e<span class="br0">&#41;</span> <span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; e.<span class="me1">printStackTrace</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span>
&nbsp; &nbsp; &nbsp; &nbsp; viewToBeCaptured.<span class="me1">setDrawingCacheEnabled</span><span class="br0">&#40;</span><span class="kw2">false</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; <span class="br0">&#125;</span>
<span class="br0">&#125;</span></pre></td></tr></tbody></table></div>
<div class="bwp-syntax-source"><pre class="no-parse">package com.ideaknow.proves;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;

import android.app.Activity;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.os.Environment;
import android.util.Log;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

public class ScreenCaptureActivity extends Activity {
	private View viewToBeCaptured;
	private Button button;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);

		button = (Button) findViewById(R.id.button1);

		viewToBeCaptured = this.findViewById(R.id.mainView);
		viewToBeCaptured.setDrawingCacheEnabled(true);
		viewToBeCaptured.buildDrawingCache();

		button.setOnClickListener(new OnClickListener(){
			@Override
			public void onClick(View arg0) {
				Log.v("Saved", "Save screenshot?");
				saveFile();
			}
		});
	}

	public void saveFile(){
		Bitmap b = viewToBeCaptured.getDrawingCache();
		File sd = Environment.getExternalStorageDirectory();
		File f = new File(sd, "captureAndroid.png");
		try {
			if (sd.canWrite()) {
				Log.v("Saved", "Screenshot saved");
				f.createNewFile();
				OutputStream os = new FileOutputStream(f);
				b.compress(Bitmap.CompressFormat.PNG, 90, os);
				os.close();
			}
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		viewToBeCaptured.setDrawingCacheEnabled(false);
	}
}</pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://www.desctrl.com/blog/2011/10/20/android-screenshot-screencapture-code/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Android: Configure ADB in MAC</title>
		<link>http://www.desctrl.com/blog/2011/09/10/android-configure-adb-in-mac/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=android-configure-adb-in-mac</link>
		<comments>http://www.desctrl.com/blog/2011/09/10/android-configure-adb-in-mac/#comments</comments>
		<pubDate>Sat, 10 Sep 2011 14:20:07 +0000</pubDate>
		<dc:creator>oriolpons</dc:creator>
				<category><![CDATA[android]]></category>

		<guid isPermaLink="false">http://www.desctrl.com/blog/?p=593</guid>
		<description><![CDATA[<p>Para configurar el adb del sdk de android debemos configurar el path a la instalación de nuestro sdk.</p>
<p>Para hacerlo, debemos abrir un <strong>terminal de mac</strong> y escribir lo siguiente:</p>
<p><strong>export ANDROID_SDK=/carpeta donde tenemos descargado nuestro sdk/android-sdk-mac_86</strong><br />
<strong>export PATH=${PATH}:${ANDROID_SDK}/tools:${ANDROID_SDK}/platform-tools</strong></p>
<p><a href="http://www.desctrl.com/blog/2011/09/10/android-configure-adb-in-mac/" class="more-link">Read more on Android: Configure ADB in MAC&#8230;</a></p>
]]></description>
			<content:encoded><![CDATA[<p>Para configurar el adb del sdk de android debemos configurar el path a la instalación de nuestro sdk.</p>
<p>Para hacerlo, debemos abrir un <strong>terminal de mac</strong> y escribir lo siguiente:</p>
<p><strong>export ANDROID_SDK=/carpeta donde tenemos descargado nuestro sdk/android-sdk-mac_86</strong><br />
<strong>export PATH=${PATH}:${ANDROID_SDK}/tools:${ANDROID_SDK}/platform-tools</strong></p>
<p>Una vez echo esto, ya podemos escribir en el terminal adb y el comando deseado (por ejemplo adb logcat).</p>
<p>Hasta aquí hemos configurado el adb, pero para no tener que hacer esto cada vez que encendamos nuestro mac, podemos poner estas dos líneas en el archivo <strong>.bash_profile</strong>, de esta manera se quedará guardado para un futuro.</p>
<p>Para hacerlo escribimos en un terminal:</p>
<p><strong>nano ~/.bash_profile</strong></p>
<p>Y pegamos las dos líneas que hemos escrito anteriormente.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.desctrl.com/blog/2011/09/10/android-configure-adb-in-mac/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Android: Create AlertDialog with custom layout</title>
		<link>http://www.desctrl.com/blog/2011/08/31/android-create-alertdialog-with-custom-layout/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=android-create-alertdialog-with-custom-layout</link>
		<comments>http://www.desctrl.com/blog/2011/08/31/android-create-alertdialog-with-custom-layout/#comments</comments>
		<pubDate>Wed, 31 Aug 2011 12:17:17 +0000</pubDate>
		<dc:creator>oriolpons</dc:creator>
				<category><![CDATA[android]]></category>

		<guid isPermaLink="false">http://www.desctrl.com/blog/?p=578</guid>
		<description><![CDATA[<p>A continuación veremos como crear un AlertDialog personalizado, añandiéndole nuestro propio layout como view.</p>
<p><script class="brush: java" type="syntaxhighlighter">
//Variables
AlertDialog.Builder builder;
final AlertDialog alertDialog;
LayoutInflater inflater = (LayoutInflater) myActivity.getSystemService(myActivity.LAYOUT_INFLATER_SERVICE);
//Nos guardamos una referencia a nuestro layout
View layout = inflater.inflate(R.layout.my_custom_layout, (ViewGroup) myActivity.findViewById(R.id.layout_root));
final EditText textToSearch = (EditText) layout.findViewById(R.id.editText1);
builder = new AlertDialog.Builder(myActivity);
//Asignamos la vista del AlertDialog a nuestro propio layout
builder.setView(layout);
alertDialog = builder.create();
//Asignamos el evento click a nuestro botón de aceptar (en este caso cierra el alertdialog)
Button aceptarBtn = (Button) layout.findViewById(R.id.button1);
aceptarBtn.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
alertDialog.dismiss();
}
});
//Mostramos el alertdialog
alertDialog.show();</p>
<p></script></p>
<p>A continuación el layout que hemos usado:<br />
<script class="brush: java" type="syntaxhighlighter"></p>
<linearlayout xmlns:android="http://schemas.android.com/apk/res/android"
	android:id="@+id/layout_root" android:orientation="vertical"
	android:layout_width="fill_parent" android:layout_height="fill_parent"
	android:padding="10dp" android:background="#FFF">
<p>	<textview android:layout_height="wrap_content"
		android:text="desctrl"
		android:id="@+id/text" android:textColor="#FF6F09"
		android:layout_width="fill_parent" android:layout_margin="10dip" android:gravity="center_vertical&#124;center_horizontal"
		android:layout_marginTop="40dip"></textview></p>
<p>	<edittext android:layout_height="wrap_content" android:id="@+id/editText1"
		android:layout_width="match_parent" android:layout_margin="10dip"></edittext></p>
<p>	<button android:layout_height="wrap_content" android:text="Aceptar"
		android:id="@+id/button1" android:layout_gravity="center_horizontal"
		android:layout_width="wrap_content"></button></p>
</linearlayout>
</script></p>
<p><a href="http://www.desctrl.com/blog/wp-content/uploads/2011/08/Captura-de-pantalla-2011-08-31-a-las-14.07.20.png"><img src="http://www.desctrl.com/blog/wp-content/uploads/2011/08/Captura-de-pantalla-2011-08-31-a-las-14.07.20.png" alt="" title="layout view" width="348" height="199" class="aligncenter size-full wp-image-585" /></a></p>
<p><a href="http://www.desctrl.com/blog/2011/08/31/android-create-alertdialog-with-custom-layout/" class="more-link">Read more on Android: Create AlertDialog with custom layout&#8230;</a></p>
]]></description>
			<content:encoded><![CDATA[<p>A continuación veremos como crear un AlertDialog personalizado, añandiéndole nuestro propio layout como view.</p>
<p><script class="brush: java" type="syntaxhighlighter">
//Variables
AlertDialog.Builder builder;
final AlertDialog alertDialog;
LayoutInflater inflater = (LayoutInflater) myActivity.getSystemService(myActivity.LAYOUT_INFLATER_SERVICE);
//Nos guardamos una referencia a nuestro layout
View layout = inflater.inflate(R.layout.my_custom_layout, (ViewGroup) myActivity.findViewById(R.id.layout_root));
final EditText textToSearch = (EditText) layout.findViewById(R.id.editText1);
builder = new AlertDialog.Builder(myActivity);
//Asignamos la vista del AlertDialog a nuestro propio layout
builder.setView(layout);
alertDialog = builder.create();
//Asignamos el evento click a nuestro botón de aceptar (en este caso cierra el alertdialog)
Button aceptarBtn = (Button) layout.findViewById(R.id.button1);
aceptarBtn.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
alertDialog.dismiss();
}
});
//Mostramos el alertdialog
alertDialog.show();</p>
<p></script></p>
<p>A continuación el layout que hemos usado:<br />
<script class="brush: java" type="syntaxhighlighter">
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
	android:id="@+id/layout_root" android:orientation="vertical"
	android:layout_width="fill_parent" android:layout_height="fill_parent"
	android:padding="10dp" android:background="#FFF"></p>
<p>	<TextView android:layout_height="wrap_content"
		android:text="desctrl"
		android:id="@+id/text" android:textColor="#FF6F09"
		android:layout_width="fill_parent" android:layout_margin="10dip" android:gravity="center_vertical|center_horizontal"
		android:layout_marginTop="40dip"></TextView></p>
<p>	<EditText android:layout_height="wrap_content" android:id="@+id/editText1"
		android:layout_width="match_parent" android:layout_margin="10dip"></EditText></p>
<p>	<Button android:layout_height="wrap_content" android:text="Aceptar"
		android:id="@+id/button1" android:layout_gravity="center_horizontal"
		android:layout_width="wrap_content"></Button></p>
<p></LinearLayout>
</script></p>
<p><a href="http://www.desctrl.com/blog/wp-content/uploads/2011/08/Captura-de-pantalla-2011-08-31-a-las-14.07.20.png"><img src="http://www.desctrl.com/blog/wp-content/uploads/2011/08/Captura-de-pantalla-2011-08-31-a-las-14.07.20.png" alt="" title="layout view" width="348" height="199" class="aligncenter size-full wp-image-585" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.desctrl.com/blog/2011/08/31/android-create-alertdialog-with-custom-layout/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iPhone: Check if string contains a substring</title>
		<link>http://www.desctrl.com/blog/2011/08/10/iphone-string-contains/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=iphone-string-contains</link>
		<comments>http://www.desctrl.com/blog/2011/08/10/iphone-string-contains/#comments</comments>
		<pubDate>Wed, 10 Aug 2011 14:54:45 +0000</pubDate>
		<dc:creator>oriolpons</dc:creator>
				<category><![CDATA[iphone]]></category>
		<category><![CDATA[ios]]></category>
		<category><![CDATA[xcode]]></category>

		<guid isPermaLink="false">http://www.desctrl.com/blog/?p=572</guid>
		<description><![CDATA[<p>Para saber si una cadena contiene otra cadena o substring, sólo debemos usar la siguiente función:</p>
<p><script class="brush: java" type="syntaxhighlighter">
if([myString rangeOfString:@"cadena/caracteres a buscar"].location != NSNotFound){
    NSLog(@"Cadena encontrada");
}else{
    NSLog(@"Cadena no encontrada");
}
</script></p>
]]></description>
			<content:encoded><![CDATA[<p>Para saber si una cadena contiene otra cadena o substring, sólo debemos usar la siguiente función:</p>
<p><script class="brush: java" type="syntaxhighlighter">
if([myString rangeOfString:@"cadena/caracteres a buscar"].location != NSNotFound){
    NSLog(@"Cadena encontrada");
}else{
    NSLog(@"Cadena no encontrada");
}
</script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.desctrl.com/blog/2011/08/10/iphone-string-contains/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Android: La Pegatina</title>
		<link>http://www.desctrl.com/blog/2011/06/23/android-la-pegatina/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=android-la-pegatina</link>
		<comments>http://www.desctrl.com/blog/2011/06/23/android-la-pegatina/#comments</comments>
		<pubDate>Thu, 23 Jun 2011 12:54:25 +0000</pubDate>
		<dc:creator>mariomir</dc:creator>
				<category><![CDATA[android]]></category>

		<guid isPermaLink="false">http://www.desctrl.com/blog/?p=556</guid>
		<description><![CDATA[<p>Y dos meses más tarde de iPhone (que hemos estado liadillos) os presentamos la aplicación para Android de <strong>La Pegatina</strong><br />
<strong><a href="https://market.android.com/details?id=com.desctrl.lapegatina&#38;feature=search_result">https://market.android.com/details?id=com.desctrl.lapegatina&#38;feature=search_result</a></strong></p>
<p><img class="size-medium wp-image-558" title="captura1" src="http://www.desctrl.com/blog/wp-content/uploads/2011/06/captura1-180x300.png" alt="" width="180" height="300" /> <img class="size-medium wp-image-559" title="captura2" src="http://www.desctrl.com/blog/wp-content/uploads/2011/06/captura2-180x300.png" alt="" width="180" height="300" /> <img class="size-medium wp-image-565" title="android_lapegatina" src="http://www.desctrl.com/blog/wp-content/uploads/2011/06/android_lapegatina-254x300.jpg" alt="" width="169" height="200" /></p>
<p>&#160;</p>
]]></description>
			<content:encoded><![CDATA[<p>Y dos meses más tarde de iPhone (que hemos estado liadillos) os presentamos la aplicación para Android de <strong>La Pegatina</strong><br />
<strong><a href="https://market.android.com/details?id=com.desctrl.lapegatina&amp;feature=search_result">https://market.android.com/details?id=com.desctrl.lapegatina&amp;feature=search_result</a></strong></p>
<p><img class="size-medium wp-image-558" title="captura1" src="http://www.desctrl.com/blog/wp-content/uploads/2011/06/captura1-180x300.png" alt="" width="180" height="300" /> <img class="size-medium wp-image-559" title="captura2" src="http://www.desctrl.com/blog/wp-content/uploads/2011/06/captura2-180x300.png" alt="" width="180" height="300" /> <img class="size-medium wp-image-565" title="android_lapegatina" src="http://www.desctrl.com/blog/wp-content/uploads/2011/06/android_lapegatina-254x300.jpg" alt="" width="169" height="200" /></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.desctrl.com/blog/2011/06/23/android-la-pegatina/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Android: Locale. Get current language</title>
		<link>http://www.desctrl.com/blog/2011/06/08/android-locale-get-current-language/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=android-locale-get-current-language</link>
		<comments>http://www.desctrl.com/blog/2011/06/08/android-locale-get-current-language/#comments</comments>
		<pubDate>Wed, 08 Jun 2011 12:20:52 +0000</pubDate>
		<dc:creator>oriolpons</dc:creator>
				<category><![CDATA[android]]></category>

		<guid isPermaLink="false">http://www.desctrl.com/blog/?p=553</guid>
		<description><![CDATA[<p>Para detectar el idioma que tiene predefinido un móvil, debemos usar la siguiente línea de código:</p>
<p><script class="brush: java" type="syntaxhighlighter"> 
String locale = this.getResources().getConfiguration().locale.getDisplayName();
Log.v("desctrl", "Locale: " + locale);
//También podemos usar la siguiente línea, el resultado es el mismo
locale = java.util.Locale.getDefault().getDisplayName();
Log.v("desctrl", "Locale 2: " + locale);
</script></p>
<p><a href="http://www.desctrl.com/blog/2011/06/08/android-locale-get-current-language/" class="more-link">Read more on Android: Locale. Get current language&#8230;</a></p>
]]></description>
			<content:encoded><![CDATA[<p>Para detectar el idioma que tiene predefinido un móvil, debemos usar la siguiente línea de código:</p>
<p><script class="brush: java" type="syntaxhighlighter"> 
String locale = this.getResources().getConfiguration().locale.getDisplayName();
Log.v("desctrl", "Locale: " + locale);
//También podemos usar la siguiente línea, el resultado es el mismo
locale = java.util.Locale.getDefault().getDisplayName();
Log.v("desctrl", "Locale 2: " + locale);
</script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.desctrl.com/blog/2011/06/08/android-locale-get-current-language/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Android: Intent with parameters</title>
		<link>http://www.desctrl.com/blog/2011/05/16/android-intent-with-parameters/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=android-intent-with-parameters</link>
		<comments>http://www.desctrl.com/blog/2011/05/16/android-intent-with-parameters/#comments</comments>
		<pubDate>Mon, 16 May 2011 12:00:52 +0000</pubDate>
		<dc:creator>oriolpons</dc:creator>
				<category><![CDATA[android]]></category>

		<guid isPermaLink="false">http://www.desctrl.com/blog/?p=547</guid>
		<description><![CDATA[<p>Cuando desarrollas en Android es muy frecuente usar Intents, para no decir imprescindible. Un intent es una clase que permite especificar una activity a ejecutar.</p>
<p>Algunas veces podemos necesitar pasar parámetros a este intent, y leerlos en la clase de la actividad final.</p>
<p><a href="http://www.desctrl.com/blog/2011/05/16/android-intent-with-parameters/" class="more-link">Read more on Android: Intent with parameters&#8230;</a></p>
]]></description>
			<content:encoded><![CDATA[<p>Cuando desarrollas en Android es muy frecuente usar Intents, para no decir imprescindible. Un intent es una clase que permite especificar una activity a ejecutar.</p>
<p>Algunas veces podemos necesitar pasar parámetros a este intent, y leerlos en la clase de la actividad final.</p>
<p>Para crear un intent y lanzar una actividad debemos hacer:</p>
<p><script class="brush: java" type="syntaxhighlighter"> 
Intent i = new Intent(this, MiActividad.class);
startActivity(i);
 </script></p>
<p>Si queremos pasarle parámetros, debemos crear un objeto Bundle y asignarselo al intent.<br />
Un Bundle sirve para contener tipos primitivos y objetos de otras clases. Con esta clase podemos pasar datos entre distintas activities.</p>
<p><script class="brush: java" type="syntaxhighlighter"> 
//Creamos el bundle
Bundle bundle = new Bundle();
//Le ponemos la variable parametro con el contenido test
bundle.putString("parametro", "test");
Intent i = new Intent(this, MiActividad.class);
//Con el putExtras le pasamos el bundle
i.putExtras(bundle);
startActivity(i);
 </script></p>
<p>Hasta aquí ya sabemos como pasar variables. Para leerlas, en la actividad lanzada por el intent, en nuestro caso MiActividad.class, debemos hacer lo siguiente:</p>
<p><script class="brush: java" type="syntaxhighlighter"> 
Bundle bundle = this.getIntent().getExtras();
String parametro1 = bundle.getString("parametro");
</script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.desctrl.com/blog/2011/05/16/android-intent-with-parameters/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Se dibujan tuits (II)</title>
		<link>http://www.desctrl.com/blog/2011/04/14/se-dibujan-tuits-ii/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=se-dibujan-tuits-ii</link>
		<comments>http://www.desctrl.com/blog/2011/04/14/se-dibujan-tuits-ii/#comments</comments>
		<pubDate>Thu, 14 Apr 2011 14:10:50 +0000</pubDate>
		<dc:creator>mariomir</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.desctrl.com/blog/?p=537</guid>
		<description><![CDATA[<p>Tengo tanta leche que si no te hago un hijo te hago un queso</p>
<p><img class="alignnone" src="http://posterous.com/getfile/files.posterous.com/temp-2011-01-27/lsntpvGGzhFgbvcpfEorjviJfqvIAuyfkbaIpsAEunjgsCpbdABHsjnrqsJv/No.39.jpg.scaled1000.jpg" alt="Tengo tanta leche que si no te hago un hijo te hago un queso" width="560" height="800" /></p>
<p>Link &#124; <a href="http://sedibujantuits.posterous.com/">SE-DIBUJAN-TUITS</a></p>
]]></description>
			<content:encoded><![CDATA[<p>Tengo tanta leche que si no te hago un hijo te hago un queso</p>
<p><img class="alignnone" src="http://posterous.com/getfile/files.posterous.com/temp-2011-01-27/lsntpvGGzhFgbvcpfEorjviJfqvIAuyfkbaIpsAEunjgsCpbdABHsjnrqsJv/No.39.jpg.scaled1000.jpg" alt="Tengo tanta leche que si no te hago un hijo te hago un queso" width="560" height="800" /></p>
<p>Link | <a href="http://sedibujantuits.posterous.com/">SE-DIBUJAN-TUITS</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.desctrl.com/blog/2011/04/14/se-dibujan-tuits-ii/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

