当前位置: 首页 > 软件库 > 手机/移动开发 > >

Moxy

Moxy is MVP library for Android
授权协议 MIT License
开发语言 Java
所属分类 手机/移动开发
软件类型 开源软件
地区 不详
投 递 者 西门飞星
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

Moxy

This Moxy repository is deprecated and no longer supported.

Please migrate to the actual version of the Moxy framework at Moxy communuty repo.

Description

Moxy is a library that helps to use MVP pattern when you do the Android Application. Without problems of lifecycle and boilerplate code!

The main idea of using Moxy:schematic_usingSee what's happening here in the wiki.

Capabilities

Moxy has a few killer features in other ways:

  • Presenter stay alive when Activity recreated(it simplify work with multithreading)
  • Automatically restore all that user see when Activity recreated(including dynamic content is added)
  • Capability to changes of many Views from one Presenter

Sample

View interface

public interface HelloWorldView extends MvpView {
	void showMessage(int message);
}

Presenter

@InjectViewState
public class HelloWorldPresenter extends MvpPresenter<HelloWorldView> {
	public HelloWorldPresenter() {
		getViewState().showMessage(R.string.hello_world);
	}
}

View implementation

public class HelloWorldActivity extends MvpAppCompatActivity implements HelloWorldView {

	@InjectPresenter
	HelloWorldPresenter mHelloWorldPresenter;

	private TextView mHelloWorldTextView;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_hello_world);

		mHelloWorldTextView = ((TextView) findViewById(R.id.activity_hello_world_text_view_message));
	}

	@Override
	public void showMessage(int message) {
		mHelloWorldTextView.setText(message);
	}
}

Here you can see "Github" sample application.

Wiki

For all information check Moxy Wiki

Android studio templates

In order to avoid boilerplate code creating for binding activity, fragments and its presentation part, we propose to use Android Studio templates for Moxy.

Templates located in /moxy-templates

Links

Telegram channel (en)
Telegram channel (ru)
References
FAQ

Integration

Base modules integration:

dependencies {
  ...
  compile 'com.arello-mobile:moxy:1.5.5'
  annotationProcessor 'com.arello-mobile:moxy-compiler:1.5.5'
}

For additional base view classes MvpActivity and MvpFragment add this:

dependencies {
  ...
  compile 'com.arello-mobile:moxy-android:1.5.5'
}

If you are planning to use AppCompat, then you can use MvpAppCompatActivity and MvpAppCompatFragment. Then add this:

dependencies {
  ...
  compile 'com.arello-mobile:moxy-app-compat:1.5.5'
  compile 'com.android.support:appcompat-v7:$support_version'
}

AndroidX module integration

If you use AndroidX, use MvpAppCompatActivity and MvpAppCompatFragment add this (thanks to @jordan1997):

implementation 'tech.schoolhelper:moxy-x-androidx:1.7.0'

AndroidX(Google material) module integration

If you use google material, use MvpBottomSheetDialogFragment add this (thanks to @jordan1997):

implementation 'tech.schoolhelper:moxy-x-material:1.7.0'

Note: @jordan1997 creates fork of Moxy — feel free to use it fully (instead of use only this module dependency) on your opinion.

Kotlin

If you are using kotlin, use kapt instead of provided/apt dependency type:

apply plugin: 'kotlin-kapt'

dependencies {
  ...
  kapt 'com.arello-mobile:moxy-compiler:1.5.5'
}

ProGuard

Moxy is completely without reflection! No special ProGuard rules required.

License

The MIT License (MIT)

