View
4.291
Download
0
Embed Size (px)
DESCRIPTION
Apresentação feita pelo Analista de Sistemas Igor Novaes após sua participação no MOTODEV 2011.
Citation preview
Android 3.0: Introdução
ao uso de Fragmentos e
dicas de LayoutPor Igor Novais
17/06/2011
Sessão Técnica
Índice
3
• Mercado Android
• Dispositivos com Android 3.0
• Introdução a Fragmentos
• Atualizando e Desenvolvendo um App
para Tablet
• Layout Android 3.0 e recursos
• O que rolou no MOTODEV 2011?
• 2011 é o ano dos Tablets!
Mercado Android
4
• Cerca de 400 mil tablets serão vendidos esse ano no Brasil, diz IDC (Tudo
Celular)
• Motorola Xoom, o primeiro tablet com Android Honeycomb (Tech Tudo)
• Panasonic anuncia o tablet Toughbook, para usuários corporativos
(TechTudo)
• Veja qual o plano de internet 3G é o mais adequado para seu tablet (G1)
• Conheça alguns aplicativos que não podem faltar no seu tablet (G1)
• Dell vai lançar novo tablet com Android na China (Extra)
• Android aumentou a liderança de mercado de smartphones com uma cota de
35% (Canalys – especializada em serviços de assessoria contínua (04/05/2011)
Mercado Android
5
Nielsen
(31/05/2011)
• Nos estados unidos 1 em cada 2 smartphones vendidos é Android.
• Aumento do poder de consumo dos brasileiros
• Pesquisa da ChangeWare Resarch Nov 2010 – Satisfação por marcas.
• Softwares voltado para o público local
Mercado Android
6
Dispositivos Com Android 3.0
7
Motorola Xoom Samsung Tab 10.1
Dispositivos Com Android 3.0
8
Acer 10.1 Olipad 110 (Olivetti) 3.1
Dispositivos Com Android 3.0
9
DreamBook ePad P10+ (Pionner)
Panasonic Toughbook *
Samsung Tab 8.9
Google TV
Como desenvolver layouts que sejam facilmente
portados de Smartphone para Tablet?
Como desenvolver facilmente
subcomponente?
Como desenvolver layouts separados e
depois juntar rapidamente?
Fragments
• Conceito:
“Um fragmento representa um comportamento ou uma parte da
interface de usuário em uma atividade.” - Android Developer
Combinar múltiplos fragmentos
Atividade dentro de Atividade?
Próprio ciclo de vida, próprios eventos de entrada
Fragments
14
• Design mais dinâmico e flexível em telas largas
Fragments
15
Fonte: Android Developer
Ciclo de Vida do Fragment
16
onAttach () - Chamado quando o fragmento tem sido associado com a
atividade.
onCreateView () - Chamado para criar a hierarquia de visão associada com
o fragmento.
onActivityCreated () - Chamado quando o método da atividade onCreate ()
retornou.
onDestroyView () - Chamado quando a hierarquia visão associada com o
fragmento está sendo removido.
onDetach () - Chamado quando o fragmento está sendo dissociadas da
atividade.
Fragments
17
• Smartphone X Tablet
• Retrato X Paisagem
• Use qualificador de configuração (drawable e layout)
– xhdpi, hdpi, mdpi, ldpi
– xlarge, large, normal, small
– land, port
Fragments
18
Fragments
19
Android 3.0 SDK
Fragments
20
Pacote de Compatibilidade do Android
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent">
<fragment android:name=“irt.google.TestFragment"
android:id="@+id/test"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="match_parent" />
<fragment android:name=“irt.google.Test2Fragment"
android:id="@+id/test2"
android:layout_weight="2"
android:layout_width="0dp"
android:layout_height="match_parent" />
</LinearLayout>
Fragments
21
Fragments
22
package irt.google;
public class TestFragment extends Fragment{
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
Log.i("Fragment", "onAttach");
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.i("Fragment", "onCreate");
}
@Override
public void onDestroy() {
super.onDestroy();
Log.i("Fragment", "onDestroy");
}
}
• Inflate em View Group
public static class ExampleFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.example_fragment, container, false);
}
}
Fragments
23
• Declare a versão mínima do sistema
<manifest ... >
<uses-sdk android:minSdkVersion="11" />
<application ... >
...
<application>
</manifest>
• Use a Action Bar
Atualizando e Desenvolvendo um App para Tablet
24
• Use a nova API de animações para transições
• Habilite a aceleração de hardware
– android:hardwareAccelerated="true“
• Melhore sua aplicação com widgets
– ListView
– GridView
– StackView
• Outras APIs
– Drag And Drop
– Nova API de Bluetooth
Atualizando e Desenvolvendo um App para Tablet
25
<manifest ... >
...
<supports-screens android:smallScreens="false"
android:normalScreens="false"
android:largeScreens="false"
android:xlargeScreens="true" />
<application ... >
...
<application>
</manifest>
• Uso do recurso de telefone é variável de aparelho
<uses-feature android:name="android.hardware.telephony"
android:required="false" />
PackageManager pm = getPackageManager();
boolean hasTelephony =
pm.hasSystemFeature(PackageManager.FEATURE_TELEPHONY);
Atualizando e Desenvolvendo um App para Tablet
26
Layout Android 3.0
“Nós estamos em um lugar totalmente novo. Leve as
coisas certas a bordo.” - Suzanne Alexandra
Layout
28
• Barra de Sistema
Layout
29
• Efeito Oceano
Layout
30
Imagem de
Suzanne
Alexandra
• Use Fragmentos
• Ícone pode ser clicado
• Use melhor o espaço em tela (Otimize a experiência)
• Novas View android.widget.PopupMenu
• Textos mostrados acima de 18sp.
Layout
31
• Imagens de Tamanho compatível com o espaço que será usado na tela.
– Dimensionamento automático
• 324 KB de tamanho
• 32 MB de memória
– Conjuntos de imagens
• 728 KB de tamanho
• 23 MB de memória
• options.inSampleSize = 4
• Sensibilidade ao toque (imagens e ícones acessíveis)
Layout
32
• Impacte com design
• Use os novos temas holográficos do Android 3.0
– @android:style/Theme.Holo.Light
– @android:style/Theme.Holo
• Hardware Accelerated=“true”
• Use Drag and Drop
Layout
33
• Notificação Elaborada
Notification.Builder builder = new Notification.Builder( this );
Como AlertDialog.Builder
Você pode desenvolver o layout da notificação
• Uso de Open GL ES 2.0
• android.Animation
Layout
34
• Estratégia de compatibilidade de código
private static boolean isHoneycomb =
android.os.Build.VERSION.SDK_INT > 10;
if(!isHoneycomb)
// iniciar intent de activity
Else
// iniciar outro
Layout
35
• Media Support – foi desenvolvido o Media/Picture Transport Protocol
(MTP/PTP) que auxilia na transferência dos arquivos de mídia digital.
• JSON utilities (JsonReader e JsonWrite)
• Suporte a Dual Camera (2.3)
• android.hardware.touchscreen.multitouch.jazzhands – 10 toques (2.3)
Layout
36
• Api RenderScript
• Exemplos de empresas que portaram aplicativos de Smartphone para
Tablet.
• Uso de HTML5 para dispositivos móveis
• Uso do Adobe Air
• Chamadas de idéias e aplicativos para o Tablet Xoom e Motorola Atrix
O que roulou mais no MOTODEV 2011?
37
• USB API
• MTP/PTP API (Media Transfer Protocol)
– Auxilia às aplicações no recebimento de notificações (Anexado e
removido, gerencia de arquivos e armazenamento nesses dispositivos)
– android.mtp
• MtpStorageInfo
• MtpDeviceInfo
• MtpObjectInfo
• MtpConstants
• RTP API (Real-time Transport Protocol) android.net.rtp (Audio somente)
– Gerencia por demanda
– Interatividade de dados por streaming
Android 3.1
38
• Design para Tablet - http://www.slideshare.net/motodev/desenvolvimento-de-
aplicativos-para-o-tablet-motorola-xoom
• Fragmentos - http://www.slideshare.net/motodev/introduo-a-fragmentos
• Renderscript - http://www.slideshare.net/motodev/grficos-cada-vez-mais-
rpidos-utilizao-de-ndk-e-renderscript
• Dicas de UI - http://www.slideshare.net/motodev/principais-dicas-para-uis-do-
android
• Teste - http://www.slideshare.net/motodev/como-integrar-qualidade-aos-seus-
aplicativos-atravs-de-testes
• WebTop e HTML5 - http://www.slideshare.net/motodev/tirando-vantagem-do-
webtop-como-o-html5-aprimora-a-experincia-do-usurio-de-dispositivos-mveis
Links Apresentações Motodev
39
• http://www.tudocelular.com/Economia-e-Mercado/noticias/n24360/400-mil-
tablets-brasil.html
• http://developer.android.com/guide/topics/fundamentals/fragments.html
• http://developer.android.com/guide/topics/ui/actionbar.html
• http://www.samsung.com/global/microsite/galaxytab/10.1/images.html
• http://www.techtudo.com.br/lancamentos/noticia/2011/06/olipad-110-o-tablet-
honeycomb-da-olivetti.html
• http://www.techtudo.com.br/lancamentos/noticia/2011/06/pioneer-anuncia-
tablet-dreambook-epad-p10-com-android-30.html
• http://www.androidtablets.net/
Referências
40
• http://www.canalys.com/pr/2011/r2011051.html
• http://extra.globo.com/noticias/celular-e-tecnologia/dell-vai-lancar-novo-tablet-
com-android-na-china-2011363.html
• http://g1.globo.com/tecnologia/noticia/2011/06/conheca-alguns-aplicativos-
que-nao-podem-faltar-no-seu-tablet.html
• http://g1.globo.com/tecnologia/noticia/2011/06/veja-qual-o-plano-de-internet-
3g-e-o-mais-adequado-para-seu-tablet.html
• http://www.techtudo.com.br/lancamentos/noticia/2011/06/panasonic-anuncia-
o-tablet-toughbook-para-usuarios-corporativos.html
• http://blog.nielsen.com/nielsenwire/consumer/android-leads-u-s-in-
smartphone-market-share-and-data-usage/
Referências
41