quarta-feira, 10 de fevereiro de 2021

UM APLICATIVO PARA LEITURA DEVOCIONAL ANUAL DA BIBLIA EM ANDROID

Olá, pessoal! 


Este novo projeto foi criado em Visual Studio 2019 em C#.Net com o Xamarin. Já está disponível no Google Play para vocês baixarem:


Para acessa o link clique aqui.

Tela de abertura

Versiculo do dia

Versiculo do dia

Versiculo do dia

Versiculo do dia

Tela principal.


Sobre este aplicativo: Existem três opções de leitura devocional, conforme mostrado na tela principal. Os botões foram criados no Corel Draw X5, assim como os fundos e tela inicial. 


O mesmo foi testando em um telefone Samsung, modelo A20. A tela ideal para o mesmo é de 6,4 polegadas.

Infelizmente, não tive acesso a outros modelos para aprimorar os testes.

O projeto tem 15386 linhas de código na Activity principal.  O mesm foi criado com funções. 




Existe uma função para cada tipo de leitura bíblica anual. As mesmas foram retiradas da minhas leituras já realizadas nos últimos anos.


A função PegarOração() mostra aleatoriamente de um conjunto de mais de sessenta orações uma oração para cada dia apresentado ao usuário. É totalmente aletatória e sempre escolhe um número entre 0 a 60.


Cada função que seleciona um versículo apresenta o mesmo conforme o mês, o dia e o Ano.



Os botões Próximo Dia e Dia Anterior trabalham realizando os filtros adequados de troca de meses, conforme seja de 30 dias ou de 31 dias, ou o mês de fevereiro. Cada caso especial referente a um ano recebe um tipo de tratativa.


O Xamarin possui novas funcionalidades dentro do Visual Studio 2019 que facilitam bastante a criação de novos usuários. 

Aproveitem o aplicativo!

Ótimo ano de 2021 a todos!


Por
Manoel Leonardo Metelis Florindo





quinta-feira, 1 de fevereiro de 2018

UM APLICATIVO DE VERSÍCULOS PARA CELULARES ANDROID


Olá, pessoal!

Esse projeto foi criado em 2017 e aprimorado agora em 2018.

Foi também criado com o Visual Studio 2015 em C#.NET com o Xamarin. Já está disponível no Google Play para que vocês possam baixar:



O aplicativo é o mesmo descanso de tela apresentado em um  artigo (link do artigo) em VB.NET.   

A cada dez segundos um novo versículo é apresentado na tela. A fonte da aplicação é definida na mesma fonte do celular em que o App está instalado.



 É possível definir o Descanso em Salmos, Provérbios, Novo Testamento, Antigo Testamento e Geral, em que são apresentados todos os versículos. 


O compartilhamento da imagem pode ser realizado onde o usuário desejar, como Whatsapp, Facebook, Instagram, etc.

As imagens deste app são salvas na memória
 interna na pasta 
Android/data/com.AppDescansoBiblia.AppDescansoBiblia/files


Estas imagens podem ser apagadas pelo usuário se o mesmo acessar a pasta das mesmas.




Como já dito, este app foi escrito em C#.NET / Xamarin em Visual Studio 2015. É um bom exemplo do que pode ser criado com o Visual Studio 2015 com o Xamarin.


Sucesso a todos. 







quinta-feira, 18 de janeiro de 2018

NFe E NFCe : UM PROJETO FREE EM VISUAL STUDIO 2012 / 2015


Olá, pessoal!

Muitos projetos tem sido uma mão na roda para quem quer desenvolver a NFe eletrônica e até mesmo a NFCe eletrônica. 

Hoje irei compartilha aqui o link dos fontes de um destes projetos que é o Zeus.

O Zeus é um projeto em Visual Studio em C#. O mesmo pode ser utilizado tanto no Visual Studio 2012 como no Visual Studio 2015. Ele possui tanto a NFE eletrônica com a NFCe e basta a você fornecer o XML.

O Zeus utiliza o Fast Report que infelizmente para o .NET é uma ferramenta paga. Mas você pode baixar o trial para dar uma analisada na aplicação. 

Você pode baixar a versão demo do Fast Report neste link: https://www.fast-report.com/pt/download/public_download/FRNetDemo.msi

Após a instalação do Fast Report você pode fazer a abertura dos fontes do projeto Zeus de modo apropriado.




