Es mostren els missatges amb l'etiqueta de comentaris Android. Mostrar tots els missatges
Es mostren els missatges amb l'etiqueta de comentaris Android. Mostrar tots els missatges

diumenge, 10 de novembre del 2013

Log. Classe android.util.log

En aquest vídeo ensenyo com usar la classe android.util.Log per poder debuggar les nostres aplicacions


dilluns, 28 d’octubre del 2013

dilluns, 21 d’octubre del 2013

Regions, idiomes, traduccions

En el següent vídeo es mostra com funciona el tema de regions, idiomes i traduccions a Android


Com comprovar que el camp d'un formulari no és buit

En el següent vídeo es mostra com comprovar que no és buït el camp d'un formulari. 

S'afegeix una notiticació Toast.



divendres, 18 d’octubre del 2013

Elecció de la plataforma de desenvolupament

Un dels temes principals a decidir en programar un app és la versió d'API a implementar
Per prendre aquesta decisió cal analitzar la quota de mercat de les diferents APIS,  les seves característiques i el tipus de dispositius que volem que suporti la nostra aplicació.
En primer lloc, hem de saber si volem implementar alguna característica que només estigui desenvolupada a partir d'una versió en concret.
Caldrà tenir en compte que els usuaris amb dispositius inferior a aquesta versió no podran usar la nostre app. 

Per tant una bona idea és usar l'api inferior que en ofereix les funcionalitat requerides.


