Bom dia amigos;
tenho pouca experiencia com Android, mas já tenho diversos app’s por ai. A minha dúvida é sobre melhorar o funcionamentos.
A algum tempo construí um PDV para android (especificamente venda externa) e estava funcionando normalmente até o volume de pedidos aumentou e também o volume de itens por pedido aumentou demais.
Como ele já tinha o sistemas muitas informações foram necessários no envio. Antes tinham 10 à 15 itens agora tem 80 itens as vezes. E o que aconteceu? Como eu usava o Gson para converter minha lista em json nunca me preocupei com a quantidade. Hoje diminui e reparto e mando de 10 em 10.
Gostaria de saber de alguem que tem uma boa experiencia me orientar o que fazem, pois vi a minha solução assim.
O webservice é em C#, foi uma exigência. A questão de inserir está tranquilo. Na verdade o funcionamento em geral não estou tendo problemas.
quando se fala em mobile temos q ter em mente restrições desse ambiente em relação a memoria e conectividade: fato
quanto utilizamos uma API ( rest ? ) se vc tem que trazer mais e mais itens, isso pode ser dispendioso pois
1- talvez a sua aplicação nao consiga mostrar todos os 80
2- talvez a query no banco de dados comece a demorar
3- o tempo para serializar, enviar os bytes e deserializar só cresce
tem que ver onde o bixo pega. em geral vc paginar uma pesquisa é bom pq vc mata varios coelhos de uma vez.
agora eu olharia na sua estrategia de cache, se é que existe. vc pode ter cache no nivel da aplicação ao acessar o banco de dados e no nivel da API ( se for rest vc pode usar ETAG / If-Modify-Since / etc ).
quase sempre o bixo pega no acesso ao banco e são coisas facilmente cacheaveis. agora se vc tem processamento ai tem que rever outras coisas ( talvez servidor não dimensionado para o acesso, etc ).
Bom eu não gerencio o cache;
a exibição não é o problema é quando envio, e envio como uma paginação(uma parte e depois a parte seguinte e daí por diante).
o meu problema está em no envio do json, que parece ser muito grande, coisa de 4825 caracteres e será feito 82 e será inserido 82 vezes em 20 colunas
Me explique melhor sobre:
talvez servidor não dimensionado para o acesso
se for rest vc pode usar ETAG / If-Modify-Since / etc
o ultimo não sobre rest, mas sobre o que eu posso usar…
vc consome uma api ? acessa via HTTP? deveria estudar sobre HTTP e cache, sobretudo usando os headers apropriados.
agora eu, honestamente, não entendi o seu problema
é que quando está enviando o meu aparelho para de funcionar quando estou enviando uma grande quantidade. Retorna erros, mas quando pego o json e mando executar direto no webservice ele funciona sem problema algum, mas quando a quantidade de caracteres é grande o bicho pega aí.