{"action":"created","issue":{"url":"https://api.github.com/repos/MvvmCross/MvvmCross/issues/2854","repository_url":"https://api.github.com/repos/MvvmCross/MvvmCross","labels_url":"https://api.github.com/repos/MvvmCross/MvvmCross/issues/2854/labels{/name}","comments_url":"https://api.github.com/repos/MvvmCross/MvvmCross/issues/2854/comments","events_url":"https://api.github.com/repos/MvvmCross/MvvmCross/issues/2854/events","html_url":"https://github.com/MvvmCross/MvvmCross/pull/2854","id":320436546,"number":2854,"title":"Mvx app start with params","user":{"login":"LRP-sgravel","id":15251145,"avatar_url":"https://avatars3.githubusercontent.com/u/15251145?v=4","gravatar_id":"","url":"https://api.github.com/users/LRP-sgravel","html_url":"https://github.com/LRP-sgravel","followers_url":"https://api.github.com/users/LRP-sgravel/followers","following_url":"https://api.github.com/users/LRP-sgravel/following{/other_user}","gists_url":"https://api.github.com/users/LRP-sgravel/gists{/gist_id}","starred_url":"https://api.github.com/users/LRP-sgravel/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/LRP-sgravel/subscriptions","organizations_url":"https://api.github.com/users/LRP-sgravel/orgs","repos_url":"https://api.github.com/users/LRP-sgravel/repos","events_url":"https://api.github.com/users/LRP-sgravel/events{/privacy}","received_events_url":"https://api.github.com/users/LRP-sgravel/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":9,"created_at":"2018-05-04T21:31:57Z","updated_at":"2018-05-05T13:26:20Z","closed_at":null,"author_association":"CONTRIBUTOR","pull_request":{"url":"https://api.github.com/repos/MvvmCross/MvvmCross/pulls/2854","html_url":"https://github.com/MvvmCross/MvvmCross/pull/2854","diff_url":"https://github.com/MvvmCross/MvvmCross/pull/2854.diff","patch_url":"https://github.com/MvvmCross/MvvmCross/pull/2854.patch"},"body":"### :sparkles: What kind of change does this PR introduce? (Bug fix, feature, docs update...)\r\nAllows a parametrized app start hint and the possibility to provide the hint from shared code.\r\n\r\n### :arrow_heading_down: What is the current behavior?\r\nNon-existent\r\n\r\n### :new: What is the new behavior (if this is a feature change)?\r\nStart your app with a parametrized hint without using a custom app start\r\n\r\n### :boom: Does this PR introduce a breaking change?\r\nno\r\n\r\n### :bug: Recommendations for testing\r\n\r\n\r\n### :memo: Links to relevant issues/docs\r\n\r\n\r\n### :thinking: Checklist before submitting\r\n\r\n- [X] All projects build\r\n- [X] Follows style guide lines ([code style guide](https://github.com/MvvmCross/MvvmCross#code-style-guidelines))\r\n- [ ] Relevant documentation was updated ([docs style guide](https://www.mvvmcross.com/documentation/contribute/mvvmcross-docs-style-guide))\r\n- [ ] Rebased onto current develop\r\n"},"comment":{"url":"https://api.github.com/repos/MvvmCross/MvvmCross/issues/comments/386805649","html_url":"https://github.com/MvvmCross/MvvmCross/pull/2854#issuecomment-386805649","issue_url":"https://api.github.com/repos/MvvmCross/MvvmCross/issues/2854","id":386805649,"user":{"login":"sylvain-toptal","id":29633621,"avatar_url":"https://avatars2.githubusercontent.com/u/29633621?v=4","gravatar_id":"","url":"https://api.github.com/users/sylvain-toptal","html_url":"https://github.com/sylvain-toptal","followers_url":"https://api.github.com/users/sylvain-toptal/followers","following_url":"https://api.github.com/users/sylvain-toptal/following{/other_user}","gists_url":"https://api.github.com/users/sylvain-toptal/gists{/gist_id}","starred_url":"https://api.github.com/users/sylvain-toptal/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sylvain-toptal/subscriptions","organizations_url":"https://api.github.com/users/sylvain-toptal/orgs","repos_url":"https://api.github.com/users/sylvain-toptal/repos","events_url":"https://api.github.com/users/sylvain-toptal/events{/privacy}","received_events_url":"https://api.github.com/users/sylvain-toptal/received_events","type":"User","site_admin":false},"created_at":"2018-05-05T13:26:20Z","updated_at":"2018-05-05T13:26:20Z","author_association":"NONE","body":"Hey, good morning!\r\n\r\nYou would need to subclass the AppStart to pass then .Net converted platform data to the first view model.  I am under the impression that we are duplicating an abstraction of launch data (the hint) with limited benefits.\r\n\r\nSo let’s get back to my original intention for the PR, which was to pass the hint to the first view model so it can be handled by shared code.  The hint would of course need to be converted to a shared code data structure to do so.  We lose this ability with your changes unlesss we subclass the AppStart to provide the hint to the Application subclass (or if we Resolve the Application class within the app entry point which is what you are also trying to avoid).  The fact that I proposed to introduce a hint at the Application level and to use it by default is a simple optional by-product made possible by this vision.  I’m fine with not introducing those changes if it’s what bothers you, I simply thought of it an extension that could make sense in certain circumstances (initalizing with a build-specific configuration constant for instance).\r\n\r\nBasically, what I’m saying is that I don’t see the reason why the hint has to be considered platform specific.  This seems like a limited use of a generic mechanism, namely using an `object` and passing it everywhere for initialization, including to shared code. The fact that we already pass this abstraction to the AppStart and the Application leads me to believe we cannot rely on it being of a platform specific type, since we have no access to those types in the shared code.\r\n\r\nIf I get down to your issues with my proposed implementation, I agree that resolving the Application in the app entry point is a bit ugly.  I used that because there are already calls to Resolve at different places in the app entry points (i.e. https://github.com/MvvmCross/MvvmCross/blob/59809878c68b7e8f3648e54aca1dd921af17fbfe/MvvmCross/Platforms/Ios/Core/MvxApplicationDelegate.cs#L55) and the fact that I didn’t want to introduce breaking changes.  Maybe using `Mvx.CallbackWhenRegistered` would be a more acceptable approach, but then again it only hides the Resolve call.\r\n\r\nI like the discussion by the way, it’s constructive and helps me better understand the philosophy behind the implementation."}}
{"actor":{"display_login":"sylvain-toptal"}}