sábado, 24 de maio de 2014

O que faz o serviço de localização?

Basicamente localiza o usuário :) Ok, as principais funções para o nosso serviço de localização consistem em indicar qual a unidade mais próxima da atual localização do usuário, a partir das coordenadas (latitude e longitude) fornecidas pelo GPS do smartphone. Para usufruir deste, é necessário que o o celular esteja conectada a internet. Caso o celular não possua a ferramenta de GPS, pode se determinar a localização do usuário a partir das Networks (redes de internet) próximas a ele, entretanto o resultado não é tão eficiente como o do GPS (e o serviço não implementado no PimpMyPizza).
Voltando ao nosso aplicativo, outra função do serviço de localização é fornecer as coordenadas das unidades da pizzaria, para que o usuário possa ver a localização da mesma, a partir de um serviço do GoogleMaps.

Vence o Android LocationManager!

Nesta semana, terminamos o serviço de localização do aplicativo, utilizando o Android LocationManager. Em outros posts colocamos em questão qual o serviço de localização a ser utilizada e apesar de muitos falarem da eficiência do GooglePlayLocationManager, optamos por utilizar o outro serviço, que atendente perfeitamente nossas necessidades e já estava em processo de implantação no aplicativo. Além da necessidade de instalação de um SDK da GooglePlay, o que consideramos um "excesso" já que usaríamos apenas uma ferramenta de localização. No próximo post falarei com mais detalhes sobre o que faz o nosso serviço de localização.

sexta-feira, 23 de maio de 2014

HTTP GET/JSON Android

  Olá amigo desenvolvedor! Como eu sei que você programa?... Ou pelo menos tenta, bom... Caso contrário você não estaria lendo isso hue.

   Essa semana peço desculpas pela minha ausência aqui no blog, mas trago um post bem interessante. Se assim como eu, você precisa fazer com que a sua aplicação android receba dados de um servidor web, segue o link com 2 tutoriais que me ajudaram muitíssimo.

   Eu segui o passo a passo e pude compreender melhor como podemos implementar o conteúdo dos tutoriais em nossa aplicação. Se por algum acaso você quiser se informar um pouco mais antes de olhar os tutoriais, pesquise sobre as seguintes classes:
-Httpclient
-Httpresponse
-InputStrem
- BufferedReader
-ConnectivityManager
-HttpAsyncTask

 Eu mesmo preciso estudar um pouquinho mais haha.

1 - requisição http por método GET:
  Requisição HTTP-GET

2 - recebendo e tratando dados em formato JSON:
  Tratamento JSON data

segunda-feira, 19 de maio de 2014

Inicio dos testes dos Serviços de localização

Como visto no penúltimo post, iniciamos o desenvolvimento do serviço de localização do usuário, utilizando o Android Location Service. Não descartamos a possibilidade de utilizarmos o Google Play Location Service, a intenção é testar o desempenho de ambos na própria aplicação.
Entretanto, nesta primeira fase de teste, já foi possível encontrar uma falha. Quando solicitado para Localizar o usuário, a aplicação retorna um endereço que não condiz com a sua atual posição. Nos testes realizados em meu smartphone, o endereço retornado era do bairro de Santo Amaro (Zona Sul de São Paulo), mais exatamente no local onde trabalho. Entretanto o local onde foi requisitado, foi em minha residência, localizada no bairro do Tremembé (Zona Norte de São Paulo ). Resta saber se o problema também ocorre se utilizarmos o Google Play Location Service.

Esta é a tela de localizar do usuário. O botão localizar retorna o endereço do usuário, e o botão Endereços Salvos, mostrará uma tela na qual o usuário visualizará um endereço salvo, onde costuma pedir a pizza.


O Problema com as Fragments

Nada é perfeito, nem na vida, muito menos na computação. Com o Android não podia ser diferente. Apesar de ser um sistema de primeiríssima qualidade, podemos encontrar alguns 'bugs', como o dos eventos de botões nas Fragments. Para podemos atribuir um evento 'onClick' a um botão localizado em uma Fragment, devemos implementar um onClickListener neste, para podermos sobre escrever o evento 'onClick'. Em uma Activity comum, bastaria atribuir o evento no próprio arquivo XML de layout. Segundo as nossas pesquisas, isto é um erro do Android, que os desenvolvedores pretendem resolver em próximas atualizações.  Um pequeno problema, uma grande dor de cabeça.

