protected override void OnCreate()
        {
            //Log.Info(ReactConstants.Tag, "## ReactProgram ##  Enter Constructor ReactProgram()");
            try
            {
                _reactInstanceManager = CreateReactInstanceManager();
            }
            catch (Exception ex)
            {
                Log.Info(ReactConstants.Tag, "## ReactProgram ## CreateReactInstanceManager Ex:" + ex.ToString());
            }
            //Log.Info(ReactConstants.Tag, "## ReactProgram ##  Exit Constructor ReactProgram()");

            MainSynchronizationContext.Initialize(SynchronizationContext.Current, Exit);

            Elementary.Initialize();
            Elementary.ThemeOverlay();

            //Log.Info(ReactConstants.Tag, "## ReactProgram ##  Enter OnCreate()");

            ResourceDir = DirectoryInfo.Resource;

            // 1. Create root window
            ReactWindow rctWin = new ReactWindow("ElmSharp Window");

            RctWindow = rctWin;
            RctWindow.Show();
            RctWindow.BackButtonPressed += (object sender, EventArgs e) =>
            {
                Log.Debug(ReactConstants.Tag, "## Back button being Pressed ##");
                _reactInstanceManager.OnBackPressed();
            };

            RctWindow.RedButtonPressed += (object sender, EventArgs e) =>
            {
                Log.Debug(ReactConstants.Tag, "## Red button being Pressed ##");
                _reactInstanceManager.DevSupportManager.ShowDevOptionsDialog();
            };

            // 2. Create root view
            RootView = CreateRootView();
            //RootView.Show();


            // 3. Entry of 'JS' world
            RootView.StartReactApplication(_reactInstanceManager, MainComponentName);

            // 4. Set root view
            //RctWindow.Navigator.Push(RootView, "Instagram");
            RctWindow.SetMainPage(RootView);

            base.OnCreate();

            //Log.Info(ReactConstants.Tag, "## ReactProgram ##  Exit OnCreate()");
        }