SlideShare uma empresa Scribd logo
1 de 23
>> Conhecendo o Bada <<

>> Não é buda ou banda por acaso?

      Não, é Bada mesmo. O Bada é um framework situado acima do
sistema operacional. Para muitos é chamado de sistema operacional, mas a
verdade é que ele trabalha sobre uma versão do Linux.




     No mercado já existem dois aparelhos com o Bada. O Samsung
Wave e o Samsung Jet.

      Apesar de novo, a Samsung já liberou um SDK para os
desenvolvedores, além disso, criou o Bada Developer Challenge, que
premia os melhores aplicativos para esta plataforma.

      Este pequeno artigo é uma visão geral e bem sucinta do Bada, visto
que o próprio autor era leigo no assunto a apenas algumas horas.


>> Gostei disso, como instalo o SDK?

      O kit de desenvolvimento é baseado na IDE Eclipse, ou seja, para
quem já utiliza esta ferramenta a curva de aprendizado é quase inexistente.
Além das ferramentas padrões como compilador, depurador e editor de
código, o sdk possui uma ferramenta espetacular, o UI Builder. Aguarde
um pouco e verá.
A instalação se dá em 8 passos:

•        Baixar o sdk aqui. É necessário criar um usuário antes do
         download.

•        Depois do download efetuado, descompacte a pasta em um
         lugar de seu interesse. A árvore de diretórios deve ser
         assim:




•        Dê um duplo clique no instalador. O wizard começa pela
         tela abaixo. Clique em Next.
•   O próximo passo é aceitar a licença. Leia o texto e clique
    em I Agree.




•   Escolha os componentes a serem instalados.
•   Especifique o diretório onde o SDK será instalado.




•   Especifique o shortcut para o Windows e clique em Install.
•   Agora espere a instalação concluir suas etapas.




•   Se receber a tela abaixo tudo ocorreu bem e já podemos
    passar para o Hello World.
•   Para garantir que tudo deu certo, seu Windows deve
    mostrar o seguinte menu na lista de programas:




              Figura 1: Menu windows.

•   Para ter mais certeza ainda, clique em Simulator:
>> Quero criar meu primeiro aplicativo Bada

      Lembram da Figura 1, cliquem em badaIDE.




      Quando a IDE/Eclipse estiver aberta, navegue para file->new->bada
application proejct.




      Depois disso informe o nome do projeto e o seu tipo de protótipo,
que deve ser bada Frame Based Application
Sobre os tipos de projeto:
 Segundo a documentação:

 •        bada Frame Based Application: cria um simples projeto baseado
          em um frame. O template já cria as funcionalidades básicas da
          aplicação para mostrar o nome do projeto na tela.
 •        bada Form Based Application: cria um simples projeto baseado
          em Form. Contém as funcionalidades básicas para desenhar um
          Form na tela.
 •        bada Empty Project: cria um projeto somente com os arquivos
          essenciais.
 •        bada Static Library: cria uma biblioteca.




O próximo passo é configurar o path do bada SDK.
Posteriormente, vamos definir qual arquivo de manifesto
     vamos usar.




      Podemos utilizar o manifesto padrão enquanto estivermos apenas
estudando o sdk e a API do Bada. Porém, quando este trabalho for
profissional e exigir a distribuição da aplicação, é necessário criar este
manifesto a partir do site da Samsung.

      Estamos quase acabando!!!!

     Agora, defina o criador da aplicação bem como sua descrição básica.
Depois disso já podemos finalizar o projeto.




       Depois que o projeto foi criado, a IDE cria a seguinte árvore de
diretórios:
Figura 2: árvore de diretórios.
       Rode o projeto como bada Simulator Application. Se tudo ocorreu
certo, você verá o celular abaixo na sua tela.

      Calma, se um erro Launch File. Binaty not found foi lançado, apenas
clique com o botão direito no nome projeto e escolha Build Project.
Execute o projeto novamente:
>> Um pouco sobre o aplicativo gerado pela IDE

       Para entender toda a árvore de diretórios e arquivos, indico a leitura
da documentação oficial. Para nós, iniciantes no Bada vamos com mais
calma. Por hora só precisamos saber que a pasta src contém os códigos
fontes do aplicativo. Os resources também são importantes, mas serão
vistos daqui a pouco.

      Vamos a alguns pontos importantes do código fonte:

      •        O ponto de entrada da aplicação é o método OspMain(),
               presente em HelloWorldEntry.cpp;

      •        A instância da aplicação é criada usando o método
               CreateInstance, presente em HelloWorld.cpp;

      •        Os recursos da aplicação, como o arquivo XML de layout
               por exemplo, são inicializados usando o método
               OnAppInitializing(), presente em HelloWorld.cpp;

      •        Os recursos alocados serão destruídos e os estados da
               aplicação salvos usando o método OnAppTerminating;
               presente em HelloWorld.cpp;