domingo, 18 de maio de 2014

Android Location Service vs Google Play Location Service

Para esta semana, a intenção do grupo na parte de programação, era inciar o desenvolvimento do serviço de localização do usuário do aplicativo. Iniciamos o desenvolvimento desta utilizando o Android Location Service, oferecido pelo Android Framework. Este consiste em serviço de fácil utilização, e que aparece em muitos aplicativos. Entretanto, nas nossas pesquisas encontramos outra ferramenta, mais recente oferecida pela Google Play, o Google Play Location Service. A própria Google recomenda a utilização da nova ferramenta, alegando ser mais rápida, eficiente e que economiza a bateria do dispositivo. Entretanto, encontramos em alguns fóruns, uma pequena quantidade (que não pode ser ignorada) de desenvolvedores que preferem a utilização do Android Location Service, causando uma certa dúvida ao grupo, uma vez que já havíamos iniciado o desenvolvimento com esta.
Porém não podemos simplesmente ignorar uma ferramenta que é recomendada pelo Google, portanto decidimos prolongar um pouco esta tarefa, para que o aplicativo possua o melhor serviço de localização possível.
Seguem alguns artigos explicando as diferenças entre as duas ferramentas:
Blog do Antonio Hong
Blog do Rahul Jiresal

quinta-feira, 15 de maio de 2014

Questionário

Para o melhor conhecimento das necessidades dos nossos clientes fizemos um questionário pelo google docs com perguntas referentes aos serviços de entrega de uma pizzaria e pedimos que os colaboradores postem o link desse questionário nas redes sociais como facebook e whatsapp.

Link para o questionário:
https://docs.google.com/forms/d/1hlQwS3Ab0NCvADFw77IMbSZT6Q8zDrCEmL2SN8Zx1eM/viewform?usp=send_form

quinta-feira, 8 de maio de 2014

Progressos da quinta-feira (08/05)

O projeto avança a cada semana... e nesta quinta, durante o período da aula de PDS, realizamos alguns progressos na parte da programação na plataforma mobile.
-> Criamos o efeito de 'scrollable tabs', onde o número de tabs excede o tamanho da tela, e só podem ser acessadas pelo efeito de scroll. 
-> Customizamos a Actionbar da aplicação, adicionando o botão de 'carrinho', onde o usuário pode conferir os produtos adquiridos no pedido. 
-> Iniciamos a criação da tela de escolha do lugar de onde será pedida a pizza, a de localização do usuário e a tela de pedidos.

Seguem alguns screenshot's da aplicação



domingo, 4 de maio de 2014

Interface Grafica Desktop

Nessa semana pesquisamos um pouco sobre  outras ferramentas de desenvolvimento gráfico para o desktop , e delas a que realmente mais nos chamou a atenção foi o qt ,ferramenta de desenvolvimento  multiplataforma com  implementação para Python, PyQt (http://qt-project.org/), que oferece varias opções para desenvolvimento gráfico como uma ferramenta de design, qml  e por código. Um dos fatos mais interessantes que observamos ao testar a ferramenta é que é possível  customizar certas partes dos elementos gráficos  por  Style Sheets facilitando muito essa parte do trabalho , também podemos notar que o PyQt parece ter módulos para utilização de banco de dados que podem também ser úteis no desenvolvimento do projeto (http://www.codeprogress.com/python/libraries/pyqt/showPyQTExample.php?index=422&key=QSqlDatabaseConnecttoMySql).

No momento acreditamos que usaremos os módulos  do PyQt5 para desenvolvimento gráfico , que será realizado em "puro Python", o que isso quer dizer?

Bom os módulos do PyQt5 também nos oferecem usar o QML uma opção de layout que é similar a uma Style Sheet só que com eventos e outros recursos, uma opção interessante só que no entanto é necessário  entender  conceitos novos para utiliza-la, sendo que o método de desenvolvimento gráfico por "Python puro" chega a ser bem similar ao Swing de Java com o qual já estamos acostumados.