I'm faced with image manipulation requirements for a mobile app I wish to develop that I could quite easily (or 'easier', at least) implement in C# or javascript, as it's what I'm most familiar with.

I'm not one to shy away from learning new things, but would it not be easier to opt for this approach and get other platforms to 'call on' this functionality with a service oriented structure for the sake of addressing as many mobile platforms as possible without reinventing the wheel for each native platform?

My hesitation is that trips to a server to manipulate images would mean a transfer of byte streams to and from, a lot.

A second question, is this the kind of problem companies like PhoneGap aim to solve? Could I do all this in JS and compile and build it with PhoneGap? Or is, in people's experience, this not a feasible approach either?

Thanks very much. I appreciate this site isn't for subjective, opinion-based topics but I'm being specific in the fact that I want to handle potentially larger pieces of data and manipulate them, and so am asking for the advised way of structuring this in order to release it for as many platforms as possible.

  • 3
    Remember some devices take photos that are many MB, I have an Android camera that can hit 6MB / pic. Transferring that to the server then back again will be very slow, may cost the user a lot in data transfer and will use a lot of battery.
    – James
    Sep 14, 2014 at 19:42
  • This is a good question, but I think you need to give us more details on the image manipulation because the scale (both in size and processing power) is probably going to make a big difference for the answer.
    – J Trana
    Sep 16, 2014 at 1:11
  • I want to cut a piece of the image out based on some sort algorithm that'll detect a significant-enough change in colour etc. Similar code to making a white background image into a transparent-background image. I don't doubt there are libraries in place for this already, but I also don't want to underestimate how much processing they will require. So, to answer your question in a nutshell, a LOT. Sep 16, 2014 at 12:52

1 Answer 1


If it's going to happen frequently on the application itself then you want to use native code. Yes, PhoneGap and Xamarin style products aim to allow you to write cross-platform mobile applications easily...but they are not 'lightweight' to add to an existing entirely native codebase. You can explore Xamarin - it would likely be a better fit than PhoneGap.

If that doesn't work for your project then I'd actually suggest you write your solution in C# or JavaScript and have one of the native developers assist you in porting that to Objective-C and Java.

If you're going to be making a lot of round-trips you should not do this server-side - because it will destroy you on data and battery usage from the mobile phone. If it was something cache-able my opinion would change.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.