SlideShare uma empresa Scribd logo
Aprendendo a programar.
Capítulo I
Introdução tecnológica ao
desenvolvimento de aplicativos.
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.
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.
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.
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.
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.
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.
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.
Primeira regra do programador:
"Todo comportamento repetitivo e predizível
pode ser programável."
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.
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.
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.
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.
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.
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.
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.
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.
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.
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
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
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
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
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
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.

Mais conteúdo relacionado

Semelhante a 10102015164828

Aula 3.1 análise de sistemas homem-máquina
Aula 3.1   análise de sistemas homem-máquinaAula 3.1   análise de sistemas homem-máquina
Aula 3.1 análise de sistemas homem-máquina
Daniel Moura
 
Aula 3.1 análise de sistemas homem-máquina
Aula 3.1   análise de sistemas homem-máquinaAula 3.1   análise de sistemas homem-máquina
Aula 3.1 análise de sistemas homem-máquina
Daniel Moura
 
Oficina App Inventor
Oficina App InventorOficina App Inventor
Oficina App Inventor
Marco Antonio Sanches
 
OpenDevice IoT - 2016 (LowLevel)
OpenDevice IoT - 2016 (LowLevel)OpenDevice IoT - 2016 (LowLevel)
OpenDevice IoT - 2016 (LowLevel)
Ricardo Rufino
 
Aplicativos hibridos-com-ionic-voce-tambem-pode-comecar-a-desenvolver-agora-t...
Aplicativos hibridos-com-ionic-voce-tambem-pode-comecar-a-desenvolver-agora-t...Aplicativos hibridos-com-ionic-voce-tambem-pode-comecar-a-desenvolver-agora-t...
Aplicativos hibridos-com-ionic-voce-tambem-pode-comecar-a-desenvolver-agora-t...
Marcelo Marques Gonçalves
 
Desenvolvimento de aplicações móveis, IOS, Android, Windows Phone 7
Desenvolvimento de aplicações móveis, IOS, Android, Windows Phone 7Desenvolvimento de aplicações móveis, IOS, Android, Windows Phone 7
Desenvolvimento de aplicações móveis, IOS, Android, Windows Phone 7
Dirceu Belém
 
Entenda porque seu aplicativo de Android não deve ser igual ao de iPhone
Entenda porque seu aplicativo de Android não deve ser igual ao de iPhoneEntenda porque seu aplicativo de Android não deve ser igual ao de iPhone
Entenda porque seu aplicativo de Android não deve ser igual ao de iPhone
Henrique Perticarati
 
Apostila informática básica e introdução à internet
Apostila informática básica e introdução à internetApostila informática básica e introdução à internet
Apostila informática básica e introdução à internet
Budu Serra
 
As vantagens de se tornar um desenvolvedor mobile
As vantagens de se tornar um desenvolvedor mobileAs vantagens de se tornar um desenvolvedor mobile
As vantagens de se tornar um desenvolvedor mobile
Dirceu Belém
 
Explorando o Mundo Apple, Desenvolvendo Aplicativos para IOS - Felipe Martins...
Explorando o Mundo Apple, Desenvolvendo Aplicativos para IOS - Felipe Martins...Explorando o Mundo Apple, Desenvolvendo Aplicativos para IOS - Felipe Martins...
Explorando o Mundo Apple, Desenvolvendo Aplicativos para IOS - Felipe Martins...
Impacta Eventos
 
App Inventor: Eu escolho você!
App Inventor: Eu escolho você!App Inventor: Eu escolho você!
App Inventor: Eu escolho você!
Anrafel Fernandes Pereira, MSc.
 
Primeiros passos Windows Phone - 3º Campo Grande Game Show
Primeiros passos Windows Phone - 3º Campo Grande Game ShowPrimeiros passos Windows Phone - 3º Campo Grande Game Show
Primeiros passos Windows Phone - 3º Campo Grande Game Show
Leandro Borges
 
Ingresse e o Apple Watch
Ingresse e o Apple WatchIngresse e o Apple Watch
Ingresse e o Apple Watch
Rodrigo Borges
 
If baiano ihc - aula 06 - comunicabilidade
If baiano   ihc - aula 06 - comunicabilidadeIf baiano   ihc - aula 06 - comunicabilidade
If baiano ihc - aula 06 - comunicabilidade
IFBaiano
 
Desenvolvimento de aplicações nativas para ios e android
Desenvolvimento de aplicações nativas para ios e androidDesenvolvimento de aplicações nativas para ios e android
Desenvolvimento de aplicações nativas para ios e android
Diogo Andre Loff
 
ArduinoDay 2015 - OpenDevice
ArduinoDay 2015 -  OpenDeviceArduinoDay 2015 -  OpenDevice
ArduinoDay 2015 - OpenDevice
Ricardo Rufino
 
Usabilidade de Interfaces - Parte 3
Usabilidade de Interfaces - Parte 3Usabilidade de Interfaces - Parte 3
Usabilidade de Interfaces - Parte 3
Oziel Moreira Neto
 
Phonegap
PhonegapPhonegap
Phonegap
Lucas Aquiles
 
Aula 3.1 - Ergonomia
Aula 3.1 - ErgonomiaAula 3.1 - Ergonomia
Informatica mais atual.pdf
Informatica mais atual.pdfInformatica mais atual.pdf
Informatica mais atual.pdf
NetaOtniel2015
 

Semelhante a 10102015164828 (20)

Aula 3.1 análise de sistemas homem-máquina
Aula 3.1   análise de sistemas homem-máquinaAula 3.1   análise de sistemas homem-máquina
Aula 3.1 análise de sistemas homem-máquina
 
