Aplicação em ANDROID usando Visual Studio .NET

Pessoal sou novo aqui no fórum e também noob em programação para ANDROID, ontem na empresa onde trabalho foi levantada a seguinte necessidade:

  1. Precisamos criar um aplicativo para cadastrar algumas informações de alguns cliente “in loco” (local onde se encontra o cliente), os dados são basicamente, informações sobre nome, CPF, RG, e algumas informações a mais.

  2. Precisamos emitir um documento e o cliente assiná-lo no local.

  3. Precisamos fotografar os documentos (como uma xerox) como: RG, CPF, o documento assinado acima mencionado, entre outros documentos e gerar um PDF dos mesmos.

  4. Para cada pessoa então devemos criar uma pasta para conter estes arquivos fotografados e estas pastas devem ser referenciadas no registro da pessoa que está sendo cadastrada.

Atualmente o processo é feito de forma manual, e temos que levar impressora e máquina xerox para os documentos o que torna o processo moroso e muitas vezes desgastante.

Então pensei, bom acho que podemos usar um Tablet com Android e criar uma aplicação simples para coleta destas informações, assim entramos com as informações, a aplicação linka os documentos fotografados (chama a câmera) e cria pasta para os mesmos e coloca o link da pasta no registro do cliente.

Fui programador Delphi, porém não tenho a menor noção de como irei fazer isso no Tablet + Android.

Olhando na WEB encontrei como programar para ANDROID usando MS VISUAL STUDIO 2010 com JAVA ou C# (gostaria de usar ele pois já usei para ASP .NET e gostei muito pela praticidade) aqui: http://tecnopad.blog…vendo-para.html

Também me deparei com o projeto XAMARIN (acho que é pago não sei, alguém sabe?) aqui: http://docs.xamarin…ed/hello,_world

Minhas dúvidas são?

  1. Estou no caminho certo?

  2. Existem outras tecnologias, outra forma melhor de eu criar esta aplicação?

  3. Qual banco de dados uma Aplicação Tablet + ANDROID usa? Tem banco de dados FREEWARE?

  4. O volume é no máximo de 5.000 registros, será que com as imagens PNG ou PDF dá pra usar uma aplicação assim num Tablet?

  5. Se não possível isso, seria possível criar uma aplicação WEB (ASP .NET) no servidor da empresa e usar um cliente web no Tablet para coletar esses dados e enviar para o servidor (meu medo é a morosidade no envio dos arquivos gráficos)? Se sim qual seria esse a melhor forma de fazer isso?

Desculpe o texto grande, mas ficou impossível tirar minha dúvida resumindo demais e desde já agradeço toda ajuda possível.

Atte.

Druid®

Boa noite.

Pareceu bem interessante a usa proposta de usar uma aplicação mobile para efetuar o cadastramento dos dados do seu cliente. Acho mais interessante não usar uma solução web, visto que você irá precisar de uma conexão 3G ou Wi-Fi em seu tablet ou Android e dependendo do local isso pode não ser possível. Você pode armazenar os dado no proprio dispositivo e na sua empresa fazer a sincronização dos dados com o servidor.

Aplicações android usam o SQLite, que é um banco de dados free. Ele é bastante usado pela maioria das aplicações.

Você falou de uma coisa muito interessante, a Xamarin. Eles disponibilizam ferramentas para desenvolvimento de aplicações para Andriod e IOS usando C# e eu considero esse projeto Fabuloso.
Você pode desenvolver a aplicação na IDE deles, o Xamarin Studio ou através de um plugin para o Visual Studio que eles diponibilizam. No entanto, terá de usar o Visual Studio pago, visto que o Visual Studio Express não suporta plugins.

Eles disponibilizam uma versão Starter da ferramenta, no entanto ela só permite gerar binários de no máximo 32Kb, mas é o suficente para conhecer a ferramenta.

Se quiser saber de preços, veja esse link: https://store.xamarin.com/

GUJ duplicou o post

[quote=matheuslmota]Boa noite.

Pareceu bem interessante a usa proposta de usar uma aplicação mobile para efetuar o cadastramento dos dados do seu cliente. Acho mais interessante não usar uma solução web, visto que você irá precisar de uma conexão 3G ou Wi-Fi em seu tablet ou Android e dependendo do local isso pode não ser possível. Você pode armazenar os dado no proprio dispositivo e na sua empresa fazer a sincronização dos dados com o servidor.

Aplicações android usam o SQLite, que é um banco de dados free. Ele é bastante usado pela maioria das aplicações.