A tela da aplicação após a compilação é mostrada abaixo:



Utilize o botão importar XML para carregar qualquer XML de Nfe que possua:



O botão DANFE NFCe cont. offline permite a você carregar um XML de qualquer NFe e ver sua DANFE.



Como você pode ver basta dar um XML qualquer de uma NFe eletrônica ou NFCe que a mesma poderá ser processada pela aplicação. 

A versão ainda é a 3.0 mas este projeto em Visual Studio C# é bem apropriado para quem deseja trabalhar com a Nfe eletrônica e a NFC-e. 

Você deverá fazer algumas horas de investimento em Visual Studio C#. 

Abaixo os links para download:

Fast Report NET

Projeto ZEUS.NET


Sucesso a todos em 2018!

sexta-feira, 1 de dezembro de 2017

USANDO O VISUAL STUDIO 2015






O Visual Studio 2015 têm muitas ferramentas novas. A melhor delas é a que foi liberada com o Update 3 e que acrescenta o Xamarin ao Visual Studio 2015 e que permite a criação de aplicativos para celulares em Android com o uso da linguagem C#.NET.

A configuração do uso do Android pode ser realizada diretamente do Tools do Visual Studio 2015. 


O download do Android pode ser um pouco demorado. Mas é importante ressaltar que as configurações essencias para o desenvolvimento de APP´s necessitam de certo tempo no uso do Visual Studio 2015. Você deve ir até Tools -> Options e customizar de modo adequado as patas de utilização do Xamarin e do Android de modo adequado com as localizações do Java Development Kit,  Android SDK e do Android NDK.






Também é importante ressaltar que o Visual Studio 2015 é uma ferramenta que depende da Internet porque suas updates assim que se fazem disponíveis são informadas na própria aplicação. A ferramenta NuGet Package Manager é importantíssima para estas novas adequações. Através do Manage NuGEt Packages Solution é possível encontrar e adicionar novas referências às aplicações que você criar.





Quando falamos de aplicativos para celulares também é importante escolher um bom Android Player para debugar os aplicativos criados. Recomendo o uso do Xamarin Android Player que é uma excelente ferramenta para esta finalidade. O mesmo necessita ter antes instalado o Oracle VM Virtua Box para a abertura dos manages devices de celulares que você foi testar em suas aplicações.






Ao preparar uma aplicação para celulares você pode criar o arquivo APK facilmente. Para criar um APK você deve clicar com o botão direito do mouse em seu projeto e escolher a opção Arquive.



É importante lembrar que para isto é necessário desativar certas opções em Properties da sua aplicação para que o APK possa ser criado com sucesso. 




Sempre que for criar um APK o modo Use Shared Runtimes deve ser desabilitado. Então você deve desmarcar estas duas opções mostradas abaixo:




Feito isto já é possível criar com sucesso um arquivo APK da sua aplicação e você pode clicar em Arquive tranquilamente...



Quando o arquivo estiver pronto você terá opções na parte debaixo da tela para verificar o arquivo. A mais importante delas é a Distribute que permite a você realizar a distribuiçõa do seu APK para celulares. 



Ao clicar em Distribute você verá duas opções para distribuir seu APK: AD Hoc e Google Play. A opção Google Play deve ser usada somente se você já for lançar seu aplicativo no serviço da Google. Se quiser somente testar sua aplicação em um celular você deve usar a opção Ad Hoc.



Ao clicar em Ad Hoc você deve indicar a assinatura digital de seu arquivo APK. Você pode criar uma simplesmente clicando no botão "+" verde ou selecionar uma existente na lista e, em seguida, clicar em Save As...




O passo seguinte é a indicação da pasta onde o arquivo APK será salvo e a indicação do seu nome.  Você pode alterar o nome do arquivo e o local onde o mesmo será salvo








Quando clicar em Salvar a senha da sua assinatura será solicitada. Informe a senha corretamente e o arquivo será criado na pasta indicada. 




Atenção: Lembre-se que após finalizar a criação do APK e quiser testar novamente sua aplicação você deve reativar a opção Use Shared Runtime.





Todo este aparato disponível no Visual Studio 2015 necessita de tempo para ser instalado e consome algumas horas de paciência para ser configurado corretamente. Mas o investimento é válido porque o Visual Studio 2015 é uma excelente ferramenta de desenvolvimento.



Sucesso a todos!!

