Git Product home page Git Product logo

android-mqtt-quickstart's Introduction

โš ๏ธ **Please feel free to create issues if it does not run for you.

android-mqtt-quickstart Build Status

Android Studio port of the Eclipse paho MQTT sample project.

Environment Tested On

  1. OpenJDK Java 11 by Amazon (sdkman 11.0.6-amzn)
  2. Pixel XL API 29 emulator
  3. Android Studio 3.6.2

I am maintaining this on my own, and as such am unable to test on multiple devices and environments.

You can support me buy contributing code, filing bugs, asking/answering questions, or buying me a coffee.

Buy Me a Coffee at ko-fi.com

Getting Started

  1. Download the code git clone http://www.github.com/bytehala/android-mqtt-quickstart
  2. Open the project in Android Studio
  3. Build and run it.

Using the Sample App

To test the app, you need an MQTT broker. Luckily, HiveMQ provides a free one which we can use for testing. HiveMQ broker

After successfully connecting, you can start subscribing and publishing to topics using the app. Subscribing

Success

More About MQTT

MQTT is a messaging protocol which has applications in the Internet of Things (IoT). This sample project uses Eclipse's open-source implementation called the Paho Project. If you go to the original source where I lifted this project from, there are non-Android sample projects that use the Paho library.

This youtube video explains the MQTT for IoT at a very basic level.

Learn more about the other MQTT options such as QOS, Last Will, etc from this really helpful 12 part series by HiveMQ http://www.hivemq.com/blog/mqtt-essentials/

Create Your Own App

All you need is an MQTT broker.
This app is just piggybacking on HiveMQ's free broker.

Take note of the dependencies in this project. org.eclipse.paho.android.service and org.eclipse.paho.client.mqttv3 depend on the old android-support-v4, specifically the LocalBroadcastManager class.

Maybe we can migrate to mqttv5 using the plain Java library at https://github.com/eclipse/paho.mqtt.java

The eclipse sources can be found at: https://github.com/eclipse/paho.mqtt.android

Honestly, when I made an MQTT app for a client, I just built on top of this sample project.

Word of Warning

This app was made in 2015-2016, and is a demo of how to use the Eclipse MQTT Libraries, not how to code in Android.

Architecture components are a thing now, and I strongly advise the use of ViewModel and LifecycleHook.

Work In Progress

Definitely look at the "jetpacknav" branch which aims to transform everything into a Single-Activity application, which has been the Android recommendation since 2018. It's currently a work in progress but a clear example of how to transform legacy apps from the old Android paradigm (multiple-Activity) to the newer ones (single-Activity Jetpack).

MQTT V3 vs V5

This project uses MQTT v3 and I will be looking into using v3 and v5 in the near future.

android-mqtt-quickstart's People

Contributors

bytehala avatar

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.