Programando em Java

Olá a todos,

Quem estiver interessado em aprender o básico da linguagem de programação Java compartilho o meu repositório no GitHub. Nele vocês vão encontrar diversos algoritmos desenvolvidos em disciplina específica na universidade onde estudo que são apresentados em níveis progressivos de dificuldade.

Os exemplos são simples, mas exigem o uso do raciocínio lógico e abordam os conceitos básicos da linguagem.

Faço uso da IDE Intellij IDEA para a programação, mas nada impede de serem usados outros programas, na verdade, podemos programar até em um editor de texto simples (claro que não seria tão fácil)!

Caso tenham dúvidas ou sugestões sobre os exemplos apresentados podem contar comigo!

Segue link do repositório: https://github.com/zapsys/ProgrAv

Anúncios

Métodos úteis no desenvolvimento Android – I

Olá pessoal,

Se você está desenvolvendo em Java, especialmente para Android, você já deve ter se deparado com alguma situação em que desejava alterar atributos (tipo cor, background, tamanho, typeface, etc) durante a execução de um aplicativo, por exemplo. Se você tem um Button ou TextView isso é simples, mas como implementar se tivermos vários widgets dentro do layout.

Com os métodos que compartilho aqui é possível alterar os atributos de vários Buttons, TextViews, usando um resource file (um layout xml).

Os exemplos aqui mostrados são implementados através do método ‘OnOptionsItemSelected‘ que retorna os eventos sobre o clique nos itens do menu, mas podem ser aplicados em outro método ou como uma classe a parte, por exemplo.

Hoje mostrarei como alterar o background de vários botões de uma só vez.

Passo 1: Criar um layout

O xml a seguir implementa três estados de um botão (normal, focused e pressed). A cor que usei foi o verde, mas pode ser alterada de acordo com sua preferência. O layout foi salvo em res/layout/button_green.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
 <item android:state_pressed="true" >
 <shape android:layout_margin="4dp" android:shape="rectangle" >
 <corners android:radius="6dip" />
 <stroke android:width="1dip" android:color="#151A15" />
 <gradient android:angle="-90" android:startColor="#345953" android:endColor="#689a92" /> 
 </shape>
 </item>
<item android:state_focused="true">
 <shape android:layout_margin="4dp" android:shape="rectangle" >
 <corners android:radius="6dip" />
 <stroke android:width="1dip" android:color="#151A15" />
 <solid android:color="#58857e"/> 
 </shape>
 </item> 
<item >
 <shape android:layout_margin="4dp" android:shape="rectangle" >
 <corners android:radius="6dip" />
 <stroke android:width="1dip" android:color="#151A15" />
 <gradient android:angle="-90" android:startColor="#8dbab3" android:endColor="#58857e" /> 
 </shape>
 </item>
</selector>
Passo 2: Criar o método ‘AlterAttr’

Dentro da classe principal, abaixo do OnCreate, definimos:

public static void AlterAttr(View view, int background) {
    if (view != null) {
        // checar se esta view é uma instância de um viewgroup
        if (view instanceof ViewGroup) {
            // passe por todos os filhos deste viewgroup
            for (int i = 0; i &lt; ((ViewGroup) view).getChildCount(); i++) {
                // continue alterando o atributo (recursão)
                AlterAttr(((ViewGroup) view).getChildAt(i),background);
            }
        }
        // checar se esta view é uma instância de um Button
        else if (view instanceof Button) {
            // altere o valor do background
            ((Button) view).setBackgroundResource(background);
        }
    }
}

Como o método busca e analisa os atributos do View (button) dentro do ViewGroup (layout), é necessário que esteja definido um id e o atributo android:background deve estar definido. No exemplo abaixo o fundo padrão dos botões é branco.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:id="@+id/MainLayout"
 android:orientation="vertical"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent"
 android:layout_weight="1"
 android:textAlignment="center">
 <Button
 android:layout_width="wrap_content"
 android:text="@string/btn1"
 android:id="@+id/btn1"
 android:layout_height="wrap_content"
 android:layout_weight="1"
 android:gravity="center"
 android:visibility="visible"
 android:background="#ffffff"/>
 <Button
 android:layout_width="wrap_content"
 android:text="@string/btn2"
 android:id="@+id/btn2"
 android:layout_height="wrap_content"
 android:layout_weight="1"
 android:gravity="center"
 android:visibility="visible"
 android:background="#ffffff"/>
 <Button android:layout_width="wrap_content"
 android:text="@string/btn3"
 android:id="@+id/btn3"
 android:layout_height="wrap_content"
 android:layout_weight="1"
 android:gravity="center"
 android:background="#ffffff"/>
