Your SlideShare is downloading. ×
Bada
Bada
Bada
Bada
Bada
Bada
Bada
Bada
Bada
Bada
Bada
Bada
Bada
Bada
Bada
Bada
Bada
Bada
Bada
Bada
Bada
Bada
Bada
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Bada

2,759

Published on

Resumo sobre o Bada e seu SDK. Criação de um HelloWorld básico e alguns passos adicionais.

Resumo sobre o Bada e seu SDK. Criação de um HelloWorld básico e alguns passos adicionais.

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,759
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
80
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 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.

×