Saindo da zona de conforto… resolvi aprender android

100
by Daniel Baccin Saindo da zona de conforto… resolvi aprender Android !

Transcript of Saindo da zona de conforto… resolvi aprender android

Page 1: Saindo da zona de conforto… resolvi aprender android

by Daniel Baccin

Saindo da zona de conforto… resolvi aprender Android !

Page 2: Saindo da zona de conforto… resolvi aprender android

Mas por que Android ???

Page 3: Saindo da zona de conforto… resolvi aprender android
Page 4: Saindo da zona de conforto… resolvi aprender android
Page 5: Saindo da zona de conforto… resolvi aprender android
Page 6: Saindo da zona de conforto… resolvi aprender android
Page 7: Saindo da zona de conforto… resolvi aprender android
Page 8: Saindo da zona de conforto… resolvi aprender android
Page 9: Saindo da zona de conforto… resolvi aprender android
Page 10: Saindo da zona de conforto… resolvi aprender android
Page 11: Saindo da zona de conforto… resolvi aprender android
Page 12: Saindo da zona de conforto… resolvi aprender android
Page 13: Saindo da zona de conforto… resolvi aprender android
Page 14: Saindo da zona de conforto… resolvi aprender android
Page 15: Saindo da zona de conforto… resolvi aprender android
Page 16: Saindo da zona de conforto… resolvi aprender android
Page 17: Saindo da zona de conforto… resolvi aprender android
Page 18: Saindo da zona de conforto… resolvi aprender android

Documentação excelente

Page 19: Saindo da zona de conforto… resolvi aprender android
Page 20: Saindo da zona de conforto… resolvi aprender android
Page 21: Saindo da zona de conforto… resolvi aprender android

Crescimento no número de apps

Page 22: Saindo da zona de conforto… resolvi aprender android

Fonte: http://www.statista.com/statistics/266210/number-of-available-applications-in-the-google-play-store/

Page 23: Saindo da zona de conforto… resolvi aprender android

Versões

Page 24: Saindo da zona de conforto… resolvi aprender android
Page 25: Saindo da zona de conforto… resolvi aprender android
Page 26: Saindo da zona de conforto… resolvi aprender android
Page 27: Saindo da zona de conforto… resolvi aprender android

Material Design

Page 28: Saindo da zona de conforto… resolvi aprender android
Page 29: Saindo da zona de conforto… resolvi aprender android
Page 30: Saindo da zona de conforto… resolvi aprender android
Page 31: Saindo da zona de conforto… resolvi aprender android

Resolvi aprender android !

Page 32: Saindo da zona de conforto… resolvi aprender android
Page 33: Saindo da zona de conforto… resolvi aprender android

Rápido resultado

Page 34: Saindo da zona de conforto… resolvi aprender android
Page 35: Saindo da zona de conforto… resolvi aprender android

336 !!!

Page 36: Saindo da zona de conforto… resolvi aprender android
Page 37: Saindo da zona de conforto… resolvi aprender android
Page 38: Saindo da zona de conforto… resolvi aprender android

Para tudo eu imagino um app

Page 39: Saindo da zona de conforto… resolvi aprender android

Primeiros desafios

Page 40: Saindo da zona de conforto… resolvi aprender android
Page 41: Saindo da zona de conforto… resolvi aprender android
Page 42: Saindo da zona de conforto… resolvi aprender android

Estrutura do Projeto

Classes JAVA

Page 43: Saindo da zona de conforto… resolvi aprender android

Estrutura do Projeto

Recursos

Page 44: Saindo da zona de conforto… resolvi aprender android

Estrutura do Projeto

AndroidManifest

Page 45: Saindo da zona de conforto… resolvi aprender android

Estrutura do Projeto

Gradle

Page 46: Saindo da zona de conforto… resolvi aprender android

Conceitos básicos

Activity Intent

AndroidManifest

XML de Layout

Page 47: Saindo da zona de conforto… resolvi aprender android

Conceitos básicos

Activity Intent

AndroidManifest

XML de Layout

Page 48: Saindo da zona de conforto… resolvi aprender android

Comportamento

