10102015164828

24
Aprendendo a programar. Capítulo I Introdução tecnológica ao desenvolvimento de aplicativos.

Upload: romario-santos

Post on 14-Apr-2017

205 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: 10102015164828

Aprendendo a programar.

Capítulo IIntrodução tecnológica ao

desenvolvimento de aplicativos.

Page 2: 10102015164828

Como funciona um computador?• O computador é um aparelho que talvez pareça mais complexo

do que outros, mas depende das instruções para saber o que fazer. Por exemplo, quando você pressiona o botão de ligação, o computador mostra seu logo, depois carrega o Windows, depois de uns minutos aparece o ponteiro do mouse para poder começar a usá-lo, depois carrega a área de trabalho e assim por diante.

• Parece que ele é inteligente, mas quase sempre faz a mesma coisa, na mesma ordem. Ele está cumprindo ordens.

• A programação é simplesmente as ordens que o computador precisa para fazer alguma coisa, do mais simples até o mais complexo, mas todas elas são ordens.

Page 3: 10102015164828

Como forneço essas ordens?

• Ao longo do curso, vamos aprender como fornecer essas ordens e você vai encontrar muitos termos estranhos para denominar cada uma das formas de fornecer essas ordens.

• Você vai começar a escutar termos como HTML, CSS, Javascript, C#, MVC, Java, SQL, Ruby, Python, C, C++, WPF, Android, IOS, Windows Phone, Windows 8 , Serviços REST, JSON, XML, AJAX, AJAJ.

Page 4: 10102015164828

Dominar a Matrix

• Vamos começar por aqui. Você está lendo este curso, neste computador, devido a que alguém escreveu um programa que chamaram Sistema Operacional e a que outras pessoas escreveram o programa chamado Internet Explorer para navegar na Internet e chegar até aqui. Alguém também programou este site para que você encontre este documento.

Page 5: 10102015164828

Dominar a Matrix (continuação)

• Você usou o telefone hoje para uma mensagem ou para falar? Você pode se comunicar porque na companhia telefônica existem programas informáticos que verificam quem é você, se você tem saldo na conta para realizar a ligação, através do número que você marcou detecta para quem está ligando, localiza onde está essa pessoa, envia um sinal para que toque o telefone do destinatário e estabelece a ligação.

Page 6: 10102015164828

Como funcionam as coisas?

• Já dissemos que os aparelhos não são inteligentes, só sabem fazer uma tarefa repetidamente de forma muito eficiente.

• Cada vez que vemos que uma tarefa é realizada sempre da mesma forma, ela é candidata para criar um programa para que seja feita automaticamente.

• Portanto, devemos compreender que programar é simplesmente dizer para o computador como é a sequência de passos para conseguir realizar uma tarefa.

Page 7: 10102015164828

Exemplo com um jogo

• Temos um jogo com uma personagem. Ao pressionar o botão do joystick, ele pula.

• Se o botão é pressionado repetidamente, a personagem pula da mesma forma que a vez anterior.

• Vamos pensar só na personagem pulando, sem considerar o que acontece no resto do jogo.

Page 8: 10102015164828

Exemplo com um jogo (continuação)

• A personagem pula porque alguém escreveu, com uma linguagem de programação, como deve se comportar a personagem. Os passos seriam:– Desenhar a personagem na tela– Ficar esperando que o usuário realize alguma coisa com o joystick– Receber um sinal do joystick, o usuário pressionou um botão– Qual botão pressionou? Se pressionou acima, continuar– Ler a posição atual da personagem na tela– Calcular a distância de pulo, 20 pixels, 30 pixels– Carregar a sequência de imagens com cada quadro de personagem pulando– Imprimir na tela cada uma das sequências, mudando a posição na tela– Voltar para o passo 2.

• Aliás, um jogo não é só uma personagem que pode pular. Há muitas coisas que acontecem ao mesmo tempo, mas elas são... mais linhas de código realizadas por um programador.

Page 9: 10102015164828

Primeira regra do programador:

"Todo comportamento repetitivo e predizível pode ser programável."

Page 10: 10102015164828

Um braço robótico• Se descrevemos a sequência de passos para dirigir um braço

robótico, como no exemplo do jogo, há uma semelhança:• Ambos os dois estão executando uma série de passos lógicos,

ordenados e sequenciais.• Diante da mesma ação, o mesmo resultado.• Isso é devido a uma codificação em um programa informático, na

linguagem que for, mas há uma grande diferença:• Enquanto o braço robótico interage com o mundo físico,

movendo parte de um lado para outro, o outro programa só interage com um mundo virtual, imprimindo imagens na tela.

Page 11: 10102015164828

Um braço robótico (continuação)• Ambos os processos precisam de um programa informático que os

controle e o programador é quem escreve essa série de passos.• A única diferença é a interação com o mundo exterior.• No caso da robótica, além de executar os passos, é necessário que o

resultado da sequência de passos ative mecanismos físicos para mover cada uma das engrenagens do braço.

• Entretanto, o sistema informático para consultar o álbum só teve que interagir com o mundo exterior, imprimindo o resultado na tela.

• A chave para desenhar qualquer sistema é levar em conta como serão as interações com o mundo exterior.

• Nesse curso, vamos tratar dos processos virtuais, aqueles que não têm interação física além de ler valores de uma interface de usuário e processar essa interação para atingir um resultado.

Page 12: 10102015164828

Aplicativos conectados ou desconectados

• Na hora de realizar um aplicativo, é importante decidir se precisamos que o programa dependa de uma conexão a Internet ou que funcione mesmo quando não houver conexão.

• O primeiro ponto para diferenciar é se os aplicativos são conectados ou desconectados.

• Os aplicativos conectados são aqueles que para funcionar precisam uma conexão a Internet. Do contrário, eles não funcionam.