•       Além disso, outros métodos são criados para tratar
              determinados eventos relativos a aplicação. Veja parte do
              código na listagem abaixo.

void
HelloWorld::OnForeground(void)
{
// Começe ou reinicie o desenho da tela quando a aplicação é movida
para foreground.

      Canvas* pCanvas = GetAppFrame()->GetCanvasN();

      Font font;
      font.Construct(FONT_STYLE_PLAIN | FONT_STYLE_BOLD, 50);
      pCanvas->SetFont(font);
      pCanvas->DrawText(Point(30, 30), GetAppName());
      pCanvas->Show();

      delete pCanvas;
}

void
HelloWorld::OnBackground(void)
{
// para a pintura na tela quando a aplicação é movida para background.
}

void
HelloWorld::OnLowMemory(void)
{
// Libere recursos não utilizados ou feche a aplicação
}

void
HelloWorld::OnBatteryLevelChanged(BatteryLevel batteryLevel)
{
// Lidar com as alterações de nível de bateria aqui.
// Pare de usar mídia se estiver fazendo (camera, mp3 etc.) quando o
nível da bateria é CRITICAL.
}

     Com a listagem de código acima o leitor já deve ter percebido um
dado muito importante. Não lidamos com Java aqui, mas sim com C++.


>> Brincando um pouco com eventos

       Só para ter uma idéia do tratamento de eventos no Bada vamos
brincar um pouco com o HelloWorld. A missão é criar um código que
intercepe eventos de bateria e diga ao usuário a situação da carga do seu
aparelho móvel.

      Reescreva o método OnBatteryLevelChanged para:
void
HelloWorld::OnBatteryLevelChanged(BatteryLevel batteryLevel)
{
      Canvas* pCanvas = GetAppFrame()->GetCanvasN();

     Font font;
     font.Construct(FONT_STYLE_PLAIN | FONT_STYLE_BOLD, 50);

      pCanvas->Clear();
      pCanvas->FillRectangle(Color(255, 255, 255, 30),
                  Rectangle(0, 0, pCanvas->GetBounds().width, pCanvas-
>GetBounds().height));
      pCanvas->SetFont(font);
      pCanvas->DrawText(Point(30, 30), GetAppName());

     if (batteryLevel == BATTERY_CRITICAL)
           pCanvas->DrawText(Point(30, 90), "Crítica");
     else if (batteryLevel == BATTERY_EMPTY)
           pCanvas->DrawText(Point(30, 90), "Vazia");
     else if (batteryLevel == BATTERY_FULL)
                       pCanvas->DrawText(Point(30, 90), "Cheia");
     else if (batteryLevel == BATTERY_HIGH)
                       pCanvas->DrawText(Point(30, 90), "Alta");
     else if (batteryLevel == BATTERY_LOW)
                       pCanvas->DrawText(Point(30, 90), "Baixa");

     pCanvas->Show();

      delete pCanvas;
      // TODO:
      // Handle any changes in battery level here.
      // Stop using multimedia features(camera, mp3 etc.) if the
battery level is CRITICAL.
      }

     Rode a aplicação novamente. Clique com o botão direito no
emulador, depois clique em Event Injector. No wizard que receber, clique
em Device, localizado na extremidade direita das tabs superiores:
Em Battery Level escreva 99 e clique em Send Battery File.




>> Melhorando a interface e conhecendo o UIBuilder

     Agora vamo apresentar um ponto que me chamou muito a atenção no
SDK do Bada, fazendo eu esquecer o fato de usar C++ e não Java.
***** Para entender os conceitos de UI no Bada visite a
documentação aqui.

      A interface gráfica de uma aplicação Bada é constituída de uma ou
mais application views. Cada view é uma janela full-screen da aplicação
que é representada por um Form, contendo uma barra de indicadores, soft
keys e uma barra de título. Além disso, um Form contém controles, que
podem ser controles puros ou containers que contém controles.

     Todos os forms de uma aplicação precisam ser anexados a um
Frame. Pode haver somente um frame por aplicação. Fonte: aqui.

     Figura: componentes GUI.




     Então vamos criar um Form.

      Revejam a Figura 2 por favor. Anteriormente eu disse o seguinte:
“Os resources também são importantes, mas serão vistos daqui a pouco.”
Na verdade eles serão vistos agora.
      Vamos adicionar um recurso a nossa aplicação.

     Clique em Form e depois Insert Resource:
Agora a magia começa:




       Dê um duplo clique no formulário para ver suas propriedades na
parte inferior.

      Nas propriedades configure o título do form, bem como o label para
Soft Key 0 e Soft Key 1.
Já conseguimos isso:




      Para adicionar os controles, os componentes se preferirem, o
desenvolvedor tem algumas opções na aba Palette.

      Utilizando o arrastar e colar, construa uma tela conforme a imagem
