Cadastro em modo Online e Offline com sincronismo de dados

1,239 views
Skip to first unread message

Gorio

unread,
Jan 31, 2014, 12:19:36 PM1/31/14
to androidbrasil-dev
Boa tarde a todos,

Surgiu uma dúvida. Vou contar a ideia que preciso implementar e gostaria que todos que puderem colaborar eu ficarei muito agradecido.

Preciso fazer um sistema de Login, parece ser simples, mas a ideia é que o usuário possa trabalhar de forma OFFLINE e quando estiver conectado à Internet, os dados que estarão na base sqlite deverão ser sincronizados com uma base da web.

Lógico que o usuário será avisado para realizar o sincronismo quando estiver ONLINE, pra não ficar com a impressão de que pretendo "extrair" informações do mesmo.

Alguém poderia me dar uma luz, algum pattern ou algo do gênero pra realizar esta operação ?

Muito Obrigado

Atenciosamente

Eduardo Gorio
(www.gorio.eng.br)

 

Pedro Subutzki <Pepeu>

unread,
Jan 31, 2014, 12:30:41 PM1/31/14
to androidb...@googlegroups.com
Isso é a coisa mais normal do mundo.
Você precisa criar um WS (seja soap ou rest) e por ele conseguir executar as ações que você quer (criar usuário, fazer login, trocar as informações com o mobile).


Abraços,
Pedro Subutzki
__________________________________________
HADI - Makes SQLite in Android easy and simple
https://github.com/PepeuCps/Hadi


--
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Gorio

unread,
Jan 31, 2014, 12:41:41 PM1/31/14
to androidbrasil-dev
Não sei se entendi certo a sua resposta, mas eu sei fazer o cadastro das duas formas

tanto da forma Online:

ANDROID (INTERNET) -> PHP -> MYSQL <- PHP <- (INTERNET) ANDROID 


e Offline

ANDROID ->  SQLITE <- ANDROID

Porém, precisaria manter as bases MYSQL e SQLITE sincronizadas quando existir conexão de internet.

Obrigado 

Atenciosamente

Eduardo Gorio
(www.gorio.eng.br)

 



Lucas de Castro Carvalho

unread,
Jan 31, 2014, 1:00:23 PM1/31/14
to androidb...@googlegroups.com
Boa tarde Eduardo,

Você pode trabalhar de duas formas diferentes, criando um servidor de Cache dentro do seu próprio aplicativo ou trabalhar diretamente com o JSON, oque ate aonde eu li ele é funcional porem muito pesado para um aplicativo de alta qualidade, sempre ao trabalhar com o android você tem que pensar primeiramente em desempenho do seu aplicativo, o servidor de cache alem de te dar mais controle sobre sua aplicação te garante muito mais desempenho. Estou a disposição para ajudar caso você precise entender as duas formas.

Atenciosamente,

Lucas Carvalho

Pedro Subutzki <Pepeu>

unread,
Jan 31, 2014, 1:04:05 PM1/31/14
to androidb...@googlegroups.com
Bom... eu gravo tudo local independente da conexão. 
Depois eu faço o envio para o servidor através de um serviço que fica rodando no device.
No meu caos isso faz sentido, você pode deixar pra executar a sincronização através de um botão por exemplo, aí nesse momento você verifica se existe conexão.

O importante é você entender a mecânica da troca de dados. Ficou claro pra você?




Abraços,
Pedro Subutzki
__________________________________________
HADI - Makes SQLite in Android easy and simple
https://github.com/PepeuCps/Hadi


Gorio

unread,
Jan 31, 2014, 1:08:23 PM1/31/14
to androidbrasil-dev
Sim entendi o seu ponto de vista. 

Queria apenas ver ser existia alguma forma "elegante" vamos dizer assim de fazer essa tarefa. A princípio farei desta forma e ao decorrer verei se há algo mais elaborado.

Obrigado

Atenciosamente

Eduardo Gorio
(www.gorio.eng.br)

 



Pedro Subutzki <Pepeu>

