Objota O mundo orientado a objetos

Delegate Objective-C de uma forma simples e direta

Posted on janeiro 10, 2011

Posted by Pedro

Bom, o que quero apresentar para vocês nesse POST é como utilizar delegate de uma forma direta. Haa mas como seria isso? Simples, vou apresentar um exemplo prático. Então mão na massa!

Bom primeiramente vou colocar aqui para vocês um problema simples, imagine as Classes A, B, C e D.
Nesse contexto as classes B, C e D possuem uma instancia da classe A, e dentro da classe A possui um "evento" de Print, que irá imprimir na tela uma String, porém antes de ser impresso esse texto eu tenho que avisar as classes que implementarão A que eu irei realizar essa ação, mas eu não conheço as classes que estão esperando receber esse "evento", então como resolver esse problema?

Então é ai que entra os delegates, que para quem já programa em JAVA vai entender que não passa de um tipo de Listener usado de uma forma diferente.

A criação de um delegate é realizado através da declaração @protocol no arquivo .h onde também é declarada a Classe.

Então vamos ao exemplo. Primeiramente crie um projeto View-based Application no seu Xcode com o nome de TesteDelegate.

Após criar o projeto vamos criar as classes A, B e C dentro da pasta Classes, clicando com o botão direito encima dela e escolhendo a opção Add -> New File. Feito isso vamos criar um método na classe A ( arquivo A.h ) chamado printString.

E dentro desse arquivo, vamos criar também o protocolo da nossa classe da forma apresentada abaixo, depois irei explicar o que faz cada comando.

//A.h
#import <Foundation/Foundation.h>

@protocol ADelegate <NSObject>

@required
- (void)didPrint;

@optional
- (void)willPrint;

@end

@interface A : NSObject {

	id <ADelegate>delegate;

}

@property(nonatomic, retain) id <ADelegate>delegate;

- (void)printString;

@end

//A.m
#import "A.h"

@implementation A

@synthesize delegate;

- (void)printString {

	if ([delegate respondsToSelector:@selector(willPrint)]) {
		[delegate willPrint];
	}

	NSLog(@"Escreveu a String");

	[delegate didPrint];

}

- (id) init {

	self = [super init];

	if (self != nil) {
		delegate = nil;
	}

	return self;

}

@end

Na classe A nós criamos um protocolo chamado ADelegate, esse protocolo é o delegate em si, e como vocês podem ver na declaração nós tipamos o Protocolo como NSObject para dessa forma usar os métodos da classe NSObject.

Embaixo vocês irão encontrar os métodos didPrint com o indicador @required (que serve apenas para informar que o método é de obrigatória implementação pela classe que será responsável pelo delegate) e willPrint com o indicador @optional (serve para indicar que o método não precisar ser implementado, é opcional).

Agora na @interface da classe A declaramos a variavel delegate do tipo id (tipo de dado genérico no Objective-c). Essa variável irá receber a classe que será responsável pelo delegate. Logo embaixo declaramos a propriedade (prometo que irei fazer um post sobre propriedades no objective-c) para o delegate e dessa forma conseguir enxergar essa variável a partir de outras classes.

Feito isso implementamos o método printString, Nesse método temos algumas coisas importantes para falar.

if ([delegate respondsToSelector:@selector(willPrint)]) {
     [delegate willPrint];
}

Nesse if eu verifico se o objeto delegate (que eu não sei de onde vem e quem é, só sei que deriva do NSObject, por esse motivo eu tipei esse protocolo como NSObject) responde ao método willPrint, essa verificação básicamente "olha" se a classe possui esse método implementado, se sim, eu acho o método, se não ele passa direto.

Essa é a forma que posso tornar meu método de implementação opcional.

Já na linha:

[delegate didPrint];

Caso não esteja implementado o método na classe que está setada como delegate irá gerar um erro na execução do programa.

Dessa forma eu torno o método de implementação obrigatória.

Classe B:

Na classe B é criado uma instância da classe A e setado o delegate da classe A como self (self é o mesmo que this usado nas linguagens como java, php, javascript, etc) para que a classe B seja responsável por receber os eventos (ou mensagens) enviados da classe A.