abaixo:
Construindo esta tela, somente clicando a arrastando os componentes
me deu uma saudade do Java ME, de criar as telas com diretivas gráficas,
com seus drawRect, drawString etc e etc.

       Mas calma, ainda não fizemos todo o trabalho. Clique com o botão
direito no Form e escolha Add Class. Chame a classe de Listener e informe
que desejas controlar tudo o que é possível:
Depois do Finish vamos visitar o HelloWorld.cpp.

     Veja o comentário do método OnAppInitilçizing(), ele diz o seguinte:
// TODO:
// Initialize UI resources and application specific data.
// The application's permanent data and context can be obtained from
the appRegistry.
//
// If this method is successful, return true; otherwise, return false.
// If this method returns false, the application will be terminated.
// Uncomment the following statement to listen to the screen on/off
events.
//PowerManager::SetScreenEventListener(*this);

       Já que diz que é nesse método que inicializamos os recursos de
interface gráfica, substitua esse método por esta versão:
bool
HelloWorld::OnAppInitializing(AppRegistry& appRegistry)
{
     Listener *pForm1 = new Listener();

     pForm1->Construct(L"IDF_FORM1");
     Frame *pFrame = GetAppFrame()->GetFrame();
     pFrame->AddControl(*pForm1);
     pFrame->SetCurrentForm(*pForm1);
     pForm1->RequestRedraw();
     return true;
}

     Ao esqueça de adicionar essa linha no início do código:
#include "Listener.h"

     Agora vamos rodar novamente o aplicativo e sorrir:
E oque acham do controle da hora:




     Quantas linhas programamos mesmo?


>> Conclusão. Oque concluir?

      O Bada está recém chegando no mundo móbile, ainda é impossível
qualquer direcionamento sem um pouco de achômetro. Façamos o seguinte,
tirem suas conclusões, ou ainda, vamos discutir isso com os comentários
desse artigo. Mas duas coisas são fatos:
* A Samsung poderia deixar de querer reiventar a roda e adotar
Android.
      * O UI Builder é extremamente útil e poderoso. Isso pode ser um
importante diferencial.

Mais conteúdo relacionado

Mais procurados

Ambiente desenvolvimento
Ambiente desenvolvimentoAmbiente desenvolvimento
Ambiente desenvolvimentoAline Nunes
 
Construindo aplicações com netbeans
Construindo aplicações com netbeansConstruindo aplicações com netbeans
Construindo aplicações com netbeansSliedesharessbarbosa
 
Da introdução à prática no desenvolvimento Android
Da introdução à prática no desenvolvimento AndroidDa introdução à prática no desenvolvimento Android
Da introdução à prática no desenvolvimento AndroidRodolfo Faquin Della Justina
 
Minicurso de Android
Minicurso de AndroidMinicurso de Android
Minicurso de AndroidEdgar Eler
 
Desenvolvimento de Apps e Games para Android - Parte 3
Desenvolvimento de Apps e Games para Android - Parte 3Desenvolvimento de Apps e Games para Android - Parte 3
Desenvolvimento de Apps e Games para Android - Parte 3Erisvaldo Junior
 
Introdução ao desenvolvimento de apps para Android - Dia 2/2
Introdução ao desenvolvimento de apps para Android - Dia 2/2Introdução ao desenvolvimento de apps para Android - Dia 2/2
Introdução ao desenvolvimento de apps para Android - Dia 2/2Matheus Calegaro
 
Componentes customizados: Android te dá asas!
Componentes customizados: Android te dá asas!Componentes customizados: Android te dá asas!
Componentes customizados: Android te dá asas!Guilherme de Cleva Farto
 
Estudando Android - Lista de Conteúdos do Blog
Estudando Android - Lista de Conteúdos do BlogEstudando Android - Lista de Conteúdos do Blog
Estudando Android - Lista de Conteúdos do BlogVinícius Thiengo
 
Curso de Android - aula 2
Curso de Android - aula 2Curso de Android - aula 2
Curso de Android - aula 2Jose Berardo
 
Iniciando o desenvolvimento de uma aplicação em android
Iniciando o desenvolvimento de uma aplicação em androidIniciando o desenvolvimento de uma aplicação em android
Iniciando o desenvolvimento de uma aplicação em androidErivan Cledson
 
Como criar interfaces gráficas com android
Como criar interfaces gráficas com androidComo criar interfaces gráficas com android
Como criar interfaces gráficas com androidRicardo Ogliari
 
Criando um Web Service Restful com Jersey, Eclipse, JBoss, Tomcat, WebSphere
Criando um Web Service Restful com Jersey, Eclipse, JBoss, Tomcat, WebSphereCriando um Web Service Restful com Jersey, Eclipse, JBoss, Tomcat, WebSphere
Criando um Web Service Restful com Jersey, Eclipse, JBoss, Tomcat, WebSphereJuliano Martins
 

Mais procurados (20)

Ambiente desenvolvimento
Ambiente desenvolvimentoAmbiente desenvolvimento
Ambiente desenvolvimento
 