unread,
Jan 31, 2014, 1:17:18 PM1/31/14
to androidb...@googlegroups.com
Uma outra forma seria você tentar enviar a informação e ficar aguardando uma confirmação do server. Se não conseguir essa confirmação você grava a informação no device.
Tudo depende do que faz sentido pra sua app.


Abraços,
Pedro Subutzki
__________________________________________
HADI - Makes SQLite in Android easy and simple
https://github.com/PepeuCps/Hadi


César Manuel Malainho Oliveira

unread,
Feb 3, 2014, 10:38:33 AM2/3/14
to androidb...@googlegroups.com
Olá Lucas, boa tarde,

Gostaria de lhe colocar uma questão

O que você quis dizer com: criando um servidor de Cache dentro do seu próprio aplicativo

Como se faz isso ?

Muito obrigado

Um abraço
César Malainho



--

Plínio Almeida

unread,
Feb 5, 2014, 7:24:15 AM2/5/14
to androidb...@googlegroups.com
Eduardo, 
o pessoal já explicou bem como fazer. Vou colocar aqui como eu faço, apenas na tentativa de somar.

Eu tenho a estrutura Android/Sqlite, para a coleta dos dados offline, e o restante do sistema em PHP/Mysql, aonde é feito o restante do trabalho.
Para o envio para o servidor, utilizo a biblioteca Volley, recebendo os dados de confirmação via JSON e trabalhando essa resposta na aplicação. Do lado do PHP recebo os dados, insiro no banco e devolvo um JSON.
A conexão tem sido bem rápida, então acho que foi uma boa solução.

abraços

Geronildo Jr.

unread,
Apr 9, 2014, 9:00:13 PM4/9/14
to androidb...@googlegroups.com
[Ressuscitando o Post] 

 Gostaria de tirar uma dúvida que tem a ver com o post, ao menos no sentido de sincronismo de dados do app em diversos aparelhos. Não sei se é possível e, se for, se é uma boa opção: colocar arquivo do bd (SQLITE) numa pasta compartilhada com alguns usuários do googledrive e todos os apps utilizam este mesmo banco para o CRUD. Detalhe, todos os aparelhos usando a mesma conta gmail. É possível? Se sim, vale a pena? A ideia surgiu para o fato do cliente não querer pagar um provedor para guardar o banco (e acessá-lo de modo tradicional).

O que sugerem? 

Marcelo Henrique

unread,
Apr 9, 2014, 10:12:04 PM4/9/14
to androidb...@googlegroups.com
Compartilharem o mesmo "banco". acho complicado. O que você pode fazer e voltar pra forma antiga de (leitura e escrita em arquivo), mas como disse é complicado. Como você pode garantir a integridade dos dados? 
Pense bem. ! para não perder tempo  


--
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.



--
                                              - Marcelo Henrique -

  "Se não puder se destacar pelo talento, vença pelo esforço." (Dave Weinbaum).
              "Mate o pecado antes que ele o mate." ( Richard Baxter ).

Geovani de Souza

unread,
Apr 10, 2014, 7:16:23 AM4/10/14
to androidb...@googlegroups.com
Geronildo, essa é uma péssima ideia. Há um problema sério: Enquanto o app estiver usando o DB, o arquivo fica travado e a sincronização do arquivo não acontece.

Trabalho em um projeto corporativo, utilizando esse cenário de online/offline com sincronização. Uma coisa já te adianto: não é fácil, mas vale muito a pena.

Use o SyncAdapter do Android e dê uma olhada nesta palestra https://www.youtube.com/watch?v=xHXn3Kg2IQE.

Geronildo Jr.

unread,
Apr 10, 2014, 9:40:56 AM4/10/14
to androidb...@googlegroups.com
Oi Geovani, bom dia!

Ainda não vi o vídeo (mas verei assim que possível, pois meu 2G simulando 3G não permite ver vídeos, hahaha)!

Pensei numa solução: SMS. 

