Veloster Framework - Persistência de dados para Android

47 respostas
R

Venho através desse tópico divulgar o projeto Veloster Framework, que se destina a persistência de dados em ambiente Android. O Veloster Framework já está sendo usado em alguns projetos e até o momento apresentou estabilidade e muitos recursos interessantes. O projeto já existe a mais de um ano, porém apenas agora ele está sendo divulgado publicamente, pois suas primeiras versões sofreram grandes modificações. Esse framework é desenvolvido pela Mobile Mind Empresa de Tecnologia www.mobilemind.com.br, que já conta com outros projetos Open Source www.mobilemind.com.br/openMind.

O projeto está licenciado sob a licensa GNU GPL V2. Projeto no google code https://code.google.com/p/veloster/

Algumas de suas funcionalidades são:

* Funciona em ambientes Desktop e Android
* API de Criteria
* API de validação
* Dynamic Finder
* Controle transacional
* Cascade
* Lazy Load
* Anotações
* Criação e Atualização de tabelas e campos
* Backup/Restore Integrado
* Natite SQL
* Result Transformer

Mais detalhes do projeto, como exemplos e documentação podem ser encontrados em http://www.4minds.com.br/engine/show/26. Dúvidas, problemas e abertura de FAQ podem ser reportados diretamente em www.4minds.com.br.

47 Respostas

A

Bacana!

Uma dúvida: existe a possibilidade de configurar a persistência sem anotações? Pergunto isso porque, em versões mais antigas do Android (se não me falha a memória, da 2.2 pra trás), usar Anotações em runtime tente a ser muito lento (por conta de uma implementação tosca do método getAnnotations).

R

Olá,

A única forma de cofiguração é por anotações mesmo.

A

ricardobocchi:
Olá,

A única forma de cofiguração é por anotações mesmo.

Uma pena…mas fica a dica :wink:

R

Claro. O projeto está em desenvolvimento e constantemente sendo melhorado. Se o o beneficio de ter outra maneira de configuração valer a pena, pode ser implementado em futuras versões.

A

Com certeza.

Me lembro de ter lido sobre isso quando estava usando o AndroidAnnotations, eles tiveram uma grande sacada de criar anotações que eram interpretadas em tempo de compilação pra gerar classes derivadas com as funcionalidades estaticamente codificadas em vez de usar códigos dinâmicos com reflexão. O resultado é que praticamente não há diferença de desempenho e o trade off é usar classes com “_” no final no android manifest.

Talvez você possa usar uma abordagem de separar os componentes com uma API pra se configurar e um componente que faz a configuração baseado em anotações e outro que o faz via arquivo ou algo do tipo (semelhante ao hibernate).

No mais, parabéns pelo projeto!

J

Muito bom!