Construindo aplicações com netbeans
Construindo aplicações com netbeansConstruindo aplicações com netbeans
Construindo aplicações com netbeans
 
Da introdução à prática no desenvolvimento Android
Da introdução à prática no desenvolvimento AndroidDa introdução à prática no desenvolvimento Android
Da introdução à prática no desenvolvimento Android
 
Eclipse uml
Eclipse umlEclipse uml
Eclipse uml
 
Minicurso de Android
Minicurso de AndroidMinicurso de Android
Minicurso de Android
 
Android Aula 5
Android Aula 5Android Aula 5
Android Aula 5
 
Desenvolvimento de Apps e Games para Android - Parte 3
Desenvolvimento de Apps e Games para Android - Parte 3Desenvolvimento de Apps e Games para Android - Parte 3
Desenvolvimento de Apps e Games para Android - Parte 3
 
Android Aula 3
Android Aula 3Android Aula 3
Android Aula 3
 
Android Studio
Android StudioAndroid Studio
Android Studio
 
Android Aula 2
Android Aula 2Android Aula 2
Android Aula 2
 
Introdução ao desenvolvimento de apps para Android - Dia 2/2
Introdução ao desenvolvimento de apps para Android - Dia 2/2Introdução ao desenvolvimento de apps para Android - Dia 2/2
Introdução ao desenvolvimento de apps para Android - Dia 2/2
 
Android Aula 4
Android Aula 4Android Aula 4
Android Aula 4
 
Componentes customizados: Android te dá asas!
Componentes customizados: Android te dá asas!Componentes customizados: Android te dá asas!
Componentes customizados: Android te dá asas!
 
Estudando Android - Lista de Conteúdos do Blog
Estudando Android - Lista de Conteúdos do BlogEstudando Android - Lista de Conteúdos do Blog
Estudando Android - Lista de Conteúdos do Blog
 
Curso de Android - aula 2
Curso de Android - aula 2Curso de Android - aula 2
Curso de Android - aula 2
 
Gsp007
Gsp007Gsp007
Gsp007
 
Nao sensivel
Nao sensivelNao sensivel
Nao sensivel
 
Iniciando o desenvolvimento de uma aplicação em android
Iniciando o desenvolvimento de uma aplicação em androidIniciando o desenvolvimento de uma aplicação em android
Iniciando o desenvolvimento de uma aplicação em android
 
Como criar interfaces gráficas com android
Como criar interfaces gráficas com androidComo criar interfaces gráficas com android
Como criar interfaces gráficas com android
 
Criando um Web Service Restful com Jersey, Eclipse, JBoss, Tomcat, WebSphere
Criando um Web Service Restful com Jersey, Eclipse, JBoss, Tomcat, WebSphereCriando um Web Service Restful com Jersey, Eclipse, JBoss, Tomcat, WebSphere
Criando um Web Service Restful com Jersey, Eclipse, JBoss, Tomcat, WebSphere
 

Semelhante a Conhecendo o Bada SDK

Aula02 android hands_on
Aula02 android hands_onAula02 android hands_on
Aula02 android hands_onRoberson Alves
 
Crackeando aplicativos no android _by c0_m3nd4d0r
Crackeando aplicativos no android  _by c0_m3nd4d0rCrackeando aplicativos no android  _by c0_m3nd4d0r
Crackeando aplicativos no android _by c0_m3nd4d0rnunes666
 
Tutorial instalacão java
Tutorial instalacão javaTutorial instalacão java
Tutorial instalacão javaAparicio Junior
 
Ionic Framework - Configuração do ambiente e a criação da primeira APP
Ionic Framework - Configuração do ambiente e a criação da primeira APPIonic Framework - Configuração do ambiente e a criação da primeira APP
Ionic Framework - Configuração do ambiente e a criação da primeira APPFabio Godoy
 
Introdução a programação para plataforma iOS
Introdução a programação para plataforma iOSIntrodução a programação para plataforma iOS
Introdução a programação para plataforma iOSDevmedia
 
Guia rapido total cross studio
Guia rapido total cross studioGuia rapido total cross studio
Guia rapido total cross studioRafael Din
 
Aprendendo Angular com a CLI
Aprendendo Angular com a CLIAprendendo Angular com a CLI
Aprendendo Angular com a CLIVanessa Me Tonini
 
Android Core Aula 6 - Desenvolvimento de aplicações Android
Android Core Aula 6 -  Desenvolvimento de aplicações AndroidAndroid Core Aula 6 -  Desenvolvimento de aplicações Android
Android Core Aula 6 - Desenvolvimento de aplicações AndroidFelipe Silveira
 
Android e Facebook - Integrando sua aplicação às redes sociais
Android e Facebook - Integrando sua aplicação às redes sociaisAndroid e Facebook - Integrando sua aplicação às redes sociais
Android e Facebook - Integrando sua aplicação às redes sociaisFelipe Silveira
 