Una altra dada important a consultar és el nombre actual de dispositius per versions. Aquestes dades les publica Google cada set dies (http://developer.android.com/about/dashboards/index.html)

Fragmentació

La fragmentació és sense dubte la dificultat i risc més important en el desenvolupament d'aplicacions mòbils. La fragmentació pot ser de diferents graus: no és el mateix una app que ha de corre en dos telèfons diferents i en una mateixa versió de la plataforma que una que ha de corre en un mòbil i una tablet i amb versions diferents.
La fragmentació ve donada per diferents factors

§         Maquinari diferent
§         Programari diferent
§         Plataforma
§         Implementacions
§         Variació de les funcionalitats
§         Preferències d'usuari
§         Diferències de l'entorn

El que provoca la fragmentació en Android és precisament la gran diversitat de dispositius, com per exemple, les diferents mides de pantalla, resolucions, memòria, processador etc. Per altra banda, el fet que convisquin alhora diferents nivells d'API amb característiques diferents. Finalment, el fet que cada fabricant pugui adaptar el sistema operatiu Android a la seva mida augmenta la fragmentació.
Els perjudicats són per una banda els usuaris, que es troben amb app que no poden instal·lar en els seus dispositius i sobretot els programadors, que han d'adaptar les aplicacions per diferents APIS, resolucions, densitats, processadors etc.. És a dir, un caos.


La fragmentació no és exclusiva d'Android i també ho trobem a iOS i a Windows Phone.

Versions i APIS d' Android

Abans de començar qualsevol projecte en Android cal elegir la versió del sistema que usarem per realitzar la aplicació.
Com és evident hi ha funcionalitat, classes i mètodes que només estan disponibles a partir d'una versió en concret.
Quan Google llença una nova plataforma sempre és compatible amb l'anterior. És a dir, s'afegeixen noves funcionalitats, però les antigues es poden seguir emprant.
Les diferents plataformes d'Android s'identifiquen amb tres maneres diferents: pel nivell d'API, per la versió i pel nom.
Un mateix nom pot indicar dues versions diferents, per exemple, el nom Jelly Bean correspon a la versió 4.1 i 4.2 amb API 16 i 17 respectivament.
Dos números de versions diferents poden correspondre a un mateix nivell d'API, per exemple, Android 2.3.4 i Android 2.3.3 corresponen a nivell API 10.
Dos nivells d'API diferents poden indicar un mateix nom, per exemple, l'API 9 i l'API 10 corresponen a Gingerbread, totes versions 2.3.x.

El nivell d'API va començar amb la versió 1. Els noms de les diferents versions van en ordre alfabètic i tenen noms de postres. A continuació s'anomenen els diferents noms de versions i la data d'aparició:


        
A: Apple Pie (v1.0), Pastís de poma
Setembre 2008
B: Banana Bread (v1.1), Pa de plàtan
Febrer 2009
C: Cupcake (v1.5), Magdalena
Abril 2009
D: Donut (v1.6),
Setembre 2009
E: Éclair (v2.0/v2.1), pastís francès conegut a Espanya canut.
Octubre2009

F: Froyo (v2.2.x), (Abreviatura de «frozen iogurt») Iogurt gelat.
Maig 2010
G: Gingerbread (v2.3.x), Pa de gingebre.
Desembre 2010
H: Honeycomb (v3.x), Bresca de mel.
Febrer 2011
I: Ice Cream Sandwich (v4.0), Sandvitx de gelat.
Octubre 2011
J: Jelly Bean (v4.1/v4.2), Gominola.
Juny 2012
K: Key Lime Peu (v5.0) (No s'ha confirmat el nom final)
????? Sense data

Cal destacar que la versió 3.x és exclusiva per a tablets.

La última versió és la v.4.2.2 amb nom Jelly Bean i nivell d'API 17 i llançada al febrer del 2013.

Com a curiositat, cada vegada que surt un nou nom de versió es fa la seva corresponen figura  que es col·loca a l'entrada de la seu de Google (Googleplex és la seu de la companyia Google Inc, ubicada a Mountain View, Califòrnia)

En aquest taula podeu veure la relació entre versions, noms i APIS, així com un enllaç a les principals característiques de cada API. (font de la taula: http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#platform)


Versió
API
Codi versió
Característiques

9
8
7
6
5
4
3
2

Android 1.0
1

MVC a Android

Android s’utilitza el patró d’arquitectura de software anomenada MVC (Model-Vista-Controlador), que permet separar les dades d’una aplicació de la interfície de l’usuari i la lògica de l’aplicació en tres components diferents que es relacionen entre sí per tenir, al final una aplicació operativa.

Permet la reutilització de molts components i les interfícies dissenyades amb aquest sistema solen estar millor definides. Els programes en general són més adaptables als canvis i són més extensibles.

Android és codi lliure ?

Actualment la llicència d'Android és està sota les llicències Apache 2.0 i GNU GPL 2

El fet que les versions 1 i 2 d'Android fossin lliures va popularitzar el sistema. Però en la versió 3, Google va decidir no mostrar el codi. En la versió 4, en canvi el codi es va tornar a obrir, afortunadament. De fet la llicència d'Apache permet que Google pugui tornar a tancar el codi en qualsevol moment, és a dir,q que no tingui perquè compartir les millores de codi amb la comunitat. També és cert, que de moment no és la intenció de l'empresa.


Aquest punt, permet que qualsevol companyia que desenvolupi un maquinari, agafar el codi d'Android, sense cap acord previ amb la companyia i ajustar-lo perquè funcioni adequadament. Es per això que trobem dispositius amb sistema operatiu Android, sense el recolzament de Google, tant productes de primera línia com el Amazon Kindle Fire o altres dispositius de baixa qualitat com les tablets xineses.

Orígens Android

L'Android va ser iniciat dins d'una empresa, que va ser qui li va donar el nom,
Android Inc., fundada el 2003, fundada a Palo Alto, Califòrnia per Andy Rubin, Rich Miner.

El 2005 Google va comprar aquesta empresa,i va incorporar a les seves files alguns dels principals empleats, incloent a Andy Rubin, Rich Miner i Chris White. En aquest mateix any Google comença a treballar en la Dalvik VM, una màquina virtual Java optimitzada per a mòbils.

A causa del poc coneixement que es tenia en aquell moment sobre el treball de Android Inc. en un primer moment es va conjecturar que Google pensava entrar al mercats dels dispositius mòbils.

A Google, aquest equip liderat per Rubin, va desenvolupar una plataforma per dispositius mòbils basada en el nucli de Linux.

El novembre del 2007 es crea el consorci 'Open Handset Alliance, amb  l'objectiu de desenvolupar estàndards oberts per a dispositius mòbils. L'Open Handset Alliance és un consorci de diverses empreses que inclou Broadcom Corporation, Google, HTC, Intel, LG, Marvell Technology Group, Motorola, Nvidia, Qualcomm, Samsung Electronics, Sprint Nextel, T-Mobile i Texas Instruments. El mateix dia l'Open Handset Alliance va anunciar el seu primer producte, Android, una plataforma per a dispositius mòbils construïda sobre la versió 2.6 del nucli Linux.

Al novembre de 2007 es llança la primera versió de l'Android SDK.

El desembre del 2008 s'afegeixen a l'Open Handset Alliance catorze nous membres,
incloent-hi ARM Holdings, Atheros Communications, Asustek Computer Inc., Garmin Ltd., PacketVideo, Softbank, Sony Ericsson, Toshiba Corp. i Vodafone Group Plc.


El maig del 2008 es concedeixen els premis del primer Android developer challenge, que és un concurs per a aconseguir les millors aplicacions per a l'Android. Amb aquest concurs, i les edicions següents, s'aconsegueix una gran repercussió i grans aplicacions.

El setembre del 2008 s'allibera la primera versió de la plataforma, la 1.0, però
encara no hi havia cap dispositiu.

Finalment l'octubre del 2008 apareix el primer dispositiu, T-Mobile o HTC Dream, venut inicialment als Estats Units i posteriorment a la resta del món. I el nombre de dispositius no ha deixat de créixer, i ja són centenars de dispositius diferents.

En el mateix mes, s'inaugura l' Android Market (que més tard s'anomenarà Google Play, al 2012,  unificant aplicacions i continguts), per la descàrrega d'aplicacions.

El febrer del 2011 es fa oficial la primera versió orientada no a telèfons intel·ligents o smart phones sinó a ordinadors de tauleta o tablet PC, la versió 3.x amb millores en la interfície, suport de videotrucada i capacitats per a un maquinari molt més potent. A l'octubre de 2011 apareix la versió 4.x tant per mòbils com per tablets.

Actualment es parla de més de 100.000 activacions de dispositius diàriament
amb la plataforma Android, i de gairebé 200.000 desenvolupadors que ja han

creat desenes de milers d'aplicacions, i no paren de créixer.

Nom i logotip

El nom d’Android i Nexus One fa referència a la novel·la de Philip K. Dick anomenada “Somien els androides amb ovelles elèctriques?". Aquesta novel·la va ser adaptada al cinema per Ridley Scott l'any 1982 amb el nom de  Blade Runner

El llibre i  la pel · lícula se centren en un grup d'androides anomenats replicants del model Nexus-6

El logotip d’Android és el robot anomenat  "Andy",  i va ser dissenyat per Irina Blok (http://www.irinablok.com/)


El robot d'Android pot ser utilitzat, reproduït, i modificat lliurement en les comunicacions de màrqueting. El valor de color d'impressió és PMS 376C i el color hexadecimal és #A4C639.

Quan s'utilitza el robot Android o qualsevol modificació del mateix, es requereix la deguda atribució sota els termes de la llicència Reconeixement Creative Commons.

dijous, 25 de juliol del 2013

Controls Bàsics d'una aplicació Android



  • TextView: Per mostra textos a l'usuari
Per definir el textView en un Layout
<TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/nom" />

Per accedir des del codi java

TextView tx = (TextView)findViewById(R.id.textView1);

  • EditText: per introduir i editar text per part de l'usuari

Per definir-lo en un Layout
<EditText
        android:id="@+id/editText1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10">       
    </EditText>
Per accedir des del codi java

EditText edtx = (EditText)findViewById(R.id.editText1);

  • Button

Per definir-lo en un layout

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/acceptar" />

Per accedir des del codi java

   Button btn = (Button) findViewById(R.id.button1);       
             btn.setOnClickListener(new OnClickListener() {
                   
                    @Override
                    public void onClick(View arg0) {
                           // TODO Auto-generated method stub
                          
                    }
          });
  • CheckBox : S'usa per marcar o desmarcar una o més opcions

Per definir-lo en un layout

<CheckBox
        android:id="@+id/checkBox1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Cine" />
Per accedir des de java, per saber si està o no marcat

CheckBox checkBox = (CheckBox) findViewById(R.id.checkBox1);
checkBox.setOnCheckedChangeListener(new CheckBox.OnCheckedChangeListener() {
                    @Override
                    public void onCheckedChanged(CompoundButton buttonView,
                                  boolean isChecked) {
                           if (isChecked) {
                                  // El checkbox esta marcado
                           } else {
                                  // El checkbox esta desmarcado
                           }
                    }
          });

  • RadioButton: serveix per marcar una opció dins d'un grup. Cal incloure dins d'un RadioGroup
Per definir-lo en un layout

<RadioGroup
        android:id="@+id/radioGroup1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >

        <RadioButton
            android:id="@+id/radio0"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:checked="true"
            android:text="@string/smx" />

        <RadioButton
            android:id="@+id/radio1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/asix" />
    </RadioGroup>

Per accedir des de java, per saber si està o no marcat

       RadioGroup radioGroup = (RadioGroup) findViewById(R.id.radioGroup1);
       radioGroup.setOnCheckedChangeListener(new      RadioGroup.OnCheckedChangeListener() {
             @Override
             public void onCheckedChanged(RadioGroup group, int checkedId) {
             // TODO Hacer algo con la opción marcada
             // representada por el id checkedId
             RadioButton rb = (RadioButton) findViewById(checkedId);
                                  }
                           });

Amb el mètode getCheckedRadioButtonId() podem saber quina de les opcions el radioButton  han estat clicades.