Sou novo por aqui, então se estiver fazendo algo de errado me alertem.
Olhei alguns tópicos do fórum, porém não obtive conclusão. Estou fazendo uma pequena aplicação (Primeira que vou publicar), e cheguei na etapa em que é necessário manipular dados, porem surgiu algumas dúvidas em relação ao uso de ORMs. Gostaria da opnião de vocês em relação a ORMs, dicas, sugestões, se é devo ou não utilizar o mesmo, se a utilização dele pode descarregar a bateria com mais facilidade por estar utilizando um framework, se é vantajoso ou não mesmo sendo um aplicação de pequeno porte.
Eu não gosto da ideia de usar um ORM pra Android. Usar um significa abusar de reflexão em um ambiente que precisa ser otimizado pra não consumir muitos recursos do dispositivo (lembrando que a reflexão não pode ser otimizada pelo JIT - que já está presente desde o Android 2.2).
Eu sugiro que você estude muito bem o ORM que quiser utilizar para ver se não existe uma perda notável de desempenho do aplicativo, principalmente em dispositivos mais antigos, e veja exemplos de como usá-lo para não colocar um monstrinho que vai exigir que você mude a estrutura das suas classes só pra usar a persistência. O Sugar ORM é um bom exemplo disso (é intrusivo demais):
[code]public class Book extends SugarRecord<Book> {
String title;
String edition;
[quote=Ataxexe]Eu não gosto da ideia de usar um ORM pra Android. Usar um significa abusar de reflexão em um ambiente que precisa ser otimizado pra não consumir muitos recursos do dispositivo (lembrando que a reflexão não pode ser otimizada pelo JIT - que já está presente desde o Android 2.2).
Eu sugiro que você estude muito bem o ORM que quiser utilizar para ver se não existe uma perda notável de desempenho do aplicativo, principalmente em dispositivos mais antigos, e veja exemplos de como usá-lo para não colocar um monstrinho que vai exigir que você mude a estrutura das suas classes só pra usar a persistência. O Sugar ORM é um bom exemplo disso (é intrusivo demais):
[code]public class Book extends SugarRecord<Book> {
String title;
String edition;
Book book = new Book(ctx, “Title here”, “2nd edition”)
book.save();
Book book = Book.findById(Book.class, 1);
[/code][/quote]
Atualmente, tenho a mesma impressão de não utilizar ORM pra android, porém o objetivo foi pesquisar sobre vantagens e desvantagens dele, e por fim verificar se é aplicável a um determinado projeto.
Em relação a sugestão dei uma olhada breve. Estou implementando um aplicativo e vou simular a manipulação de dados com SQLite e com o Sugar ORM fazendo vários testes, desde desempenho até o consumo excessivo de bateria do aparelho. Ao fim da pesquisa vou postar o resultado neste tópico.
Aproveite e teste outros ORMs também. Eu achei esse Sugar ORM muito intrusivo e, por mais que ele seja rápido e tudo o mais, eu não me vejo adotando ele em um projeto.
Eu, sinceramente, sou fã do projeto AndroidAnnotations. Eles usam anotações para pré-processamento, ou seja, geram código no momento da compilação. Isso remove totalmente a necessidade de reflexão. Eu só acho que usar uma abordagem dessas para construir um ORM seria muito complicada de manter… mas seria muito bacana.
Dei uma olhada em alguns ORMs e achei esses dois aqui e acho que você poderia dar uma olhada neles:
Conviver com a democracia é realmente algo que precisa ser mais praticado. Principalmente quando somos contrariados.
Os rapazes apenas estavam externando suas opiniões, pertinentes na minha opinião.
Você samerjamal, deveria defender seu ponto de vista, mostrar as vantagens de usar um ORM num aplicativo Android, se tiver números para mostrar que um ORM seja mais performático, por exemplo, seria interessante.
Não seja tão dramático, Gusukama. Você escolheu um “lado” para concordar e não usou a mesma lógica ao analisar a maneira que eles se portaram, desnecessariamente, em relação ao que levantei no tópico (ISSO SIM FOI PERTINENTE, ao menos em relação ao assunto do tópico).
Eu postei algo relacionado ao assunto do tópico, me dei ao trabalho de pesquisar, entrar aqui e postar algo relacionado ao assunto.
Eles se deram ao trabalho de entrar em um tópico de um assunto que eles discordam, apenas para demonstrar a pretensa superioridade deles, sem ao menos questionar o motivo da minha dúvida. Eu poderia muito bem estar fazendo uma pesquisa, ou poderia querer usar a facilidade de um ORM para um simples protótipo, entre outras dezenas de motivações.
Caso eles tivessem acrescentado algo à discussão, certamente eu me portaria diferente. Apenas rebati a arrogância deles.
[quote=samerjamal]Não seja tão dramático, Gusukama. Você escolheu um “lado” para concordar e não usou a mesma lógica ao analisar a maneira que eles se portaram, desnecessariamente, em relação ao que levantei no tópico (ISSO SIM FOI PERTINENTE, ao menos em relação ao assunto do tópico).
Eu postei algo relacionado ao assunto do tópico, me dei ao trabalho de pesquisar, entrar aqui e postar algo relacionado ao assunto.
Eles se deram ao trabalho de entrar em um tópico de um assunto que eles discordam, apenas para demonstrar a pretensa superioridade deles, sem ao menos questionar o motivo da minha dúvida. Eu poderia muito bem estar fazendo uma pesquisa, ou poderia querer usar a facilidade de um ORM para um simples protótipo, entre outras dezenas de motivações.
Caso eles tivessem acrescentado algo à discussão, certamente eu me portaria diferente. Apenas rebati a arrogância deles.[/quote]
Veja que eu não escolhi um lado, eu já tinha um lado, apenas declarei pelo acontecido.
Eles comentaram sobre o tópico, não citaram você em nenhum momento.
Não sou advogado de ninguém, então, (se quiserem) eles podem argumentar por conta própria.
Quanto às suas motivações, podem ser pertinentes, mas se desejar discutir, tem que explicitar. Agora, o que eu levantei é a inutilidade de se trocar “gentilezas” nesse nível. Mas, cada um é cada um.
Eu nem estava me referindo a você. Apenas comentei que é complicado quando não nos adequamos ao que estamos mexendo e dei aquele exemplo. Eu mesmo já fiz muito código em ruby com fedor de java justamente por não me ambientar totalmente com ruby.
Eu respondi esse tópico logo quando ele nasceu e, apesar de ele já ter feito aniversário, minha posição continua a mesma: ORM para Android é a solução para um problema que não existe.
[quote=Ataxexe][quote=samerjamal]Eu não queria discutir nada, apenas perguntei a quem abriu o tópico se ele fez os testes.
E não falo mais sobre o assunto, abraço a todos.[/quote]
Se não queria discutir nada, por quê postou em um forum de discussões? Teria sido até melhor ter enviado uma mensagem privada para o autor do tópico.[/quote]
Que eu saiba, não existe nenhuma regra obrigando a discutir os assuntos de maneira aprofundada.
E outra, até discutiria se fossem menos sabichões e arrogantes na maneira de tratar o assunto. Se ainda não entenderam isso, posso desenhar pra vocês.
REPITO: Que fossem menos arrogantes e falassem exatamente isso: atualmente ainda existem rejeições ao uso de ORM para mobile.
REPITO: Se acham que aqueles comentários são a maneira certa de se portar a um colega, bom para todos vocês, continuem assim.
REPITO: Se não tem com o que contribuir, não vomitem pelo teclado.