</LinearLayout>
Passo 3: Chamar o método dentro do ‘OnOptionsItemSelected’

O método a seguir mostra como alterar entre duas opções de cores.

@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml. 

int id = item.getItemId();
LinearLayout Layout = (LinearLayout) findViewById(R.id.MainLayout); 

 switch(id){
  case R.id.action_button_green:
    AlterAttr(Layout, R.layout.button_green);
    item.setChecked(true);
    break;
  case R.id.action_button_blue:
    AlterAttr(Layout, R.layout.button_blue);
    item.setChecked(true);
    break;
  default: super.onOptionsItemSelected(item);
 }
return true;
}

O método verifica qual opção do menu foi selecionada e aplica o ‘AlterAttr’, respectivo. Para elucidar os ids se referem aos itens do menu, como no xml abaixo:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:app="http://schemas.android.com/apk/res-auto"
 xmlns:tools="http://schemas.android.com/tools"
 tools:context=".Teste">
 <!-- Menu cores -->
 <item android:id="@+id/action_button_cor"
 android:title="@string/button_color"
 app:showAsAction="never">
 <menu>
 <group android:checkableBehavior="single">
 <item android:id="@+id/action_button_blue"
 android:title="@string/button_blue"
 app:showAsAction="never"/>
 <item android:id="@+id/action_button_green"
 android:title="@string/button_green"
 app:showAsAction="never"/>
 </group>
 </menu>
 </item>
</menu>

Quem tiver dúvidas ou sugestões por favor deixe sua mensagem. O próximo post será como alterar atributos de cor de tipo de fonte de TextView e EditText. Até a próxima.

Iniciando desenvolvimento para Android

Olá pessoal,

Hoje compartilho um tutorial bem prático para quem deseja iniciar no desenvolvimento de aplicativos para Android. Todos sabemos que a cada ano cresce o número de usuários que se utilizam desse sistema, na verdade, estima-se que existem mais de 1,1 bilhão1 de aparelhos com o sistema da Google. Portanto, para aqueles que desejam adentrar nesse novo leque de oportunidades nunca é tarde para começar.

Bem, mãos à obra. Mas antes de iniciar é necessário satisfazer algumas dependências para começar a desenvolver seus aplicativos, na verdade, são necessários o Java SDK ou OpenJDK (usuários Linux) e o Android SDK, mais uma IDE (Ambiente de Desenvolvimento integrado) que pode ser o Eclipse, NetBeans, IntelliJ IDEA ou Android Studio ou outro de sua preferência. Particularmente, estou usando o IntelliJ IDEA, pois me pareceu mais robusto e leve que os outros, no entanto, o Eclipse e o NetBeans são mais conhecidos. No fim do post deixo os links para download.

Após instalar o Android SDK será necessário baixar vários pacotes (APIs, mas precisamente) necessárias para o desenvolvimento e compilação do aplicativo Android. Vale ressaltar que existem váriais API’s disponíveis desde o Android 1.5 [API 3] até o Android 5.0.1 [API 21] . O projeto do tutorial está sendo construído como base no Android 2.2 [API 8] (API mínima para execução), Android 4.1.2 [API 16] (API de compilação) e o Android 4.2.2 [API 17] (API alvo).

java_00

Após conhecermos um pouco das versões do Android e aprendermos a montar um ambiente de desenvolvimento, vamos colocar a mão na massa e criar um aplicativo Android! Ele é simples, mas é o primeiro passo para conhecer a linguagem, sua estrutura e o mecanismo de funcionamento de um aplicativo.

Continuar lendo

NF-e – Manual de envio e DLL