public class FormularioActivity extends Activity{ @Override protected void onCreate(Bundle bundle) { super.onCreate(bundle); setContentView(R.layout.formulario);

// fazer coisas legais aqui }}

Activity

Page 49: Saindo da zona de conforto… resolvi aprender android

Comportamento

public class FormularioActivity extends Activity{ @Override protected void onCreate(Bundle bundle) { super.onCreate(bundle); setContentView(R.layout.formulario);

// fazer coisas legais aqui }}

Activity

Page 50: Saindo da zona de conforto… resolvi aprender android

Aparência

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal">

<ImageView android:id="@+id/icon_participante" android:layout_width="52px" android:layout_height="52px" android:src="@drawable/ic_action_accept"/> <TextView android:id="@+id/lista_aluno_nome" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="60px" android:textColor="@color/Black"/>

</LinearLayout>

XML de Layout

Page 51: Saindo da zona de conforto… resolvi aprender android

Aparência

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal">

<ImageView android:id="@+id/icon_participante" android:layout_width="52px" android:layout_height="52px" android:src="@drawable/ic_action_accept"/> <TextView android:id="@+id/lista_aluno_nome" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="60px" android:textColor="@color/Black"/>

</LinearLayout>

XML de Layout

Page 52: Saindo da zona de conforto… resolvi aprender android

Aparência

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal">

<ImageView android:id="@+id/icon_participante" android:layout_width="52px" android:layout_height="52px" android:src="@drawable/ic_action_accept"/> <TextView android:id="@+id/lista_aluno_nome" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="60px" android:textColor="@color/Black"/>

</LinearLayout>

XML de Layout

Page 53: Saindo da zona de conforto… resolvi aprender android

@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);

listaDeParticipantes = (ListView) findViewById(R.id.listParticipantes); listaDeParticipantes.setOnItemClickListener(this);

FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fabAddParticipante); fab.attachToListView(listaDeParticipantes);

actionBar = getSupportActionBar(); if(actionBar!=null){ actionBar.setBackgroundDrawable(new ColorDrawable(0xFFFF4500)); actionBar.setTitle(R.string.lista_participantes); } }

Activity

Page 54: Saindo da zona de conforto… resolvi aprender android

@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);

listaDeParticipantes = (ListView) findViewById(R.id.listParticipantes); listaDeParticipantes.setOnItemClickListener(this);

FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fabAddParticipante); fab.attachToListView(listaDeParticipantes);

actionBar = getSupportActionBar(); if(actionBar!=null){ actionBar.setBackgroundDrawable(new ColorDrawable(0xFFFF4500)); actionBar.setTitle(R.string.lista_participantes); } }

Activity

Page 55: Saindo da zona de conforto… resolvi aprender android

@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);

listaDeParticipantes = (ListView) findViewById(R.id.listParticipantes); listaDeParticipantes.setOnItemClickListener(this);

FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fabAddParticipante); fab.attachToListView(listaDeParticipantes);

actionBar = getSupportActionBar(); if(actionBar!=null){ actionBar.setBackgroundDrawable(new ColorDrawable(0xFFFF4500)); actionBar.setTitle(R.string.lista_participantes); } }

Activity

Page 56: Saindo da zona de conforto… resolvi aprender android

@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);

listaDeParticipantes = (ListView) findViewById(R.id.listParticipantes); listaDeParticipantes.setOnItemClickListener(this);

FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fabAddParticipante); fab.attachToListView(listaDeParticipantes);

actionBar = getSupportActionBar(); if(actionBar!=null){ actionBar.setBackgroundDrawable(new ColorDrawable(0xFFFF4500)); actionBar.setTitle(R.string.lista_participantes); } }

Activity

Page 57: Saindo da zona de conforto… resolvi aprender android

Activity

Page 58: Saindo da zona de conforto… resolvi aprender android

Activity

Page 59: Saindo da zona de conforto… resolvi aprender android

Activity

Page 60: Saindo da zona de conforto… resolvi aprender android

Activity

Page 61: Saindo da zona de conforto… resolvi aprender android

Activity

Page 62: Saindo da zona de conforto… resolvi aprender android

Activity

Page 63: Saindo da zona de conforto… resolvi aprender android
Page 64: Saindo da zona de conforto… resolvi aprender android
Page 65: Saindo da zona de conforto… resolvi aprender android
Page 66: Saindo da zona de conforto… resolvi aprender android

Conceitos básicos

Activity Intent

AndroidManifest

XML de Layout

Page 67: Saindo da zona de conforto… resolvi aprender android

public void abrirFormParticipante(View view){ Intent irParaFormulario = new Intent(this, FormularioParticipanteActivity.class); startActivity(irParaFormulario);}

Intent

Page 68: Saindo da zona de conforto… resolvi aprender android

