Using the zsh shell:
counter=0
for name in $HOME/folder/*(.NDOm); do
counter=$(( counter + 1 ))
suffix=$name:e
printf -v newname '%s/object%.3d%s' $name:h $counter ${suffix:+.$suffix}
mv $name $newname
done
This iterates over all names of regular files in the ~/folder directory, from the oldest to the newes by last-modified timestamp. For each name, a new name is constructed using the directory part of the current name and a counter. The files are renamed into these new names (without confirmation and without checking for name collisions).
The printf -v newname call will "print" its output into the variable newname. The %.3d format string will output a zero-filled integer in three positions (e.g. 001, 023, 109 etc.) The $name:h parameter expansion will expand to the head/directory portion of the $name pathname (it's the same as dirname "$name").
The $name:e will expand to the "extension" of the original filename (e.g. foo if the current file is apple.foo), and we store this in suffix. With ${suffix:+.$suffix} we prepend a dot to the filename extension if there is one.
The . in (.NDOm) at the end of the filename globbing pattern is a glob qualifier that makes the preceding globbing pattern match only regular files. The N and D makes the pattern act as if nullglob and dotglob in the bash shell had been set (expand to nothing if there is no match, and include hidden names in the result). The Om orders the matching names so that the oldest (least recently modified) file is sorted first.
If zsh is not your login shell, then this could be run as a script instead.
$ zsh ./this-script
ls -rtto list the files, and use a loop with an incrementing counter? Watch out for "weird" file names (e.g. containing spaces).