sexta-feira, 14 de agosto de 2015

PESQUISA DE PALAVRAS EM ARQUIVOS PDF


Uma das atividades mais corriqueiras se você trabalha com a Nfe eletrônica é tentar encontrar itens vendidos para um fornecedor ou mesmo saber quantas vendas foram efetuadas a um fornecedor em determinado ano.

Isso pode se tornar bem simples se você mantêm de maneira organizada as pastas com as DANFE´s enviadas e os registros destas ditas DANFE´s em pdf. Basta criar um aplicativo simples em ASP.NET com alguns comboxes para cada ano, um textbox e um botão.

Aqui vai abaixo um código-fonte em ASP.NET VB.NET que realiza a busca de palavras em PDF´s organizados em pastas anuais. Trata-se de um utilitário que é uma mão na roda para quem necessita de informações rapidamente.

A rotina abaixo foi criada no Visual Studio 2012 Versão 11.0.5 com o Net Framework 4.5

'Aqui estão as referências necessários para o VB.NET ASP.NET
Imports System.Runtime
Imports System.IO

Protected Sub PesquisarPDF_Click(sender As Object, e As EventArgs) Handles Button2.Click

oFileInfoCollection = DirDiretorio.GetFiles("*.pdf")
'### Lista somente os PDFps

Stexto = ""

For i = 0 To oFileInfoCollection.Length() - 1
oFileInfo = oFileInfoCollection.GetValue(i)

'Abrir cada arquivo PDF e extrair o texto do mesmo
Stexto = PesquisanoPDF(oFileInfo.Name)
'Pesquisar a Palavra
Dim index As Integer = Stexto.IndexOf(TxtPesq.Text)
If index >= 0 Then
Dim getTexto As String = Stexto.Substring(index, Stexto.IndexOf(".", index + 85) - index - 5)
' String is in file, starting at character "index"
TxtResposta.Text = TxtResposta.Text + "Texto presente no arquivo: " + oFileInfo.Name + ". Extrato do texto: " + getTexto + "." + vbCrLf

End If
Next
TxtResposta.Enabled = True

TxtResposta.Focus()
End Sub


Public Function PesquisanoPDF(PdfFileName As String) As String
Dim sArquivo As String = ""
'Para tornar a consulta mais rápida, seperam-se os pdf em pastas de anos
If Chk2011.Checked = True Then
sArquivo = "\\172.16.0.25\Nfe\2011\" + PdfFileName
End If
If Chk2012.Checked = True Then
sArquivo = "\\172.16.0.25\Nfe\2012\" + PdfFileName
End If
If Chk2013.Checked = True Then
sArquivo = "\\172.16.0.25\Nfe\2013\" + PdfFileName
End If
If Chk2014.Checked = True Then
sArquivo = "\\172.16.0.25\Nfe\2014\" + PdfFileName
End If
If Chk2015.Checked = True Then
sArquivo = "\\172.16.0.25\Nfe\2015\" + PdfFileName
End If
Dim oReader As New iTextSharp.text.pdf.PdfReader(sArquivo)
Dim sOut = ""
For i = 1 To oReader.NumberOfPages
Dim its As New iTextSharp.text.pdf.parser.SimpleTextExtractionStrategy
sOut &= iTextSharp.text.pdf.parser.PdfTextExtractor.GetTextFromPage(oReader, i, its)
Next
Return sOut

End Function


Sucesso a todos!
By
Leonardo Metelys

sexta-feira, 28 de fevereiro de 2014

GERAR O ARQUIVO XML PARA MATRIZ DE TRIBUTAÇÃO DO IMPORTADOR


  
Olá, Pessoal!

O código abaixo faz a geração de dados para a MATRIZ DE TRIBUTAÇÃO DO IMPORTADOR, novo serviço disponível no site da Sefaz de alguns estados brasileiros.

