{"action":"created","issue":{"url":"https://api.github.com/repos/kiwix/kiwix/issues/420","repository_url":"https://api.github.com/repos/kiwix/kiwix","labels_url":"https://api.github.com/repos/kiwix/kiwix/issues/420/labels{/name}","comments_url":"https://api.github.com/repos/kiwix/kiwix/issues/420/comments","events_url":"https://api.github.com/repos/kiwix/kiwix/issues/420/events","html_url":"https://github.com/kiwix/kiwix/issues/420","id":198273654,"number":420,"title":"MVP pattern for the app?","user":{"login":"rashiq","id":1624385,"avatar_url":"https://avatars.githubusercontent.com/u/1624385?v=3","gravatar_id":"","url":"https://api.github.com/users/rashiq","html_url":"https://github.com/rashiq","followers_url":"https://api.github.com/users/rashiq/followers","following_url":"https://api.github.com/users/rashiq/following{/other_user}","gists_url":"https://api.github.com/users/rashiq/gists{/gist_id}","starred_url":"https://api.github.com/users/rashiq/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rashiq/subscriptions","organizations_url":"https://api.github.com/users/rashiq/orgs","repos_url":"https://api.github.com/users/rashiq/repos","events_url":"https://api.github.com/users/rashiq/events{/privacy}","received_events_url":"https://api.github.com/users/rashiq/received_events","type":"User","site_admin":false},"labels":[{"id":334863170,"url":"https://api.github.com/repos/kiwix/kiwix/labels/android","name":"android","color":"5319e7","default":false},{"id":306800828,"url":"https://api.github.com/repos/kiwix/kiwix/labels/enhancement","name":"enhancement","color":"84b6eb","default":true},{"id":306800831,"url":"https://api.github.com/repos/kiwix/kiwix/labels/question","name":"question","color":"cc317c","default":true}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":5,"created_at":"2017-01-01T16:54:00Z","updated_at":"2017-01-01T17:43:19Z","closed_at":null,"body":"Hey!\r\nSo I've been wanting to do this for quite some time now, but I'm not sure, if I should do it. \r\n\r\nI want to refactor the app to follow the MVP (Model View Presenter) design pattern, in order to structure the app better, to enforce separation of concern better and especially to separate business logic from view logic.\r\n\r\nIt takes some time to wrap your head around this pattern, but once you get it it's really awesome and will make our code so much better. We will finally get rid of our gigantic classes. This will also make it possible for us to start writing actual tests.\r\nI've been refactoring our main activity for the past two weeks now, and this would be my next logical step. \r\n\r\nReading material: http://fernandocejas.com/2014/09/03/architecting-android-the-clean-way/\r\nExamples of implementations: http://fernandocejas.com/2014/09/03/architecting-android-the-clean-way/, https://github.com/rashiq/bitcoin\r\n\r\n(Look at how the activity in this example only has view logic: https://github.com/rashiq/bitcoin/blob/master/app/src/main/java/com/linechart/presentation/view/mainview/MainActivity.java\r\nand all the business logic is in the presenter: https://github.com/rashiq/bitcoin/blob/master/app/src/main/java/com/linechart/presentation/view/mainview/MainViewPresenter.java)\r\n\r\nLet me know what you think of this @kelson42 @mhutti1 @EladKeyshawn"},"comment":{"url":"https://api.github.com/repos/kiwix/kiwix/issues/comments/269912099","html_url":"https://github.com/kiwix/kiwix/issues/420#issuecomment-269912099","issue_url":"https://api.github.com/repos/kiwix/kiwix/issues/420","id":269912099,"user":{"login":"rashiq","id":1624385,"avatar_url":"https://avatars.githubusercontent.com/u/1624385?v=3","gravatar_id":"","url":"https://api.github.com/users/rashiq","html_url":"https://github.com/rashiq","followers_url":"https://api.github.com/users/rashiq/followers","following_url":"https://api.github.com/users/rashiq/following{/other_user}","gists_url":"https://api.github.com/users/rashiq/gists{/gist_id}","starred_url":"https://api.github.com/users/rashiq/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rashiq/subscriptions","organizations_url":"https://api.github.com/users/rashiq/orgs","repos_url":"https://api.github.com/users/rashiq/repos","events_url":"https://api.github.com/users/rashiq/events{/privacy}","received_events_url":"https://api.github.com/users/rashiq/received_events","type":"User","site_admin":false},"created_at":"2017-01-01T17:43:19Z","updated_at":"2017-01-01T17:43:19Z","body":"That's a really good idea @mhutti1. I will do that!"}}
{"actor":{"display_login":"rashiq"}}