sexta-feira, 16 de setembro de 2011

Defendendo o Android




Em mais um movimento para defender o Android de acusações de quebra de patentes, o Google comprou 1.023 registros da IBM. A transação foi registrada em agosto junto ao Escritório de Patentes dos Estados Unidos, mas o valor do negócio não foi revelado, segundo o El País. Com a compra da Motorola Mobility, anunciada em agosto pelo valor de US$ 12,5 bilhões, o gigante de buscas passa a ser dono de mais 17 mil patentes.
Os registros adquiridos seriam usados defender o sistema operacional móvel go Google, atacado, principalmente, pela rival Apple. As ações vêm sendo movidas contra fabricantes de aparelhos móveis que usam o OS do Google. No início deste mês, por exemplo, nove das patentes da empresa dirigida por Larry Page foram passadas à HTC. A taiwanesa é acusada de copiar a interface gráfica do iPhone em alguns de seus dispositivos.
Mas a compra de patentes para a defesa nos tribunais não foi uma tática exclusiva do Google. No início do ano, Apple, Research in Motion, Microsoft e Sony se uniram para comprar direitos de uso da Nortel por US$ 4,5 milhões. O pacote incluía seis mil patentes, de sistemas de comunicação sem fio a soluções ópticas e de comunicação oral, além de semicondutores. O interesse especial era em tecnologias de 4G para dispositivos móveis e no padrão LTE.
Apple, Microsoft, Sony, EMC e Oracle se uniram também em 2010, na época para adquirir as patentes da Novell. O Google considerou o consórcio como um campanha hostil contra o Android. A Microsoft respondeu à observação convidando o gigante de buscas para integrar o grupo, e a empresa de Larry Page informou que se o fizesse não teria como defender seu sistema operacional de ataques legais de nenhum dos outros sócios das patentes adquiridas.
Os problemas judiciais envolvendo o Android têm levado algumas fabricantes a buscar alternativas ao OS do Google. A Samsung estaria interessada em melhorar seu sistema próprio, o Bada, e há rumores de que a sul-coreana estaria pensando em comprar o webOS, que agora é da HP. O sistema, antes da Palm, também estaria na mira da HTC, e pelo mesmo motivo.

quinta-feira, 15 de setembro de 2011

AutoEnem....Lançamento Nacional

Vejam!!! Para você que quer passar no Enem, e para eu me promover é claro (risos), foi lançado o AutoEnem, sistema que aprovará você com certeza!

quarta-feira, 14 de setembro de 2011

Saiba Mais Sobre o Android

Em poucas Palavras. Orientação à Objetos

E ai pessoal! Eu Bruno venho aqui mais uma vez para tentar desmitificar o que é a bendita Orientação à Objetos que muito de vocês sei que possuem dúvidas sobre sua verdadeira identidade.


Vamos lá!
Orientação a objeto  é um conceito que esta relacionado com a idéia de classificar , organizar e abstrair coisas. Veja a definição formal:


"O termo orientação a objetos significa organizar  o mundo real como uma coleção de objetos que incorporam estrutura de dados e um conjunto de operações que manipulam estes dados. "
 
Vamos falar uma linguagem mas simples para isto vamos para um ambiente que você conhece bem: A sua casa !

Agora vamos olhar a sua estante , o seu guarda-roupa , o seu armário , a sua cozinha. Em todos estes lugares você classificou coisas no seu domínio e , somente de olhar para eles você já sabe relacionar a classificação que utilizou em cada um deles e como classificou as coisas que estão neste lugares.

Na estante você agrupou e organizou os livros , no guarda roupa suas camisas, calças , meias , ternos , etc. Todos os objetos que você classificou nestes lugares foram organizados baseado em alguma concepção que você possuía sobre eles.

No contexto orientado a objeto a estante , o armário , a cozinha são chamados de classes.

No contexto de software podemos dizer que :
Uma classe é um gabarito para a definição de objetos. Através da definição de uma classe, descreve-se que propriedades -- ou atributos -- o objeto terá.
Uma classe mantém dois elementos importantes : estrutura e comportamento.
  • Uma estrutura representa os atributos que descrevem a classe.
  • Um comportamento representa os serviços que a classe suporta.
