I think anyone who can afford a smartphone should be able to afford a MIDI keyboard as an iPhone 5 costs many times that of a cheap MIDI keyboard.However, as a professional software developer, I disagree with the others who say your project is practically impossible, because you've got one thing going for you: You can add a calibration feature where the users play each note on their piano several times at different velocities and you can use that information to find out what notes they're playing later. Unfortunately, because of resonance, 1 + 2 does not equal 3 when it comes to keys being played on a piano, however I'm willing to bet your app could still pick out the notes being played, because it already knows exactly what each note sounds like, which is a luxury you don't have when instead trying to process a recording made on a piano you don't have access to.
As for hand separation, that's a challenge, but people already came up with some pretty good solutions: https://docs.google....wr48bQkQmCuGI_w
Basically, it's possible to simulate hands and fingers and come up with optimal fingering and that of course also gives you hand split. If you did the same, I don't see why your project wouldn't work.
(Personally I'd just use two MIDI keyboards instead, one elevated just above the other and play the left hand part on one of them, so I can separate the hands in the output.)