If your template is not in the list of the non-compatible templates/frameworks of this extension, I would suggest you to go with the Regular Labs Advanced Template Manager.
Advanced Template Manager is an extension that changes the way your Template manager works.
With Joomla you can normally only assign template styles to certain menu items.
With Advanced Template Manager you have the possibility to assign template styles to just about anything you want, giving you full control over your Joomla template styles.
Some of its Assignment Options:
Menu Items, Home Page, Date Range, Templates, URLs, Devices (Mobile, Tablet, Desktop), Operating Systems, Browsers, Components, Tags, Joomla! Content (Assign templates by Joomla Page types, Categories and Articles) and more...
In case you want to go the customization way (e.g. overrides, or with a system plugin) you can programmatically assign a template with the following code:
$app = JFactory::getApplication();
$params = array();