Documentao Projeto Android - Intent
Documentao Projeto Android - IntentDocumentao Projeto Android - Intent
Documentao Projeto Android - Intentcunhagronomia
 
Desenvolvendo com Angular CLI
Desenvolvendo com Angular CLIDesenvolvendo com Angular CLI
Desenvolvendo com Angular CLIVanessa Me Tonini
 

Semelhante a Conhecendo o Bada SDK (20)

Apostila android
Apostila androidApostila android
Apostila android
 
Apostila android
Apostila androidApostila android
Apostila android
 
Apostila android
Apostila androidApostila android
Apostila android
 
Aula02 android hands_on
Aula02 android hands_onAula02 android hands_on
Aula02 android hands_on
 
Crackeando aplicativos no android _by c0_m3nd4d0r
Crackeando aplicativos no android  _by c0_m3nd4d0rCrackeando aplicativos no android  _by c0_m3nd4d0r
Crackeando aplicativos no android _by c0_m3nd4d0r
 
Tutorial instalacão java
Tutorial instalacão javaTutorial instalacão java
Tutorial instalacão java
 
Ionic Framework - Configuração do ambiente e a criação da primeira APP
Ionic Framework - Configuração do ambiente e a criação da primeira APPIonic Framework - Configuração do ambiente e a criação da primeira APP
Ionic Framework - Configuração do ambiente e a criação da primeira APP
 
Apostila android
Apostila androidApostila android
Apostila android
 
Tutorial java
Tutorial javaTutorial java
Tutorial java
 
Introdução a programação para plataforma iOS
Introdução a programação para plataforma iOSIntrodução a programação para plataforma iOS
Introdução a programação para plataforma iOS
 
JavaFx - Introdução
JavaFx - IntroduçãoJavaFx - Introdução
JavaFx - Introdução
 
Aula maps 23_2
Aula maps 23_2Aula maps 23_2
Aula maps 23_2
 
Guia rapido total cross studio
Guia rapido total cross studioGuia rapido total cross studio
Guia rapido total cross studio
 
Aprendendo Angular com a CLI
Aprendendo Angular com a CLIAprendendo Angular com a CLI
Aprendendo Angular com a CLI
 
Android Core Aula 6 - Desenvolvimento de aplicações Android
Android Core Aula 6 -  Desenvolvimento de aplicações AndroidAndroid Core Aula 6 -  Desenvolvimento de aplicações Android
Android Core Aula 6 - Desenvolvimento de aplicações Android
 
Android e Facebook - Integrando sua aplicação às redes sociais
Android e Facebook - Integrando sua aplicação às redes sociaisAndroid e Facebook - Integrando sua aplicação às redes sociais
Android e Facebook - Integrando sua aplicação às redes sociais
 
Palm e web os
Palm e web osPalm e web os
Palm e web os
 
Documentao Projeto Android - Intent
Documentao Projeto Android - IntentDocumentao Projeto Android - Intent
Documentao Projeto Android - Intent
 
Tutorial +login+mvc
Tutorial +login+mvcTutorial +login+mvc
Tutorial +login+mvc
 
Desenvolvendo com Angular CLI
Desenvolvendo com Angular CLIDesenvolvendo com Angular CLI
Desenvolvendo com Angular CLI
 

Mais de Ricardo Ogliari

Clean Code/Architecture com Android e Flutter
Clean Code/Architecture com Android e FlutterClean Code/Architecture com Android e Flutter
Clean Code/Architecture com Android e FlutterRicardo Ogliari
 
Mobile, Flutter e Mercado
Mobile, Flutter e MercadoMobile, Flutter e Mercado
Mobile, Flutter e MercadoRicardo Ogliari
 
Aula 1 view model livedata e databinding.pptx
Aula 1   view model livedata e databinding.pptxAula 1   view model livedata e databinding.pptx
Aula 1 view model livedata e databinding.pptxRicardo Ogliari
 
Programando em ruby para arduino
Programando em ruby para arduinoProgramando em ruby para arduino
Programando em ruby para arduinoRicardo Ogliari
 
Intel edison Primeiro Projeto
Intel edison Primeiro ProjetoIntel edison Primeiro Projeto
Intel edison Primeiro ProjetoRicardo Ogliari
 
Internacionalizando um aplicativo BlackBerry API
Internacionalizando um aplicativo BlackBerry APIInternacionalizando um aplicativo BlackBerry API
Internacionalizando um aplicativo BlackBerry APIRicardo Ogliari
 
Criando itens de menu em aplicativos nativos com a BlackBerry API
Criando itens de menu em aplicativos nativos com a BlackBerry APICriando itens de menu em aplicativos nativos com a BlackBerry API
Criando itens de menu em aplicativos nativos com a BlackBerry APIRicardo Ogliari
 
