All Projects → mvp4g → mvp4g

mvp4g / mvp4g

Licence: Apache-2.0 license
A framework to build a gwt application the right way

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to mvp4g

Kotlinmvpsamples
🚀(Kotlin 版 )快速搭建 Kotlin + MVP + RxJava + Retrofit + EventBus 的框架,方便快速开发新项目、减少开发成本。
Stars: ✭ 103 (+255.17%)
Mutual labels:  mvp, eventbus
Flair
This is powerful android framework
Stars: ✭ 31 (+6.9%)
Mutual labels:  mvp, eventbus
MVPSamples
🚀(Java 版)快速搭建 MVP + RxJava + Retrofit + EventBus 的框架,方便快速开发新项目、减少开发成本。
Stars: ✭ 113 (+289.66%)
Mutual labels:  mvp, eventbus
Ticket Analysis
移动端的彩票开奖查询系统
Stars: ✭ 61 (+110.34%)
Mutual labels:  mvp, eventbus
Readhub
ReadHub Client 非官方客户端
Stars: ✭ 179 (+517.24%)
Mutual labels:  mvp, eventbus
AndroidStarterAlt
A sample View-based Android app using the MVP architecture. It uses Mosby, Dagger2, RxJava, retrofit, LoganSquare, requery, EventBus, Conductor.
Stars: ✭ 27 (-6.9%)
Mutual labels:  mvp, eventbus
MVPHulk
Android MVP 快速集成方案 (支持AndroidX)
Stars: ✭ 19 (-34.48%)
Mutual labels:  mvp, eventbus
Reader
📚 MVP + Volley + Gson, 内容包含了糗事百科,煎蛋,和内涵段子
Stars: ✭ 60 (+106.9%)
Mutual labels:  mvp
gwt-boot-awesome-lili
Collection of JavaScript Libraries with JsInterop Interfaces and Others - GWT Awesome Library List (Gwit a LiLi)
Stars: ✭ 29 (+0%)
Mutual labels:  gwt
sirius
Modern coffeescript/javascript framework
Stars: ✭ 20 (-31.03%)
Mutual labels:  mvp
nongbeer-mvp-android-demo
Showcase app that how to build an MVP app from scratch.
Stars: ✭ 25 (-13.79%)
Mutual labels:  mvp
MVPDemo
MVP 封装
Stars: ✭ 81 (+179.31%)
Mutual labels:  mvp
hertzy
Event bus channel
Stars: ✭ 48 (+65.52%)
Mutual labels:  eventbus
microservice-architecture-quick-start
Demonstrates how to build a Microservices Architecture using the C # language and the ASP.NET Core environment.
Stars: ✭ 16 (-44.83%)
Mutual labels:  eventbus
elemento
Builder API and other goodies for Elemental2
Stars: ✭ 90 (+210.34%)
Mutual labels:  gwt
gwt-material-addins
Custom Components for gwt-material.
Stars: ✭ 35 (+20.69%)
Mutual labels:  gwt
vxrifa
Utility library for Vert.X that allows using strong-typed interfaces in communication through EventBus
Stars: ✭ 15 (-48.28%)
Mutual labels:  eventbus
Prevailer-orientation-support-library-for-Android
Prevailer is a simple android library that helps in preserving object instances across orientation change in android and is JAVA 8 and MVP ready.
Stars: ✭ 17 (-41.38%)
Mutual labels:  mvp
ReadnBuyAndroidApp
Android app developed at the Vanhackathon for Shopify's challenge. Coded with Kotlin, RxJava and MVP.
Stars: ✭ 13 (-55.17%)
Mutual labels:  mvp
GithubApp-android-architecture
Let's learn a deep look at the Android architecture
Stars: ✭ 16 (-44.83%)
Mutual labels:  mvp

MVP4G

GWT is a very powerful framework that allows you to build efficient applications, especially if you follow the best practices described by Ray Ryan at Google IO 2009:

  • Event Bus
  • Dependency Injection
  • Model View Presenter
  • Place Service

(see https://www.youtube.com/watch?v=PDuhR18-EdM for the video or http://extgwt-mvp4g-gae.blogspot.com/2009/10/gwt-app-architecture-best-practices.html for the text, thanks to Araik Minosian.) However, following these best practices is not always easy and you can end up with a project with a lot of boilerplate code that is hard to manage.

That's why Mvp4g offers a solution to following these best practices using simple mechanisms that only need a few lines of code and a few annotations.

This is all you need to create an event bus with four events:

@Events(startPresenter = CompanyListPresenter.class, module = CompanyModule.class) 
public interface CompanyEventBus extends EventBus {          
        @Event( handlers = CompanyEditPresenter.class )        
        public void goToEdit( CompanyBean company );          
        
        @Event( handlers = CompanyDisplayPresenter.class )         
        public void goToDisplay( CompanyBean company );          
        
        @Event( handlers = { CompanyListPresenter.class, CompanyDisplayPresenter.class } )         
        public void companyCreated( CompanyBean newBean );          
        
        @Event( handlers = CompanyListPresenter.class )         
        public void companyDeleted( CompanyBean newBean ); 
}

Eventbus:

  • create an event bus using a few annotations and one centralized interface where you can easily manage your events
  • control your event flow thanks to event filtering, event logs, event broadcast, passive event
  • have the same control of user's navigation as the GWT Activities/Place architecture thanks to Navigation Event

MVP:

  • create a presenter and inject a view with one annotation
  • inject anything you want to your presenters/views thanks to GIN
  • support for multiple instances of the same presenter
  • easily implement the Reverse MVP (or View Delegate) pattern thanks to Reverse View feature
  • easily control your presenter thanks to onBeforeEvent, onLoad and onUnload methods (thanks to the Cycle Presenter feature)

History Management/Place Service:

  • convert any event to history token thanks to simple history converters
  • support for crawlable urls
  • easily customize your place service
  • support for hyperlink token

Not only does Mvp4g help you follow the best practices, it also provides mechanisms to build fast applications:

  • support for GWT code splitting feature: easily divide your applications into smaller modules thanks to Multi-Modules feature or (NEW) split one or a few presenters thanks to Splitter.
  • support for lazy loading: build your presenters/views only when you need them. Useless presenters/views are also automatically removed.
  • (NEW) easily develop your application for multiple application. Reuse most of your code for Android or Iphone/Ipad devices and just switch your GIN configuration.

To understand how the framework works, you can look at the documentation, the tutorials or the examples.

Mvp4g has been successfully used on several commercial projects, take a look at a few of them. You can also read and post feedback on the official GWT marketplace or Mvp4g forum.

Any comments or ideas to improve the framework are more than welcome. If you want to help us to improve and contribute to this project, feel free to do so.

To ensure quality, library code is covered by JUnit tests.

Note

Mvp4g uses heavily generators. Also it has a dependency to GIN, which is at least end of life. That are some of the reasons why mvp4g will never work with j2cl/GWT 3!

Of course mvp4g will be maintained in the future. Bugs will be fixed, etc. But, you will not see any no features, etc.

If you are planning to update your project and make it j2cl ready, you have two opportunities:

  1. switch to mvp4g2
  2. switch to Nalu

Both frameworks have been tested with j2cl!

In case you are uncertain, which one of the frameworks to choose, ask inside the Nalu Gitter room.

Inportant Notice

Starting with version v1.6.0 mvp4g will use GWT 2.9.0!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].