Você falou de uma coisa muito interessante, a Xamarin. Eles disponibilizam ferramentas para desenvolvimento de aplicações para Andriod e IOS usando C# e eu considero esse projeto Fabuloso.
Você pode desenvolver a aplicação na IDE deles, o Xamarin Studio ou através de um plugin para o Visual Studio que eles diponibilizam. No entanto, terá de usar o Visual Studio pago, visto que o Visual Studio Express não suporta plugins.

Eles disponibilizam uma versão Starter da ferramenta, no entanto ela só permite gerar binários de no máximo 32Kb, mas é o suficente para conhecer a ferramenta.

Se quiser saber de preços, veja esse link: https://store.xamarin.com/[/quote]

Oi amigo Mateus, pensei exatamente isto que você falou, porque eles querem agilidade e um TABLET com aplicação ANDROID vai ficar mais rápido e como você mesmo disse depois eu sincronizo os dados para carregar na base de dados MySQL que é gerenciada por uma aplicação Delphi, só estou receoso de as cópias das fotos ficar muito grande e não cabe os quase 5 mil registros + as imagens, não conheço quase nada desta coisa Tablet, não sei qual a capacidade de um, se usa HD SSD ou apenas aqueles 32 Megas de cartão que vejo nos celulares, essa é minha única preocupação porque de resto eu só tenho que aprender a usar C#, mas quem programou em Delphi e um pouco de Java, não ser um bicho de sete cabeças e o Visual Studio ajuda bastante na codificação, pelo menos em VB não tive problema para aplicações ASP .NET?

Só preciso agora saber se o Tablet (SAMSUNG) vai comportar as imagens que tem que ser fotografadas dos documentos para dentro dele, na realidade a aplicação delphi irá trabalhar com PDF, mas deve ter alguns plugin para coverter PNG para PDF.

Obrigado pela resposta e aguardo algumas respostas sobre estas novas dúvidas :).

Druid®

Você já tem pouca experiência e ainda está complicando seu ambiente por que?
Use Eclipse e a API Android padrão.

Assim você terá infinitamente menos problemas.

Tópico movido para o fórum de dispositivos móveis.

[quote=ViniGodoy]Você já tem pouca experiência e ainda está complicando seu ambiente por que?
Use Eclipse e a API Android padrão.

Assim você terá infinitamente menos problemas.[/quote]
+1

Também não entendi nada dessa história de Visual Studio/C# para fazer uma aplicação Android. Acho que o propósito do Xamarin é ser uma alternativa"Cross-platform", mas até para isso eu teria minhas dúvidas de adotá-lo para o caso de app nativa por ficar preso e não poder andar junto a verdadeira comunidade Android e iOs. Até eu que conheço muito mais C# não usaria.

De preferência faz um curso de desenvolvimento Android tipo esse: http://www.k19.com.br/downloads/apostilas/java/k19-k41-desenvolvimento-mobile-com-android Tem até uma apostila ai caso não possa fazer o curso. No mais google e referências.

Se tiver aplicação Web no meio dessas soluções, ai concordo usar ASP.NET MVC com C#, caso o servidor for Windows.

[quote=javaflex][quote=ViniGodoy]Você já tem pouca experiência e ainda está complicando seu ambiente por que?
Use Eclipse e a API Android padrão.

Assim você terá infinitamente menos problemas.[/quote]
+1

Também não entendi nada dessa história de Visual Studio/C# para fazer uma aplicação Android. Acho que o propósito do Xamarin é ser uma alternativa"Cross-platform", mas até para isso eu teria minhas dúvidas de adotá-lo para o caso de app nativa por ficar preso e não poder andar junto a verdadeira comunidade Android e iOs. Até eu que conheço muito mais C# não usaria.

De preferência faz um curso de desenvolvimento Android tipo esse: http://www.k19.com.br/downloads/apostilas/java/k19-k41-desenvolvimento-mobile-com-android Tem até uma apostila ai caso não possa fazer o curso. No mais google e referências.

Se tiver aplicação Web no meio dessas soluções, ai concordo usar ASP.NET MVC com C#, caso o servidor for Windows.[/quote]

Obrigado amigo Vini pela sua resposta e atenção, na realidade eu quero aprender C#, e esta me pareceu uma boa oportunidade, vejo muitas empresas com deficiência de profissionais C# e JAVA o mercado esta saturado, de qualquer forma, para facilitar vou dar uma olhada no Eclipse para Android.

Obrigado amigo javaflex pela sua resposta e atenção, vou dar uma olhada no seu link, caso a coisa fique ruim com C#/VisualStudio/Xamarin, tento resolver com plataforma Eclipse para Android com Java mesmo.

Abraço,

Druid®

[quote=Druid]