Olá colegas! Estou repostando uma matéria que achei interessante; principalmente para quem desenvolve aplicativos para o ramo comercial e precisa implementar Nota Fiscal Eletrônica.

Para os bravos guerreiros, os quais percorrem a árdua jornada do desenvolvimento de aplicativos para a Nota Fiscal de Serviço Eletrônica (NFS-e), trago hoje uma pequena grande ajuda: Um manual e DLL(s) de funções de criação, envio e consultas de Lotes Rps / NFS-e!!
Interessante? E se eu disser que tal documento ainda possui um link funcional, para baixar tal(is) DLL(s)?
Mais interessante ainda? E que tal Exemplos funcionais e documentados em Delphi e C#?

Tudo isso é disponibilizado para desenvolvedores pela DSF (creio que gratuitamente), o que tornou meus dias de desenvolvedor da NFS-e mais tranquilos (muito mais!). Um manual completo com todas as especificações e descrições dos campos da NFS-e, exemplos e links. Só conferindo!

Manual de Envio NFS-e

Fonte: !CodiCafé

Comandos SQL

Olá a todos,

Estou compartilhando com vocês material a respeito de comandos SQL da disciplina do prof. Gilson (Banco de Dados II). O material abrange comandos de consulta simples, consultas com funções, máximo e mínimo, etc, e possui alguns exercícios no final. O material é complementar ao passado pelo prof. Daniel em Banco de Dados I.

Os arquivos estão disponíveis na aba Downloads.

Bom estudo!

Programando no Linux

Olá pessoal,

Volto novamente a postar uma matéria de interesse para os ‘Programadores do futuro’ e afins de tecnologia e software livre. Não há como negar, mas o uso do Linux está cada vez difundido e para aqueles que pensam que ele é pobre em opções de programas abaixo segue uma pequena mostra das ferramentas que os programadores podem utilizar.

 Os 18 melhores programas para você programar no Linux

Se você é programador deve ter se deparado com Linux no seu trabalho a algum tempo, para ser específico, se você for programador Web e mudou do Windows para o Linux deve ter sentido falta do Adobe Dreamweaver pirata que você usava (rsrsrs). Nas adaptações nem tudo são flores, as vezes penamos para nos acostumarmos com os novos softwares, mas não desista, vale a pena.

Agora vou apresentar a vocês uma lista de 18 programas que podem ser usados para programação nos mais diversos fins.

 1. Bluefish 

Em software livre é melhor para edição de arquivos HTML. Seu depósito é baseado na facilidade de disponibilidade, uso para vários idiomas e compatibilidade de sintaxe com outros “padrões”, como XML, Python, PHP, Javascript, JSP, SQL, Perl, CSS, Pascal, R, Coldfusion e Matlab.Suporta caracteres multibyte, Unicode, UTF-8 e de ser escrito em C e GTK tem um baixo uso de memória, menor do que outras ferramentas de sua espécie. site oficial: http://bluefish.openoffice.nl/index.html

2. Anjuta
 Uma IDE (ambiente de desenvolvimento integrado), trabalhando com C e C + + e agora ampliou seu apoio para Java, Python e Vala. A partir da versão 2 inclui o novo suporte para extensões, o que lhe dá mais funcionalidade do que a versão anterior. Também notável é a coloração de sintaxe e sua integração com o Glade para criar interfaces gráficas. site oficial: http://www.anjuta.org/

3. Glade

 É uma ferramenta de desenvolvimento para interface gráfica do usuário (GUI) programado em C e GTK. Tais ferramentas são independentes de uma linguagem de programação específica, mas mais línguas de apoio incluem C, C + +, C #, Java, Vala, Perl e Python, entre outros. A versão 3 foi totalmente reescrito para tirar vantagem das características do GTK +, reduzindo as linhas de código, permitindo a integração com Anjuta. Ele usa um formato XML chamado GtkBuilder para armazenar dados criados interfaces. site oficial: http://glade.gnome.org/ 