Aula 3.1 análise de sistemas homem-máquina
Aula 3.1   análise de sistemas homem-máquinaAula 3.1   análise de sistemas homem-máquina
Aula 3.1 análise de sistemas homem-máquina
 
Oficina App Inventor
Oficina App InventorOficina App Inventor
Oficina App Inventor
 
OpenDevice IoT - 2016 (LowLevel)
OpenDevice IoT - 2016 (LowLevel)OpenDevice IoT - 2016 (LowLevel)
OpenDevice IoT - 2016 (LowLevel)
 
Aplicativos hibridos-com-ionic-voce-tambem-pode-comecar-a-desenvolver-agora-t...
Aplicativos hibridos-com-ionic-voce-tambem-pode-comecar-a-desenvolver-agora-t...Aplicativos hibridos-com-ionic-voce-tambem-pode-comecar-a-desenvolver-agora-t...
Aplicativos hibridos-com-ionic-voce-tambem-pode-comecar-a-desenvolver-agora-t...
 
Desenvolvimento de aplicações móveis, IOS, Android, Windows Phone 7
Desenvolvimento de aplicações móveis, IOS, Android, Windows Phone 7Desenvolvimento de aplicações móveis, IOS, Android, Windows Phone 7
Desenvolvimento de aplicações móveis, IOS, Android, Windows Phone 7
 
Entenda porque seu aplicativo de Android não deve ser igual ao de iPhone
Entenda porque seu aplicativo de Android não deve ser igual ao de iPhoneEntenda porque seu aplicativo de Android não deve ser igual ao de iPhone
Entenda porque seu aplicativo de Android não deve ser igual ao de iPhone
 
Apostila informática básica e introdução à internet
Apostila informática básica e introdução à internetApostila informática básica e introdução à internet
Apostila informática básica e introdução à internet
 
As vantagens de se tornar um desenvolvedor mobile
As vantagens de se tornar um desenvolvedor mobileAs vantagens de se tornar um desenvolvedor mobile
As vantagens de se tornar um desenvolvedor mobile
 
Explorando o Mundo Apple, Desenvolvendo Aplicativos para IOS - Felipe Martins...
Explorando o Mundo Apple, Desenvolvendo Aplicativos para IOS - Felipe Martins...Explorando o Mundo Apple, Desenvolvendo Aplicativos para IOS - Felipe Martins...
Explorando o Mundo Apple, Desenvolvendo Aplicativos para IOS - Felipe Martins...
 
App Inventor: Eu escolho você!
App Inventor: Eu escolho você!App Inventor: Eu escolho você!
App Inventor: Eu escolho você!
 
Primeiros passos Windows Phone - 3º Campo Grande Game Show
Primeiros passos Windows Phone - 3º Campo Grande Game ShowPrimeiros passos Windows Phone - 3º Campo Grande Game Show
Primeiros passos Windows Phone - 3º Campo Grande Game Show
 
Ingresse e o Apple Watch
Ingresse e o Apple WatchIngresse e o Apple Watch
Ingresse e o Apple Watch
 
If baiano ihc - aula 06 - comunicabilidade
If baiano   ihc - aula 06 - comunicabilidadeIf baiano   ihc - aula 06 - comunicabilidade
If baiano ihc - aula 06 - comunicabilidade
 
Desenvolvimento de aplicações nativas para ios e android
Desenvolvimento de aplicações nativas para ios e androidDesenvolvimento de aplicações nativas para ios e android
Desenvolvimento de aplicações nativas para ios e android
 
ArduinoDay 2015 - OpenDevice
ArduinoDay 2015 -  OpenDeviceArduinoDay 2015 -  OpenDevice
ArduinoDay 2015 - OpenDevice
 
Usabilidade de Interfaces - Parte 3
Usabilidade de Interfaces - Parte 3Usabilidade de Interfaces - Parte 3
Usabilidade de Interfaces - Parte 3
 
Phonegap
PhonegapPhonegap
Phonegap
 
Aula 3.1 - Ergonomia
Aula 3.1 - ErgonomiaAula 3.1 - Ergonomia
Aula 3.1 - Ergonomia
 
Informatica mais atual.pdf
Informatica mais atual.pdfInformatica mais atual.pdf
Informatica mais atual.pdf
 

Último

TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
Momento da Informática
 
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
Faga1939
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
Momento da Informática
 
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdfDESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
Momento da Informática
 
Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
WELITONNOGUEIRA3
 
Certificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdfCertificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdf
joaovmp3
 
Segurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas PráticasSegurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas Práticas
Danilo Pinotti
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
TomasSousa7
 

Último (8)

TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
 
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
 
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdfDESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
 
Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
 
Certificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdfCertificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdf
 
Segurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas PráticasSegurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas Práticas
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
 

10102015164828

  • 1. Aprendendo a programar. Capítulo I Introdução tecnológica ao desenvolvimento de aplicativos.
  • 2. 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.
  • 3. 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.
  • 4. 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.
  • 5. 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.
  • 6. 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.
  • 7. 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.
  • 8. 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.
  • 9. Primeira regra do programador: "Todo comportamento repetitivo e predizível pode ser programável."
  • 10. 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.
  • 11. 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.
  • 12. 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.
  • 13. 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.
  • 14. 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.
  • 15. 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.
  • 16. 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.
  • 17. 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.
  • 18. 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.
  • 19. 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
  • 20. 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
  • 21. 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
  • 22. 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
  • 23. 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
  • 24. 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.