Conceitos básicos

Activity Intent

AndroidManifest

XML de Layout

Page 69: Saindo da zona de conforto… resolvi aprender android

<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="br.com.kenuiapps.palestra" >

<application android:allowBackup="true" android:icon="@drawable/java_ce" android:label="@string/app_name" android:theme="@style/AppTheme" >

<activity android:name=".activity.ListaParticipantesActivity" android:theme="@style/Theme.AppCompat.Light.DarkActionBar"> <intent-filter> <action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>

<activity android:name=".activity.FormularioParticipanteActivity" android:theme="@style/Theme.AppCompat.Light.DarkActionBar"/>

</application></manifest>

AndroidManifest

Page 70: Saindo da zona de conforto… resolvi aprender android

<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="br.com.kenuiapps.palestra" >

<application android:allowBackup="true" android:icon="@drawable/java_ce" android:label="@string/app_name" android:theme="@style/AppTheme" >

<activity android:name=".activity.ListaParticipantesActivity" android:theme="@style/Theme.AppCompat.Light.DarkActionBar"> <intent-filter> <action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>

<activity android:name=".activity.FormularioParticipanteActivity" android:theme="@style/Theme.AppCompat.Light.DarkActionBar"/>

</application></manifest>

AndroidManifest

Page 71: Saindo da zona de conforto… resolvi aprender android

Mais conceitos...

Adapter SQLite DAO Test

Page 72: Saindo da zona de conforto… resolvi aprender android

Mais conceitos...

Adapter SQLite DAO Test

Page 73: Saindo da zona de conforto… resolvi aprender android

@Overrideprotected void onResume() { super.onResume(); List<Participante> participantes = obtemListaDoBanco();

ListaParticipantesAdapter adapter = new ListaParticipantesAdapter(this, participantes);

listViewDeParticipantes.setAdapter(adapter);}

Adapter

Page 74: Saindo da zona de conforto… resolvi aprender android

public class ListaParticipantesAdapter extends BaseAdapter { private Activity activity; private List<Participante> participantes;

public ListaParticipantesAdapter(Activity activity, List<Participante> participantes) { this.activity = activity; this.participantes = participantes; } ...}

Adapter

Page 75: Saindo da zona de conforto… resolvi aprender android

public class ListaParticipantesAdapter extends BaseAdapter { private Activity activity; private List<Participante> participantes;

public ListaParticipantesAdapter(Activity activity, List<Participante> participantes) { this.activity = activity; this.participantes = participantes; } ...}

Adapter

Page 76: Saindo da zona de conforto… resolvi aprender android

@Override

@Override

public View getView(int position, View convertView, ViewGroup parent) {

View linha = activity.getLayoutInflater().inflate(R.layout.lista_participantes, null); Participante participante = participantes.get(position);

TextView textViewNome = (TextView) linha.findViewById(R.id.lista_nome); textViewNome.setText(participante.getNome());

...}

Adapter

Page 77: Saindo da zona de conforto… resolvi aprender android

@Override

@Override

public View getView(int position, View convertView, ViewGroup parent) {

View linha = activity.getLayoutInflater().inflate(R.layout.lista_participantes, null); Participante participante = participantes.get(position);

TextView textViewNome = (TextView) linha.findViewById(R.id.lista_nome); textViewNome.setText(participante.getNome());

...}

Adapter

textViewNome

Page 78: Saindo da zona de conforto… resolvi aprender android

Mais conceitos...

Adapter SQLite DAO Test

Page 79: Saindo da zona de conforto… resolvi aprender android

public class DataBaseHelper extends SQLiteOpenHelper {

public static final String BANCO_DADOS = "Palestra"; private static int VERSAO = 1;

public DataBaseHelper(Context context) { super(context, BANCO_DADOS, null, VERSAO); }

SQLite

Page 80: Saindo da zona de conforto… resolvi aprender android

@Override public void onCreate(SQLiteDatabase db) { db.execSQL("CREATE TABLE participante"+ " ( _id INTEGER PRIMARY KEY," + " nome TEXT," + " telefone TEXT," + " email TEXT," + " presente INTEGER, " + " tamanhoBlusa INTEGER" + " );" ); }

SQLite

Page 81: Saindo da zona de conforto… resolvi aprender android

@Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

String dll = "DROP TABLE IF EXISTS participante"; db.execSQL(dll); this.onCreate(db); }

SQLite

Page 82: Saindo da zona de conforto… resolvi aprender android

