Hi! I found the same behavior and I think it's absolutely fine. My guess is that when you open the collection view controller, it will automatically load its data. So it'll fire once. Because we are downloading all the app informations and images on the background thread, at this moment you won't see anything on your cell. But once when the download is finished, it will trigger the completion block, in which we explicitly called 'self.collectionView.reloadData()' in order to pass the app details we parsed from json to the cell. This will fire it again. Depending on the network speed, our app details/screenshots/reviews may be loaded separately, so the collection view may be loaded even more times.
I think a better solution will be what Brian did on the Apps page where we present an activity indicator view before all the data is finished downloading. This is my assumption, hope it will help! :)