When creating a view and the template to populate the view, it is necessary to keep the same field order. Also when expanding the view, it must be ensured that the field is returned in the same place by the code.
It would be useful if this is not necessary, as long as you make sure the code in the template uses the correct field names.