Obrigado amigo Vini pela sua resposta e atenção, na realidade eu quero aprender C#, e esta me pareceu uma boa oportunidade, vejo muitas empresas com deficiência de profissionais C# e JAVA o mercado esta saturado, de qualquer forma, para facilitar vou dar uma olhada no Eclipse para Android.

Obrigado amigo javaflex pela sua resposta e atenção, vou dar uma olhada no seu link, caso a coisa fique ruim com C#/VisualStudio/Xamarin, tento resolver com plataforma Eclipse para Android com Java mesmo.

Abraço,

Druid®[/quote]

Bom, você pode testar a versão Starter do Xamarin Studio, que é gratuita, e vê se gosta da ferramenta. No fim, é mais seguro fazer na ferramenta que você sabe. Se souber Java, faça em Java mesmo (o que não lhe impede de continuar estudando a ferramenta da Xamarin).

[quote=Druid][quote=javaflex][quote=ViniGodoy]Você já tem pouca experiência e ainda está complicando seu ambiente por que?
Use Eclipse e a API Android padrão.

Assim você terá infinitamente menos problemas.[/quote]
+1

Também não entendi nada dessa história de Visual Studio/C# para fazer uma aplicação Android. Acho que o propósito do Xamarin é ser uma alternativa"Cross-platform", mas até para isso eu teria minhas dúvidas de adotá-lo para o caso de app nativa por ficar preso e não poder andar junto a verdadeira comunidade Android e iOs. Até eu que conheço muito mais C# não usaria.

De preferência faz um curso de desenvolvimento Android tipo esse: http://www.k19.com.br/downloads/apostilas/java/k19-k41-desenvolvimento-mobile-com-android Tem até uma apostila ai caso não possa fazer o curso. No mais google e referências.

Se tiver aplicação Web no meio dessas soluções, ai concordo usar ASP.NET MVC com C#, caso o servidor for Windows.[/quote]

Obrigado amigo Vini pela sua resposta e atenção, na realidade eu quero aprender C#, e esta me pareceu uma boa oportunidade, vejo muitas empresas com deficiência de profissionais C# e JAVA o mercado esta saturado, de qualquer forma, para facilitar vou dar uma olhada no Eclipse para Android.

Obrigado amigo javaflex pela sua resposta e atenção, vou dar uma olhada no seu link, caso a coisa fique ruim com C#/VisualStudio/Xamarin, tento resolver com plataforma Eclipse para Android com Java mesmo.

Abraço,

Druid®[/quote]
Beleza Druid, o importante é não por a tecnologia na frente da necessidade. Se quer aprender C# vai estudando por fora e quando surgir um projeto web em servidor Windows use ASP.NET MVC por exemplo. De qualquer maneira usar Xamarin só para poder aprender a linguagem C# não é muito “considerável” no mercado, a linguagem é o de menos, o mais importante são os tipos de aplicações, ASP.NET MVC, WPF, etc.

De onde você tirou a informação de que o mercado está “saturado de profissionais java e deficitário de profissionais C#”?

De qualquer forma, se vai haver um servidor na empresa, faça-o em C# com MS MVC, como o JavaFlex recomendou.
E, o lado mobile, faz mesmo em Java + Android.

[quote=ViniGodoy]De onde você tirou a informação de que o mercado está “saturado de profissionais java e deficitário de profissionais C#”?

De qualquer forma, se vai haver um servidor na empresa, faça-o em C# com MS MVC, como o JavaFlex recomendou.
E, o lado mobile, faz mesmo em Java + Android.[/quote]

Valeu amigo Vini, já instalei o Eclipse for Android aqui e vou me aventurar nele pelo momento, mas vou precisar da ajuda do pessoal aqui no que diz respeito a: persistência com o banco de dados para tablete, e acesso a câmera fotográfica e criação e guarda desta fotos para poder referenciar no banco de dados e ainda tenho que exportar o banco de dados para uma planilha excel 2007, se alguém tem alguma idéia, código, tutorial, por favor não se acanhem :lol:.

Quanto as fontes de Java e C#, posso dizer baseado na minha cidade Curitiba, tem muito programador JAVA por aqui e pouco em C#, e como a Microsoft infelizmente tem um marketing “du c@sste”, muitas oportunidades eu perdi por não conhecer o C# (Essa é a grande merd@, pelo menos aqui em Curitiba, o profissional de TI não é medido pelo sua capacidade de lógica de programação e/ou Análise de Sistemas, e sim se você programa bem em X ou Y…).

Abração,

Druid®

P.S. Qual banco de dados vocês recomendam para Tablet com Android?