4. GCC
(GNU Compiler Collection) é um grupo criado pelo compilador GNU que originalmente compilado para C. Atualmente suporta “front-ends” para C, C + +, Java, Ada, Objective C, Objective C + + e Fortran, e suporta outros não-padrão línguas como o Go, Pascal, Modula-2, Modula 3 e D. As vantagens de usar o GCC para compilar mentira em otimização de código baseado no microprocessador propriamente dito, verificação de erros, depuração e chamadas de subrotina de otimização. site oficial: http://gcc.gnu.org/
5. KDevelop
Outra IDE, que é otimizada para as distribuições que usam o KDE como ambiente gráfico. Ele suporta C, C + + e PHP. Tal como acontece com outras IDEs, a versão 4 foi totalmente reescrito em C + + utilizando as bibliotecas Qt gráficos, permitindo-lhes integrar com QtDesigner. Compilador falta em si também deve instalar o GCC. Algumas de suas características mais úteis são navegador entre as classes de aplicações e suporte para a definição de classes e do quadro. site oficial: http://kdevelop.org/
6.Eclipse
Uma IDE em Java com mais de 2 milhões de linhas de código. É amplamente utilizado para a sua suporte para vários idiomas, bem como várias linguagens de programação como Java, C, C + +, Ada, Perl, PHP, JSP e Python sh, muitos deles através de plugins comunidade. Os plugins também adicionar outras características importantes, tais como a possibilidade de vários usuários trabalhando no mesmo projeto e extensão do IDE para outras ferramentas. Ele é reconhecido pelo longo caminho que conduz, e é o IDE preferida para os desenvolvedores criarem novos aplicativos e ferramentas de programação como “cliente”. Site Oficial: http://www.eclipse.org/
 7. Kate
Muitos sabem este editor de texto para a plataforma KDE, e ao mesmo tempo que oferece milhares de ferramentas é a sua simplicidade, que se apresenta como uma alternativa para muitos outros.Programado em C + + e Qt, suas principais características são a coloração de sintaxe extensível usando XML, o suporte a sessão e código de rastreamento para C, C + +, Java e outras linguagens.É uma das ferramentas incluídas no pacote kdebase e é usado como um editor de texto para o KDevelop e Quanta Plus Site Oficial: http://kate.kde.org/
8. Aptana Studio
Outro “peso-pesado” entre os IDEs e velho conhecido pelos programadores. Hoje está muito desenvolvida e sua extensão através de plugins estender a sua utilidade para várias linguagens de programação, dentre as quais destacamos PHP, Python, Ruby, Rails, CSS, HTML, Ajax, JavaScript e C. Ele também permite o monitoramento de diretórios do projeto, assistente de desenvolvimento web, depuração, conexão via FTP, Ajax bibliotecas e suporte para plug-ins do Eclipse. site oficial: http://www.aptana.com/ 
9.Emacs

Um editor de texto criado por GNU estendido e programado em C e Lisp. Criado em 1975 por Richard Stallman, já percorreu um longo caminho e hoje existem vários “implementações”, como XEmacs. Funciona como um editor simples que permite aos desenvolvedores editar, compilar e depurar o código. Há também bibliotecas que estendem sua funcionalidade e seus próprios comandos internos. site oficial: http://www.gnu.org/software/emacs/ 

10. GNUStep
Um conjunto de bibliotecas orientadas a objetos, aplicativos e ferramentas escritas em Objective C para desenvolver aplicativos de desktop. Ela tem dois “programas”: Centro de Projetos é o editor geral do projeto e GORM para criar interfaces gráficas de usuário. Ele também tem outras ferramentas como fazem, GUI, banco de dados e de volta. site oficial: http://www.gnustep.org/ 
11. HBasic
Uma alternativa para o Microsoft Visual Basic, um IDE de código que integra a edição e criação de interfaces gráficas para que usa as bibliotecas do KDE gráficos. Você também pode fazer “chamadas” para as bibliotecas Qt e executáveis ​​criados diretamente com o programa compilador. Não há versões mais estáveis ​​liberados desde julho de 2009. site oficial: http://hbasic.sourceforge.net/
12.Lazarus
Um programado em Objective C IDE desenvolvido a partir de Free Pascal, multiplataforma e serve como uma alternativa para o Delphi. Permite a criação de ambientes visuais e programas voltados especificamente para a portabilidade de programas compilados, o que significa que pode ser executado em vários sistemas operacionais. É notável a compatibilidade com os gerentes de banco de dados diversos, como Firebird, PostgreSQL, dBase, FoxPro, MySQL, SQLite, Oracle e Microsoft SQL Server. site oficial: http://www.lazarus.freepascal.org/
13. Netbeans
Um IDE “feito em Java para Java”. Sendo código aberto, mas ele desenvolveu maratónicamente nos últimos anos, permitindo extensões incluem trabalhar com C, C + +, PHP, Ruby, Rails e Python. Suas funções são fornecidos por módulos escritos em Java, e há vários desses módulos que funcionam como Eclipse estilo plugins ou Aptana. Hoje é uma das IDEs mais utilizado para programadores Java e Python. site oficial: http://www.netbeans.org/index_es.html
14. QtCreator

