Hi Arun,
I looked at the sample and this doesn't fully satisfy it all, why? Because when you have recurring appointments looking at the DataSource simply isn't enough, as there could be occurrences on the visible range, your sample only accounts for standard appointments.
What I don't understand is, why is it inconsistent, on Android, the VisibleDatesChangedEvent fires and calling GetVisibleAppointments at that time does return results, but on iOS it does not.