The document provides an overview of how to get started developing Android applications. It discusses creating an Android project structure with Java code, XML layouts and resources. It also covers basic Android app components like activities, intents, views and lifecycle methods. The document then demonstrates how to work with lists, menus, context menus and storing data using SQLite and a database.
Neues aus dem Tindergarten: Auswertung "privater" APIs mit Apache IgniteQAware GmbH
MRMCD 2018, Darmstadt: Vortrag von Franz Wimmer (@zalintyre, Softwareingenieur bei QAware)
===
Dieser Talk wurde aufgezeichnet. Hier geht's zum Video: https://media.ccc.de/v/2018-151-neues-aus-dem-tindergarten-auswertung-privater-apis-mit-apache-ignite
===
Abstract:
Was ist eigentlich der meistverwendete Emoji auf Tinder? Und welcher der beliebteste #hashtag? Dieser Vortrag zeigt nicht nur witzige Auswertungen von "offenen" APIs mit dem In-Memory-Computing-Framework Apache Ignite, sondern wirft auch einen kritischen Blick auf das massenhafte Sammeln und "Bereitstellen" von privaten Daten.
Details:
Es gibt hunderte beliebte Apps, in denen Nutzer freiwillig private Daten teilen. "Teilen" bedeutet auch, dass andere diese Daten einsehen können. Nur eingeschränkt und häppchenweise, versteht sich. Ein Beispiel für eine solche App ist Tinder, mit der Nutzer Fotos, Profile und Interessen der Welt preisgeben.
Doch die Apps müssen mit einem Server kommunizieren - und dieser Server hat dazu meist eine API, die man auch mit alternativen Clients, z.B. von GitHub, ansprechen kann.
Baut man für diesen Client einen Crawler, kann man schnell die verfügbaren Profile herunterladen. Und füttert man anschließend die heruntergeladenen Daten in eine Auswertung, lassen sich Statistiken und andere Informationen gewinnen.
Auf der anderen Seite bieten die APIs die Gelegenheit für massive Verletzungen der Privatsphäre und von Grundrechten.
Dieser Talk behandelt mehrere Aspekte von privaten, aber offenen APIs im Internet:
- Welche lustigen und interessanten Dinge kann man mit so einer API tun?
- Welche nicht lustigen und gefährlichen Dinge könnte man anstellen?
Außerdem geht dieser Talk auf die technische Seite der API-Auswertung ein:
- Das reverse Engineering einer API
- Die Authentifizierung an der API
- Das Sammeln, Speichern und Auswerten der Daten mit dem In-Memory-Computing-Framework Apache Ignite
Neues aus dem Tindergarten: Auswertung "privater" APIs mit Apache IgniteQAware GmbH
MRMCD 2018, Darmstadt: Vortrag von Franz Wimmer (@zalintyre, Softwareingenieur bei QAware)
===
Dieser Talk wurde aufgezeichnet. Hier geht's zum Video: https://media.ccc.de/v/2018-151-neues-aus-dem-tindergarten-auswertung-privater-apis-mit-apache-ignite
===
Abstract:
Was ist eigentlich der meistverwendete Emoji auf Tinder? Und welcher der beliebteste #hashtag? Dieser Vortrag zeigt nicht nur witzige Auswertungen von "offenen" APIs mit dem In-Memory-Computing-Framework Apache Ignite, sondern wirft auch einen kritischen Blick auf das massenhafte Sammeln und "Bereitstellen" von privaten Daten.
Details:
Es gibt hunderte beliebte Apps, in denen Nutzer freiwillig private Daten teilen. "Teilen" bedeutet auch, dass andere diese Daten einsehen können. Nur eingeschränkt und häppchenweise, versteht sich. Ein Beispiel für eine solche App ist Tinder, mit der Nutzer Fotos, Profile und Interessen der Welt preisgeben.
Doch die Apps müssen mit einem Server kommunizieren - und dieser Server hat dazu meist eine API, die man auch mit alternativen Clients, z.B. von GitHub, ansprechen kann.
Baut man für diesen Client einen Crawler, kann man schnell die verfügbaren Profile herunterladen. Und füttert man anschließend die heruntergeladenen Daten in eine Auswertung, lassen sich Statistiken und andere Informationen gewinnen.
Auf der anderen Seite bieten die APIs die Gelegenheit für massive Verletzungen der Privatsphäre und von Grundrechten.
Dieser Talk behandelt mehrere Aspekte von privaten, aber offenen APIs im Internet:
- Welche lustigen und interessanten Dinge kann man mit so einer API tun?
- Welche nicht lustigen und gefährlichen Dinge könnte man anstellen?
Außerdem geht dieser Talk auf die technische Seite der API-Auswertung ein:
- Das reverse Engineering einer API
- Die Authentifizierung an der API
- Das Sammeln, Speichern und Auswerten der Daten mit dem In-Memory-Computing-Framework Apache Ignite
A brief wrap up and introduction to SwiftUI and Combine brought by Apple in WWDC 2019, as well as utilizing both to propose a View-Model-ViewModel (MVVM) structure.
In this session, I will give an overview of Android Wear and how to integrate it in your product strategy. We will look at the underlying design principles and discuss a number of use cases for apps that connect to wearable devices. After that, we will take a look at some code examples and learn how to use the Android Wear SDK.
A brief wrap up and introduction to SwiftUI and Combine brought by Apple in WWDC 2019, as well as utilizing both to propose a View-Model-ViewModel (MVVM) structure.
In this session, I will give an overview of Android Wear and how to integrate it in your product strategy. We will look at the underlying design principles and discuss a number of use cases for apps that connect to wearable devices. After that, we will take a look at some code examples and learn how to use the Android Wear SDK.
Apresentação com dicas para quem esta tendo o 1 contato com o mundo Android. Onde estudar e o caminho a percorrer desde o design, passando pelo desenvolvimento ate a distribuição e promoção.
Saindo da zona de conforto… resolvi aprender androidDaniel Baccin
Palestra sobre Android realizada na Secomp - UECE. A ideia dessa palestra é motivar estudantes, profissionais e “devs”, em geral, a conhecer um pouco mais sobre o desenvolvimento de aplicativos na plataforma Android. Além disso, será discutido sobre os desafios enfrentados durante o aprendizado, oportunidades existentes no mercado, perspectivas futuras sobre a plataforma e experiências já adquiridas na área. Também, será abordando conceitos básicos e intermediários através de exemplos práticos, ferramentas utilizadas e dicas de boas práticas para o desenvolvimento.
Design Patterns for Tablets and SmartphonesMichael Galpin
This is a talk I gave at AnDevCon. It talks about ways to take advantage of features introduced in Android 3.0 to create more modular and better looking apps.
Presented at Big Android BBQ 2015
Hurst Convention Center, Hurst Texas
This talk will cover Fragments in detail by comparing and contrasting them to something we know well, Activities. We will also cover examples and use cases. Fragments: Why, How, and What For? is targeted toward developers who may not have had a lot of experience using Fragments and those who want to understand them better. Why did Google introduce Fragments? Aren’t Activities enough? How do Fragments work? What For? Example and use cases such as Fragment reuse, single pane vs multi-pane, ViewPager, NavigationDrawer and DialogFragment.
SE2016 Android Mikle Anokhin "Speed up application development with data bind...Inhacking
Event: #SE2016
Stage: Android
Data: 4 of September 2016
Speaker: Mikle Anokhin
Topic: Speed up application development with data binding
INHACKING site: https://inhacking.com
SE2016 site: http://se2016.inhacking.com/
Hands-On Java web passando por Servlets, JSP, JSTL, JDBC, Hibernate, DAO, MV...Mario Jorge Pereira
Material sobre Java WEB super mão na massa. Vou construindo e alterando uma aplicação durante a apresentação os assuntos cobertos são:
Java Servlet
Java Server Pages - JSP
JavaServer Pages Standard Tag Library - JSTL
Expression Language - EL
Java Database Connectivity - JDBC
Data Access Object - DAO
Model View Controller - MVC
Hibernate
...
Apresento também formas de fugir do sqlinjection
Em Java, usamos a classe Thread do pacote java.lang para criarmos linhas de execução paralelas. A classe Thread recebe como argumento um objeto com o código que desejamos rodar.
O RMI (Remote Method Invocation) é uma interface de programação que permite a execução de chamadas remotas no estilo RPC em aplicações desenvolvidas em Java. É uma das abordagens da plataforma Java para prover as funcionalidades de uma plataforma de objetos distribuídos. Esse sistema de objetos distribuídos faz parte do núcleo básico de Java desde a versão JDK 1.1, com sua API sendo especificada através do pacote java.rmi e seus subpacotes
Java e Cloud Computing
A computação nas nuvens é uma tendência do mercado, aprenda como desenvolver sobre ela utilizando plataforma java. Esta oficina traz uma visão geral sobre conceitos e arquitetura da cloud computing. Diferenças entre plataformas como Amazon Web Services (AWS), Google Application Engine (GAE). Durante a oficina estaremos desenvolvendo uma aplicação java e disponibilizando a mesma na GAE. Alem disso vamos explorar alguns recursos específicos do serviço do Google, como o repositório de dados NoSQL.
Programação do mini-curso
08:00
- Introdução a Computação em nuvem
- Fundamentos em computação em nuvem
- Níveis de serviços em nuvem
- Google App Engine
- Ambiente de execução da App Engine
- Prática 1
9:30 INTERVALO
10:00
- Ambiente de Desenvolvimento da App Engine
- Ambiente de Produção da App Engine
- Colocando uma aplicação em produção
- Prática 2
ALMOÇO
13:30
- NoSQL
- Big Table
- Acesso a dados
- Prática 3
15:30 INTERVALO
16:00
- API e Serviços da AppEngine
- Pratica 4
- Outros Recursos da App Engine e Dicas
34. /* AUTO-GENERATED FILE. DO NOT MODIFY.*/
public final class R {
public static final class attr {
}
public static final class dimen {
public static final int activity_horizontal_margin=0x7f040000;
public static final int activity_vertical_margin=0x7f040001;
}
public static final class layout {
public static final int activity_main=0x7f030000;
}
...
}
R.java
77. public class TarefaDAO extends SQLiteOpenHelper {private static final String DB_NAME = "tarefa.db";
private static final int DB_VERSION = 1;
public TarefaDAO(Context context) {super(context, DB_NAME, null, DB_VERSION);}
@Override
public void onCreate(SQLiteDatabase db) {
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVer, int newVer) {
}
}
TarefaDAO.java
78. ...
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE TAREFAS (id INTEGER PRIMARY KEY,
titulo TEXT UNIQUE NOT NULL);");}
public void insere(Tarefa tarefa) {ContentValues valores = new ContentValues();
valores.put("titulo", tarefa.getTitulo());
getWritableDatabase().insert("TAREFAS", null, valores);
}
...
TarefaDAO.java
79. ...
public List<Tarefa> listar() {List<Tarefa> tarefas = new ArrayList<Tarefa>();
Cursor cursor = getReadableDatabase().query("TAREFAS", null, null,
null, null, null, null);while (cursor.moveToNext()) {Tarefa tarefa = new Tarefa();tarefa.setId(cursor.getLong(cursor.getColumnIndex("id")));
String titulo = cursor.getString(cursor.getColumnIndex(“titulo"));
tarefa.setTitulo(titulo);tarefas.add(tarefa);}
return tarefas;
}
...
TarefaDAO.java
80. ...
private ListView lista;...
@Override
protected void onCreate(Bundle savedInstanceState) {
lista = (ListView) findViewById(R.id.lista);
TarefaDAO dao = new TarefaDAO(this);List<Tarefa> dados = dao.listar();int layout = android.R.layout.simple_list_item_1;
ArrayAdapter<Tarefa> adapter =new ArrayAdapter<Tarefa>(this,layout, dados);
lista.setAdapter(adapter);
}
...
ListActivity.java
81. ...
private ListView lista;...
@Override
protected void onResume() {super.onResume()
lista = (ListView) findViewById(R.id.lista);
TarefaDAO dao = new TarefaDAO(this);List<Tarefa> dados = dao.listar();int layout = android.R.layout.simple_list_item_1;
ArrayAdapter<Tarefa> adapter =new ArrayAdapter<Tarefa>(this,layout, dados);
lista.setAdapter(adapter);}
...
ListActivity.java
90. ...
@Override
public boolean onContextItemSelected(MenuItem item) {
switch (item.getItemId()) {case R.id.editar:
Toast.makeText(this,"EDITAR",Toast.LENGTH_SHORT).show();
return true;
case R.id.excluir:
TarefaDAO dao = new TarefaDAO(this);
dao.deletar(tarefaSelecionada);this.carregaLista();return true;
default:
return super.onContextItemSelected(item);
}
}
...
ListActivity.java
91. Esta obra está licenciada sob a licença Creative Commons
Atribuição-CompartilhaIgual 3.0 Não Adaptada. Para ver uma cópia
desta licença, visite http://creativecommons.org/licenses/by-sa/3.0/.