Giter Site home page Giter Site logo

amitshekhariitbhu / nybus Goto Github PK

View Code? Open in Web Editor NEW
285.0 24.0 52.0 392 KB

NYBus (RxBus) - A pub-sub library for Android and Java applications

Home Page: https://amitshekhar.me

License: Apache License 2.0

Java 100.00%
pubsub rxbus rxbus2 rxjava rxjava2 rxjava-android eventbus publisher subscriber eventbus-library

nybus's Introduction

NYBus

NYBus(RxBus) - A pub-sub library for Android and Java applications.

My Personal Blog - amitshekhar.me - High-quality content to learn Android concepts.

This pub-sub library NYBus(RxBus) uses RxJava(RxJava2) for creating RxBus(RxBus2). You must have used EventBus. NYBus is very similar to the EventBus. NYBus is implemented using RxJava(RxJava2).

Overview of NYBus(RxBus) pub-sub library

  • NYBus is used for posting any type of event to subscribe class in Android and Java applications.
  • NYBus also support channel to avoid the problem of event getting received at undesirable places.
  • NYBus also support thread customization(thread in which the event should be posted).
  • NYBus is built on RxJava(RxJava2).

Using NYBus(RxBus) Library in your application

Android

compile 'com.mindorks.nybus:nybus-android:1.0.0'

Java

compile 'com.mindorks.nybus:nybus-java:1.0.0'

To run all the test cases

gradlew connectedAndroidTest test

Simple Usage

Register on default channel

NYBus.get().register(this);

Unregister from default channel

NYBus.get().unregister(this);

Post on default channel

NYBus.get().post(event);

Receive on default channel

@Subscribe
public void onEvent(Event event) {

}

Usage with specific channel

Register on specific channel

NYBus.get().register(this, Channel.ONE);

Register on more than one channel

NYBus.get().register(this, Channel.ONE, Channel.TWO);

Unregister from channel

NYBus.get().unregister(this, Channel.ONE);

Unregister from more than one channel

NYBus.get().unregister(this, Channel.ONE, Channel.TWO);

Post on a specific channel

NYBus.get().post(event, Channel.ONE);

Receive on a specific channel

@Subscribe(channelId = Channel.ONE)
public void onEvent(Event event) {

}

Receive on more than one channel

@Subscribe(channelId = {Channel.ONE, Channel.TWO})
public void onEvent(Event event) {

}

Usage with specific thread

Receive on specific thread

@Subscribe(threadType = NYThread.MAIN)
public void onEvent(Event event) {

}

Receive on a specific channel and a specific thread

@Subscribe(channelId = Channel.ONE, threadType = NYThread.IO)
public void onEvent(Event event) {

}

Enable Logging

NYBus.get().enableLogging();

It will log: D/NYBus: No target found for the eventclass com.mindorks.Event

If this library helps you in anyway, show your love ❤️ by putting a ⭐ on this project ✌️

You can connect with me on:

Read all of my blogs here.

License

   Copyright (C) 2022 Amit Shekhar

   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.

Contributing to NYBus

All pull requests are welcome, make sure to follow the contribution guidelines when you submit pull request.

nybus's People

Contributors

amitshekhariitbhu avatar anandgaurav10 avatar bbayoung avatar jyotid avatar jyotidubey avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

nybus's Issues

error when write channelId

Compilation failed; see the compiler error output for details.

i have error here
@subscribe(channelId = Channel.ONE)
public void onGetMovie(Movie mMovie) {
loadMovie(mMovie);
}

Any plans to move from jcenter to maven?

Any plans to move from jcenter to maven?

Reason: jcenter is being shut - Link & since jcenter() is needed in Gradle build script to use NYBus, when jcenter shuts down wont be able to use this.

NYBusDriver is not thread safe

In NYBusDriver the events can be posted from any thread and are observed on the correct thread.

Each of the thread related observables themselves are not thread-safe. Consider using the serialized subject or confined all the onNext events to a single thread.

can't post from Fragment to Activity?

Good library, i try to use NYBus to send data from fragment to Activity, but not working. Can you help me?

 //register
NYBus.get().register(this);
//post
 NYBus.get().post(List<Object> mItems);
// and recieve
@Subscribe
    public void onEvent(List<Object> event) {
        Log.d("vinh123", event.size()+"");
    }

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.