The problem with setting computers at a weak setting is that they don't play like a weak human. I have a 2600 rated Shredder app on my phone. If I set it to 1600 and play it, it makes strong moves no 1600 human would find and then every fourth or fifth move makes a weak move a human would not make.
I have installed a chess app called chess free on my notepad. The user can set the engine strength by clicking on a menu that lists different elo ratings. So in theory if a user sets the engine to play like a 1500 rated player that's what it's supposed to do. Are these apps reliable in this way?