Skip to content

the-losers/ARGraphLibrary

Repository files navigation

Yeah , Check us on Medium also :- https://medium.com/@deepakypro/how-to-plot-a-graph-in-real-world-using-arcore-android-4f5f1007fb86

A simple library that allows you to add a graph in Real world using ARCore.

Demo

20190205_092505

Gradle

Add following dependency to your root project build.gradle file:

allprojects {
    repositories {
        ...
        jcenter()
        maven { url "https://jitpack.io" }
        ...
    }
}

Add following dependency to your app module build.gradle file:

dependencies {
    ...
   implementation 'com.github.the-losers:ARGraphLibrary:x.y.z'
    ...
}

Configure

  • Manifest File

    • Permissions, you need two permissions , 1. Camera so you can add a graph in real world, 2. Storage to record and save the added graph video.
       <uses-permission android:name="android.permission.CAMERA"/>
       <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    • Enable ARCore in Android studio, There are two types of AR apps: AR Required and AR Optional.

      • AR Required apps
         <application><!-- Indicates that app requires ARCore ("AR Required"). Causes Google
         Play Store to download and install ARCore when the app is installed.
         -->
      
         <meta-data android:name="com.google.ar.core" android:value="required" />
         </application>  
      • AR Optional apps
        <application><!-- Indicates that app supports, but does not require ARCore ("AR Optional").
        Unlike "AR Required" apps, Google Play Store will not automatically
        download and install ARCore when the app is installed.
        -->
      
       <meta-data android:name="com.google.ar.core" android:value="optional" />
       </application>

      Read more about it here - Enable ARCore

  • build.gradle

    • This library is using java 8 language features , so to enable them you will have to add below lines otherwise it will throw an error during compile time.
     compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
  • AndroidX

    • ARGraph is using androidx library, So You will have to migrate your project to AndroidX. Read more about it here - Migrating to AndroidX

Usage

  • Create the GraphConfig builder,

     GraphConfig mGraphConfig = GraphConfig.newBuilder()
        .setGraphList(getList()) //pass the list that you want to add in real world
        .setEnableClassicPlatform(false) 
        .setEnableLogging(true) 
        .setEnableVideo(true)
        .setVideoQuality(VIDEO_QUALITY.QUALITY_1080P) //QUALITY_HIGH, QUALITY_2160P,QUALITY_1080P,QUALITY_720P,QUALITY_480P
        .build();
  • Call the function loadGraph,

     PlotGraph.get(context).loadGraph(mGraphConfig);
  • You can also check wheather a device support the arcore or not by simple calling the below method,

    if(Utils.checkIsSupportedDeviceOrFinish(this)){
    //Do stuffs
    } else{
    //hide button or whatever you wants to do
    }

App using ARGraph

My Run Tracker - The Run Tracking App

Author

Deepak Kumar

License

ARGraphLibrary is available under the BSD license. See the LICENSE file.

The End : Happy Coding :D