O mesmo é criado na classe C.

//B.h
#import <Foundation/Foundation.h>
#import "A.h"

@interface B : NSObject <ADelegate> {

}

@end

//B.m
#import "B.h"

@implementation B

- (id) init {

	self = [super init];

	if (self != nil) {

		A *a = [[A alloc] init];
		a.delegate = self;
		[a printString];

	}

	return self;

}

- (void)willPrint {
	NSLog(@"vai printar na classe B");
}

- (void)didPrint {
	NSLog(@"terminou de printar na classe B");
}

@end
//C.h
#import <Foundation/Foundation.h>
#import "A.h"

@interface C : NSObject <ADelegate> {

}

@end

//C.m
#import "C.h"

@implementation C

- (id) init {

	self = [super init];

	if (self != nil) {

		A *a = [[A alloc] init];
		a.delegate = self;
		[a printString];

	}

	return self;

}

- (void)willPrint {
	NSLog(@"vai printar na classe C");
}

- (void)didPrint {
	NSLog(@"terminou de printar na classe C");
}

@end

Bom com as classes já criadas, vamos ao arquivo que irá iniciar o nosso teste. Procure o arquivo main.m que está dentro da pasta Other Sources e então deixe como segue abaixo.


#import <UIKit/UIKit.h>
#import "B.h"
#import "C.h"

int main(int argc, char *argv[]) {

    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];

	[[B alloc] init];
	NSLog(@"--------------------------");
	[[C alloc] init];

    int retVal = UIApplicationMain(argc, argv, nil, nil);
    [pool release];
    return retVal;
}

Para executar esse programa e ver o resultado pressione command + enter, ou vá ao menu Build -> Build and Debug. Então após o programa rodar no simulador vá em Run -> console e veja a saida do NSLog que colocamos no código.

E se voce quiser pode tirar o método willPrint e verificar o que vai ocorrer.

E ainda pode ver que vai gerar um erro caso retire o método didPrint.

E para fixar ainda mais a idéia de como funciona o delegate, retire o comando a.delegate da classe B e veja o resultado.

Bom galera, espero que tenham entendido, sei que algumas coisas ficaram faltando explicar, porém vou escrever sobre @property em outro artigo sem dúvidas, porém iria ficar confuso escrever tudo nesse.

Espero que gostem, dúvidas e sugestões postem por favor.

Hello world em objective-C na plataforma iPhone ou iPad

Posted on novembro 2, 2010

Posted by Pedro

Bom galera, como prometido eu vou começar com os meus artigos sobre desenvolvimento para iPhone e iPad (ou melhor iOS).

Como alguns de vocês já devem saber, a linguagem utilizada para desenvolvimento nessa plataforma é o Objective-C (linguagem derivada do C, com um desempenho surpreendente e orientada a objetos).

Para quem não conhece nada da linguagem, não se preocupe, pois no meio dos artigos vou explicar o que cada comando faz e o porque estamos utilizando os mesmos.

Como qualquer primeiro artigo, vamos fazer o clássico “Hello World”, em Objective-C já usando o Kit de desenvolvimento da Apple o UIKit.

No UIKit temos basicamente “tudo o que precisamos” para desenvolver aplicações para o iOS. Dentro desse Kit temos componentes como o UIView, que basicamente todos os componentes gráficos são derivados dessa classe.

Para iniciar nosso projeto precisamos primeiro ter um Mac em mãos (se tiver um PC com hackintosh também pode usar, porém uma hora você irá precisar de um Mac, acredite). Se você ainda não instalou o SDK (que vem com a IDE Xcode), acesse o endereço http://developer.apple.com/devcenter/ios/index.action e faça o download (precisa fazer o cadastro na Apple para fazer o download, é de graça o cadastro para o download).

Feito isso e com o Xcode já instalado, ai você pode iniciar o desenvolvimento de suas aplicações para a plataforma iOS.


Como criar um projeto no Xcode?

Para iniciar seu novo projeto, você deve clicar no ícone do Xcode e irá aparecer uma tela conforme abaixo:

