Social chess clock

20
Social Chess Clock José Pablo Ovalle @jpovalle

Transcript of Social chess clock

Page 1: Social chess clock

Social Chess ClockJosé Pablo Ovalle

@jpovalle

Page 2: Social chess clock

DescripciónEl reloj de ajedrez consiste en un reloj de

doble esfera que contabiliza el tiempo invertido por cada jugador al pensar sus jugadas durante una partida de ajedrez.

Page 3: Social chess clock

¿Cómo funciona?Al pulsar el botón encima del reloj, éste se

detiene y pone en marcha el otro (los relojes nunca funcionan simultáneamente), haciendo correr el tiempo del oponente.

Page 4: Social chess clock

Social Chess Clock

Page 5: Social chess clock

FuncionesDistintos modos de juego

Muerte súbita Fischer

Posteo de resultado en Twitter

Page 6: Social chess clock

Aspectos interesantesIntegración de Twitter

AutenticaciónAcceso a datos

Estilos para botonesDibujar texto invertido

Page 7: Social chess clock

Integración de Twitter

Page 8: Social chess clock

Autenticación en TwitterAutenticación: OAuth - Open Authorization

Es una forma de autenticar al usuario sin pedir desde la aplicación el usuario y contraseña.

La aplicación abre el sitio web de Twitter, donde se preguntará al usuario si autoriza la aplicación.

Si el usuario acepta es llevado de vuelta a la aplicación e inicia la interacción con Twitter.

Jars signpost-core-<version>.jar signpost-commonshttp4-<version>.jar

Descarga http://code.google.com/p/oauth-signpost/downloads/

list

Page 9: Social chess clock
Page 10: Social chess clock

Acceso a datos de usuario de TwitterLibrerías disponibles:

https://dev.twitter.com/docs/twitter-libraries

Page 11: Social chess clock

Acceso a datos de usuario de TwitterAcceso a datos: Twitter4J

Twitter4J es una librería en Java para la API de Twitter.

Permite una fácil integración de la applicación con el servicio de Twitter.

Twitter4J is una librería no oficial.Jars

twitter4j-core-<version>.jarDescarga

http://twitter4j.org/en/index.html#download

Page 12: Social chess clock

Estilos para botones

Page 13: Social chess clock

Cambiar color de background<Button android:id="@+id/Button01"

android:text="My Name"android:background="#2563EA"android:layout_height="50px"android:layout_width="100px"/>

Page 14: Social chess clock

Estilos para botonesRecursos dibujables (Drawable Resources)

Un recurso dibujable es un concepto general que representa una gráfica que puede ser dibujada en pantalla.

Puede referenciarse por medio del API, con la función getDrawable(int) o aplicarse desde otro recurso XML.

Existen varios tipos de recursos dibujables, siendo el más popular el Bitmap.

Page 15: Social chess clock

Estilos para botonesShape Drawable

Es un archivo XML que define una figura geométrica, incluyendo colores y gradientes.

Page 16: Social chess clock

Ejemplo de estilo para botón<?xml version="1.0" encoding="utf-8"?><selector    xmlns:android="http://schemas.android.com/apk/res/android">    <item>                <shape>            <gradient                android:endColor="@color/blue2"                android:startColor="@color/blue25"                android:angle="270" />            <stroke                android:width="3dp"                android:color="@color/grey05" />            <corners                android:radius="3dp" />            <padding                android:left="10dp"                android:top="10dp"                android:right="10dp"                android:bottom="10dp" />        </shape>    </item></selector>

estilo.xml

<item android:state_pressed="true“>        <shape>            . .        </shape></item>

Page 17: Social chess clock

Ejemplo de estilo para botón

<Button.. android:background="@drawable/estilo“/>

mi_layout.xml

Page 18: Social chess clock

Dibujar texto invertido

Page 19: Social chess clock

Dibujar texto invertidoPara invertir los gráficos de un TextView:

Heredar de la clase TextViewSobreescribir el método onDraw(Canvas

canvas)Rotar el canvasLlamar al método onDraw() de la clase padre@Overrideprotected void onDraw(Canvas canvas) { canvas.save(); canvas.rotate(180, this.getWidth()/2, this.getHeight()/2); super.onDraw(canvas); canvas.restore();}

Page 20: Social chess clock

Hora de la demo!