Minha dica é usar APT (http://docs.oracle.com/javase/1.5.0/docs/guide/apt/GettingStarted.html) para gerar código em tempo de compilação e usar menos reflexão!

O interessante é seguir o padrão do JPA, pois ficaria mais simples para quem já usa o mesmo hoje utilizar seu framework!

Veja os códigos do Dagger (http://square.github.com/dagger/). É um framework IOC para Android que usa reflexão.

Valeu.

M

Minha opnião.
Desnecessário o uso de xml para configuração em vez de annotations. Celulares hoje com Android com versão inferior a 2.2 é quase nula, se não nula. Adaptar o framework para isso seria perder tempo.

A

MauNunes:
Minha opnião.
Desnecessário o uso de xml para configuração em vez de annotations. Celulares hoje com Android com versão inferior a 2.2 é quase nula, se não nula. Adaptar o framework para isso seria perder tempo.

Ainda temos cerca de 13% de dispositivos rodando Android 2.2 ou inferior, então é algo a se preocupar pra quem faz aplicativos de ampla visibilidade.

E usar reflexão anula o JIT, o que significa perder um pouco em desempenho. No caso de dispositivos móveis, pode significar um consumo maior de bateria. Por isso o pessoal do AndroidAnnotations optou por usar anotações em tempo de compilação pra gerar código a partir delas. Seria muito bom se o Veloster pudesse usar uma abordagem como essa, mesmo que híbrida. Isso iria dar uma boa otimizada no framework.

Outra coisa: em momento algum eu disse que seria usada configuração via xml. Muita gente prefere usar configuração programática e isso pode atrair mais gente ainda. Não há nada demais em ter um componente pra configurar a persistência e outro pra automatizar a configuração. Dessa forma você flexibiliza mais a solução.

R

O Veloster tem sido testado a partir da versão 2.2 do Android, como o MauNunes disse o número de usuários de versões anteriores é pequeno e tende a dimnuir ainda mais. E como eu disse, o framework está em desenvolvimento e estamos sempre pensando em melhorias, então toda opinião e dica é válida! Quanto as anotações, acredito que não seria um grande diferencial de desempenho fazer de outra maneira, por que elas são processadas sob demanda e ficam armazenadas em cache, e o uso da reflexão é bem maior para criação dinamica de objetos, criterias e dynamic finders. Até o momento não tivemos problemas com desempenho, até por que sabemos que uma aplicação para celular não pode nascer com o objetivo de processar grandes quantidades de dados. Então até agora os custos (uso de memória, espera) valeram os beneficios (produtividade, facilidade, códigos mais legiveis). Nã vou dizer que é melhor framework que existe, pois com certeza tem seus problemas, mas se analisarem, verão que ele tem muitos recursos interessantes de “gente grande” que facilitam e muito nosso dia-a-dia.

Já respondendo para o jrdalpra, a maioria das anotações tem os mesmos nomes e padrão do Java Persistence API. O número de anotações é bem reduiza se comparado ao JPA, e como o framework não é pra ser um cópia, e sim trazer alguma coisa diferênciada, ele não segue o mesmo padrão engessado do JPA.

S

jrdalpra:
Muito bom!

Minha dica é usar APT (http://docs.oracle.com/javase/1.5.0/docs/guide/apt/GettingStarted.html) para gerar código em tempo de compilação e usar menos reflexão!

Apenas para avisar que o apt foi deprecated e será removido. Em vez disso, o processamento de anotações acontece com a JSR 269

E

Tentei baixar o framework pelo link https://code.google.com/p/veloster/ e me parece estar com algum problema.

Edson

R

Olá Edson,

Você pode encontrar as dependências para download aqui http://www.4minds.com.br/artigo/show/27 e a referência para uso aqui http://www.4minds.com.br/artigo/show/26

J

Ataxexe:
ricardobocchi:
Olá,

A única forma de cofiguração é por anotações mesmo.

Uma pena…mas fica a dica :wink:


É uma pena mesmo já nascer só com mapeamento gambiarra.

J

Mas qual a vantagem de usar persistência de dados em um dispositivo com hardware limitado como telefones e tablets? Já é barra conseguir desempenho em servidores com memória de sobra. Em telefones o custo seria muito consumo de bateria como citaram acima, congelamento do sistema, etc…

Qual a vantagem desse framework para dispositivos que foram projetados para serem “clientes”?

J

juliocbq:
Mas qual a vantagem de usar persistência de dados em um dispositivo com hardware limitado como telefones e tablets? Já é barra conseguir desempenho em servidores com memória de sobra. Em telefones o custo seria muito consumo de bateria como citaram acima, congelamento do sistema, etc…

Qual a vantagem desse framework para dispositivos que foram projetados para serem “clientes”?


Boa pergunta, eu nunca desenvolvi nada nativo para mobile, mas os casos que já vi não usaram nenhum framework de persistência, falaram que é até mais gostoso de desenvolver sem parafernálias.

R

juliocbq:
Mas qual a vantagem de usar persistência de dados em um dispositivo com hardware limitado como telefones e tablets? Já é barra conseguir desempenho em servidores com memória de sobra. Em telefones o custo seria muito consumo de bateria como citaram acima, congelamento do sistema, etc…

Qual a vantagem desse framework para dispositivos que foram projetados para serem “clientes”?

Olá juliocbq,

Se você deu uma olhada nas funcionalidades do framework, você verá os beneficios que ele oferece quando falamos em legebilidade de código, produtividade e facilidade. Com certeza, como qualquer outro framework, ele cobra seu preço no desempenho, mas como já comentei, até o momento em meus projetos foi um preço baixo a se pagar. Se você acha que não vale a pena usar um framework de persistência em um dispositivo móvel, eu não vou discutir, acho que cada umdeve escolher seus caminhos de desenvolvimento como acha melhor. Esse projeto foi disponibilizado para quem se interessar em usar, é gratuito e já tem algumas empresas usando, então acho que alguns desenvolvedores podem ver seus beneficios e estão dispostos a pagar o preço pelo seu uso.

E quando você fala em dispositivos para “Clientes”, estamos falando em processadores dual ou quad core, com muita memória, muitas vezes melhor do que o pc de mesa que temos em casa. E se colocarmos no jogo a internet no Brasil, percebemos que é quase inevitavel desenvolver um aplicativo que trabalhe off-line e tenha que manipular uma quantidade minima de dados, ainda mais quando falamos no mundo corporativo.

R

javaflex:
Ataxexe:
ricardobocchi:
Olá,

A única forma de cofiguração é por anotações mesmo.

Uma pena…mas fica a dica :wink:


É uma pena mesmo já nascer só com mapeamento gambiarra.

Olá javaflex,

Que bom que o assunto chamou sua atenção. Respeito sua opinião, mesmo ela sendo bem vaga. Há muitos outros tópicos de discusão sobre uso ou não uso de anotações, acho que esse assunto de “gambiarra” ficaria melhor em um desses tópicos. Anotações são uma especificação java, se é gambiarra ou não, é um padrão e ponto final! Sempre fui adepto de anotações no lugar de arquivos xml, mas cada qual tem sua opinião e preferência. E além do mais, ninguém está te apontando uma arma na cabeça para você usar o Veloster, é apenas uma questão de escolha.

A

Acho que só é válido tocar nesse ponto se seu aplicativo for específico para somente um dispositivo (talvez no caso de uma aplicação corporativa para os smartphones de última geração dos gerentes). Em aplicativos para uma ampla gama de dispositivos isso é algo que nem deve ser pensado.

Outro ponto: acho que comparar os processadores de smartphones de última geração com processadores de desktops pré-históricos não vem ao caso. Quem tem um smartphone bom dificilmente terá um desktop ruim a ponto de ter o desempenho (relativo, claro) inferior ao do smartphone.

Eu acho que o Veloster pode ter, sim, seu lugar no mercado. Mas somente para apps bem específicos para dispositivos bem específicos, o que torna esse mercado muito restrito.

J

ricardobocchi:
juliocbq:
Mas qual a vantagem de usar persistência de dados em um dispositivo com hardware limitado como telefones e tablets? Já é barra conseguir desempenho em servidores com memória de sobra. Em telefones o custo seria muito consumo de bateria como citaram acima, congelamento do sistema, etc…

Qual a vantagem desse framework para dispositivos que foram projetados para serem “clientes”?

Olá juliocbq,

Se você deu uma olhada nas funcionalidades do framework, você verá os beneficios que ele oferece quando falamos em legebilidade de código, produtividade e facilidade. Com certeza, como qualquer outro framework, ele cobra seu preço no desempenho, mas como já comentei, até o momento em meus projetos foi um preço baixo a se pagar. Se você acha que não vale a pena usar um framework de persistência em um dispositivo móvel, eu não vou discutir, acho que cada umdeve escolher seus caminhos de desenvolvimento como acha melhor. Esse projeto foi disponibilizado para quem se interessar em usar, é gratuito e já tem algumas empresas usando, então acho que alguns desenvolvedores podem ver seus beneficios e estão dispostos a pagar o preço pelo seu uso.

E quando você fala em dispositivos para “Clientes”, estamos falando em processadores dual ou quad core, com muita memória, muitas vezes melhor do que o pc de mesa que temos em casa. E se colocarmos no jogo a internet no Brasil, percebemos que é quase inevitavel desenvolver um aplicativo que trabalhe off-line e tenha que manipular uma quantidade minima de dados, ainda mais quando falamos no mundo corporativo.

Em nenhum momento eu coloquei a questão “gosto” na pergunta.

Só gostaria de saber algumas vantagens em usar um framework de persistência em um dispositivo que suporta somente “uma” database que é o sqlite.

R

Certamente todo framework é destinado a um modelo especifico. É de responsábilidade do desenvolvedor estudar seus bônus e seus ônus ontes de usar qualquer coisa. Os aplicativos que usam o Veloster são de uso geral e não tive grandes problemas de desenpenho, até por que já desenvolvo pensando nessas restrições.

Também temos que lembrar que um dos beneficios do Veloster é seu funcionamento em ambientes desktop, que foi um dos principais motivos para seu surgimento. Pense em alguma aplicação, como controle financeiro, ou catalogo de produtos, que pode usar a mesma camada de persistência/modelo para ambas aplicações, você tem um bom ganho de produtividade.

Além disso, você poderia usar apenas as consultas nativas e Result Transformer, que usa uma funcionalidade mínima do framework, deixando de lado todo gerenciamento de entidades, anotações e ainda possibilitando o uso facilitado do padrão JDBC no Android.

R

juliocbq:
ricardobocchi:
juliocbq:
Mas qual a vantagem de usar persistência de dados em um dispositivo com hardware limitado como telefones e tablets? Já é barra conseguir desempenho em servidores com memória de sobra. Em telefones o custo seria muito consumo de bateria como citaram acima, congelamento do sistema, etc…

Qual a vantagem desse framework para dispositivos que foram projetados para serem “clientes”?

Olá juliocbq,

Se você deu uma olhada nas funcionalidades do framework, você verá os beneficios que ele oferece quando falamos em legebilidade de código, produtividade e facilidade. Com certeza, como qualquer outro framework, ele cobra seu preço no desempenho, mas como já comentei, até o momento em meus projetos foi um preço baixo a se pagar. Se você acha que não vale a pena usar um framework de persistência em um dispositivo móvel, eu não vou discutir, acho que cada umdeve escolher seus caminhos de desenvolvimento como acha melhor. Esse projeto foi disponibilizado para quem se interessar em usar, é gratuito e já tem algumas empresas usando, então acho que alguns desenvolvedores podem ver seus beneficios e estão dispostos a pagar o preço pelo seu uso.

E quando você fala em dispositivos para “Clientes”, estamos falando em processadores dual ou quad core, com muita memória, muitas vezes melhor do que o pc de mesa que temos em casa. E se colocarmos no jogo a internet no Brasil, percebemos que é quase inevitavel desenvolver um aplicativo que trabalhe off-line e tenha que manipular uma quantidade minima de dados, ainda mais quando falamos no mundo corporativo.

Em nenhum momento eu coloquei a questão “gosto” na pergunta.

Só gostaria de saber algumas vantagens em usar um framework de persistência em um dispositivo que suporta somente “uma” database que é o sqlite.

Olá,

Já que você usou o termo “gambiarra” para um padrão estabelecido a muito tempo no Java e usado amplamento em frameworks como Spring, Hibernate, Google Guice, achei que fosse opinião pessoal, mas tudo bem, vamos lá.

  • API de Criteria - SQL’s facilitadas e bem legiveis
  • API de Validação - Não precisa fazer um monte de if antes de salvar ou deixar estourar um erro no banco de dados
  • Controle Transacional - Você não precisa se preocupar com abertura e fechamento de conexão ou transações com o banco de dados
  • Native SQL - Maneira facilitada de executar uma SQL usando o padrão JDBC (Você não precisa usar o novo modelo introduzido no android)
  • Desktop X Dispositivo móvel - Você pode compartilhar camadas de aplicações entre desktop e dispositivo móvel
  • Result Transformer - Você pode transformar resultados em entidades sem anotações
  • Lazy Load - Carregamento “Preguiçoso” em listas
  • Paginação - Rotinas de paginação embutidas na API
  • Backup/Restore - Rotina de backup/restore embutidas na API

Essas são algumas das funcionalidades disponíveis no framework.

A

Cuidado, a única pessoa que mencionou gambiarra foi o javaflex.

A

Eu acho que a questão não é sobre as vantagens das funcionalidades do framework e sim sobre as vantagens de fazer isso no dispositivo móvel em vez de delegar para um serviço externo ao dispositivo (o que é normalmente feito).

J

Justamente. Eu estava pensando em uma vantagem de trocar um servidor expondo “serviços restful” alimentando um cliente super leve no android.

R

Quem já trabalhou com framework de persistência sabe que muitas vezes pode ser um tiro no pé e tudo sair do controle, mesmo usando frameworks consagrados com hibernate. São problemas de sessão, problemas de lazy, de cascade, desempenho e outros mais. Mesmos assim muitos se aventura em seu uso, pois muitos desenvolvedores, como eu, cansam de em todo novo projeto desenvolver toda uma estrutura eficiente de persistência.

Um framework não resolve todos os problemas, bem pelo contrario, ele te tras problemas que você ainda não tinha! Então cabe ao arquiteto do software pesar seus prós e contras, faze o balanço e ver se vale a pena seu uso ou não. Eu, particularmente, sou totalmente a favor do uso de frameworks, pois aguém já quebrou muito a cabeça para desenvolver aquilo, logo é um bom caminho a ser seguido.

E falando do Veloster, mesmo usando suas funcionalidades não estaremos livres de fazer uma SQL nativa, onde exige um pouco mais de desempenho, e é por esse motivo que a API fornece caminhos facilitados para isso. O framework em sí é desenhado para facilitar a vida do desenvolvedor e todas suas funcionalidades vieram de necessidades que surgiram ao longo de seu uso. Seu objetivo não é portar aplicações para diferentes bancos de dados, e sim facilitar e padronizar a construção da camada de persistência.

D

Justamente. Eu estava pensando em uma vantagem de trocar um servidor expondo “serviços restful” alimentando um cliente super leve no android.

Na minha opinião, existe um único motivo:

  • 3G Brasileira.

Óbvio, se for um app empresarial onde os dados vão ser acessados somente dentro de uma rede privada, não vejo motivo para deixar o processamento de regras de negocio ser feito pelo Smartphone… Na realidade, nem vejo porque expor um serviço restful… Design responsivo, e aplicação web resolveria o problema de forma muito mais elegante.
Só que não só desse cenário vivem os desenvolvedores Android… Existem aplicativos que devem ter persistência de dados mas não contam com uma rede privada para realiza-la… Idem para processamento de dados. A questão é: Nesse cenário, existe uma queda de performance grande o suficiente ao utilizar o framework que anule as vantagens de utiliza-lo? Não sei, afinal não tem nenhum Benchmark nem nada do tipo… Mas se fosse para chutar, eu diria que não.

J

ricardobocchi:
Quem já trabalhou com framework de persistência sabe que muitas vezes pode ser um tiro no pé e tudo sair do controle, mesmo usando frameworks consagrados com hibernate. São problemas de sessão, problemas de lazy, de cascade, desempenho e outros mais. Mesmos assim muitos se aventura em seu uso, pois muitos desenvolvedores, como eu, cansam de em todo novo projeto desenvolver toda uma estrutura eficiente de persistência.

Um framework não resolve todos os problemas, bem pelo contrario, ele te tras problemas que você ainda não tinha! Então cabe ao arquiteto do software pesar seus prós e contras, faze o balanço e ver se vale a pena seu uso ou não. Eu, particularmente, sou totalmente a favor do uso de frameworks, pois aguém já quebrou muito a cabeça para desenvolver aquilo, logo é um bom caminho a ser seguido.

E falando do Veloster, mesmo usando suas funcionalidades não estaremos livres de fazer uma SQL nativa, onde exige um pouco mais de desempenho, e é por esse motivo que a API fornece caminhos facilitados para isso. O framework em sí é desenhado para facilitar a vida do desenvolvedor e todas suas funcionalidades vieram de necessidades que surgiram ao longo de seu uso. Seu objetivo não é portar aplicações para diferentes bancos de dados, e sim facilitar e padronizar a construção da camada de persistência.

Entendi. O ganho é com legibilidade e manutenção de código. Além de produtividade.

E como fica o tempo de vida da bateria do dispositivo com todo esse processamento?

A

ricardobocchi, eu entendo sua vontade de defender o framework. Mas o que estamos questionando não é funcionalidade nem persistência ou lazy loading. Estamos questionando os motivos de se fazer isso no dispositivo em vez de fazer um serviço restfull ser consumido no dispositivo.

Pensando no mundo corporativo, se o cara tem um smartphone mas não pode conectar em uma rede wireless na corporação, tem algo de errado. Claro que algumas informações podem ser gravadas offline (quando o usuário não está na rede da empresa, por exemplo), mas elas seriam enviadas posteriormente para o serviço. Por causa disso não seria tão interessante fazer uma persistência com framework pois um dump da informação pode ser feito pra então ser mandado ao serviço.

São coisas como essa que estamos querendo debater.

A

juliocbq:
Entendi. O ganho é com legibilidade e manutenção de código. Além de produtividade.

E como fica o tempo de vida da bateria do dispositivo com todo esse processamento?

Lembrando que esse ganho pode ser obtido se for usado um serviço externo pra retirar essa responsabilidade do dispositivo.

Também acho a questão da bateria muito pertinente.

R

Olha, em 90% dos projetos que trabalho, é um requisito da aplicação trabalhar off-line. Então, mesmo deixando toda a carga de processamento para o servidor, ainda preciso ter uma maneira eficiente de armazenamento local. Imagine um sistema de pedidos, você terá que armazenar clientes, produtos, categorias, pedidos entre outros. E além de armazenar você terá que sincronizar em algum momento. O Veloster facilita exatamente esse ponto, de armazenamento, recuperação e alteração desses dados. Como minha empresa tem vários projetos andando ao mesmo tempo, além de ter bons softwares, bonitos rapidos e tudo mais, preciso de produtividade e facilidade no desenvolvimento. E o Veloster fornece essa agilidade e produtividade que preciso, tornando quase que transparente a camada de persistência, sobrando mais tempo para tratar outros requisitos como desempenho, usabilidade e disigner.

J

Ataxexe:
juliocbq:
Entendi. O ganho é com legibilidade e manutenção de código. Além de produtividade.

E como fica o tempo de vida da bateria do dispositivo com todo esse processamento?

Lembrando que esse ganho pode ser obtido se for usado um serviço externo pra retirar essa responsabilidade do dispositivo.

Também acho a questão da bateria muito pertinente.

é verdade.

R

Ataxexe:
ricardobocchi, eu entendo sua vontade de defender o framework. Mas o que estamos questionando não é funcionalidade nem persistência ou lazy loading. Estamos questionando os motivos de se fazer isso no dispositivo em vez de fazer um serviço restfull ser consumido no dispositivo.

Pensando no mundo corporativo, se o cara tem um smartphone mas não pode conectar em uma rede wireless na corporação, tem algo de errado. Claro que algumas informações podem ser gravadas offline (quando o usuário não está na rede da empresa, por exemplo), mas elas seriam enviadas posteriormente para o serviço. Por causa disso não seria tão interessante fazer uma persistência com framework pois um dump da informação pode ser feito pra então ser mandado ao serviço.

São coisas como essa que estamos querendo debater.

Sim Ataxexe, eu entendo o que você está querendo dizer, e o que eu estou dizendo é exatamente o que você está entendo. O ganho dele é exatamente isso! Produtividade. Se para suas aplicações isso não é um ganho, então você não deve usar. Só acho que nem toda aplicação vai ter um servidor para fazer o processamento, tem muitas aplicações que geram arquivos e mandam para um outro sistema a informação pronta. Também tem a questão da internet, que em muitos lugares é ruim de mais ou inexistente e os planos são carissimos. Se você obrigar o cliente a ter internet ilimitada ou um servidor dedicado, já está reduzindo suas possibilidades.

O framework te ajuda a fazer uma coisa que você é obrigado a fazer, apenas isso! Ou seja, obrigatóriamente você terá que manipular dados e certamente você vai cuidar para que essa manipulação de dados não seja exagerada, O framework não vai ficar executando um processo infinito ocupando toda bateria, memória e processamento do aparelho. Ele apenas vai facilitar a persistência e combrar seu preço por isso. No lugar de você fazer um:

Você vai fazer

A ideia é simples e sem grandes pretenções. Apenas facilitar o desenvolvimento! Como já disse e volto a repetir, nos projetos que trabalhei ele sempre foi uma mão na roda, por esse motivo ele está sendo compartilhado, se ele foi útil para os projetos da minha empresa, pode ser útil para outros projetos. Seu uso é extremamente simples, sem grandes complicações. Em poucos passos você já tem seu CRUD.

J

ricardobocchi:
Ataxexe:
ricardobocchi, eu entendo sua vontade de defender o framework. Mas o que estamos questionando não é funcionalidade nem persistência ou lazy loading. Estamos questionando os motivos de se fazer isso no dispositivo em vez de fazer um serviço restfull ser consumido no dispositivo.

Pensando no mundo corporativo, se o cara tem um smartphone mas não pode conectar em uma rede wireless na corporação, tem algo de errado. Claro que algumas informações podem ser gravadas offline (quando o usuário não está na rede da empresa, por exemplo), mas elas seriam enviadas posteriormente para o serviço. Por causa disso não seria tão interessante fazer uma persistência com framework pois um dump da informação pode ser feito pra então ser mandado ao serviço.

São coisas como essa que estamos querendo debater.

Sim Ataxexe, eu entendo o que você está querendo dizer, e o que eu estou dizendo é exatamente o que você está entendo. O ganho dele é exatamente isso! Produtividade. Se para suas aplicações isso não é um ganho, então você não deve usar. Só acho que nem toda aplicação vai ter um servidor para fazer o processamento, tem muitas aplicações que geram arquivos e mandam para um outro sistema a informação pronta. Também tem a questão da internet, que em muitos lugares é ruim de mais ou inexistente e os planos são carissimos. Se você obrigar o cliente a ter internet ilimitada ou um servidor dedicado, já está reduzindo suas possibilidades.

O framework te ajuda a fazer uma coisa que você é obrigado a fazer, apenas isso! Ou seja, obrigatóriamente você terá que manipular dados e certamente você vai cuidar para que essa manipulação de dados não seja exagerada, O framework não vai ficar executando um processo infinito ocupando toda bateria, memória e processamento do aparelho. Ele apenas vai facilitar a persistência e combrar seu preço por isso. No lugar de você fazer um:

Você vai fazer

A ideia é simples e sem grandes pretenções. Apenas facilitar o desenvolvimento! Como já disse e volto a repetir, nos projetos que trabalhei ele sempre foi uma mão na roda, por esse motivo ele está sendo compartilhado, se ele foi útil para os projetos da minha empresa, pode ser útil para outros projetos. Seu uso é extremamente simples, sem grandes complicações. Em poucos passos você já tem seu CRUD.

É nesse ponto que eu queria chegar. O sqlite foi concebido para ser extremamente simples e não precisar desse tipo de solução. Ele é desenvolvido para guardar coisas simples como listas, etc…
Essa informação toda nem precisa ser gravada em um banco, pode ser serializada em um arquivo xml.

Pode parecer que não, mas a questão da bateria é extremamente importante.

R

Justamente. Eu estava pensando em uma vantagem de trocar um servidor expondo “serviços restful” alimentando um cliente super leve no android.

Na minha opinião, existe um único motivo:

  • 3G Brasileira.

Óbvio, se for um app empresarial onde os dados vão ser acessados somente dentro de uma rede privada, não vejo motivo para deixar o processamento de regras de negocio ser feito pelo Smartphone… Na realidade, nem vejo porque expor um serviço restful… Design responsivo, e aplicação web resolveria o problema de forma muito mais elegante.
Só que não só desse cenário vivem os desenvolvedores Android… Existem aplicativos que devem ter persistência de dados mas não contam com uma rede privada para realiza-la… Idem para processamento de dados. A questão é: Nesse cenário, existe uma queda de performance grande o suficiente ao utilizar o framework que anule as vantagens de utiliza-lo? Não sei, afinal não tem nenhum Benchmark nem nada do tipo… Mas se fosse para chutar, eu diria que não.

Isso mesmo. Acho pouco provavel que em pouco tempo tenhamos condições de fazer aplicações consideradas críticas, como um sistema de pedidos, catalogo de produtos ou coisas do tipo, totalmente off-line. Por exemplo, eu moro no interior do Rio Grande do Sul, em uma cidade que é muito desenvolvidade ecônomicamente, mas muitas empresas estão localizadas em lugares onde 3g não pega e em muitos casos você não pode pedir para o cliente “bah, deixa eu usar tua internet ai pra fazer um pedido e te mostrar os produtos”, até por que depende de uma serie de liberações da TI, e a situação até fica meio estranha. Logo, não temos como fugir do armazenamento dos dados locais, e é por esse motivo que o Android tem banco de dados. Então, se tem banco de dados, usa SQL, usa transações, por que não usar uma maneira simplificada de persistência? O framework não vai usar todos os recursos do dispositivo, a não ser que o desenvolvedor não saiba programar. Certamente ele vai cobrar um preço, que fica a cargo do arquiteto decidir pagar ou não.

J

Justamente. Eu estava pensando em uma vantagem de trocar um servidor expondo “serviços restful” alimentando um cliente super leve no android.

Na minha opinião, existe um único motivo:

  • 3G Brasileira.

Óbvio, se for um app empresarial onde os dados vão ser acessados somente dentro de uma rede privada, não vejo motivo para deixar o processamento de regras de negocio ser feito pelo Smartphone… Na realidade, nem vejo porque expor um serviço restful… Design responsivo, e aplicação web resolveria o problema de forma muito mais elegante.
Só que não só desse cenário vivem os desenvolvedores Android… Existem aplicativos que devem ter persistência de dados mas não contam com uma rede privada para realiza-la… Idem para processamento de dados. A questão é: Nesse cenário, existe uma queda de performance grande o suficiente ao utilizar o framework que anule as vantagens de utiliza-lo? Não sei, afinal não tem nenhum Benchmark nem nada do tipo… Mas se fosse para chutar, eu diria que não.

Benchmark existe na seção bateria do Android. Basta olhar lá.


R

juliocbq:
ricardobocchi:
Ataxexe:
ricardobocchi, eu entendo sua vontade de defender o framework. Mas o que estamos questionando não é funcionalidade nem persistência ou lazy loading. Estamos questionando os motivos de se fazer isso no dispositivo em vez de fazer um serviço restfull ser consumido no dispositivo.

Pensando no mundo corporativo, se o cara tem um smartphone mas não pode conectar em uma rede wireless na corporação, tem algo de errado. Claro que algumas informações podem ser gravadas offline (quando o usuário não está na rede da empresa, por exemplo), mas elas seriam enviadas posteriormente para o serviço. Por causa disso não seria tão interessante fazer uma persistência com framework pois um dump da informação pode ser feito pra então ser mandado ao serviço.

São coisas como essa que estamos querendo debater.

Sim Ataxexe, eu entendo o que você está querendo dizer, e o que eu estou dizendo é exatamente o que você está entendo. O ganho dele é exatamente isso! Produtividade. Se para suas aplicações isso não é um ganho, então você não deve usar. Só acho que nem toda aplicação vai ter um servidor para fazer o processamento, tem muitas aplicações que geram arquivos e mandam para um outro sistema a informação pronta. Também tem a questão da internet, que em muitos lugares é ruim de mais ou inexistente e os planos são carissimos. Se você obrigar o cliente a ter internet ilimitada ou um servidor dedicado, já está reduzindo suas possibilidades.

O framework te ajuda a fazer uma coisa que você é obrigado a fazer, apenas isso! Ou seja, obrigatóriamente você terá que manipular dados e certamente você vai cuidar para que essa manipulação de dados não seja exagerada, O framework não vai ficar executando um processo infinito ocupando toda bateria, memória e processamento do aparelho. Ele apenas vai facilitar a persistência e combrar seu preço por isso. No lugar de você fazer um:

Você vai fazer

A ideia é simples e sem grandes pretenções. Apenas facilitar o desenvolvimento! Como já disse e volto a repetir, nos projetos que trabalhei ele sempre foi uma mão na roda, por esse motivo ele está sendo compartilhado, se ele foi útil para os projetos da minha empresa, pode ser útil para outros projetos. Seu uso é extremamente simples, sem grandes complicações. Em poucos passos você já tem seu CRUD.

É nesse ponto que eu queria chegar. O sqlite foi concebido para ser extremamente simples e não precisar desse tipo de solução. Ele é desenvolvido para guardar coisas simples como listas, etc…
Essa informação toda nem precisa ser gravada em um banco, pode ser serializada em um arquivo xml.

Pode parecer que não, mas a questão da bateria é extremamente importante.

Bom, nesse caso você está optando por trabalhar com outro forma de armazenamento. Se em seu projeto ela for mais conveniênte, então ela deve ser a melhor opção para você. E na verdade o SQLite não é tão simples não, ele tem um grande poder de armazenamento suportando varios GB. Na dúvida, dê uma olhada em http://pt.wikipedia.org/wiki/SQLite
E aposto que muitos desenvolvedores preferem SQL do que XML, a final entre acesso a disco em um XML ou SQLite, ainda fico com SQLite que é um banco de verdade e é muito mais simples de manipular. E outra, seguindo a discussão, o Veloster seria um possível gargalo em uma volumosa manipulação de dados, mas como sabemos, em um dispositivo limitado temos que armazenar só o necessário, reduzingo ao máximo a quantidade de dados, isso independênte do seu uso ou não. Então, se a manipulação de dados for grande, com Veloster ou sem Veloster, vai ser um gargalo. E quanto a bateria, tenho aplicações que rodam em background em celulares, e o uso da bateria é considerada dentro do normal. Então voltamos ao ponto inícial, onde tudo vai depender do objetivo da aplicação.

J

Justamente. Eu estava pensando em uma vantagem de trocar um servidor expondo “serviços restful” alimentando um cliente super leve no android.

Na minha opinião, existe um único motivo:

  • 3G Brasileira.

Óbvio, se for um app empresarial onde os dados vão ser acessados somente dentro de uma rede privada, não vejo motivo para deixar o processamento de regras de negocio ser feito pelo Smartphone… Na realidade, nem vejo porque expor um serviço restful… Design responsivo, e aplicação web resolveria o problema de forma muito mais elegante.
Só que não só desse cenário vivem os desenvolvedores Android… Existem aplicativos que devem ter persistência de dados mas não contam com uma rede privada para realiza-la… Idem para processamento de dados. A questão é: Nesse cenário, existe uma queda de performance grande o suficiente ao utilizar o framework que anule as vantagens de utiliza-lo? Não sei, afinal não tem nenhum Benchmark nem nada do tipo… Mas se fosse para chutar, eu diria que não.

Isso mesmo. Acho pouco provavel que em pouco tempo tenhamos condições de fazer aplicações consideradas críticas, como um sistema de pedidos, catalogo de produtos ou coisas do tipo, totalmente off-line. Por exemplo, eu moro no interior do Rio Grande do Sul, em uma cidade que é muito desenvolvidade ecônomicamente, mas muitas empresas estão localizadas em lugares onde 3g não pega e em muitos casos você não pode pedir para o cliente “bah, deixa eu usar tua internet ai pra fazer um pedido e te mostrar os produtos”, até por que depende de uma serie de liberações da TI, e a situação até fica meio estranha. Logo, não temos como fugir do armazenamento dos dados locais, e é por esse motivo que o Android tem banco de dados. Então, se tem banco de dados, usa SQL, usa transações, por que não usar uma maneira simplificada de persistência? O framework não vai usar todos os recursos do dispositivo, a não ser que o desenvolvedor não saiba programar. Certamente ele vai cobrar um preço, que fica a cargo do arquiteto decidir pagar ou não.

Concordo com você ricardobocchi, mas este cenário offline nesse tipo de dispositivo é realmente crítico. Eu venho falando da questão da bateria á alguns posts acima e ninguém se interessou em debater sobre isso, já que 60% de uma aplicação ainda mais offline com grande custo de processamento deve prever. Não pesar isso é uma falha.

J

ricardobocchi:

Bom, nesse caso você está optando por trabalhar com outro forma de armazenamento. Se em seu projeto ela for mais conveniênte, então ela deve ser a melhor opção para você. E na verdade o SQLite não é tão simples não, ele tem um grande poder de armazenamento suportando varios GB. Na dúvida, dê uma olhada em http://pt.wikipedia.org/wiki/SQLite
E aposto que muitos desenvolvedores preferem SQL do que XML, a final entre acesso a disco em um XML ou SQLite, ainda fico com SQLite que é um banco de verdade e é muito mais simples de manipular. E outra, seguindo a discussão, o Veloster seria um possível gargalo em uma volumosa manipulação de dados, mas como sabemos, em um dispositivo limitado temos que armazenar só o necessário, reduzingo ao máximo a quantidade de dados, isso independênte do seu uso ou não. Então, se a manipulação de dados for grande, com Veloster ou sem Veloster, vai ser um gargalo. E quanto a bateria, tenho aplicações que rodam em background em celulares, e o uso da bateria é considerada dentro do normal. Então voltamos ao ponto inícial, onde tudo vai depender do objetivo da aplicação.

Alguns gb em comparação com dezenas de teras é um coisa simples sim. O sqlite foi desenvolvido para trabalhar com embarcados e por isso é simples.
A opção de usar o xml é o que você mesmo acabou de dizer, pois vai apenas guardar coisas simples. Por isso perguntei sobre as vantagens do framework em relação a custo benefício.

Sobre a aplicação rodar em background não tem relação com consumo de energia. O que dita isso é a quantidade de instruções que você joga no processador. No caso está intimamente relacionada com o processamento e logicamente voltamos a questão de ser vantagem ou não usar framework de persistência em dispositivos com poder de processamento, memória e energia limitados.

A

A pergunta (que você respondeu em parte com o caso do sistema de pedidos) era porque usar isso no dispositivo em vez de usar no servidor e porque seria melhor que possíveis alternativas (como o dump que eu citei). É bacana você mostrar isso pra justamente convencer mais pessoas a usarem o framework.

No caso da sua resposta. Eu posso ter o mesmo ganho em produtividade se eu usar o servidor pra fazer essas coisas e um serviço rest. O ponto é: por quê eu irei precisar de algo que vá contra a filosofia da simplicidade do sqlite e onerar o dispositivo com operações que um serviço externo pode fazer (representando uma economia de bateria)? É uma pergunta que as pessoas vão ter quando olharem a premissa do framework.

Eu tirei algumas conclusões sobre ele, tanto que afirmei que ele tinha um mercado restrito. Eu gostaria de ter visto mais debates sobre as alternativas frente ao Veloster e não ao que o Veloster me oferece (que já tinha sido citado antes).

O ponto da bateria é muito crítico (na PlayStore muitas pessoas reclamam sobre o consumo de bateria de alguns apps). As pessoas não compram um smartphone pra usar somente um aplicativo, então não podemos assumir que os 1 GB e 4 processadores do celular estarão lá só pro nosso app, isso tudo será compartilhado entre muitos outros serviços. O simples fato de ignorarmos as permissões de leitura de chamada (para pausar alguma coisa no app caso o usuário receba uma ligação, por exemplo) já pode botar aplicativo lá embaixo.

Não estou querendo gerar flames, acho legal a iniciativa (como eu já havia dito no início do post), dei algumas dicas, mas fiquei com algumas dúvidas e achei que a melhor pessoa pra me responder seria o criador da ferramenta, mas não esperava ler isto:

D

Então você está afirmando que se eu usar o Veloster em uma aplicação eu vou ter um maior consumo de bateria a ponto de não ser uma vantagem utiliza-lo? Afinal é disso que eu estou falando, não devemos comparar o caso da utilização de um serviço Restful/Aplicação Web VS Aplicação nativa usando veloster… A comparação a ser feita deve ser Aplicação Nativa sem veloster VS Com… Na minha opinião são nichos diferentes e devem se tratados como tal…

R

juliocbq:
ricardobocchi:

Bom, nesse caso você está optando por trabalhar com outro forma de armazenamento. Se em seu projeto ela for mais conveniênte, então ela deve ser a melhor opção para você. E na verdade o SQLite não é tão simples não, ele tem um grande poder de armazenamento suportando varios GB. Na dúvida, dê uma olhada em http://pt.wikipedia.org/wiki/SQLite
E aposto que muitos desenvolvedores preferem SQL do que XML, a final entre acesso a disco em um XML ou SQLite, ainda fico com SQLite que é um banco de verdade e é muito mais simples de manipular. E outra, seguindo a discussão, o Veloster seria um possível gargalo em uma volumosa manipulação de dados, mas como sabemos, em um dispositivo limitado temos que armazenar só o necessário, reduzingo ao máximo a quantidade de dados, isso independênte do seu uso ou não. Então, se a manipulação de dados for grande, com Veloster ou sem Veloster, vai ser um gargalo. E quanto a bateria, tenho aplicações que rodam em background em celulares, e o uso da bateria é considerada dentro do normal. Então voltamos ao ponto inícial, onde tudo vai depender do objetivo da aplicação.

Alguns gb em comparação com dezenas de teras é um coisa simples sim. O sqlite foi desenvolvido para trabalhar com embarcados e por isso é simples.
A opção de usar o xml é o que você mesmo acabou de dizer, pois vai apenas guardar coisas simples. Por isso perguntei sobre as vantagens do framework em relação a custo benefício.

Sobre a aplicação rodar em background não tem relação com consumo de energia. O que dita isso é a quantidade de instruções que você joga no processador. No caso está intimamente relacionada com o processamento e logicamente voltamos a questão de ser vantagem ou não usar framework de persistência em dispositivos com poder de processamento, memória e energia limitados.

Então, o que venho querendo dizer é que o beneficio dele é exatamente a facilidade para implementação da camada de persistência e a facilidade na menutenção. A questão bateria é impôrtante sim, por isso mesmo deve ser pesado se é valido o uso do framework no projeto ou não. No meu caso, foi muito válido, sendo que a questão de bateria e desempenho não me forçaram a abandonar os recusros do framework, em meus projetos o preço pago foi o esperado. Tenho aplicações com centenas de registros em tabelas, como nunca processo tudo de uma vez só, não tive maiores problemas. Sempre uso recursos de paginação e lazy para recuperar somente o que realmente preciso. Certamente não vou dizer que o framework aumenta desepenho e aumenta o tempo de vida da bateria, por que isso é irreal, mas como em meus projetos dou um peso diferênciado para produtividade, manutenção e facilidade no CRUD, acredito que sempre saí ganhando.

Baseando-se em um framework como Hibernate, teriamos a mesma discussão, pois ele também cobra um preço bem alto na aplicação, em complexidade e desempenho. Mesmo tendo servidores com grande poder de processamento, para obtermos um bom nível de desempenho, temos que “tunar”, muitas vezes usar SQL’s nativas, pois toda camada que é adicionada para facilitar o trabalho degrada a performance. Tem muita gente que não usa ORM, pois acha “gambiarra” como tem muitos outros que gostam da ideia, isso vai de projeto para projeto.

Agora se considerar que o desempenho e uso de bateria devem passar por cima da produtividade, então não tem benefícios. Por que ele é pensando em produtividade e tenta usar o mínimo de recursos possíveis para se manter, mas mesmo sendo o mínimo, é maior que nada. A questão é: Se você precisa saber exatamente o que está acontecendo em todo o trexo de código da aplicação, você deve optar em usar a API nativa do Android para SQL’s, ou usar XML, como preferir. Se quiser ter maior flexibilidade e facilidade na manipulação da api de acesso a dados, você coloca o Veloster como uma camada intermediaria.

Mas o que todos querem ouvir é o que todo mundo já sabe, se comparado a API nativa com o Veloster perde em desempenho e uso de bateria, e não preciso nem fazer testes para saber isso, pois ele é uma camada intermediaria entre sua aplicação e a API de acesso a dados do Android. Seria a mesma coisa comparar o codigo que roda na vm do android com o código nativo que vai pro processador, mesmo assim, com a perda de desempenho e uso de recursos, eles decidiram usar uma linguagem de alto nível como Java para facilitar a vida do desenvolvedor. Então, tudo é uma questão de custo X benefício.

J

Concordo com você. Sobre a questão da bateria eu a levantei porque realmente é um ponto a se conversar sobre. Existem bibliotecas que fazem processamento de imagem intensivo, com filtros complexos(detectar e reconhecer formas geométricas e rostos) e o custo de energia também é aceitável. Eu não acredito que um framework de persistência consumiria mais que elas.

A questão de produtividade também é importante.

R

A pergunta (que você respondeu em parte com o caso do sistema de pedidos) era porque usar isso no dispositivo em vez de usar no servidor e porque seria melhor que possíveis alternativas (como o dump que eu citei). É bacana você mostrar isso pra justamente convencer mais pessoas a usarem o framework.

No caso da sua resposta. Eu posso ter o mesmo ganho em produtividade se eu usar o servidor pra fazer essas coisas e um serviço rest. O ponto é: por quê eu irei precisar de algo que vá contra a filosofia da simplicidade do sqlite e onerar o dispositivo com operações que um serviço externo pode fazer (representando uma economia de bateria)? É uma pergunta que as pessoas vão ter quando olharem a premissa do framework.

Eu tirei algumas conclusões sobre ele, tanto que afirmei que ele tinha um mercado restrito. Eu gostaria de ter visto mais debates sobre as alternativas frente ao Veloster e não ao que o Veloster me oferece (que já tinha sido citado antes).

O ponto da bateria é muito crítico (na PlayStore muitas pessoas reclamam sobre o consumo de bateria de alguns apps). As pessoas não compram um smartphone pra usar somente um aplicativo, então não podemos assumir que os 1 GB e 4 processadores do celular estarão lá só pro nosso app, isso tudo será compartilhado entre muitos outros serviços. O simples fato de ignorarmos as permissões de leitura de chamada (para pausar alguma coisa no app caso o usuário receba uma ligação, por exemplo) já pode botar aplicativo lá embaixo.

Não estou querendo gerar flames, acho legal a iniciativa (como eu já havia dito no início do post), dei algumas dicas, mas fiquei com algumas dúvidas e achei que a melhor pessoa pra me responder seria o criador da ferramenta, mas não esperava ler isto:

Por que não? Estou sendo realista. Acho que seu uso não é tão restrito, acredito que a maioria das aplicações faz uso de banco de dados. O caso do pedido off-line mostra que além de ter boa parte da regra de negócio na app, também vamos ter boa parte dos dados localmente. O fato é que se você acha que não vale a pena usar uma camada entre sua aplicação e a api de acesso a dados, dificilmente vou fazer você mudar de ideia, e também esse não é meu objetivo. Sim, eu quero que as pessoas usem, até por que coloquei muitas horas de desenvolvimento nesse framework, mas não quero “convencer” ninguém a usar, e sim que quem estiver interessado e achar que pode ter algum ganho, use ele. Vou ser bem honesto, acho que é quese impossível fazer um framework simples e útil que não cobre seu preço no desempenho.
E certamente estamos ai para criticas e sujestões, caso contrario o framework estaria apenas em uso interno. Não estou dizendo que ele vai ocupar todos os recursos do dispositivo, mas também não será tão rápido quanto não usar.

A

A pergunta (que você respondeu em parte com o caso do sistema de pedidos) era porque usar isso no dispositivo em vez de usar no servidor e porque seria melhor que possíveis alternativas (como o dump que eu citei). É bacana você mostrar isso pra justamente convencer mais pessoas a usarem o framework.

No caso da sua resposta. Eu posso ter o mesmo ganho em produtividade se eu usar o servidor pra fazer essas coisas e um serviço rest. O ponto é: por quê eu irei precisar de algo que vá contra a filosofia da simplicidade do sqlite e onerar o dispositivo com operações que um serviço externo pode fazer (representando uma economia de bateria)? É uma pergunta que as pessoas vão ter quando olharem a premissa do framework.

Eu tirei algumas conclusões sobre ele, tanto que afirmei que ele tinha um mercado restrito. Eu gostaria de ter visto mais debates sobre as alternativas frente ao Veloster e não ao que o Veloster me oferece (que já tinha sido citado antes).

O ponto da bateria é muito crítico (na PlayStore muitas pessoas reclamam sobre o consumo de bateria de alguns apps). As pessoas não compram um smartphone pra usar somente um aplicativo, então não podemos assumir que os 1 GB e 4 processadores do celular estarão lá só pro nosso app, isso tudo será compartilhado entre muitos outros serviços. O simples fato de ignorarmos as permissões de leitura de chamada (para pausar alguma coisa no app caso o usuário receba uma ligação, por exemplo) já pode botar aplicativo lá embaixo.

Não estou querendo gerar flames, acho legal a iniciativa (como eu já havia dito no início do post), dei algumas dicas, mas fiquei com algumas dúvidas e achei que a melhor pessoa pra me responder seria o criador da ferramenta, mas não esperava ler isto:

Por que não? Estou sendo realista. Acho que seu uso não é tão restrito, acredito que a maioria das aplicações faz uso de banco de dados. O caso do pedido off-line mostra que além de ter boa parte da regra de negócio na app, também vamos ter boa parte dos dados localmente. O fato é que se você acha que não vale a pena usar uma camada entre sua aplicação e a api de acesso a dados, dificilmente vou fazer você mudar de ideia, e também esse não é meu objetivo. Sim, eu quero que as pessoas usem, até por que coloquei muitas horas de desenvolvimento nesse framework, mas não quero “convencer” ninguém a usar, e sim que quem estiver interessado e achar que pode ter algum ganho, use ele. Vou ser bem honesto, acho que é quese impossível fazer um framework simples e útil que não cobre seu preço no desempenho.
E certamente estamos ai para criticas e sujestões, caso contrario o framework estaria apenas em uso interno. Não estou dizendo que ele vai ocupar todos os recursos do dispositivo, mas também não será tão rápido quanto não usar.

Leia de novo sua frase. Parece que se eu não usar o Veloster é porque eu não acho que produtividade é um ganho. Sendo que existem muitas outras formas de ser produtivo em dispositivos móveis. O Veloster não é a única coisa produtiva no mundo Android e sua frase deu a entender isso. Você só precisava argumentar em cima da alternativa de dump ou serialização em vez de armazenar no sqlite (benchmarks seriam legais pois de repente o custo é o mesmo pra determinado volume de informações - o que seria ideal pra você mostrar o quanto seu projeto é interessante).

Bom, cansei. Temos outro Prevayler: um projeto interessante, mas defendido de forma errada.

R

Ataxexe:

Leia de novo sua frase. Parece que se eu não usar o Veloster é porque eu não acho que produtividade é um ganho. Sendo que existem muitas outras formas de ser produtivo em dispositivos móveis. O Veloster não é a única coisa produtiva no mundo Android e sua frase deu a entender isso. Você só precisava argumentar em cima da alternativa de dump ou serialização em vez de armazenar no sqlite (benchmarks seriam legais pois de repente o custo é o mesmo pra determinado volume de informações - o que seria ideal pra você mostrar o quanto seu projeto é interessante).

Bom, cansei. Temos outro Prevayler: um projeto interessante, mas defendido de forma errada.

Desculpe se me expressei mal, mas não foi a intenção dizer que ele é a meneira mais produtiva do mundo e sim seguir o raciocinio do uso ou não uso do Veloster, que no caso, está implicito no tópico. Você pode sim ser produtivo de diversas maneiras, e o Veloster é uma delas. Não é por que a discussão ficou “calorosa” que o projeto está sendo defendido de maneira errada e sim que ele é interessante o suficiente para gerar uma boa lista de discussão. Acredito que todas as ideias expostas foram entendidas, e isso é muito válido.

A

ricardobocchi:
Ataxexe:

Leia de novo sua frase. Parece que se eu não usar o Veloster é porque eu não acho que produtividade é um ganho. Sendo que existem muitas outras formas de ser produtivo em dispositivos móveis. O Veloster não é a única coisa produtiva no mundo Android e sua frase deu a entender isso. Você só precisava argumentar em cima da alternativa de dump ou serialização em vez de armazenar no sqlite (benchmarks seriam legais pois de repente o custo é o mesmo pra determinado volume de informações - o que seria ideal pra você mostrar o quanto seu projeto é interessante).

Bom, cansei. Temos outro Prevayler: um projeto interessante, mas defendido de forma errada.

Desculpe se me expressei mal, mas não foi a intenção dizer que ele é a meneira mais produtiva do mundo e sim seguir o raciocinio do uso ou não uso do Veloster, que no caso, está implicito no tópico. Você pode sim ser produtivo de diversas maneiras, e o Veloster é uma delas. Não é por que a discussão ficou “calorosa” que o projeto está sendo defendido de maneira errada e sim que ele é interessante o suficiente para gerar uma boa lista de discussão. Acredito que todas as ideias expostas foram entendidas, e isso é muito válido.

Entendo. Sem prooblemas.

Uma boa opção pra você é fazer algum benchmark utilizando o volume de dados processados como parâmetro. Acredito que pode mudar a concepção de muita gente sobre o uso da ferramenta.

R

E ai pessoal…

Realizamos o benchmark do Veloster, vocês podem conferir os resultados em http://ricardobocchi.blogspot.com.br/2013/04/veloster-benchmark.html

Até!

Criado 13 de dezembro de 2012
Ultima resposta 26 de abr. de 2013
Respostas 47
Participantes 9