What are the criteria to decide between modules ThemeKey and Switchtheme?
Switchtheme is a user-driven theme switcher with a couple of automatic options. It provides a couple of blocks (displayed via a custom Switchtheme permission) where a user can select a theme to choose on a per session (or user account) basis. 

Its automatic (admin configured) solutions are:


A per-browser automatic switcher through the Browscap module
A per-URL switch through adding a ?theme=theme_machine_name query parameter to the page request (e.g. http://example.com/?theme=seven)


ThemeKey is a combination of user/admin driven theme switching based on various settings &amp; rules. 

Its theme switching solutions provided are:


A per-alias solution that allows to set a theme for each Drupal alias
A per-node solution that allows a permissioned user to set a theme for any node they create (as well a default option).
A per-user solution that allow a user to set a default theme for their configured account.
A chain of custom rules that evaluates various Drupal system, user, comment, node, taxonomy, and Views properties.