Outro IDE que ajuda a criar interfaces gráficas sem a necessidade de ser escrito em uma linguagem particular. Use bibliotecas Qt GUI e plugins pode realizar projetos para linguagens como Python, C, C + +, Java e Ruby. O IDE permite o acompanhamento do código de projeto, seus diretórios e depuração usando o gdb.Talvez a característica mais marcante é a capacidade de criar aplicativos de desktop e móveis. Seu ponto mais fraco é o consumo de memória um pouco alto. site oficial:http://qt.nokia.com/products/developer-tools 

15. Quanta Plus

É o competidor do Bluefish, uma IDE de desenvolvimento web que está a perder terreno, mas ainda é uma grande ferramenta desenhada para o KDE (também parte do pacote kdewebdev). Ele suporta SSH e FTP, usando a sua visualização KHTML, realce de sintaxe e um analisador que informa corretamente a criação de nossas páginas. site oficial: http://quanta.kdewebdev.org/ 

16. Gambas
A segunda alternativa para o Visual Basic e apoia a criação de aplicativos Qt ou GTK com bancos de dados como MySQL, PostgreSQL e SQLite. Entre seus pontos fortes pode-se citar a familiaridade com o IDE Microsoft, trechos de código atalhos, depuração e programas de exemplo, incluindo Site Oficial:http://gambas.sourceforge.net/en/main.html
17. Android SDK
Android para programadores é muito conveniente ter este programa. Inclui não só as ferramentas básicas para começar a criar aplicativos Android, mas também outros, como gerenciador de pacotes, o Google APIs, a documentação código de exemplo, e programas, ferramentas de desenvolvimento e outros estendida. Destaca-se o pacote NDK que permite incluir no código da aplicação de outras linguagens como C ou C + +. site oficial: http://developer.android.com/sdk/index.html
18. WxFormBuilder
Pequena ferramenta que permite a criação de um ambiente gráfico para pequenas aplicações por wx vendedor. É aconselhável ver também outras aplicações como wxWidgets, um quadro que permite gráficos ligados (via script chamado de “ligações”) com várias linguagens, como Ruby, Python, Perl, D, C e C + + Site Oficial: http://sourceforge.net / projects / wxFormBuilder / Como se vê, há várias ferramentas para programação em GNU / Linux. Apenas uma questão de ver qual é a melhor para as nossas necessidades.

Participação Especial

BlueGriffon

Este software é talvez o mais perto que você poderá realmente chegar do Dreamweaver, se quiser ver mais sobre o programa acesse este link.

E você leitor, usa algum destes aplicativos para trabalhar ou usa algum outro que não foi sitado na lista?

Fonte: http://www.diolinux.com.br/2012/09/os-melhores-programas-para-programar-no-linux.html

‘Helllo World’

A postagem original é um pouco antiga, mas achei a reportagem interessante, por isso estou compartilhando. Por favor olhem os comentários na fonte …

 Menino de 9 anos escreve programas para iPhone

