How to configure node variations?
As @W.M. said, i will use Conditional Fields module Conditional Fields along with Field Collection Module.

Essentially you will first define collections of fields (this is a kind of grouping of fields that are related. ie retina screen details), and then you can make this fields collections to appear if another field value is set using Field Collection.