Skip to content

Project Diary (Components)

amathur-19301666 edited this page Apr 26, 2020 · 24 revisions
  1. Map Component - For showing and computing the journey route

    1. Google Maps - https://developers.google.com/maps/documentation/android-sdk/intro

      1. Pros
        • The simplest choice for maps on an Android phone.
        • Easiest to integrate
        • Offer many out of the box functionalities
      2. Cons
        • Cost - Incorporating Google Maps in the project would need a subscription for the SDK
        • Not Available Offline. As discussed with the professor, the offline aspect of the app is of utmost importance.
        • Using an available API would not be a good approach as recommended by the professor
    2. MapBox - https://docs.mapbox.com/android/maps/overview/

      1. Pros
        • Provided us with offline functionality
        • Had extensive developer support will clear documentation and explanations
      2. Cons
        • The free tier had several limitations in terms of offline tiles available and number of users the supported
        • Cost - Incorporating Mapbox in the project would need a subscription for the SDK
    3. Here Maps - https://developer.here.com/

      1. Pros
        • Offline maps SDK for Android
        • Provides routing functionality
      2. Cons
        • The services offered by the free tier were limiting
        • Several services required an internet connection to be available
    4. Graphhopper - Implemented in the project - https://wiki.openstreetmap.org/wiki/GraphHopper

      1. Pros
        • Free tool for implementing the offline map
        • Provides routing functionality offline
        • Uses the OpenStreetMap (OSM) Protocolbuffer Binary Format (PBF) Filed to create the nodes, edges and relations
        • Provided a routing engine to us for use and compute the route
      2. Cons
        • Long queries will need lots of RAM, which is also not very handy on mobile devices. So you’ll have to limit the length of the route, increase the heuristical nature of the algorithm
        • Difficult to set up. Long process to extract the files and get them working with the app.
        • Required files to be kept in a specific location to be accessed for the construction of the map.
  2. Peer-to-Peer Communication

    1. Bridgify - https://www.bridgefy.me/developers.html

      1. Pros
        • Provides Hybrid communication Functionality - Hybrid Offline and Online Networks supported
        • Provided many great functionalities out of the box
      2. Cons
        • Only worked on Bluetooth in our Tests
        • Would handle all of the p2p aspects and will not leave scope for us to develop functionalities
        • Would need a subscription for using certain functionalities
    2. Hypelabs - https://hypelabs.io/documentation/

      1. Pros
        • Provides P2P mesh functionality to allow hops between peer networks
        • Would take care of the entire P2P component required by the app
      2. Cons
        • As the SDK provided a lot of functionality out of the box, the development tasks by the team would be trivial
        • The wifi - direct functionality was not working in our tests
    3. Using Wifi-Aware

    4. WifiDirect

      1. This seemed promising and was a success. The problem in this approach was that all devices were listed after the discovery, i.e. all devices w/o Journear apps were included in the list to connect. There wasn't any way to filter the list to only display devices that had Journear App installed.
    5. DNS (DNS-based Service Discovery)

      1. This approach came out to be successful as only devices having Journear app are listed.
  3. Multiple Device communication

    1. MQTT
      1. Hive
      2. Eclipse Paho
      • Pros: More efficient information distribution; increased scalability; a reduction in network bandwidth consumption dramatically
      • Cons: Centralized broker can limit scale
    2. RabbitMQ
      • Pros: Fast and Simple management
      • Cons: High latency, need for a broker to relay messages.
    3. DNS-SD based decentralized connection-less protocol
      • Pros - Works like a radio broadcast communication.
      • Cons - Limitations in message length. No implicit handshake for confirmation.
Clone this wiki locally