Pergunta

Eu estou pensando em usar o MonoTouch por algum desenvolvimento do iPhone, mas o tamanho da carga é um fator importante.

Para um usuário que nunca foi instalado Mono em seu iPhone antes, o que seria do tamanho de um "Olá Mundo" app Objective-C ser comparado a um aplicativo MonoTouch "Olá Mundo"?

Mais especificamente, qual é a aprox. número de bytes que precisam ser baixados, e qual é a aprox. número de bytes usado uma vez instalado?

Foi útil?

Solução

Um programa "Olá, mundo" em Objective-C ocupa 50 KB (pasta .app todo). Com o MonoTouch, um aplicativo similar "Olá Mundo" ocupa 5 MB (pasta .app todo), o que não é mau de todo, considerando que tem um tempo de execução com a coleta de lixo na mesma.

Outras dicas

em 1,5 Monotouch

Um comunicado de construção - que é um um aplicativo criado com uma licença de distribuição - e com nada, mas as configurações do projeto padrão, é de 5 MB. De que 4.3 MB é o executável binário.

Eles costumam subir para até 10 MB em minha experiência, e os fóruns pintar o mesmo quadro. O appstore informa o tamanho descompactado, no entanto eles são baixados zipado. Zipado é cerca de 3 MB, que, mesmo em uma rede 3G, é muito bem.

Em minha opinião, a maioria das pessoas não vai olhar para o tamanho do arquivo antes de baixar um aplicativo, nem particularmente cuidados. O limite appstore para downloads 3G agora é 20 MB que está bem dentro do tamanho MonoTouch.

Para o advogado do diabo, sim, é muitas ordens maior do que o equivalente Objective-C e pode assustar algumas pessoas preocupadas com ocupando 4-10 MB mais do seu espaço de 16 GB. No entanto também há tempo para o mercado e as ferramentas existentes disponíveis para .NET. Eu desenvolver e construir toda a minha MonoTouch aplicativos no Visual Studio 2010, em seguida, testá-los no Mac, e eu não acho que mesmo a Apple iria discutir seu IDE está perto do líder da indústria.

A partir desta pergunta no MonoTouch e tamanho dos executáveis ??:

MonoTouch não se traduz em Obj-c. Ele compila para .NET IL, em seguida, compila que (da mesma forma que um compilador JIT faria, mas, antes que seja executar -., portanto, "antes do tempo" do compilador) em código ARM nativo

forma:

Obj-C -> CGC (ou LLVM) -> código ARM

vrs MT:

C # -> IL -> (compilador AOT) -> código ARM

Os binários de saída em 3.x são maiores porque você também está incluindo um monte de .NET framework (bem, Mono-Quadro, mas mesmo mesmo), então se Você, por exemplo, uso System.Xml, tem que incluir isso na saída - mesmo com System.dll etc. O ligador é muito inteligente, mas a saída binários são sempre vai ser maior .

Para mim, a única coisa tamanho que importa é tempo de carregamento, e zipado tamanho do binário. binário com fecho para um aplicativo "Olá mundo" é sobre 2.5-3meg ( menor em 4.x me disseram ) vrs cerca de 300k para obj-c. A diferença fica cada vez menos quanto mais você acrescentar, uma vez que só inclui os gostos de system.dll uma vez. tempo de carregamento de MT vrs Obj-c, fazendo as mesmas coisas em Ao mesmo tempo, é perto o suficiente para o mesmo. Qualquer um dos dois pode ser feito para carregar lentamente (basta fazer algo de longa duração em sua FinishedLaunching sem colocá-lo em outro segmento).

O respondente continua a dizer que ele sente que é mais produtivo com MonoTouch que Objective-C. YMMV.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top