A função do app é bem simples: acompanhar a produção (vendas) dos Colaboradores em tempo real, mas o cliente não quer bancar uma estrutura de backend (um servidor web) e não dispõe de um computador próprio para fazer essa função. Então o desafio do projeto é prover a troca de informações entre os aparelhos de modo que apenas 1 (o Administrador) tenha em seu banco de dados a produção de todos os Colaboradores. 

Para não complicar, até por conta do prazo, pensei em utilizar essa troca de informação através de SMS (pois todos os que utilizarão o app já possuem pacote de SMS da sua operadora). 
  1. Colaborador registra no app uma venda;
  2. O app do Colaborador envia um SMS para o Adm com as informações do insert;
  3. O App do Adm recebe essa SMS, lê, faz o inserte no banco do Adm e depois apaga esse SMS recebido.
O que acham? Estou aberto a sugestões!!!

Geronildo Jr.

unread,
Apr 10, 2014, 10:13:20 AM4/10/14
to androidb...@googlegroups.com
Neste momento lendo sobre Mobile Backend Starter

Geovani de Souza

unread,
Apr 10, 2014, 10:26:22 AM4/10/14
to androidb...@googlegroups.com
Geronildo, bom dia.

Reitero que não acho essa abordagem muito boa. SMS não é feito pra isso. E se não houver torre? E se a operadora não entregar a mensagem? E se entregar duplicada?

No caso desse cliente "economizador" vc pode sugerir um cenário com diversos backends em cloud ou montar uma infraestrutura interna com wifi.

Google App Engine, Amazon AWS, Parse, diversos players de mercado têm planos em que um determinado limite é gratuito. Não há uma razão pra reinventar a roda. E não há razão para sacrificar uma boa infraestrutura em nome da economia. Se ele quer o resultado para a empresa, precisa entender que isso envolve investimentos.

Geronildo Jr.

unread,
Apr 10, 2014, 10:34:20 AM4/10/14
to androidb...@googlegroups.com
Concordo com você!

Achei esse tutorial nas minhas buscas por soluções: 

Synchronizing Android Applications - Part 1


Me parece promissor! Vou testar e retorno se é bom!

Luiz Carvalho

unread,
Apr 13, 2014, 8:07:29 PM4/13/14
to androidb...@googlegroups.com
Obrigado por compartilhar Geronildo. Estava precisando de algo no gênero.

Geronildo Jr.

unread,
Apr 27, 2014, 12:43:49 PM4/27/14
to androidb...@googlegroups.com
Geovani, obrigado pela dica. Optei por utilizar o Parse e o projeto ficou show de bola. Essa ferramenta é muito útil e ideal para projetos pequenos, pois o plano básico lhe dá 1 milhão de requisições por mês. :)

Edgard Levy

unread,
Apr 28, 2014, 7:51:50 AM4/28/14
to androidb...@googlegroups.com
Olá, sugerindo outra plataforma diferente do parse e ilimitada para api calls tem o  http://buddy.com/pricing/ sem contar que é cross-platform... entao achei bem interessante... ja que no nomento estou trab num projeto comecando pelo wp8.. e depois vou para o ios e android... e ainda tem api para um monte se situacoes... vale a pena dar uma olhada..

Geronildo Junior

unread,
Apr 28, 2014, 8:32:18 AM4/28/14
to androidb...@googlegroups.com

Opa, obrigado pela contribuição Edgard. Me animou muito ler que as requisições na API são ilimitadas. Darei uma olhada, com certeza! :)

 

 

Atenciosamente,

 

Geronildo Junior

geron...@gmail.com

 Oi (81) 8841-8472

Tim (81) 9521-8332

--
You received this message because you are subscribed to a topic in the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/androidbrasil-dev/U1VXIeUxDSI/unsubscribe.
To unsubscribe from this group and all its topics, send an email to androidbrasil-...@googlegroups.com.


For more options, visit https://groups.google.com/d/optout.




Este email está limpo de vírus e malwares porque a proteção do avast! Antivírus está ativa.


Reply all
Reply to author
Forward
0 new messages