Utilizando O Cell Id Para Popularizar Os Sistemas Lbs
Utilizando O Cell Id Para Popularizar Os Sistemas LbsUtilizando O Cell Id Para Popularizar Os Sistemas Lbs
Utilizando O Cell Id Para Popularizar Os Sistemas LbsRicardo Ogliari
 
Instalando e Configurando o JIL SDK. Crie seu primeiro widget com a ferramenta.
Instalando e Configurando o JIL SDK. Crie seu primeiro widget com a ferramenta.Instalando e Configurando o JIL SDK. Crie seu primeiro widget com a ferramenta.
Instalando e Configurando o JIL SDK. Crie seu primeiro widget com a ferramenta.Ricardo Ogliari
 
A hora de criar LBS para pequenos dispositivos é agora!!
A hora de criar LBS para pequenos dispositivos é agora!!A hora de criar LBS para pequenos dispositivos é agora!!
A hora de criar LBS para pequenos dispositivos é agora!!Ricardo Ogliari
 

Mais de Ricardo Ogliari (13)

IoT além do Arduino
IoT além do ArduinoIoT além do Arduino
IoT além do Arduino
 
Clean Code/Architecture com Android e Flutter
Clean Code/Architecture com Android e FlutterClean Code/Architecture com Android e Flutter
Clean Code/Architecture com Android e Flutter
 
Mobile, Flutter e Mercado
Mobile, Flutter e MercadoMobile, Flutter e Mercado
Mobile, Flutter e Mercado
 
Aula 1 view model livedata e databinding.pptx
Aula 1   view model livedata e databinding.pptxAula 1   view model livedata e databinding.pptx
Aula 1 view model livedata e databinding.pptx
 
Programando em ruby para arduino
Programando em ruby para arduinoProgramando em ruby para arduino
Programando em ruby para arduino
 
Intel edison Primeiro Projeto
Intel edison Primeiro ProjetoIntel edison Primeiro Projeto
Intel edison Primeiro Projeto
 
Internacionalizando um aplicativo BlackBerry API
Internacionalizando um aplicativo BlackBerry APIInternacionalizando um aplicativo BlackBerry API
Internacionalizando um aplicativo BlackBerry API
 
Internacionalizacao
InternacionalizacaoInternacionalizacao
Internacionalizacao
 
Trechos interessantes
Trechos interessantesTrechos interessantes
Trechos interessantes
 
Criando itens de menu em aplicativos nativos com a BlackBerry API
Criando itens de menu em aplicativos nativos com a BlackBerry APICriando itens de menu em aplicativos nativos com a BlackBerry API
Criando itens de menu em aplicativos nativos com a BlackBerry API
 
Utilizando O Cell Id Para Popularizar Os Sistemas Lbs
Utilizando O Cell Id Para Popularizar Os Sistemas LbsUtilizando O Cell Id Para Popularizar Os Sistemas Lbs
Utilizando O Cell Id Para Popularizar Os Sistemas Lbs
 
Instalando e Configurando o JIL SDK. Crie seu primeiro widget com a ferramenta.
Instalando e Configurando o JIL SDK. Crie seu primeiro widget com a ferramenta.Instalando e Configurando o JIL SDK. Crie seu primeiro widget com a ferramenta.
Instalando e Configurando o JIL SDK. Crie seu primeiro widget com a ferramenta.
 
A hora de criar LBS para pequenos dispositivos é agora!!
A hora de criar LBS para pequenos dispositivos é agora!!A hora de criar LBS para pequenos dispositivos é agora!!
A hora de criar LBS para pequenos dispositivos é agora!!
 