Mais conceitos...

Adapter SQLite DAO Test

Page 83: Saindo da zona de conforto… resolvi aprender android

public class ParticipanteDAO{

private DataBaseHelper helper; private SQLiteDatabase db;

public PalestraDAO(Context context){ helper = new DataBaseHelper(context); }

public SQLiteDatabase getDb() { if (db == null) { db = helper.getWritableDatabase(); } return db; }

DAO

Page 84: Saindo da zona de conforto… resolvi aprender android

public class ParticipanteDAO{

private DataBaseHelper helper; private SQLiteDatabase db;

public PalestraDAO(Context context){ helper = new DataBaseHelper(context); }

public SQLiteDatabase getDb() { if (db == null) { db = helper.getWritableDatabase(); } return db; }

DAO

Page 85: Saindo da zona de conforto… resolvi aprender android

public class ParticipanteDAO{...

public long salva(Participante participante) { ContentValues values = participante.getContentValues(); return getDb().insert(DataBaseHelper.Participante.TABELA, null, values); }....

DAO

Page 86: Saindo da zona de conforto… resolvi aprender android

public ContentValues getContentValues() {ContentValues values = new ContentValues();

values.put(DataBaseHelper.Participante.ID, getId());values.put(DataBaseHelper.Participante.NOME, getNome());...return values;

}

DAO

Page 87: Saindo da zona de conforto… resolvi aprender android

Mais conceitos...

Adapter SQLite DAO Test

Page 88: Saindo da zona de conforto… resolvi aprender android

public class ParticipanteDAOTest extends AndroidTestCase {

public void testInsertDb() { ParticipanteDAO dao = new ParticipanteDAO(mContext); long qtdDeLinhasInseridas = dao.salva(dadoUmParticipante()); assertTrue(qtdDeLinhasInseridas>0); }}

Test

Page 89: Saindo da zona de conforto… resolvi aprender android

public class ParticipanteDAOTest extends AndroidTestCase {

public void testInsertDb() { ParticipanteDAO dao = new ParticipanteDAO(mContext); long qtdDeLinhasInseridas = dao.salva(dadoUmParticipante()); assertTrue(qtdDeLinhasInseridas>0); }}

Test

Page 90: Saindo da zona de conforto… resolvi aprender android

Novidades Google I/O 2015

Page 91: Saindo da zona de conforto… resolvi aprender android

Internet das coisas

Page 92: Saindo da zona de conforto… resolvi aprender android
Page 93: Saindo da zona de conforto… resolvi aprender android

Tecido sensivel ao toque

Page 94: Saindo da zona de conforto… resolvi aprender android

Android Pay

Page 95: Saindo da zona de conforto… resolvi aprender android

Android Development Tools

Page 96: Saindo da zona de conforto… resolvi aprender android

Android Development Tools

Page 97: Saindo da zona de conforto… resolvi aprender android

Futuro???

Page 98: Saindo da zona de conforto… resolvi aprender android

Onde buscar o conhecimento?

●Getting Started●Google+ & Udacity●Alura●Comunidades no Google+●Grupos Google●Java CE●Stack overflow

Page 99: Saindo da zona de conforto… resolvi aprender android

Referências

● http://www.androidcentral.com/android-50-lollipop-now-33-percent-devices● http://www.android.com/play/● http://developer.android.com/about/dashboards/index.html● http://www.google.com/design/spec/material-design/introduction.html● https://developer.android.com/guide/index.html● http://gizmodo.uol.com.br/google-brillo-weave/● http://gizmodo.uol.com.br/android-pay-oficial/● http://gizmodo.uol.com.br/android-m-oficial/● http://olhardigital.uol.com.br/noticia/google-lanca-tecnologia-de-tecido-sensivel-ao-toque/48855● http://info.abril.com.br/noticias/ti/2015/05/google-e-udacity-lancam-serie-completa-de-cursos-sobre-desenvolvimento-em-android.shtml● https://dariomungoi.wordpress.com● http://tudoandroid.net.br/googles-material-design-wins-award-best-contribution-ux/● http://robovm.com/google-io-summary-whats-new-in-android-development-tools/● http://www.androidcentral.com/

● http://careers.stackoverflow.com/jobs/tag/android

Page 100: Saindo da zona de conforto… resolvi aprender android

Go Developers!!!

[email protected]://bitbucket.org/danielbaccinhttps://github.com/danielbaccin/Palestrahttp://www.slideshare.net/baccin