• Um exemplo podem ser os jogos em rede. Sem conexão, eles não funcionam.

Page 13: 10102015164828

Web sites• Então... um web site é um aplicativo?• Se o web site permite realizar alguma coisa, ele é um aplicativo

conectado, já que só funciona com Internet. • Quando um web site serve para realizar alguma coisa concreta,

ele interage com o usuário, realiza alguma coisa com as informações e fornece um resultado, então ele é um aplicativo.

• A diferença principal entre um web site e um aplicativo web é que no aplicativo web o usuário pode interagir e alterar o resultado conforme essa interação.

• Os web sites que permitem realizar alguma coisa são aplicativos web conectados.

Page 14: 10102015164828

Aplicativos conectados

• O aplicativo desconectado deve ser instalado ou rodado de algum meio presente fisicamente para poder ser utilizado, enquanto o aplicativo conectado pode ser usado diretamente acessando a Internet.

• Exemplo: Microsoft Word, Visual Studio, etc.

Page 15: 10102015164828

O que preciso para aprender a programar?

• Para saber programar você precisa saber duas ou três linguagens de programação e duas ou três tecnologias adicionais, e considerar 4 fatores principais:

• Como vou interagir com o usuário?Devo decidir como quero que o usuário se comunique com o aplicativo.– O usuário utiliza o smartphone, pressiona botões, usa a

câmera. – O usuário acessa um site para utilizar meu aplicativo.– O usuário utiliza sensores físicos, teclados especiais, joysticks

ou telas tácteis.

Page 16: 10102015164828

O que preciso para aprender a programar? (continuação)

• Preciso lembrar informações?Devo decidir se o aplicativo salva meus dados, se mantém estatísticas, escores, se salva informações que podem ser recuperadas em qualquer momento.– O usuário não salva nenhum tipo de informações.

Cada vez que usa o aplicativo é como começar de novo.

– O usuário salva informações e pode recuperá-las.

Page 17: 10102015164828

O que preciso para aprender a programar? (continuação)

• Preciso conexão permanente para funcionar?Devo decidir se meu aplicativo precisa se comunicar com outros usuários para funcionar ou se depende da existência de conexão à Internet para ser executado.– O usuário interage com outros usuários, e vê

informações deles ou se comunica com eles. – O usuário não instala nada para executar o

aplicativo, simplesmente acessa um site.

Page 18: 10102015164828

O que preciso para aprender a programar? (continuação)

• Se o aplicativo precisa se conectar com outros aplicativos – O aplicativo utiliza mapas de Internet ou conexão com

outros aplicativos para compartilhar informações.– O aplicativo acessa servidores com stats de usuários.– O aplicativo não precisa se conectar com ninguém.

A tecnologia que usaremos dependerá do que precisarmos realizar.

Page 19: 10102015164828

Tecnologias• O usuário acessa através de uma página web?

– HTML + CSS + Javascript– Adobe Air + Java

• O usuário acessa através de um aplicativo em um telefone celular?– PhoneGap + HTML + CSS + Javascript– O telefone é Windows Phone?

• Windows Mobile WPF + Window Phone + C# .NET– O telefone é Android?

• Android Development Kit + Java– O telefone é IPhone?

• IOS SDK + Objective C

Page 20: 10102015164828

Tecnologias

• O usuário acessa através de um tablet?– PhoneGap + HTML + CSS + Javascript– O tablet tem Windows 8?

• Windows WPF + Window 8 + C# .NET– O tablet tem Android?

• Android Development Kit + Java– O tablet é IPad?– IOS SDK + Objective C

• O usuário utiliza o GPS, câmera, acelerômetro? – IOS SDK, Android Development Kit

Page 21: 10102015164828

Tecnologias• O usuário utiliza intensivamente componentes externos como

joystick, sensor de movimento, gráficos 3D ou áudio? – O aplicativo é um jogo?

• C# .NET ou C++ ou Java• Preciso realizar gráficos complexos.

– Unity, Adobe Air• Não preciso realizar gráficos complexos.

– LimeJS, CSS

– O aplicativo não é um jogo?• C++ ou C# .NET ou Java• O aplicativo é para Windows?

– WPF + C#.NET• Ele é para Mac?

– Java, C++, etc

Page 22: 10102015164828

Tecnologias• Preciso armazenar e recuperar informações?

– SQL, SQL Server Express ou My SQL• Não tenho muita certeza ainda sobre quais dados preciso armazenar?

– Banco de dados documentais • Aplicativo conectado ou desconectado

– Preciso de conexão com outros? – O aplicativo precisa de conexão permanente para ser executado?

• Javascript, C#.NET, Java, WCF, Servidor Web– O aplicativo só funciona através de uma página web?– O aplicativo precisa da rede, mas deve ser instalado ?

• Serviços Rest, JSON, WCF

• O aplicativo não precisa se conectar e funciona na área de trabalho?– C#.NET ou Java

Page 23: 10102015164828

Tecnologias

• O aplicativo precisa interagir com outros aplicativos?– Java, C#.NET, WCF, Serviços REST

• O aplicativo trabalha com componentes eletrônicos ou robóticos?– Arduino

Page 24: 10102015164828

O que usamos?• O que escolhem os programadores?

– HTML, CSS, Javascript, Adobe Air, Java, C++, C#.NET, WPF, WCF, Serviços Rest, Windows Phone SDK, IOS SDK, Android SDK, Unity, SQL, PHP

• O que vamos ensinar nesse curso?• HTML, CSS, Javascript, jQuery, C#, SQL, LINQ, Serviços

Rest

Não é necessário aprender todas as linguagens de programação que existem ao mesmo tempo. É suficiente entender para que servem e usar a mais conveniente.