Então clique em Create a new Xcode project, ao clicar nesse botão irá aparecer a tela para selecionar o template do projeto que você quer iniciar, no nosso caso vamos escolher o View-based Application que fica na caixa de seleção Application, no campo Product selecione para qual device você irá iniciar o projeto, no nosso caso você pode selecionar iPad, pois será a mesma coisa para iPhone e iPad, o que vai mudar são as configurações e tamanho de arquivos .xib (arquivos de interface gráfica que ele irá gerar), que nosso assistente irá gerar para nós.

Quando você clicar no botão Choose aparecerá para você a caixa de diálogo onde será salvo o projeto. Escolha um local e salve o projeto como o nome de HelloWorld.

Ao salvar o projeto, nosso ambiente de trabalho vai aparecer na tela para começarmos a trabalhar no nosso código, mas antes vale ressaltar alguns pontos importantes do nosso ambiente de desenvolvimento.

1 – Nessa pasta estão as classes da nossa aplicação, todas as classes criadas, por motivos de organização iremos sempre deixar aqui.

2 – Nessa pasta geralmente deixamos apenas esses arquivos mesmo, que é a classe que irá iniciar nossa aplicação e o arquivos que faz o import automático do frameworks quer serão usados em todas as classes do projeto, por padrão ele importa o UIKit e o Foundation.

3 – Na pasta Resources ficam todos os arquivos de imagem, .plist (arquivos que geralmente são usados como config da aplicação), .xib (arquivos de interface gráfica que são editados pelo Interface Builder) e arquivos de dados (XML, BD, etc.).

4 – Todos os frameworks que foram importados para a aplicação.

5 – O nome da App (executável, vamos dizer assim para os que estão familiarizado com windows) que será gerado.

6 – Na pasta Targets ficam todos os arquivos que irão fazer parte do pacote da aplicação na hora de compilar. Então quando tiver algum problema de um determinado arquivo não estiver sendo interpretado o problema pode esta nessa pasta. Eles são divididos em arquivos que serão compilados, arquivos de resource e frameworks.

7 – Ao clicar em algum arquivo, suas informações para edição ou para visualização serão mostrados aqui.


Vamos ao código

Procure o arquivo HelloWorldViewController.m e dentro desse arquivo encontre o método - (void)viewDidLoad, e dentro desse método coloque o seguinte:

[super viewDidLoad];

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"My first program" message:@"Hello world" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];

[alert show];

[alert release];


Após isso podemos executar nosso primeiro programa em objective-C, indo no menu build e clicando em build and run e ver o resultado (você também pode executar pressionando command + Y).

Se tudo funcionou OK, ou seja, se apareceu um alert na sua tela, veja a explicação do código abaixo, se não baixe os arquivos que estão no final do post e tente executar.

Primeiro chamamos o método viewDidLoad da super classe UIViewController e logo depois alocamos e iniciamos um objeto UIAlertView com os parâmetros para o título, mensagem, delegate (ainda temos muito o que falar sobre delegate), texto para o botão cancelar e falamos que não tem outros botões passando o valor nil em otherButtonTitles.

Então pedimos para exibir chamando o método show do objeto e finalmente removemos o objeto da memória ( [alert release] ).

Bom galera, então e isso. Chegamos ao fim do nosso exemplo mais do que simples de um Hello World em Objective-c Usando o UIKit.