Copyright (c) 2016 Arello Mobile

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
  • moxy json介绍 编组和解组XML时使用JAXB的主要优点是编程模型。 只需注释几个POJO并使用JAXB API,您就可以很容易地序列化为XML和从XML反序列化。 您无需担心有关XML如何编组/解组的细节。 一切都比DOM和SAX等替代方案简单得多。 现在,XML文件中的数据本质上趋于分层。 例如,考虑以下XML文件: <?xml version="1.0" encoding="UTF-

  • 用于JSON处理的Java API(JSR-353)是用于生成和使用JSON的Java标准,它是Java EE 7的一部分引入。JSR-353包括对象(类似于DOM)和流(类似于StAX)API。 在本文中,我将演示我们在EclipseLink 2.6中添加到MOXy的JSON绑定中的最初JSR-353支持。 现在,您可以使用MOXy进行封送: javax.json.JsonArrayBuilde

  • moxy json介绍 最近,我发布了如何利用EclipseLink JAXB(MOXy)的JSON绑定来创建RESTful服务。 在本文中,我将演示在客户端利用MOXy的JSON绑定有多么容易。 MOXy作为您的JAX-RS JSON提供程序–服务器端 MOXy作为您的JAX-RS JSON提供程序–客户端 URI 这篇文章将重点介绍我们在上一篇文章中声明的服务中的以下URI。 以下呼叫将返回居

  • eclipselink EclipseLink MOXy是JAXB提供程序,并且是内置在JDK中的默认JAXB提供程序的引人注目的替代品。 首先是一个简单的测试,将Java对象编组为XML: 这是模型: @XmlRootElement(name='MemberDetailsRequest', namespace='http://bk.org/memberservice/') @XmlAccesso

  • 最近,我发布了如何利用EclipseLink JAXB(MOXy)的JSON绑定来创建RESTful服务。 在本文中,我将演示在客户端利用MOXy的JSON绑定有多么容易。 MOXy作为您的JAX-RS JSON提供程序–服务器端 MOXy作为您的JAX-RS JSON提供程序–客户端 URI 这篇文章将重点介绍我们在上一篇文章中声明的服务中的以下URI。 以下呼叫将返回居住在“任何城镇”的客户列

  • moxy json介绍 在之前的系列文章中,我介绍了如何利用EclipseLink JAXB(MOXy)创建RESTful数据访问服务。 在本文中,我将介绍在服务器端利用MOXy的新JSON绑定添加对基于JAXB映射的JSON消息的支持有多么容易。 MOXy作为您的JAX-RS JSON提供程序–服务器端 MOXy作为您的JAX-RS JSON提供程序–客户端 为什么选择EclipseLink J

  • moxy json介绍 因此,这些天我正在为即将推出的Oracle云服务开发新的REST API,因此我需要做的事情之一就是能够为模型中的bean自动生成JSON模式。 我正在使用MOXy从POJO生成JSON,从EclipseLink 2.5.1版本开始,它现在具有从bean模型生成JSON模式的能力。 将来会有一个更加正式的解决方案集成到Jersey 2.x; 但是如果您想尝试一下,此解决方案

  • moxy json介绍 GlassFish 4现在可以提供完整的Java EE 7(JSR-342)平台。 EclipseLink为该发行版做出了一些重大贡献。 首先是提供JPA 2.1(JSR-338)实现。 我将在本文中介绍的第二个内容是EclipseLink MOXy,它现在是JAX-RS应用程序的默认JSON绑定提供程序。 RESTful服务 客户服务 通常,JPA将支持真实的服务来执行持

  • 编组和解组XML时使用JAXB的主要优点是编程模型。 只需注释几个POJO并使用JAXB API,您就可以很容易地序列化为XML和从XML反序列化。 您无需担心有关XML如何编组/解组的细节。 一切都比DOM和SAX等替代方案简单得多。 现在,XML文件中的数据本质上趋于分层。 例如,考虑以下XML文件: <?xml version="1.0" encoding="UTF-8"?> <person

  • JAXB(JSR-222)使您可以轻松地将域类的实例转换为XML。 EclipseLink MOXy实现提供了一个称为Dynamic JAXB的扩展,在其中,您没有像真实类那样的映射实例,例如名为DynamicEntity的类。 您可以使用采用属性名称的get和set方法(即customer.get(“ address”)和customer.set('name“,” Jane Doe“)来访问Dy

  • moxy json介绍 我们正在向EclipseLink MOXy添加从域模型生成JSON模式的 功能 。 为此,我们创建了一个新的变量节点映射。 在本文中,我将通过将Java模型映射到JSON模式来演示新的映射。 您可以使用每晚构建的EclipseLink 2.6.0进行尝试: http://www.eclipse.org/eclipselink/downloads/nightly.php JS

  • 在以前的系列文章中,我介绍了如何利用EclipseLink JAXB(MOXy)创建RESTful数据访问服务。 在本文中,我将介绍在服务器端利用MOXy的新JSON绑定添加对基于JAXB映射的JSON消息的支持有多么容易。 MOXy作为您的JAX-RS JSON提供程序–服务器端 MOXy作为您的JAX-RS JSON提供程序–客户端 为什么选择EclipseLink JAXB(MOXy)? 以