domingo, 12 de agosto de 2012

O Galaxy Tab III 7.0 Plus da Samsung

Fruto de uma era tecnológica que está vindo tal qual um trem bala desde 1982, os smartfones e tablets estão entrando no elenco de soluções de processamento digital deste século XXI (o século da promessa de solução para tudo).

O iPhone foi o pioneiro nesta era de portáteis com alto poder de processamento para fins pessoais. Mas até a TV Tupi (você se lembra dela ?) foi pioneira mas não conseguiu se manter. A Apple é uma gigante, símbolo do que o americano pode oferecer em qualidade. Já a Samsung é uma gigante multi-segmento (TVs também) que pensa em atingir vários públicos, sem deixar que a qualidade torne seu produto em algo de ostentação de luxo apenas.

O consumidor quer produto e inserção. Inserção quer dizer que o consumidor não quer deixar uma onda tecnológica passar, mas caso a "prancha de surf" necessária para pegar esta onda for muito cara, ele vai procurar meios alternativos para adquirir a "prancha". A inserção ou Inclusão Digital se transformou em preocupação do Governo Federal, pois tecnologia é insumo básico para quebrar esta barreira de subdesenvolvimento que domina o nosso país.

iPad

O consumidor médio brasileiro não pode pagar o preço de um iPad, injusto e proibitivo. Não se faz de um produto de uso tecnológico do dia-a-dia algo para ostentação de status. Isto se faz com veículos, casas e gêneros de consolidado valor para poucos.

Casas e veículos caros não se incluem na classe de produtos que melhoram a qualidade agregada da Sociedade.

Por isto, o iPad se torna obsoleto em seus fins. Tecnologia para ostentação, para se falar que se tem.

O produto

O Galaxy já é algo com uma tecnologia embarcada de anos de melhoramentos e estudos em torno do sistema Linux. O seu carro chefe, tecnologia WiFi, é imbatível em raio de ação e manutenção de sinal. A qualidade gráfica e a velocidade são inteiramente satisfatórios. Além disto, a tecnologia AllShare (toda a rede enxerga mídia compartilhada) é algo que funciona logo que se liga.

O sistema operacional Android é de fácil manejo e obviedade através da interface gráfica. A integração com Windows é imediata via drives da Internet facílimos de achar e de instalar.

Conectividade a desktops

Através do cabo ou WiFi se tem acesso ao sistema interno de arquivos com facilidade. Para se fazer isto no iPhone é uma luta, pois foi necessário que estudiosos quebrassem as RIDÍCULAS travas do iPhone, por meio dos softwares discutidos neste blog.

O programa WiFi transfer disponibiliza um endereço para se digitar no browser e iniciar as transferências de arquivos. Ele é gratuito e pode ser baixado na Market Store ou Play Store da Samsung.

O Bluetooth é tão bom, que basta ligar. E não tem incompatibilidades com o Nokia, pelo menos. Se falhar com o iPhone ou iPad, apenas dê umas risadas, pois parece que eles não se preocuparam em compatibilidade com os outros.

E o que fazer com o iPad ?

Guarde-o como lembrança de um marco tecnológico e vá correndo comprar um Galaxy.


quinta-feira, 9 de agosto de 2012

Primeira aplicação para o Android com botão

Deixando de lado detalhes de configuração do ADT Plugin Android no Eclipse, vamos explicar a anatomia da primeira aplicação com um botão para o Android.

Bibliotecas


//import android.app.Activity;
//import android.app.AlertDialog;
import android.app.*;
//import android.content.DialogInterface;
//import android.content.DialogInterface.OnClickListener;
import android.content.*;
import android.content.DialogInterface.OnClickListener;
import android.os.Bundle;
//import android.view.Menu;
//import android.view.View;
import android.view.*;
//import android.widget.Button;
//import android.widget.Toast;
import android.widget.*;

Atividade Principal (Ação principal)


Esta é a declaração default de MainActivity de uma aplicação Android

public class MainActivity extends Activity {

    private Button myButton;


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

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }
    // Outros métodos

}

Colocação de um botão


Na paleta de Form widgets selecionamos o Botão com o mouse e arrastamos para o Formulário. Damos a ele o Id de button1, e alteramos seu texto para "ClickMe".

O método PopIt

Como se trata de uma aplicação Java, cuja característica é a de provocar a escrita de muito código, vamos aproveitar um código que equivale a um Prompt (javascript) ou MessageBox (VBscript). Este código deverá ser utilizado para mensagens com opção de prosseguir e sair:


    public void PopIt( String title, String message ){
        new AlertDialog.Builder(this)
        .setTitle( title )
        .setMessage( message )
        .setPositiveButton("YES", new OnClickListener() {
            public void onClick(DialogInterface arg0, int arg1) {
                //do stuff onclick of YES
                finish();
            }
        })
        .setNegativeButton("NO", new OnClickListener() {
            public void onClick(DialogInterface arg0, int arg1) {
                //do stuff onclick of CANCEL
                Toast.makeText(getBaseContext(), "You touched CANCEL", Toast.LENGTH_SHORT).show();
            }
        }).show();
    }

Se você deseja escrever em Java, acostume-se com esta quantidade de código, ou então desista.

Declarando o evento do botão


    public void ClickBotao(View v){
    PopIt("Exit Application", "Are you sure you want to exit?");
    }



O evento de Click de button1 foi declarado nas propriedades deste botão como ClickBotao, e aqui declaramos que ele vai mostrar a janela PopIt.



Ajustando o início da aplicação


    protected void start(){
    myButton = (Button) findViewById(R.id.button1);
    }

O botão reside em R.java, que declara todos os identificadores de controles:


Código Completo


package com.example.berna1;

//import android.app.Activity;
//import android.app.AlertDialog;
import android.app.*;
//import android.content.DialogInterface;
//import android.content.DialogInterface.OnClickListener;
import android.content.*;
import android.content.DialogInterface.OnClickListener;
import android.os.Bundle;
//import android.view.Menu;
//import android.view.View;
import android.view.*;
//import android.widget.Button;
//import android.widget.Toast;
import android.widget.*;


public class MainActivity extends Activity {

    private Button myButton;


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

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }
    protected void start(){
    myButton = (Button) findViewById(R.id.button1);
    }
    public void ClickBotao(View v){
    PopIt("Exit Application", "Are you sure you want to exit?");
    }
    public void PopIt( String title, String message ){
        new AlertDialog.Builder(this)
        .setTitle( title )
        .setMessage( message )
        .setPositiveButton("YES", new OnClickListener() {
            public void onClick(DialogInterface arg0, int arg1) {
                //do stuff onclick of YES
                finish();
            }
        })
        .setNegativeButton("NO", new OnClickListener() {
            public void onClick(DialogInterface arg0, int arg1) {
                //do stuff onclick of CANCEL
                Toast.makeText(getBaseContext(), "You touched CANCEL", Toast.LENGTH_SHORT).show();
            }
        }).show();
    }
}