Espero que tenham gostado. Dúvidas reclamações e sugestões postem aqui por favor, para que assim eu possa melhorar nos seguintes post`s.

Vlwww…

arquivos do post

Classes e Objetos em JavaScript

Posted on outubro 31, 2010

Posted by Rodrigo Ireno

O objetivo deste artigo é apenas mostrar a curiosa forma que toma uma classe feita em javascript puro.

Muitos usuários da biblioteca prototype não fazem questão de fazer desta forma afinal, nem sempre é viável. Para quem não sabe prototype é uma biblioteca que maximiza o poder de orientação a objetos do javascript. Porém no nosso caso presente, não a utilizaremos.

Veremos algumas coisas básicas comparando uma classe em php, por exemplo, e a classe em javascript.

A primeira coisa que podemos ver é que o JS não possui um envoltório chamado class para isso ele usa function.

Php:

class MinhaClasse{
 	//Aqui o conteúdo
}

JavaScript:

function MinhaClasse(){
 	//Aqui o conteúdo
}

Ótimo, e o construtor da classe. Em php se utiliza um método com o mesmo nome da classe ou __constructe. E em JS..  não tem!! Isso mesmo. O conteúdo do construtor fica mergulhado juntamente com os atributos.

Php:

class MinhaClasse{
        private $nome;
 	public function MinhaClasse($novoNome){
 		$this->nome = $novoNome;
 	}
}

JavaScript:

function MinhaClasse(novoNome){
  	var nome;
        this.nome = novoNome;
}

Vejamos agora uma declaração  dos famosos métodos get e set:

Php:

class MinhaClasse{
        private $nome;
 	public function MinhaClasse($novoNome){
 		$this->nome = $novoNome;
 	}
        public function getNome(){
 		return  $this->nome ;
 	}
        public function setNome($novoNome){
 		$this->nome = $novoNome;
 	}
}

JavaScript:

function MinhaClasse(novoNome){
  	var nome;
        this.nome = novoNome;
        this.getNome=function(){
 		return this.nome;
 	};
        this.setNome=function(otroNome){
 		this.nome = otroNome;
 	};
}

Agora vamos ver uma peculiaridade do javascript de passar uma função via parâmetro, ou dados no formato JSON. Veja como é simples:

Função via parâmetro:

function hello(){
 	document.write("Oi objota!");
}
function executaPraMim(funcaoQualquer){
 	funcaoQualquer(); //pronto! Ele chama a função
}

//passo uma função já implementada ou..
executaPraMim(hello());

//implementa-se no ato da parametrização
executaPraMIm(function(){
 	document.write("Essa eu implementei agora!");
});

Muito bacana não é!

Agora vejamos um exemplo bem simples de uma função que recebe dados no formato JSON.


function mostra(dados){
	Alert("O nome é: "+dados.nome+"\nemail: "+dados.email);
}
//vejamos a chamada
Mostra({nome: "Objota", email: "objota@teste.com.br"});

Neste artigo vimos como implementar classes, receber funções via parâmetro e dados no formato JSON. Neste artigo quis mostrar algumas peculiaridades do JS, nada em especial. Somente algumas dicas aos curiosos. Abaixo temos os exemplos completos coloque os dois arquivos no mesmo diretório e inicie a índex.html.

É isso! Até a próxima. Dúvidas, postem aí! 😉

Classes.js


//Classe Carro
function Carro(){
    var placa;
    var cor;

    this.getPlaca=function(){
        return this.placa;
    };

    this.setPlaca=function(novaPlaca){
        this.placa = novaPlaca;
    };
    this.getCor=function(){
        return this.cor;
    };

    this.setCor=function(novaCor){
        this.cor = novaCor;
    };
}

//Classe Pessoa
function Pessoa() {

    //@interface
    var nome;
    var idade;
    var email;
    var carro;
    //@end

    //@constructe
    this.carro = new Carro();
    this.carro.setPlaca(7520);
    this.carro.setCor("Amarelo");
    //@end

    //@implementation
    this.getCarro=function(){
        return this.carro;
    };

    this.getNome=function(){
      return this.nome;
    };

    this.getIdade=function() {
      return this.idade;
    };

    this.getEmail=function() {
      return this.email;
    };

    this.setNome=function(_nome) {
      this.nome = _nome;
    };

    this.setIdade=function(_idade) {
      this.idade = _idade;
    };

    this.setEmail=function(_email) {
      this.email = _email;
    };

    this.mostraValores=function() {
      return 'Nome: '+this.nome+
             '<br/>Idade: '+this.idade+
             ' anos<br/>Email: '+this.email+
             '<br/>Carro:<br/>* Placa:'+this.carro.getPlaca()+
             '<br/>**Cor: '+this.carro.getCor();
    };

    //Recebe uma função por parâmetro e executa
    this.executa=function(i,funcao){
          if(i > 0)
          funcao();
    };

    //Recebe dados no formato JSON via parâmetro
    this.mostraJson=function(dados){
          return 'Id:'+dados.id_conteudo+'<br/>Nome: '+dados.nome;
    };
    //@end
}

index.html


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Classes em javascript</title>
<script type="text/javascript" src="Classes.js"></script>
</head>

<body>
<script type="text/javascript">
  var Objota = new Pessoa();

  Objota.setNome('Objota - POO');
  Objota.setIdade(21);
  Objota.setEmail('email@objota.com.br');

  document.write(
    Objota.mostraValores()
  );
  document.write(
    Objota.getCarro().getPlaca()
  );

  //Altera placa do meu atributo carro, que é um objeto!
  Objota.getCarro().setPlaca(5051);

  //Passando função por parâmetro
  Objota.executa(1,function(){
      Objota.setNome('Rodrigo I.O.');
      Objota.setIdade(22);
      Objota.setEmail('bass_oliveira@hotmail.com');

      document.write(Objota.mostraValores());
  });

  //Passo dados no formato JSON via parâmetro {label: valor}
  document.write(Objota.mostraJson({id_conteudo: 50, nome: 'Manezinho'}));
</script>
</body>
</html>

Links importantes para desenvolvedores iPhone / iPad

Posted on agosto 25, 2010

Posted by Pedro

Galera para quem está com dificuldades em iniciar com o desenvolvimento para iPhone / iPad segue alguns links que jugo muito importates para iniciar essa "batalha" em busca de conhecimento que de certa forma está escasso aqui no Brasil.

Digamos que 99,9% do conteúdo está em inglês, então quem não possui uma boa leitura em inglês pode jogar no tradutor do google para ler.. hehe, mas o melhor mesmo é aproveitar a leva e estudar um pouco de inglês também.

Esses são os principais links:
http://developer.apple.com/ipad/sdk/index.html - Para quem está interessado em informações do iPad

http://guides.macrumors.com/Objective-C_Tutorial - Tutorial muito simples para quem está iniciando o estudo em objective-c.

http://www.iphonedevsdk.com/forum/tags/objective-c.html -  Aqui você vai encontrar 90% dos seus problemas já resolvidos.

http://developer.apple.com/iphone/library/navigation/index.html - Todas as informações que você precisa para iniciantes e programadores avançados na plataforma.

http://webclaudio.wordpress.com/category/desenvolvimento/iphone/ - Blog simplesmente fantástico sobre desenvolvimento para iPhone (em PT-BR).

http://www.edumobile.org/iphone/category/iphone-programming-tutorials/ - Tutoriais muito bacanas. Vale a pena conferir.

Essa página será atualizada com novas referências de links para estudos constantemente. Então deixe em seus favoritos e sempre que possível olhe para ver se possui alguma novidade.

E claro, você pode acompanhar o site do objota que sempre será atualizado com novas informações e tutoriais sobre iPhone / iPad.

Obrigado pessoal, e até a próxima!

O que é o iPad? Como desenvolver aplicativos para iPhone e iPad?

Posted on julho 26, 2010

Posted by Pedro

Para quem ainda não conhece o iPad, é um dispositivo no formato de tablet produzido pela Apple. Esse dispositivo é intermediário entre um notebook e um smartphone, ele utiliza o sistema operacional iPhone OS que já conhecido pelos que usam o iPhone, esse dispositivo promete revolucionar os dispositivos móveis.

iPad

O iPad possui um design fantástico que novamente para quem está acostumado com o iPhone não é nem uma novidade no seu design e sistema operacional.

Como nós de análise, desenvolvimento, inovadores, empresários e todos os outros que irão trabalhar com esse dispositivo para criar aplicativos, vender aplicativos ou utilizar para agilizar nossas vidas não podemos deixar de ficar por dentro das novas tecnologias, eu (Pedro Lucas) nos próximos dias vou começar uma série de artigos sobre o desenvolvimento de gatgets para iPhone / iPad.

A linguagem nativa para desenvolvimento de aplicativos para o iPhone OS é o Objective-C.
Obs: Os artigos de desenvolvimento apresentados no blog serão do básico ao avançado. Iremos iniciar com a linguagem Objective-C antes de entrar no SDK do iPhone OS.

Mas antes de começar segue para vocês algumas informações técnicas do iPad:

Tamanho e peso

  • Altura: 9,56 polegadas (242,8 mm)
  • Largura: 7,47 polegadas (189,7 mm)
  • Espessura: 0,5 polegada (13,4 mm)
  • Peso: 1,5 libras (0,68 kg) - modelo Wi-Fi; 1,6 libras (0,73 kg) modelo Wi-Fi + 3G

Tela

  • Tela Multi-Touch widescreen brilhante de 9,7 polegadas (diagonal), retroiluminada por LEDs, com tecnologia IPS
  • Resolução de 1024 por 768 pixels, 132 pixels por polegada (ppp)
  • Revestimento resistente à impressão digital e oleosidade
  • Suporte a vários idiomas e caracteres simultaneamente

Capacidades, Processador, Bateria e Entada / Saída

  • Unidade de memória flash de 16GB, 32GB ou 64GB (o valor varia de acordo com o tamanho do memória escolhida).
  • Memória RAM de 256MB
  • Apple A4 de 1GHz
  • Bateria interna recarregável de polímero de lítio de 25 watts/hora
  • Até 10 horas de duração da bateria navegando no dispositivo.
  • Carga via adaptador de energia ou USB para o computador
  • Conector de 30 pinos
  • Fone de ouvido estéreo de 3,5mm
  • Alto-falante interno
  • Microfone

Hello World em php

Posted on julho 5, 2010

Posted by Rodrigo Ireno

PHP (um acrônimo recursivo para "PHP: Hypertext Preprocessor") é uma linguagem de programação de computadores interpretada, livre e muito utilizada para gerar conteúdo dinâmico na Web.

Algumas pessoas se confundem com php e javascript, desde já esclareço. PHP é uma linguagem que é executada pelo servidor web e o javascript é executado pelo navegador do usuário.

A linguagem surgiu por volta de 1994, como um pacote de programas CGI criado por Rasmus Lerdorf, com o nome Personal Home Page Tools, para substituir um conjunto de scripts Perl que ele usava no desenvolvimento de sua página pessoal. Em 1997 foi lançado o novo pacote da linguagem com o nome de PHP/FI, trazendo a ferramenta Forms Interpreter, um interpretador de comandos SQL.

A atual versão é a 5, que possibilita utilizar diversos recursos de orientação a objetos. E ela já está caminhando firme rumo a versão 6, com certeza com mais recursos ainda.

É uma linguagem, em essência, muito parecida com C e C++. E o detalhe é que seu compilador é feito em C. Está disponível para diversos sistemas operacionais: Windows, Linux Mac OS são alguns deles.

Neste artigo quero mostrar como instalar o php e publicar um simples exemplo de script em PHP. A plataforma que irei utilizar é windows.

Para começar vamos fazer download do xampp. Um aplicativo que instala em sua máquina todas as ferramentas necessárias para se iniciar um estudo de php sendo:

  • O compilador do php
  • Banco de Dados MySQL - e a ferramenta phpMyAdmin
  • E o todo poderoso servidor Apache

Além de alguns ítens de série, mas por hora não vem ao caso.

Entendendo as três coisas. O compilador lê o seu código interpreta e executa; O banco de dados armazena dados (que novidade); E o Apache é um software para servidores web que recebe requisições e devolve uma página para o browser.

Um exemplo de requisição:
www.google.com.br

Ou seja, requisição quem faz é o usuário através do browser.

faça download do xampp

Sua instalação é extremamente simples, vai apertando "Next" ou "Próximo" até ele instalar. No meio dessa história o instalador vai te perguntar onde arquivar o xampp, lembre bem onde ele será arquivado.

Depois de instalado, encontre a pasta xampp e dentro dela encontre a pasta htdocs, pois é lá que os scripts php devem ficar para que sejam executados.

C: CaminhoQueVocêEscolheu/xampp/htdocs

( "C:" também era um exemplo, você também pode instalar em outras partições de seu computador ).

Feito isso, já temos como fazer um Hello World. Podemos usar o bloco de notas para escrever o script, salvar com a extensão “.php”, porém profissionais da área utilizam ferramentas especializadas em lidar com esta linguagem, são as chamadas  IDE's,  ( Integrated Development Environment) - Ambiente Integrado de Desenvolvimento.

Existem vários editores no mercado, a maioria freeware. Eu utilizo ZendStudio, uma excelente ferramenta para desenvolvimento web, e vai bem além de php. Outra também para iniciar e nada mais que isso seria o Dreamweaver, mas ainda assim recomendo o ZendStudio.
Bom vamos ao "Hello World";

Inicie seu bloco de notas e digite:

<?php

echo "Hellow World";

?>

Salve este arquivo dentro do diretorio ( pasta)  htdocs com a extensão “.php”, pode ser com o nome teste.php

Depois disso, inicie seu browser e digite:

http://localhost/teste.php

Se tudo der certo você verá a frase "Hello World" escrito na tela do navegador.

Pronto, você já fez, provavelmente,  seu primeiro script em php.
Dúvidas ou sugestões deixem um comentário. Abraços 😉

Um pouco sobre a JVM – Java Virtual Machine

Posted on junho 29, 2010

Posted by Rodrigo Ireno

Olá, neste artigo vou comentar um pouco sobre a JVM (Java Virtual Machine) que é responsável por interpretar suas classes feitas em Java. Vamos ser diretos quanto aos fatos.

A linguagem Java possui um alto nível de portabilidade. O que seria? Portabilidade significa que o seu código é portável para diferentes plataformas, por tanto os programadores Java não precisam se preocupar a fundo com o sistema operacional para o qual está sendo feito o seu aplicativo. Como isso é possível?

Simples, quando o programador faz uma classe ou em um projeto inteiro, onde muitos profissionais atuam. O projeto consiste, geralmente, de milhares de classes. Todas escritas em linguagem Java. Os arquivos são salvos com a extensão “.java”.
exemplo: “filter.java” - exemplo de um arquivo que contenha alguma classe

Dentro de um arquivo como este, está tudo escrito em Java. Quando se compila o código Java em uma IDE qualquer, é gerado um arquivo filter, porém com uma extensão “.class” . Este arquivo “filter.class” contém o bytecode este por sua vez é executado pela Java Virtual Machine. Então por definição, quem executa uma aplicação feita em Java é a Virtual Machine, software free disponibilizado para download no site da Sun. Por isso a portabilidade do código fonte é tão grande, existem versões da Java Virtual Machine para quase todas, se não todas as plataformas existentes no mercado.

Isso tudo também leva a uma conclusão. Java é uma linguagem compilada e interpretada, e o que muitos profissionais já sabem é que isso acaba tornando-a lenta. Isso impossibilita seu uso em alguns projetos em que desempenho do software e uma prioridade.

É isso meus caros, espero ter enriquecido um pouco mais seus conhecimentos sobre Java. Até a próxima.

Iniciando em programação – Tipos de linguagem

Posted on junho 29, 2010

Posted by Rodrigo Ireno

Olá, neste artigo quero fazer uma breve abordagem sobre linguagens de programação, e citar algumas de suas propriedades.

As linguagens são divididas de acordo com suas características, tipo de aplicação ou estrutura:

Baixo nível: Assembly

Estruturadas: Cobol, Basic

Procedurais: C, Pascal, FORTRAN, ADA

Funcionais: PROLOG e LISP

Orientadas a Objeto: Smaltalk, C++ e Java

Específicas: Clipper e SQL

4ª Geração ou visuais: Visual Basic e Delphi

Linguagem de Baixo Nível:

Estão mais próximas ao código de máquina (mais próximas ao hardware). Por tanto estão vinculadas ao processador da máquina. Um exemplo para isso seria o fato de que existe um conjunto de instruções diferentes para processadores Intel 486, Pentium etc;

Exemplo ASSEMBLY:

As máquinas processam as informações baseadas em uma lógica boleana. É o conceito do ‘0’ e ‘1’, ou seja, circuito ligado ou desligado. Essa, porém é a linguagem binária, utilizada para comandos do hardware. Sendo ela muito confusa e difícil de programar, optou-se por resumir cadeias inteiras de ‘0’ e ‘1’ que representavam um comando específico e transformá-lo numa palavra que tivesse relação com o comando.

Exemplo:

Imagine o seguinte comando: “pular para determinado endereço”

(É somente um exemplo e não um comando!)

Em linguagem binária:

01100110011000110011100110011000011001

Em Assembly:

JMP

É com certeza bem mais fácil escrever JMP – que vem do inglês ‘jump’ e tem certa relação com o termo citado acima.

Linguagens Estruturadas:

São linguagens que não possuem vínculo ao processador utilizado e a semântica de termos é mais genérica podendo ser utilizada em outras plataformas;

Seu ciclo iniciou-se em 1960 com o COBOL e 1963 com a linguagem BASIC.

COBOL:

COmmon Business Oriented Language –

Linguagem comum orientada a negócio;

Criada para o desenvolvimento de aplicações comerciais: estoque, contabilidade, folha pagamento. Disponível em todas as plataformas existentes.  Atualmente possui versões orientadas a objeto e visuais.

Linguagens Procedurais:

São consideradas subtipos das linguagens estruturadas;

Permitem maior clareza de sintaxe e organização;

Estruturas:

If..then..else

case/switch

for..

while

do until.

Veremos estas estruturas nos próximos artigos

Linguagem C:

Surgiu da necessidade de uma linguagem de alto nível para o desenvolvimento do sistema operacional UNIX na década de 70. É uma linguagem genérica utilizada para criação de processadores de texto, planilhas, sistemas operacionais, comunicação, automação, banco de dados etc.

Outras Representantes:

PASCAL: utilização científica e educacional (1968)

FORTRAN: Formula Translation – científica (1966)

ADA: Baseada no Fortran e Pascal (1978)

Possui conceitos modernos:

  • Reuso
  • Portável
  • tempo real.

Linguagens Funcionais:

Baseado na avaliação de expressões e fundamentos matemáticos.

Estilo diferente de programar;

Requer conhecimento específico.

Exemplos:

PROLOG: (França, 1973) – Uso simples – base matemática

LISP: Baseia-se estudos de Inteligência artificial - 1980

Linguagens Específicas:

SQL (Structured Query Language);

Linguagem de acesso a banco de dados;

São executadas pelos SGBDs;

Clipper (1980-1990)

Base em C e Smaltalk;

Usada para acessar base de dados Dbase;

Dominou o mercado comercial entre 1988-1995 devido as restrições de memória e espaço em disco dos computadores da época (XT, 286, 386)

Linguagens Específicas:

HTML (Hyper Text Markup Language);

Permite a formatação de textos e imagens em páginas WEB;

JAVASCRIPT

Proporciona maior flexibilidade às aplicações WEB;

Sintaxe semelhante ao Java;

Permite operações no browser sem requisições ao servidor;

Uso ampliado em função do AJAX.

Linguagens 4ª Geração ou Visuais:

O surgimento do sistema operacional Windows mudou a forma de interação do usuário com o computador. Essas mudanças afetaram a forma de desenvolver as aplicações e a estrutura das linguagens de programação.

Houve um grande salto de qualidade no desenvolvimento de novas aplicações.

Visual Basic

Criada pela Microsoft em 1994;

Explora os princípios básicos do Windows gerando aplicações com alta interatividade com o usuário e desenvolvedor. Atualmente é orientada a objetos e faz parte do framework  .NET.

DELPHI

Criada pela Borland e baseada na linguagem Pascal, possui as mesmas características do Visual Basic

E finalmente!

Linguagens Orientada a Objetos:

Surgiram em razão das novas técnicas de análise orientada a objetos. Fazendo

paradigmas sofrerem radical transformação.

Exemplos:

SMALTALK: Xerox – década de 70 – 100% OO;

C++: Extensão da linguagem C – 1986;

JAVA: Sun – 1990

Possui portabilidade, pois é compilada e interpretada – bytecode

Falaremos disso mais adiante.

Bom. Por enquanto é isso. Espero que tenha sido esclarecedor a todos.