I am running the demo version and evaluating the control for use in a MonoTouch app. Here is the sample code and time in ms from ViewDidLoad to ViewDidAppear, with and without a data source.
public override void ViewDidLoad() { base.ViewDidLoad(); CumulativeStopWatch.Reset(); CumulativeStopWatch.Start(); this.View.BackgroundColor = UIColor.White; this.EdgesForExtendedLayout = UIRectEdge.None; IGCalendarView calenderView = new IGCalendarView(); calenderView.AutoresizingMask = UIViewAutoresizing.All; calenderView.Frame = View.Frame; calenderView.MinYear = 2000; calenderView.MaxYear = DateTime.UtcNow.AddYears(1).Year; calenderView.Theme = new IGCalendarTheme2(); calenderView.AppointmentDataSources = new NSObject[] { new APDLDataSource() }; this.View.Add(calenderView); } public override void ViewDidAppear(bool animated) { base.ViewDidAppear(animated); CumulativeStopWatch.Stop(); }
// without calenderView.AppointmentDataSources set
2014-01-21 22:38:32.713 apdl[318:60b] 01/22/2014 04:38:32 InfragisticsTestMonthView ms: 3609
// with calenderView.AppointmentDataSources
2014-01-21 22:39:50.555 apdl[329:60b] 01/22/2014 04:39:50 InfragisticsTestMonthView ms: 3669
Once the control is loaded the it is fast. Any insight on how to improve the viewController performance. The time really needs to be under 88ms
Hi Paul.
First, thanks for trying out our controls!
Internally, the IGCalendarView is a pretty complex control. We're actually rendering a lot of text which is pretty expensive. Since we wanted transitions, scrolling, etc to all be a smooth as possible we do a lot of front loading. As a side note, it's also worth noting that everything within the control is recycled and reused to make things as optimal as possible.
Unfortunately the down side to the front loading is that it takes a bit longer to initially setup.
I'm definitely going to take this feedback and spend some more time on the initial setup and see how much more time i can squeeze from it.
I'm assuming the issue you're running into is that you're invoking a viewController to display and there is a delay b/c of it. My only recommendation, is maybe not loading the control in viewDidload and delay loading the CalendarView. I know thats not optimal, but at least your transitions will happen immediately.
I apologize for the inconvenience.
-SteveZ
SteveZ,
I do understand that there is some time used in pre-loading the control. The native iOS app (obj-c) has a slight delay but acceptable.
What I am referring to is the MonoTouch binding and the large dll. The load time in this case is 10x that of the native app.
I was unable to download the trial from the Xaramin Component Store (see error), but used the DLL from the INFRAGISTICS website.
I want to make sure I am evaluating the correct component. Can you confirm the 3600ms load time (C@) vs 350ms (obj-c) ?
Do you have any suggestions on preloading the DLL in C#, if that is the problem ?
Cheers,
Paul
Xamarin Component Store (Error downloading component: Unexpected root item "InfragisticsNucliOSTrial-2013.2/component/Manifest.xml" in zip file. (Retry)
Hi Paul,
I'm not sure why you're seeing such a discrepancy.
I did notice that with Xamarin it was about a .1 up to .3 ms slower than with objective-c. But definitely not 3+ seconds slower.
I've attached both of my projects. Note, I didn't add any appointments, this is just rendering the control.
Also, downloading trial from us directly has the same dll's as in the xamarin store. So you're using the latest version.