Este código-fonte está em VISUAL STUDIO 2012 para VB.NET e já dá uma idéia de como gerar o XML para atender aos requesitos da Sefaz.



 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

        Try

        Catch ex As Exception

        End Try
        Dim Ano As String = ""
        Dim Mes As String = ""
        Dim Dia As String = ""
        Dim sDataIni As String = Now
        Dim myConnectionMatrix As MySqlConnection
        Dim myCommand2IM As MySqlCommand
        Dim dsR As MySqlDataReader

        Ano = Trim(Replace(Mid(sDataIni, 7, 4), "/", ""))
        Mes = Trim(Replace(Mid(sDataIni, 4, 2), "/", ""))
        Dia = Trim(Replace(Mid(sDataIni, 1, 2), "/", ""))


        sInicio = Ano + "-" + Mes + "-" + Dia


        sTimes = CStr(Now)
        sHora = Mid(sTimes, 12, 8)

        Dim sDataGeracao As String = Ano + "-" + Mes + "-" + Dia + " " + sHora

        myConnectionMatrix = New MySqlConnection("server=192.168.40.65; user id=root; password=3007722108; database=orca; pooling=false;")
        myConnectionMatrix.Open()

        Dim myCommandsEQ As MySqlCommand
        Dim sSequencia As String = ""

        sSQL = "SELECT ifnull(count(sequencial),0) FROM GERARXML"
        myCommandsEQ = New MySqlCommand(sSQL, myConnectionMatrix)
        dsR = myCommandsEQ.ExecuteReader

        If dsR.Read() Then

            sSequencia = dsR(0)

        End If

        dsR.Close()

        sSequencia = sSequencia + 1

        'If Len(sSequencia) = 1 Then
        ' sNumeroMatrizDi = "0000000000000" + sSequencia
        ' ElseIf Len(sSequencia) = 2 Then
        'sNumeroMatrizDi = "000000000000" + sSequencia
        'ElseIf Len(sSequencia) = 3 Then
        'sNumeroMatrizDi = "00000000000" + sSequencia
        'ElseIf Len(sSequencia) = 4 Then
        'sNumeroMatrizDi = "0000000000" + sSequencia
        'End If

        'Gerar sequencial da XML
        sSQL = "INSERT INTO GERARXML VALUES(" & CInt(sSequencia) & ",'" & sDataGeracao & "','" & sNumeroMatrizDi & "')"
        'Pega os valores das data definidas dentro da tabela padrão
        myCommand2IM = New MySqlCommand(sSQL, myConnectionMatrix)
        dsR = myCommand2IM.ExecuteReader

        dsR.Close()


        'Ler os dados 
        sSQL = "SELECT * FROM matriztrib WHERE DATAREGISTRO  = '" & sInicio & "' ORDER BY CODPROD"

        'Pega os valores das data definidas dentro da tabela padrão
        myCommand2IM = New MySqlCommand(sSQL, myConnectionMatrix)
        dsR = myCommand2IM.ExecuteReader

        Dim sInicioBenf As String = ""
        Dim sFimBenef As String = ""
        Dim sImportador As String = ""
        'Gerar o XML de cada item
        'Abre o Arquivo para Criação do XML
        '----------------------------------
        'sNumeroMatrizDi = sNumeroMatrizDi + 1

        'Cabeçalho do Arquivo
        '--------------------
        Dim sData As String = CStr(Now)
        Ano = Trim(Replace(Mid(sData, 7, 4), "/", ""))
        Mes = Trim(Replace(Mid(sData, 4, 2), "/", ""))
        Dia = Trim(Replace(Mid(sData, 1, 2), "/", ""))
        sArquivo = "MatrizDI_" + sNumeroMatrizDi + "_" + DateTime.Now.ToString("ddMMyy") + "_" + DateTime.Now.ToString("hhmmss") + ".xml"
        Dim arq As New StreamWriter("C:\Temp\" + sArquivo, False)

        'arq.WriteLine("" & "<?xml version=" & Chr(34) & "1.0" & Chr(34) & " encoding=" & Chr(34) & "UTF-8" & Chr(34) & "??>")

        arq.WriteLine("<?xml version=" & Chr(34) & "1.0" & Chr(34) & " encoding=" & Chr(34) & "UTF-8" & Chr(34) & "??>")
        arq.WriteLine("<enviMatrizDIe xmlns=" & Chr(34) & "http://www.sefaz.am.gov.br/die" & Chr(34) & " xmlns:xsi=" & Chr(34) & "http://www.w3.org/2001/XMLSchema-instance" & Chr(34) & " versao=" & Chr(34) & "1.00" & Chr(34) & " xsi:schemaLocation=" & Chr(34) & "http://www.sefaz.am.gov.br/die enviGabaritoDIe_v1.00.xsd" & Chr(34) & "?>")

        arq.WriteLine("<MatrizDIe?>")
        arq.WriteLine("<InfMatrizDIe Id=" & Chr(34) & "MatrizDIe" & sNumeroMatrizDi & Chr(34) & " versao=" & Chr(34) & "1.00" & Chr(34) & "?>")
        arq.WriteLine("<Importador?>")



        If dsR.Read Then
            sImportador = dsR(0)
            sImportador = Replace(sImportador, ".", "")
            sImportador = Replace(sImportador, "-", "")
            arq.WriteLine("<tipoImportador?>" & dsR(1) & "</tipoImportador?>")
            arq.WriteLine("<cdImportador?>" & sImportador & "</cdImportador?>")
        End If

        dsR.Close()
        arq.WriteLine("</Importador?>")

        myCommand2IM = New MySqlCommand(sSQL, myConnectionMatrix)
        dsR = myCommand2IM.ExecuteReader



        While dsR.Read

            arq.WriteLine("<ItemMatriz?>")
            arq.WriteLine("<cdNcmProdFinal?>" & dsR(2) & "</cdNcmProdFinal?>")
            arq.WriteLine("<cdSuframa?>" & dsR(3) & "</cdSuframa?>")
            arq.WriteLine("<cdDestinacao?>" & dsR(4) & "</cdDestinacao?>")
            arq.WriteLine("<cdUtilizacao?>" & dsR(5) & "</cdUtilizacao?>")
            arq.WriteLine("<cdTributacao?>" & dsR(6) & "</cdTributacao?>")
            arq.WriteLine("<numDecreto?>" & Replace(dsR(7), "/", "") & "</numDecreto?>")
            arq.WriteLine("<tpDocumentoConcessivo?>" & "1" & "</tpDocumentoConcessivo?>")
            arq.WriteLine("<numDocumentoConcessivo?>" & Replace(dsR(8), "/", "") & "</numDocumentoConcessivo?>")

            sInicioBenf = dsR(9)
            Ano = Trim(Replace(Mid(sInicioBenf, 7, 4), "/", ""))
            Mes = Trim(Replace(Mid(sInicioBenf, 4, 2), "/", ""))
            Dia = Trim(Replace(Mid(sInicioBenf, 1, 2), "/", ""))
            sInicioBenf = Ano + Mes + Dia

            arq.WriteLine("<dtInicioBeneficio?>" & sInicioBenf & "</dtInicioBeneficio?>")

            sFimBenef = dsR(10)
            Ano = Trim(Replace(Mid(sFimBenef, 7, 4), "/", ""))
            Mes = Trim(Replace(Mid(sFimBenef, 4, 2), "/", ""))
            Dia = Trim(Replace(Mid(sFimBenef, 1, 2), "/", ""))
            sFimBenef = Ano + Mes + Dia

            arq.WriteLine("<dtFimBeneficio?>" & sFimBenef & "</dtFimBeneficio?>")
            arq.WriteLine("</ItemMatriz?>")

        End While

        arq.WriteLine("</InfMatrizDIe?>")
        arq.WriteLine("</MatrizDIe?>")
        arq.WriteLine("</enviMatrizDIe?>")

        dsR.Close()
        arq.Close()

        ' Create an XML document instance and load the XML data.
        Dim doc As XmlDocument = New XmlDocument()
        ' This code assumes that the XML file is in the same folder.
        doc.Load("C:\Temp\" + sArquivo)
        ' Save the XML to a file.
        doc.Save("C:\Temp\" + sArquivo)

        MsgBox("Arquivo XML criado com sucesso", MsgBoxStyle.Information, "Matriz Trubutação")


    End Sub


Pontosa observar:

1. A notação "?>" ou "??>"  no final de cada tag deve ser substituída por ">" ou "/>" conforme o caso. Trata-se do editor de textos do blog que infelizmente foge ao meu controle!

2. A notação "&" é o "é comercial" necessário para separar campos no VB.NET;

3. o campo Id (MatrizDIe) é a identificação da matriz, e o número que o segue deve, 
para facilitar, referir-se à inscrição da empresa no Cadastro de Contribuintes do Estado com 14 casas, ou seja, a informação é numérica e o comprimento da informação é 
de 14 dígitos. Alguns estão colocando aqui um contador, mas este não é o procedimento
correto. 


4. Aqui transformamos o arquivo-texto criado em um documento XML propriamente dito:



  ' Create an XML document instance and load the XML data.
  Dim doc As XmlDocument = New XmlDocument()
  ' This code assumes that the XML file is in the same folder.
  doc.Load("C:\Temp\" + sArquivo)

No momento em que doc.Load é realizado o arquivo XML é verificado em relação ao arquivo XSD   carregado inicialmente - linha que contêm o http://www.w3.org/2001/XMLSchema-instance. 

Você pode acrescentar aqui um comando Try para indicar os erros dos arquivos XML que está gerando.

  ' Save the XML to a file.
   doc.Save("C:\Temp\" + sArquivo)

Após o salvamento o arquivo XML está pronto para ser assinado. A assinatura pode ser realizada com um certificado digital do Serasa e vocês podem utilizar o mesmo código-fonte que postei aqui para realizar a assinatura deste documento.

Segue um bom site que fala um pouco sobre assinaturas digitais:

http://inginheiiro.wikidot.com/

Sucesso a todos em 2014!


quarta-feira, 29 de janeiro de 2014

TI: COMO SE TORNAR A CAIXA PRETA DA EMPRESA

Não há como negar que em matería de TI há inúmeros processos dentro de vários 
setores dentro de uma empresa que podem e devem ser controlados dia-à-dia a fim
de que em um período de tempo curto - seja ele semanal, quinzenal ou mensal -
dados possam ser analisados e tomadas de decisão possam ser criadas.

Todos os dias o TI de qualquer empresa trabalha a fim de que relatórios e dados
possam ser gerenciados tanto dentro do setor como em diversas áreas da 
empresa. O investimento de recursos na criação de ferramentas capazes de
gerir informações é massivo todos os anos em muitas empresas. A qualidade
do serviço prestado de àrea a àrea pode variar com o passar do tempo. 
No entanto, por diversos motivos, há algumas áreas da empresa que são
de difícil acesso ou que se tornam assim devido ao relacionamento e ao
modus operandi das mesmas com relação ao setor de TI. 

Algumas áreas podem necessitar de controles de informações que necessitam
do envolvimento de mais de uma área para o levantamento de dados e isso
dificulta o trabalho final na obtenção do resultado: pode ser que uma ponta
da informação em alguma outra área deixe de ser coletada e assim todo o
processo é comprometido. Há casos em que o escopo final é criado mas no
momento da implantação descobre-se que um detalhe deixou de ser levado
em conta e isso prejudica todo o projeto que por força maior é colocado de
lado.

E há aqueles casos em que o TI desenvolve mais de uma ferramenta para uma
mesma área e todas elas são sub-utilizadas ou nem sequer utilizadas. A síndrome
do "minha planilha é melhor do que seu sistema" é um problema em muitas
empresas. O TI por trabalhar com a qualidade de seus serviços acaba avaliando
aquele setor como de difícil acesso. Se muitas ferramentas são desenvolvidas para
um mesmo setor e nenhuma delas é utilizada haverá certa resistência por parte
do TI em tentar criar uma nova ferramenta para esta área. Se os projetos forem
concorrentes com os de outras áreas - materias e produção pedem dois sistemas
e todos os criados para a área estão sendo utilizados - por uma questão de 
bom uso e de promoção o TI dará prioridade a outras áreas: bons clientes
merecem consideração e respeito. Clientes que ainda se tentam conquistar
e sempre respondem de modo negativo a ferramentas novas criadas acabam
entrando no final da fila ou entregues a uma área em outra planta para 
análise e desenvolvimento.


Se tonar a caixa preta que nunca é capaz de corresponder a bons trabalhos 
que o TI desenvolve não é uma coisa boa para qualquer empresa. 

Quanto projetos foram criados em TI para sua área no ano que se 
passou? Quantos serão implementados este ano? Quantos foram implementados
e nunca utilizados?

Se estas perguntas forem respondidas por você de modo negativo  seria
boma avaliar uma mudança de direção neste ano. Afinal, ninguém quer ser
a piadinha da área de TI como o setor caixa preta que ninguém consegue
entrar.

Sucesso em 2014!

UM APLICATIVO PARA LEITURA DEVOCIONAL ANUAL DA BIBLIA EM ANDROID

Olá, pessoal!  Este novo projeto foi criado em Visual Studio 2019 em C#.Net com o Xamarin. Já está disponível no Google Play para vocês baix...