I wrote an app that may be of interest to chess enthusiasts.  It is designed to teach particular openings such as the King's Gambit, Sicilian Defence, etc. All the main openings from the Encyclopaedia of Chess Openings are available (ECO codes A00-E99). The default setting is to play a random opening, but if you select a particular opening the app will guide you through the correct moves by highlighting them with a small red circle.
You can play an opening against the app, or have it play an opening against you so you can practice defending against it. For example, if you select the Sicilian Fischer-Sozin Attack when playing white, the app will guide you through white's attacking moves. Alternatively, if you select the Sicilian Fischer-Sozin Attack when playing black, the app will play white's attacking moves against you. 
Once the opening is complete (or if you deviate from the guided moves) the game continues but the engine will simply start to calculate moves using its engine.  There is also a Java desktop application allowing the application to run on a PC.
Main site
http://www.apdroid.byethost5.com/meditachess/chessapplet.html
Google Play link
https://play.google.com/store/apps/details?id=com.aparkin.meditachess
You can play an opening against the app, or have it play an opening against you so you can practice defending against it. For example, if you select the Sicilian Fischer-Sozin Attack when playing white, the app will guide you through white's attacking moves. Alternatively, if you select the Sicilian Fischer-Sozin Attack when playing black, the app will play white's attacking moves against you. 
Once the opening is complete (or if you deviate from the guided moves) the game continues but the engine will simply start to calculate moves using its engine.  There is also a Java desktop application allowing the application to run on a PC.
Main site
http://www.apdroid.byethost5.com/meditachess/chessapplet.html
Google Play link
https://play.google.com/store/apps/details?id=com.aparkin.meditachess