Engraçado, eu moro em Curitiba e conheço diversos profissionais C#.
Nunca tive problemas em contratar. Há diversos seminários da MS por aqui, eu mesmo participava todos os anos, e são sempre lotados.

Até porque, há grandes empresas contratando, como é o caso da Siemens e da Positivo. E ambas contratam o cara se for bom programador, não necessariamente nessa ou naquela linguagem específica.

PS: A menos, claro, que você esteja se referindo aquela história antiquada de alguém ser “só analista”, e passar o dia todo mexendo em UML. Conceito baseado no waterfall, lá dos anos 80. Um cargo que tende a desaparecer (com razão), principalmente depois das metodologias ágeis.

Esta questão é bastante contundente meu amigo Vini, lembro até hoje quando fui fazer uma entrevista na Objectory (qualquer coisa assim), e quando falei em Análise recebi a seguinte resposta: aqui nós não temos analistas, somente programadores, temos o “JAVA NAS VEIAS”, depois de ouvir tamanha estupidez me despedi do entrevistador no exato momento.

Durante meus quase trinta anos de carreira, cheguei a seguinte conclusão: o atual problema das empresas é dar um valor extremado ao código, não que isso não deva ocorrer, mas como todos sabemos ele é uma fase de um processo maior e afeta o TODO.

Código é o que aparece, então investem em código o CORPO, mas esquecem da ALMA, a ARQUITETURA e passam o resto de suas vidas tentando remediar o erro que poderia ter sido resolvido com uma atenção verdadeira para a ENGENHARIA DE SOFTWARE.

Alguma empresas de software por força dos clientes até fazem desenhos em UML (aqui temos apenas uma ferramenta de ajuda na Análise, não se pode resumir a mesma, porque nem metodologia ela é, existem sim metodologias para análise OO como RUP entre muitas outras, mas a análise envolve muito mais) para apresentar por exigência do cliente, mas poucas são as que usam devidamente as ferramentas voltadas para a solução dos problemas dos clientes.

E não, não existe a menor possibilidade de as tecnologias ágeis substituírem um bom investimento em ANÁLISE, e esta começa pela ANÁLISE DE RISCOS de um PROJETO e seguem sua ordem lógica diante da utilização da ENGENHARIA DE SOFTWARE.

XP é um exemplo claro de como resolver o problema da falta de uso da ANÁLISE DE SISTEMAS, e mais da ENGENHARIA DE SOFTWARE, devida e corretamente aplicadas, e nisso a tal empresa acima citada deve usar extensivamente, o que chamamos no jargão de “APAGAR O FOGO”.

Atte.

Druid®

P.S. Sou e sempre fui um PROGRAMALISTA, adoro programar, mas sei que só isto não irá trazer qualquer QUALIDADE a um projeto sério que venha a desenvolver. Quanto a visão de um PROFISSIONAL SOMENTE ANALISTA tenho que concordar contigo, dependendo da situação isso pode até ser verdadeira, mas o contrário não, PROFISSINAL SOMENTE PROGRAMADOR.

P.S. Quero deixar bem claro também que pelas mais variadas circunstâncias chegar primeiro ao mercado é primordial e usar uma tecnologia rápida de desenvolvimento para sair na frente se torna extremamente recomendável e necessário, eu já passei por isso, o que não se justifica é a empresa não investir em QUALIDADE DE SOFTWARE e depois de se firmar do mercado, não seguir as regras que se fazem necessárias para termos projetos de softwares manuteníveis e com visão nas regras de negócio, que mudam constantemente (veja o caso de um banco se o setor de seguros) as quais são aplicados.

Estava falando de analise de sistemas, e não de análises processos de negócios. Gerencia de riscos, cronograma, orçamento, são áreas da administração, e não da informática. Se pretende fazer esse tipo de gerência, procure vagas de gestor, não de engenheiro de software. Faça curso de BPM, gerência de projetos, finanças, etc. E prepare-se para lidar com pessoas. :slight_smile:

Eu também era descrente dos processos ágeis até começar a usa-los, assim como você, iniciei a carreira num momento de alta do RUP e vivenciei a propaganda de que a UML acabaria com a bagunça das guerras metodológicas e viria como a solução dos problemas.

E, por incrível que pareça, trabalhando com processos ágeis reduzi muito os “apagares de fogo”. Justamente por prometer pouco, por ter mais contato com o cliente, por ter mais transparência no processo de desenvolvimento e por orçar módulos menores e mais gerenciáveis. Também reduz-se drasticamente a quantidade de requisitos solicitados pelo cliente só para “aproveitar a oportunidade” (num ciclo ágil, o analista está sempre presente, enquanto num ciclo mais waterfall, o cliente tem a sensação de que se não pedir naquele momento, pode ficar na mão por muito tempo).