Enquanto a maior parte das crianças de sua idade usa lápis de cor para desenhar, o menino de 9 anos Lim Ding Wen, de Cingapura, usa um estojo de cores bem diferente, seu iPhone. Lim, que está na quarta série, escreve aplicativos para o iPhone. O mais recente programa criado por ele chama-se Doodle Kids, que já foi baixado da loja iTunes mais de 4 mil vezes nas últimas duas semanas, publicou o New Paper, nesta quinta-feira. O programa permite que os usuários do iPhone desenhem com os dedos diretamente na tela do aparelho. Para limpar a imagem basta chacoalhar o celular. “Eu escrevi o programa para as minhas irmãs mais novas, que gostam de desenhar”, disse Lim. As irmãs do garoto têm 3 e 5 anos de idade. Lim, que se diz fluente em seis linguagens de programação, começou a usar computador aos 2 anos de idade. Desde então ele já completou cerca de 20 projetos de programação. O pai do menino, Lim Thye Chean, um vice-presidente de tecnologia de uma empresa local, também faz programas para o iPhone. “Todas as noites checamos as estatísticas enviadas para nós por email pelo iTunes para vermos quem tem mais downloads”, disse Lim pai. O garoto, que diz gostar de ler livros sobre programação, está produzindo outro software para o celular da Apple, um videogame de ficção científica chamado “Invader Wars”.

Fonte: under-linux.org.

Oração dos Programadores

Em momentos de grande desespero nada como uma boa oração para melhorar o nosso dia e fazer com que nossos programas funcionem.

Duas orações para que sejam feitas, caso as coisas comecem a dar errado.

Pai Nosso
Sistema Operacional que estais na memória,
Compilado seja o vosso programa,
Venha à tela os vossos comandos,
Seja executada a nossa rotina,
Assim na memória como na impressora.
Acerto nosso de cada dia, rodai hoje.
Informai os nossos erros,
Assim como nós informamos o que está corrigido,
Não nos deixei entrar em looping,
Mas livrai-nos do Dump,
Amém.

Ave Maria
Ave Memória cheia de maps,
o editor é convosco,
estendida sois vós entre as placas,
e o curto de vosso entry: PC-Plus.
Santa memória, mãe do DOS,
roteai por nós, programadores,
agora e na hora da compilação, append!

Contribuição do aluno Marcos Oliveira, turma Técnico em Informática – 2013.

Arquivos Banco de Dados

Boa noite pessoal,

Segue arquivo sobre a linguagem SQL (Strutured Query Language) com comandos e explicações sobre criação de tabelas em um banco de dados MySQL.

Também há alguns exercícios que devem ser resolvidos (páginas 7 e 8) para serem resolvidos e entregues até sexta-feira para o professor Daniel Henrique.

Um abraço.

Confira na página de Downlods.

NOITE DE TECNOLOGIA

Noite de Tecnologia – Turmas de Técnico em Informática e Técnico em Meio Ambiente do CEDUP – MAFRA/SC

Evento promovido pelos orientadores de curso Daniel Henrique e Fernando Conceição com o objetivo de divulgar os trabalhos desenvolvidos nos cursos de informática e meio ambiente.

Além de mostramos para os outros alunos do CEDUP o que é desenvolvido em sala de aula, existe a possibilidade de integrar os alunos e seu conhecimento como foi o caso da oficina de reciclagem de componentes eletrônicos – TI verde.

Com a iniciativa do professor Daniel Henrique, fomos premiados mais uma vez com uma espetacular palestra sobre um tema super importante e atual, computação nas nuvens (Cloud Computing). Onde o professor e orientador Daniel trouxe para nós profissionais da área de desenvolvimento de softwares e sistemas da empresa GATI – Gestão e Assessoria em Tecnologia da Informação, com sede na cidade de Joinville (http://www.g1sistemas.com.br/site/)

Queremos agradecer também a toda equipe pedagógica e direção do CEDUP pelo apoio em mais um evento das turmas de técnico em informática do CEDUP.

Um agradecimento mais que especial aos alunos das turmas 2012 e 2013 e aos professores Moacir Rachid com a oficina de virtualização de sistemas operacionais Linux, Android e MacOS, professor Gilson com a oficina de evolução do hardware e dos sistemas operacionais Windows, professor Roberto com 2 sistemas desenvolvidos em sala de aula pelos alunos, e ao professor Daniel Henrique com uma oficina de crimpagem de cabos de redes e outra oficina sobre redes sem fio com o trabalho de “Lousa Digital – Caneta Interativa”.