Na 'classe' do seu guarda-roupa , uma camisa amarela pode ser colocada em uma outra classe. A 'classe' camisa.
  • Cada camisa tem uma estrutura que é : a textura , a cor , o tamanho e o modelo.
  • Cada camisa tem um comportamento que é : ordenar , rasgar , desbotar .
Se você concordar que existe uma classe camisa. Vai concordar que existem diversos tipos de camisas com suas características, ou seja , existem diversos objetos camisas que podem ser criados a partir da classe camisa. Daí temos o conceito de objetos:

O conceito de orientação a objetos é abordado desta mesma maneira sempre. No contexto do software podemos então dizer que :
É através de objetos que (praticamente) todo o processamento ocorre em aplicações desenvolvidas com linguagens de programação orientadas a objetos.
  • Primeiro você classifica e abstrai os elementos no sistema para proporcionar uma certa ordem, e, ao fazer isto você define uma classe ;
  • Feita a definição da classe você pode criar objetos desta classe. (instanciar)
Vou citar aqui o exemplo clássico da planta de uma casa.

- A Classe seria um gabarito (como uma planta de uma casa)
- O objeto é concretização do gabarito (casas feitas a partir da mesma planta)

Quando levamos estes conceitos para as linguagens de programação nada se altera.

Existem alguns conceitos básicos que estão vinculados ao conceito de orientação a objetos. São eles :
  • Herança
  • Encapsulamento
  • Polimorfismo
A herança permite implementar a funcionalidade a sua classe de tomar emprestado o resto da estrutura e comportamento de classes de nível mais alto.

Pensemos na classe carro.

Esta classe define os comportamentos e atributos de um carro; E existem atributos que serão comum a todos os carros.

As rodas e o motor são atributos comuns a qualquer carro. Já uma Ferrari possui atributos que somente ela possui : valor por exemplo

A definição formal seria:

Herança é um mecanismo que permite que características comuns a diversas classes sejam agrupadas em uma classe base, ou superclasse. A partir de uma classe base, outras classes podem ser especificadas. Cada classe derivada ou subclasse apresenta as características (estrutura e métodos) da classe base e acrescenta a elas o que for definido de particularidade para ela

Encapsular significa "ocultar informações"  ele define que cada objeto contém todos os detalhes de implementação necessários sobre como ele funciona e oculta os detalhes internos sobre como ele executa os serviços.

Quando você acelera um carro você esta enviando uma mensagem ao motor do carro usando o acelerador e o carro sabe que tem que acelerar.

Você não precisa saber como é feita a aceleração no motor você apenas pisa fundo no acelerador , a implementação de como é feita a aceleração esta encapsulada do cliente.

Polimorfismo significa muitas formas , na orientação a objetos você pode enviar uma mesma mensagem para diferentes objetos e fazê-los responder da maneira correta. Você pode enviar a mensagem de dar marcha-ré para cada objeto semelhante a um carro e cada um vai se comportar de maneira diferente para atender a sua solicitação.

Uma definição mais formal diria:

"Polimorfismo é o princípio pelo qual duas ou mais classes derivadas de uma mesma superclasse podem invocar métodos que têm a mesma identificação (assinatura) mas comportamentos distintos, especializados para cada classe derivada, usando para tanto uma referência a um objeto do tipo da superclasse"

segunda-feira, 12 de setembro de 2011

Baixando e Configurando o Sdk do Android no Eclipse

Fala galera! Vamos aqui fazer a configuração de nosso sdk do Android para programarmos no eclipse