Além disso, o fato de não ter formalmente a presença de um analista de sistemas não implica em sistemas sem qualidade, sem arquitetura, ou sem projeto, como você deu a entender. É justamente ao contrário. Adotam-se processos onde se planeja prevendo a mudança, que ocorre naturalmente. É o reconhecimento de que a tecnologia e o cliente são entidades mutáveis, e o software não pode estar alheio a essa mudança. De que não faz sentido criar numa empresa um telefone sem-fio entre analistas e programadores, pois elos a mais na cadeia só dificultam o entendimento. De que o cliente não informa bem os requisitos porque não entende de informática, e nem tem a obrigação de entender: ele só vai passar a entender melhor o que você fala quando puder ver, sentir e tocar o sistema. E você só vai passar a entender bem o negócio dele quando entrar no detalhe.

Cravar um diagrama em pedra, e forçar o cliente a assinar um documento dizendo que pediu aquilo é burrice pois, mesmo que ele tenha pedido, as chances do requisito mudar no meio do caminho é alta. E aí, ou você está preparado para a mudança, ou dançou.

Qualquer metodologia ágil dá sim, muito valor ao código. Mas não ao código escrito de qualquer jeito e sim, o código refatorado, planejado e testável.

Obvio, há empresas que usam o ágil como desculpa para não ter processo, assim como tinham empresas que usavam o RUP como uma forma de implementar um ciclo extremamente waterfall e dizer que o programador poderia ser um recurso barato por ser um “peão de software”.

[quote]Estava falando de analise de sistemas, e não de análises processos de negócios. Gerencia de riscos, cronograma, orçamento, são áreas da administração, e não da informática. Se pretende fazer esse tipo de gerência, procure vagas de gestor, não de engenheiro de software. Faça curso de BPM, gerência de projetos, finanças, etc. E prepare-se para lidar com pessoas.

Eu também era descrente dos processos ágeis até começar a usa-los, assim como você, iniciei a carreira num momento de alta do RUP e vivenciei a propaganda de que a UML acabaria com a bagunça das guerras metodológicas e viria como a solução dos problemas.

E, por incrível que pareça, trabalhando com processos ágeis reduzi muito os “apagares de fogo”. Justamente por prometer pouco, por ter mais contato com o cliente, por ter mais transparência no processo de desenvolvimento e por orçar módulos menores e mais gerenciáveis. Também reduz-se drasticamente a quantidade de requisitos solicitados pelo cliente só para “aproveitar a oportunidade” (num ciclo ágil, o analista está sempre presente, enquanto num ciclo mais waterfall, o cliente tem a sensação de que se não pedir naquele momento, pode ficar na mão por muito tempo).

Além disso, o fato de não ter formalmente a presença de um analista de sistemas não implica em sistemas sem qualidade, sem arquitetura, ou sem projeto, como você deu a entender. É justamente ao contrário. Adotam-se processos onde se planeja prevendo a mudança, que ocorre naturalmente. É o reconhecimento de que a tecnologia e o cliente são entidades mutáveis, e o software não pode estar alheio a essa mudança. De que não faz sentido criar numa empresa um telefone sem-fio entre analistas e programadores, pois elos a mais na cadeia só dificultam o entendimento. De que o cliente não informa bem os requisitos porque não entende de informática, e nem tem a obrigação de entender: ele só vai passar a entender melhor o que você fala quando puder ver, sentir e tocar o sistema. E você só vai passar a entender bem o negócio dele quando entrar no detalhe.

Cravar um diagrama em pedra, e forçar o cliente a assinar um documento dizendo que pediu aquilo é burrice pois, mesmo que ele tenha pedido, as chances do requisito mudar no meio do caminho é alta. E aí, ou você está preparado para a mudança, ou dançou.

Qualquer metodologia ágil dá sim, muito valor ao código. Mas não ao código escrito de qualquer jeito e sim, o código refatorado, planejado e testável.

Obvio, há empresas que usam o ágil como desculpa para não ter processo, assim como tinham empresas que usavam o RUP como uma forma de implementar um ciclo extremamente waterfall e dizer que o programador poderia ser um recurso barato por ser um “peão de software”. [/quote]

Amigo Vini, sabia que este papo ia dar nisso, então vamos fazer o seguinte, você fica com sua opinião e eu com a minha, somos cobras criadas neste mercado e você segue a sua visão e eu a minha, afinal de contas não estou aqui para ensinar o padre a rezar a missa, se esta dando certo pra você ótimo meu amigo, e é assim que tem que ser, ponto final.

Grande abraço,

Druid®