Mostrando postagens com marcador MONO. Mostrar todas as postagens
Mostrando postagens com marcador MONO. Mostrar todas as postagens

22 de set. de 2009

Mais info sobre .NET no iPhone

Essa maravilha é possível através do MONO (virtual machine .net para "plataformas unix"). Como o iPhone tem uma arquitetura bem fechada e prioritária, a aplicação compilada final é gerada com código nativo, tendo imbutida nela a VM em um nível mais baixo.

Como todos sabem, a Apple possui uma política de inclusão de third-party runtime environments altamente restritiva, o que impossibilita a distribuição de apps que usem essa tecnologia, como o .NET e Java. Então como é possível rodar .NET no iPhone?

Graças a um processo chamado de Static Compilation. O Mono já havia criado uma maneira de gerar código nativo a partir do common intermediate language (CIL) gerado pelo .NET em código  nativo no passado (AOT Ahead-OfTime compilation), com a intenção de ajudar a reduzir a velocidade do processo de inicialização e aumentar o compartilhamento de processos entre processos múltiplos. Porém, para manter ainda a portabilidade do código entre máquinas diferentes, um pequeno pedaço de código ainda se mantinha em JIT (Just-In-Time) compilation – esse método é a chave de sistemas de máquinas virtuais que geram código  intermediário que durante a execução é convertido em código nativo.

Sendo assim, o processo gera o resultado final em código nativo ANTES da hora da execução, e isso diminui inclusive o tamanho da aplicação final (já que o framework deve ir junto com a App), que não precisa carregar os códigos para executar o JIT e interpretar o CIL – entretanto ainda acrescenta aproximadamente 6 mega do mono framework em si no tamanho da app final.

Hoje em dia, graças a Unity 3D, que utiliza mono, existem mais de 40 aplicações (na sua maioria jogos) na App Store que foram feitas em C# e que carregam o mono framework dentro. Seria ótimo se a Apple já incluísse isso no firmware, não? Imagine que se tivermos as 40 aplicações instaladas, são 40 vezes o mesmo framework ocupando espaço sem necessidade. O.o

Fontes:

http://labs.maya.im/pt/a-forca-do-c-no-iphone/

XNA no iPhone

image

Conforme li no twitter do Ramon Durães, já é possível rodar Jogos XNA no iPhone.

Foi anunciado no forum do GameDev, onde Luiz Pestana, juntaqmente com o Jalf do SharpGames conseguiram rodar um exemplo de XNA Touch no iPhone, como podemos constatar na imagem acima.

Para a proeza foi preciso:

- Apple iPhone SDK (clique aqui);
- Mono Framework for Mac OS X (clique aqui);
- Mono Develop for Mac OS X (clique aqui);
- Mono Touch Trial (clique aqui);

Instalando isso tudo, precisamos baixar o XNA Touch, acessando esse site clicando aqui e depois em Download.

Descompacte o arquivo e você vai ter a pasta do XNA Touch com a estrutura:
- Samples (pasta de exemplos de como utilizar)
- StarterKits (jogos pré-prontos)
- XNATouch.Framework (arquivos do XNA Touch)

Abra o Mono Develop na sua pasta de aplicativos e em "Open a Solution" procure a pasta que você descompactou, selecione "Visual Studio Solution" para conseguir abrir o arquivo .SLN da raiz. Aberta a solução, vá na pasta (dentro do Mono Develop) StarterKits e com o segundo botão no AlienGame, selecione a opção "Run Item".

Pronto, agora o jogo deve abrir o simulador de iPhone e você pode sair matando aliens!

Parabéns ao Luiz Pestana.

Fontes:

http://www.gamedev.com.br/forum/viewtopic.php?p=10875
http://www.twitter.com/luizpestana/
http://xnatouch.codeplex.com/
http://www.sharpgames.net/
http://www.ramonduraes.net/