{"id":21129965,"url":"https://github.com/Arello-Mobile/Moxy","last_synced_at":"2025-07-09T01:31:56.793Z","repository":{"id":57717456,"uuid":"51575637","full_name":"Arello-Mobile/Moxy","owner":"Arello-Mobile","description":"Moxy is MVP library for Android","archived":false,"fork":false,"pushed_at":"2020-10-15T15:00:53.000Z","size":1107,"stargazers_count":1609,"open_issues_count":51,"forks_count":210,"subscribers_count":68,"default_branch":"master","last_synced_at":"2024-01-23T20:11:46.406Z","etag":null,"topics":["android","architecture","moxy","mvp","mvp-architecture"],"latest_commit_sha":null,"homepage":"https://github.com/Arello-Mobile/Moxy/wiki","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Arello-Mobile.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-02-12T08:35:25.000Z","updated_at":"2023-12-22T23:16:17.000Z","dependencies_parsed_at":"2022-09-05T20:22:05.689Z","dependency_job_id":null,"html_url":"https://github.com/Arello-Mobile/Moxy","commit_stats":null,"previous_names":[],"tags_count":37,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Arello-Mobile%2FMoxy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Arello-Mobile%2FMoxy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Arello-Mobile%2FMoxy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Arello-Mobile%2FMoxy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Arello-Mobile","download_url":"https://codeload.github.com/Arello-Mobile/Moxy/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225476381,"owners_count":17480215,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","architecture","moxy","mvp","mvp-architecture"],"created_at":"2024-11-20T05:32:06.663Z","updated_at":"2024-11-20T05:32:08.412Z","avatar_url":"https://github.com/Arello-Mobile.png","language":"Java","funding_links":[],"categories":["Libs"],"sub_categories":["\u003cA NAME=\"Framework\"\u003e\u003c/A\u003eFramework"],"readme":"# Moxy\n\n**\u003cspan style=\"color:red\"\u003e\nThis Moxy repository is deprecated and no longer supported. \n\u003c/span\u003e**\n\n**Please migrate to the actual version of the Moxy framework at [Moxy communuty](https://github.com/moxy-community/Moxy) repo.**\n\n## Description\n\n\n[![Maven Central](https://img.shields.io/maven-central/v/com.arello-mobile/moxy.svg)](http://search.maven.org/#search%7Cga%7C1%7Cg%3A%22com.arello-mobile%22%20AND%20(a%3A%22moxy%22%20OR%20a%3A%22moxy-compiler%22%20OR%20a%3A%22moxy-android%22%20OR%20a%3A%22moxy-app-compat%22)) [![license](https://img.shields.io/github/license/mashape/apistatus.svg)](https://opensource.org/licenses/MIT)\n\nMoxy is a library that helps to use MVP pattern when you do the Android Application. _Without problems of lifecycle and boilerplate code!_\n\nThe main idea of using Moxy:\n![schematic_using](https://habrastorage.org/files/a2e/b51/8b4/a2eb518b465a4df9b47e68794519270d.gif)\nSee what's happening here in the [wiki](https://github.com/Arello-Mobile/Moxy/wiki).\n\n## Capabilities\n\nMoxy has a few killer features in other ways:\n- _Presenter_ stay alive when _Activity_ recreated(it simplify work with multithreading)\n- Automatically restore all that user see when _Activity_ recreated(including dynamic content is added)\n- Capability to changes of many _Views_ from one _Presenter_\n\n## Sample\n\nView interface\n```java\npublic interface HelloWorldView extends MvpView {\n\tvoid showMessage(int message);\n}\n```\nPresenter\n```java\n@InjectViewState\npublic class HelloWorldPresenter extends MvpPresenter\u003cHelloWorldView\u003e {\n\tpublic HelloWorldPresenter() {\n\t\tgetViewState().showMessage(R.string.hello_world);\n\t}\n}\n```\nView implementation\n```java\npublic class HelloWorldActivity extends MvpAppCompatActivity implements HelloWorldView {\n\n\t@InjectPresenter\n\tHelloWorldPresenter mHelloWorldPresenter;\n\n\tprivate TextView mHelloWorldTextView;\n\n\t@Override\n\tprotected void onCreate(Bundle savedInstanceState) {\n\t\tsuper.onCreate(savedInstanceState);\n\t\tsetContentView(R.layout.activity_hello_world);\n\n\t\tmHelloWorldTextView = ((TextView) findViewById(R.id.activity_hello_world_text_view_message));\n\t}\n\n\t@Override\n\tpublic void showMessage(int message) {\n\t\tmHelloWorldTextView.setText(message);\n\t}\n}\n```\n\n[Here](https://github.com/Arello-Mobile/Moxy/tree/master/sample-github) you can see \"Github\" sample application.\n\n## Wiki\nFor all information check [Moxy Wiki](https://github.com/Arello-Mobile/Moxy/wiki)\n\n## Android studio templates\nIn order to avoid boilerplate code creating for binding activity, fragments and its presentation part, we propose to use Android Studio templates for Moxy. \n\nTemplates located in [/moxy-templates](https://github.com/Arello-Mobile/Moxy/tree/master/moxy-templates)\n\n## Links\n[Telegram channel (en)](https://telegram.me/moxy_mvp_library)\u003cbr /\u003e\n[Telegram channel (ru)](https://telegram.me/moxy_ru)\u003cbr /\u003e\n[References](https://github.com/Arello-Mobile/Moxy/wiki#references)\u003cbr /\u003e\n[FAQ](https://github.com/Arello-Mobile/Moxy/wiki/FAQ)\n\n## Integration\nBase modules integration:\n```groovy\ndependencies {\n  ...\n  compile 'com.arello-mobile:moxy:1.5.5'\n  annotationProcessor 'com.arello-mobile:moxy-compiler:1.5.5'\n}\n```\nFor additional base view classes `MvpActivity` and `MvpFragment` add this:\n```groovy\ndependencies {\n  ...\n  compile 'com.arello-mobile:moxy-android:1.5.5'\n}\n```\nIf you are planning to use AppCompat, then you can use `MvpAppCompatActivity` and `MvpAppCompatFragment`. Then add this:\n```groovy\ndependencies {\n  ...\n  compile 'com.arello-mobile:moxy-app-compat:1.5.5'\n  compile 'com.android.support:appcompat-v7:$support_version'\n}\n```\n### AndroidX module integration\nIf you use AndroidX, use `MvpAppCompatActivity` and `MvpAppCompatFragment` add this (thanks to [@jordan1997](https://github.com/jordan1997)):\n```groovy\nimplementation 'tech.schoolhelper:moxy-x-androidx:1.7.0'\n```\n### AndroidX(Google material) module integration\nIf you use google material, use `MvpBottomSheetDialogFragment` add this (thanks to [@jordan1997](https://github.com/jordan1997)):\n```groovy\nimplementation 'tech.schoolhelper:moxy-x-material:1.7.0'\n```\n\nNote: [@jordan1997](https://github.com/jordan1997) creates [fork](https://github.com/schoolhelper/MoxyX) of Moxy — feel free to use it fully (instead of use only this module dependency) on your opinion.\n\n### Kotlin\nIf you are using kotlin, use `kapt` instead of `provided`/`apt` dependency type:\n```groovy\napply plugin: 'kotlin-kapt'\n\ndependencies {\n  ...\n  kapt 'com.arello-mobile:moxy-compiler:1.5.5'\n}\n```\n\n## ProGuard\nMoxy is completely without reflection! No special ProGuard rules required.\n\n## License\n```\nThe MIT License (MIT)\n\nCopyright (c) 2016 Arello Mobile\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FArello-Mobile%2FMoxy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FArello-Mobile%2FMoxy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FArello-Mobile%2FMoxy/lists"}