##Iterate over the features of a layer.
feats = processing.features(layer)
n = len(feats)
for i, feat in enumerate(feats):
    feedback.setProgress(int(100 * i / n))
    #do something with 'feat'

##Create a new layer from another one, with an extra field
fields = processing.fields(layer)
# int, float and bool can be used as well as types
fields.append(('NEW_FIELD', str))
writer = processing.VectorWriter(output_file, None, fields,
                                 processing.geomtype(layer), layer.crs()
                                 )

##Create a new table
writer = processing.TableWriter(output_file, None, ['field1', 'field2'])