Este artigo visa mostrar os passos para instalar um ambiente de desenvolvimento de aplicações Android utilizando o SDK do Android e o Eclipse IDE.
Requisitos:
  • Eclipse 3.4 (Ganymede) ou mais recente
  • Eclipse JDT plugin (incluído na maior parte das distribuições Eclipse IDE (Para descarregar e instalar ou actualizar o Eclipse: http://www.eclipse.org/downloads/)
  • Existem vários pacotes do Eclipse disponíveis para cada plataforma. Para desenvolver aplicações Android recomendam-se os seguintes pacotes:
    • Eclipse IDE for Java Developers
    • Eclipse Classic (versão 3.5.1 ou mais recentes)
    • Eclipse IDE for Java EE Developers
  • JDK 5 or JDK 6
  • Android Development Tools plugin
Passo 1: É necessário fazer download do Android SDK e do Eclipse IDE. Basta descompactá-los para uma directoria específica (ex: c:\dev\ )
Passo 2: Iniciar o Eclipse, abrir o menu Help > Install new software

Adicionar esta localização https://dl-ssl.google.com/android/eclipse/ (para o Eclipse 3.5 Galileo ou 3.6 Helios)

Na caixa de diálogo Available Software , seleccione a checkbox Developer Tools e clique seguinte:
Na janela seguinte, será possível ver uma lista de ferramentas para ser descarregadas. Clique seguinte e aceite as licenças e clique Finish. Quando a  instalação terminar, reinicie o Eclipse.
Passo 3: Vá agora ao menu  Window> Preferences e escolha a opção Android. Clique no botão Browse.. e localize a pasta para onde extraiu o Android SDK ( c:\dev) e clique em Apply e depois Ok.

Passo 4: Clique no botão  e instale os pacotes disponíveis.



 
Depois disso é necessário criar um dispositivo virtual Android (Android Virtual Device ou AVD) que irá correr as aplicações que desenvolvermos sem necessidade de possuirmos um equipamento Android.



 

Agora é necessário escolher o nome e  alvo (target). Um Target define qual a API apropriada para o tipo de software que se pretende desenvolver , neste caso será a versão 3.0. É também necessário escolher a quantidade de memória disponível para o dispositivo virtual, se terá cartão de memória (neste caso 1024Mb) e o hardware que se quer emular (GPS, acelerómetro, trackball, GPS, bluetooth, ..).
Clicar em Finish.
De seguida, ir ao menu New > Project > Android para criar um, novo projecto.


 

De uma forma rápida fica o que é necessário preencher em cada campo:
Project Name:
Nome do projecto Android e também da directoria que irá conter os ficheiros do projecto.
Application Name:
Nome da aplicação. Este é o nome que irá aparecer no dispositivo Android (neste caso helloMobileStone).
Package Name:
Este é o namespace do pacote e segue as regras de naming do Java. É também o namespace onde a Activity (explicada a seguir) será criada. O nome do package deve ser único, para evitar conflitos nos nomes das classes (neste caso tst.mobilestone.net, é o nosso namespace reservado para testes). Ao desenvolver as suas aplicações deverá utilizar um namespace próprio que o identifique a si ou à empresa onde trabalha.
Create Activity:
Este é o nome da classe gerada pelo plugin. Esta classe é uma extensão (ver polimorfismo) da classe Activity do Android.
Uma Activity  é uma classe que pode ser executada. Pode ser usada para criar interfaces (mas não é obrigatório que o faça). Como a checkbox sugere, é opcional, mas uma Activity é quase sempre usada como base para uma aplicação.
Min SDK Version:
Este valor especifica a versão mínima da API requerida para executar a aplicação.
O nosso projecto Android está quase pronto para entrar em Acção. Escolha no painel do lado direito o ficheiro MobileStone.java e insira o seguinte código:
package net.mobilestone.tst;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;


public class MobileStone extends Activity {
/** Called when the activity is first created. */
@Override


public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TextView tv = new TextView(this);
tv.setText(“Hello, Android”);
setContentView(tv);
}
}


Execute a aplicação:
O plugin ADT torna tudo isto bastante fácil:
Escolha o menu Run > Run.
Seleccione  ”Android Application”.
E finalmente o Eclipse ADT arranca a aplicação dentro do virtual device mostrando o seguinte resultado









 Então é isso galera! Após esta configuração vamos a nossa primeira aplicação no tutorial Primeira aplicação Android

Admin: Bruno

Olá Galera! muito grato por estarem acessando nosso blog. Espero que seja possível transmitir de forma compreensível um pouco de meus conhecimentos em programação, para esta comunidade de desenvolvedores que cresce cada vez mais! Espero que Gostem! Abraço! E meu enorme obrigado à Renato Simões, Átila Soares,Wanderson Quinto, Emerson e a toda galera que sempre ajudou meu sincero obrigado....
Especialmente a Natalia Failache e Rita de Cassia que sempre apoiaram este sonho....

De seu amigo Bruno Rafael.