Conhecendo o Bada SDK

  • 1. >> Conhecendo o Bada << >> Não é buda ou banda por acaso? Não, é Bada mesmo. O Bada é um framework situado acima do sistema operacional. Para muitos é chamado de sistema operacional, mas a verdade é que ele trabalha sobre uma versão do Linux. No mercado já existem dois aparelhos com o Bada. O Samsung Wave e o Samsung Jet. Apesar de novo, a Samsung já liberou um SDK para os desenvolvedores, além disso, criou o Bada Developer Challenge, que premia os melhores aplicativos para esta plataforma. Este pequeno artigo é uma visão geral e bem sucinta do Bada, visto que o próprio autor era leigo no assunto a apenas algumas horas. >> Gostei disso, como instalo o SDK? O kit de desenvolvimento é baseado na IDE Eclipse, ou seja, para quem já utiliza esta ferramenta a curva de aprendizado é quase inexistente. Além das ferramentas padrões como compilador, depurador e editor de código, o sdk possui uma ferramenta espetacular, o UI Builder. Aguarde um pouco e verá.
  • 2. A instalação se dá em 8 passos: • Baixar o sdk aqui. É necessário criar um usuário antes do download. • Depois do download efetuado, descompacte a pasta em um lugar de seu interesse. A árvore de diretórios deve ser assim: • Dê um duplo clique no instalador. O wizard começa pela tela abaixo. Clique em Next.
  • 3. O próximo passo é aceitar a licença. Leia o texto e clique em I Agree. • Escolha os componentes a serem instalados.
  • 4. Especifique o diretório onde o SDK será instalado. • Especifique o shortcut para o Windows e clique em Install.
  • 5. Agora espere a instalação concluir suas etapas. • Se receber a tela abaixo tudo ocorreu bem e já podemos passar para o Hello World.
  • 6. Para garantir que tudo deu certo, seu Windows deve mostrar o seguinte menu na lista de programas: Figura 1: Menu windows. • Para ter mais certeza ainda, clique em Simulator:
  • 7. >> Quero criar meu primeiro aplicativo Bada Lembram da Figura 1, cliquem em badaIDE. Quando a IDE/Eclipse estiver aberta, navegue para file->new->bada application proejct. Depois disso informe o nome do projeto e o seu tipo de protótipo, que deve ser bada Frame Based Application
  • 8. Sobre os tipos de projeto: Segundo a documentação: • bada Frame Based Application: cria um simples projeto baseado em um frame. O template já cria as funcionalidades básicas da aplicação para mostrar o nome do projeto na tela. • bada Form Based Application: cria um simples projeto baseado em Form. Contém as funcionalidades básicas para desenhar um Form na tela. • bada Empty Project: cria um projeto somente com os arquivos essenciais. • bada Static Library: cria uma biblioteca. O próximo passo é configurar o path do bada SDK.
  • 9. Posteriormente, vamos definir qual arquivo de manifesto vamos usar. Podemos utilizar o manifesto padrão enquanto estivermos apenas estudando o sdk e a API do Bada. Porém, quando este trabalho for
  • 10. profissional e exigir a distribuição da aplicação, é necessário criar este manifesto a partir do site da Samsung. Estamos quase acabando!!!! Agora, defina o criador da aplicação bem como sua descrição básica. Depois disso já podemos finalizar o projeto. Depois que o projeto foi criado, a IDE cria a seguinte árvore de diretórios:
  • 11. Figura 2: árvore de diretórios. Rode o projeto como bada Simulator Application. Se tudo ocorreu certo, você verá o celular abaixo na sua tela. Calma, se um erro Launch File. Binaty not found foi lançado, apenas clique com o botão direito no nome projeto e escolha Build Project. Execute o projeto novamente:
  • 12. >> Um pouco sobre o aplicativo gerado pela IDE Para entender toda a árvore de diretórios e arquivos, indico a leitura da documentação oficial. Para nós, iniciantes no Bada vamos com mais calma. Por hora só precisamos saber que a pasta src contém os códigos fontes do aplicativo. Os resources também são importantes, mas serão vistos daqui a pouco. Vamos a alguns pontos importantes do código fonte: • O ponto de entrada da aplicação é o método OspMain(), presente em HelloWorldEntry.cpp; • A instância da aplicação é criada usando o método CreateInstance, presente em HelloWorld.cpp; • Os recursos da aplicação, como o arquivo XML de layout por exemplo, são inicializados usando o método OnAppInitializing(), presente em HelloWorld.cpp; • Os recursos alocados serão destruídos e os estados da aplicação salvos usando o método OnAppTerminating; presente em HelloWorld.cpp;
  • 13. Além disso, outros métodos são criados para tratar determinados eventos relativos a aplicação. Veja parte do código na listagem abaixo. void HelloWorld::OnForeground(void) { // Começe ou reinicie o desenho da tela quando a aplicação é movida para foreground. Canvas* pCanvas = GetAppFrame()->GetCanvasN(); Font font; font.Construct(FONT_STYLE_PLAIN | FONT_STYLE_BOLD, 50); pCanvas->SetFont(font); pCanvas->DrawText(Point(30, 30), GetAppName()); pCanvas->Show(); delete pCanvas; } void HelloWorld::OnBackground(void) { // para a pintura na tela quando a aplicação é movida para background. } void HelloWorld::OnLowMemory(void) { // Libere recursos não utilizados ou feche a aplicação } void HelloWorld::OnBatteryLevelChanged(BatteryLevel batteryLevel) { // Lidar com as alterações de nível de bateria aqui. // Pare de usar mídia se estiver fazendo (camera, mp3 etc.) quando o nível da bateria é CRITICAL. } Com a listagem de código acima o leitor já deve ter percebido um dado muito importante. Não lidamos com Java aqui, mas sim com C++. >> Brincando um pouco com eventos Só para ter uma idéia do tratamento de eventos no Bada vamos brincar um pouco com o HelloWorld. A missão é criar um código que intercepe eventos de bateria e diga ao usuário a situação da carga do seu aparelho móvel. Reescreva o método OnBatteryLevelChanged para:
  • 14. void HelloWorld::OnBatteryLevelChanged(BatteryLevel batteryLevel) { Canvas* pCanvas = GetAppFrame()->GetCanvasN(); Font font; font.Construct(FONT_STYLE_PLAIN | FONT_STYLE_BOLD, 50); pCanvas->Clear(); pCanvas->FillRectangle(Color(255, 255, 255, 30), Rectangle(0, 0, pCanvas->GetBounds().width, pCanvas- >GetBounds().height)); pCanvas->SetFont(font); pCanvas->DrawText(Point(30, 30), GetAppName()); if (batteryLevel == BATTERY_CRITICAL) pCanvas->DrawText(Point(30, 90), "Crítica"); else if (batteryLevel == BATTERY_EMPTY) pCanvas->DrawText(Point(30, 90), "Vazia"); else if (batteryLevel == BATTERY_FULL) pCanvas->DrawText(Point(30, 90), "Cheia"); else if (batteryLevel == BATTERY_HIGH) pCanvas->DrawText(Point(30, 90), "Alta"); else if (batteryLevel == BATTERY_LOW) pCanvas->DrawText(Point(30, 90), "Baixa"); pCanvas->Show(); delete pCanvas; // TODO: // Handle any changes in battery level here. // Stop using multimedia features(camera, mp3 etc.) if the battery level is CRITICAL. } Rode a aplicação novamente. Clique com o botão direito no emulador, depois clique em Event Injector. No wizard que receber, clique em Device, localizado na extremidade direita das tabs superiores:
  • 15. Em Battery Level escreva 99 e clique em Send Battery File. >> Melhorando a interface e conhecendo o UIBuilder Agora vamo apresentar um ponto que me chamou muito a atenção no SDK do Bada, fazendo eu esquecer o fato de usar C++ e não Java.
  • 16. ***** Para entender os conceitos de UI no Bada visite a documentação aqui. A interface gráfica de uma aplicação Bada é constituída de uma ou mais application views. Cada view é uma janela full-screen da aplicação que é representada por um Form, contendo uma barra de indicadores, soft keys e uma barra de título. Além disso, um Form contém controles, que podem ser controles puros ou containers que contém controles. Todos os forms de uma aplicação precisam ser anexados a um Frame. Pode haver somente um frame por aplicação. Fonte: aqui. Figura: componentes GUI. Então vamos criar um Form. Revejam a Figura 2 por favor. Anteriormente eu disse o seguinte: “Os resources também são importantes, mas serão vistos daqui a pouco.” Na verdade eles serão vistos agora. Vamos adicionar um recurso a nossa aplicação. Clique em Form e depois Insert Resource:
  • 17. Agora a magia começa: Dê um duplo clique no formulário para ver suas propriedades na parte inferior. Nas propriedades configure o título do form, bem como o label para Soft Key 0 e Soft Key 1.
  • 18. Já conseguimos isso: Para adicionar os controles, os componentes se preferirem, o desenvolvedor tem algumas opções na aba Palette. Utilizando o arrastar e colar, construa uma tela conforme a imagem abaixo:
  • 19. Construindo esta tela, somente clicando a arrastando os componentes me deu uma saudade do Java ME, de criar as telas com diretivas gráficas, com seus drawRect, drawString etc e etc. Mas calma, ainda não fizemos todo o trabalho. Clique com o botão direito no Form e escolha Add Class. Chame a classe de Listener e informe que desejas controlar tudo o que é possível:
  • 20. Depois do Finish vamos visitar o HelloWorld.cpp. Veja o comentário do método OnAppInitilçizing(), ele diz o seguinte: // TODO: // Initialize UI resources and application specific data. // The application's permanent data and context can be obtained from the appRegistry. // // If this method is successful, return true; otherwise, return false. // If this method returns false, the application will be terminated. // Uncomment the following statement to listen to the screen on/off events. //PowerManager::SetScreenEventListener(*this); Já que diz que é nesse método que inicializamos os recursos de interface gráfica, substitua esse método por esta versão: bool HelloWorld::OnAppInitializing(AppRegistry& appRegistry)
  • 21. { Listener *pForm1 = new Listener(); pForm1->Construct(L"IDF_FORM1"); Frame *pFrame = GetAppFrame()->GetFrame(); pFrame->AddControl(*pForm1); pFrame->SetCurrentForm(*pForm1); pForm1->RequestRedraw(); return true; } Ao esqueça de adicionar essa linha no início do código: #include "Listener.h" Agora vamos rodar novamente o aplicativo e sorrir:
  • 22. E oque acham do controle da hora: Quantas linhas programamos mesmo? >> Conclusão. Oque concluir? O Bada está recém chegando no mundo móbile, ainda é impossível qualquer direcionamento sem um pouco de achômetro. Façamos o seguinte, tirem suas conclusões, ou ainda, vamos discutir isso com os comentários desse artigo. Mas duas coisas são fatos:
  • 23. * A Samsung poderia deixar de querer reiventar a roda e adotar Android. * O UI Builder é extremamente útil e poderoso. Isso pode ser um importante diferencial.