runegri / Applicable

Cross platform framework for building applications on MonoTouch, MonoDroid and WP7
13 stars 0 forks source link

Fat binaries #1

Open slodge opened 11 years ago

slodge commented 11 years ago

I like the idea of Applicable :)

But I'm a bit worried that everything is currently going in one binary.

A problem I've seen is that if you include too much in one binary, then:

  1. It can cause problems with certification - e.g. with needing app store permissions for Camera even though the app doesn't use the camera api
  2. It can cause problems with code size - this is something I had big problems with for MvvmCross v1 - because you include so many apis then the MonoTouch linker generates more code than it needs to - leading to many MB of problems

So I'd like to see a smaller set of projects if possible.

And the dream is nuget too please :)

Stuart

runegri commented 11 years ago

Hi and thanks for the comments!

I haven't given Applicable much attention lately, especially not after Xamarin published the Xamarin.Mobile library that offers some of the same features. (Location stuff).

I agree with both points, especially #1. Using the source instead of binaries would fix it, but still. I really should have thought of that one.

2 surprises me. Won't the linker help us here by removing the unused code from Applicable? I never checked it, but that is how I assumed it worked...

But both issues are fixable, as you say, by splitting it into several smaller projects. Will look at it when I have some spare time. Hopefully soon. :-)

slodge commented 11 years ago

Ah - hadn't realised applicable was older than the last few months - understand now :)

On #2, to be fair to the linker.... I do turn the linker settings down a bit when I use MT. Lots of my code is Reflection-based and the linker is far too aggressive for my code to work - and there's too much code for me to go around adding the attribute to stop the linker removing it.

Thanks for the feedback - good luck!