Xamarin Timesheet Sample App

As part of studying for my Xamarin Certification, I wanted some extra practice before sitting the exam. As such, I decided to do a Xamarin iOS and Android version of the same Xamarin.Forms timesheet app I implemented and wrote about before. The added bonus of this is that it could potentially provide a basis of comparison between ‘vanilla’ Xamarin and Xamarin.Forms. So in case it helps anybody, I have made the source code available on GitHub.

Xamarin iOS & Android Implementation:

Original Xamarin.Forms Implementation & Corresponding Blog:

Exam Update

I subsequently passed the exam … I am now certifiable certified! 🙂 That will most definitely do me for a while in terms of exams and certifications, having notched up my MSCD, PSM I and now Xamarin in the past 6 months. I’ve enjoyed the process and they were all valuable experiences, but for now it is time for me to get my hands ‘dirty’!

  • Kevin

    Hi !

    I’ve implemented your excellent loader overlay solution to my Xamarin app and it works pretty good.
    But, because there’s always have :), i encounter a problem with some pages.

    In my implementation i have a MasterDetail page at the very top of my display, and then i have a “NavigationPage(new MyContentPage())” for the “Master” property.
    I use both of the RelativeLayout or AbsoluteLayout to bind and display my content with the loader over it, exactly as you did in your “Timesheet” VS solution.

    My problem : when i call another page with “Navigation.PushAsync(new MyContentPage())”, the page called does not display any content and the ToolBar of my NavigationPage display things in a strange manner.

    At the beginning i thought it was because i have a ScrollView inside an AbsoluteLayout, but even if i use a RelativeLayout or if i replace the ScrollView by another Layout object (like a StackLayout) it still does not work.

    So, i’m only able to display a single level navigation page … which is less interesting to build an app 🙂

    Do you have any idea ?

    Thanks.
    Kevin

    • Hi Kevin,

      It looks like you are referring to my Xamarin.Forms implementation, not the iOS/Android one? If so, and without seeing your code … the first thing I would investigate is whether your content page works in isolation without the navigation. In App.cs, change the “MainPage” to whatever your content page is.

      Good luck!
      Ben

      • Kevin

        Hi Ben,

        Yes i use Xamarin.Forms and i was referring to your cross-platform implementation.

        I made several tests and nothing seems to work better :
        – I put my home page in the “MainPage” property in App.cs and i trigger an event to replace it by the next page when i want to. Then the next does not display any content.
        – I put my home page in the “MainPage” property in App.cs and i call “Navigation.PushAsync()” for the next page. Then the app crash.

        By the way, i tried something else which put in light that the problem probably comes from the “Navigation”.

        Here is the original page schema i use :
        App.cs (MainPage property)
        ‘-> MyMasterDetailPage
              ‘-> Master property = MyMenuPage (ContentPage) which is displaying a ListView
                    ‘-> Detail property = NavigationPage
                          ‘-> MyContentPage
                                ‘-> Use “Navigation.PushAsync()” to display another page

        So, according to the schema above, i use the “Navigation” property of the page inside the NavigationPage.

        Then i tried another page schema :
        App.cs (MainPage property)
        ‘-> MyMasterDetailPage
              ‘-> Master property = MyMenuPage (ContentPage object) which is displaying a ListView
              ‘-> Detail property = NavigationPage
                    |-> MyContentPage
                    ‘-> Use “Navigation.PushAsync()” to display another page

        According to this new schema, i use the “Navigation” property of the “NavigationPage” object which is living inside the “Detail” property.
        This test failed again, exactly as the original one.

        But, if don’t use the navigation, i mean if i simply replace the “MyContentPage” by another new one then everything works correctly.
        I don’t know how but i guess there is a problem when a page is display over another one … but i definitely don’t understand what is the cause of this.

        Even if i can’t give you the source code, maybe i can prepare a sample app where i would reproduce the problem.
        Would you be interested in ?

        Thanks,
        Kevin

        • Hi Kevin,

          Sure I can try to look at it for you if you can prepare a sample app that reproduces the problem. You may want to put it on StackOverflow though. That way, other people can potentially solve it too. If you go down the SO path, feel free to let me know once it’s up there.

          Ben