Skip to content

2022 Google Solution Challenge - Treenity [Android Application]

Notifications You must be signed in to change notification settings

Setana-GDSCUOS/treenity-android

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🌲 Treenity (2022 Google Solution Challenge)

πŸ“Ή Demo Video

Demo Video

This is an application that provides an AR-based social networking/exercising experience.

APK File

πŸ“– Explanation

We propose a way to reduce your carbon footprint through fun-filled walking. As users walk while using the app, the app records their steps. The number of steps recorded is converted into points for buying seeds and buckets of water, Users can plant seeds and water trees in places they frequently visit through AR technology and build up their efforts toward nature and health. Not just this! Users can share their hard work with other users and also interact with the world directly from their Android smartphones!

By walking and watering, you will be filled with the power of steady exercise.

πŸ‘£Let's just plant your walks!πŸ‘£

πŸ’Ž Main Features

  • Realtime step-counting service

  • Google ARCore CloudAnchor based spatial information sharing system

  • Marking hosted ar trees of all users on Google Maps

  • Push Notification of hosted ar trees lists sorted via distance

πŸ–₯️ Build Environment

This project uses the Gradle build system. To build this project, please use the gradlew build command or use "Import Project" in Android Studio.

This project is built on : Gradle 7.0.2 with JDK 11

  • minSdkVersion : 29
  • targetSdkVersion : 31

πŸ›οΈ Libraries Used

  • Android Architecture Components

    • Lifecycles - Lifecycle-aware components perform actions in response to a change in the lifecycle status of another component.
    • LiveData - An observable data holder class allows updating app components in an active lifecycle state.
    • ViewModel - Stores and manages UI-related data that does not volatilize even under the configuration changes of application (ex. rotation of screen).
    • WorkManager - Manage Android background jobs and schedule periodic works.
  • Dependency Injection

    • Hilt - Provides a standard way to incorporate Dagger dependency injection into an Android application. Hilt includes extensions for providing classes from other Jetpack libraries like ViewModel or WorkManager, etc.
  • Asynchronous Programming

  • Network

    • Retrofit 2 - A type-safe HTTP client for Android and Java.
    • OkHttp 3 - An efficient HTTP client that helps to request/respond to data with HTTP.
  • Authentication

    • Firebase - Google's platform for mobile application development.
  • AR

    • ARCore API - Google’s platform for building augmented reality experiences.
  • Google Maps

  • Third-Party

    • Coil - An image loading library for Android backed by Kotlin Coroutines.
    • Lottie - A library that renders After Effects animations natively on Android.
    • SceneView 0.2.0 - A 3D/AR Android View with ARCore and Google Filament.
    • MPAndroidChart 3 - A powerful & easy to use chart library for Android.

πŸ“Έ Usage

πŸ€ Space recognization

Application detects plane and recognizes space from video
plane_detection

πŸ€ Planting tree

Just select seed and touch the screen to plant trees on the AR space
planting

πŸ€ Enter Information

You can add descriptions for your own AR tree
enter_information

πŸ€ List trees

Check your trees on your My Page or My Tree List
my_tree

πŸ€ Find trees of the other users

Use map pages to find or bookmark trees of other users
map_with_bookmark

πŸ€ Bring shared trees to your space

Point your phone to a specific place to bring another user's trees!
resolve_shared_tree

πŸ€ Check your "Mypage"

The application will count your steps and record them in real-time You can also check your walk records, the total amount of carbon you've reduced in Mypage
walks

πŸ€ Buy items for planting

Recorded steps will be converted into points to buy water buckets or seeds
store

πŸ€ Personalize your experience

You can set your name or control features like step counting and Push alarm that automatically detects trees around, set number of trees to render on the setting page
setting

πŸ€ Push alarm

Application will find trees around and make alarm
Push

πŸ‘·β€β™‚οΈ Install (closed currently)

Please download APK file

  1. Select apk files on file manager
    1_select_apk

  2. Go to settings to allow installing apps from unknown source.
    2_allow_unknow_source

  3. Allow your file manager application to install unknown apps
    3_allow_install

  4. Tap install button
    4_install

  5. Select INSTALL ANYWAY
    5_install_continue

  6. Please don't send app for play protect scanning!
    5 5_Dont

  7. You're Done!
    6_finish

πŸ”­ Future Visions

Expand the possibility of interaction between users. Even though society is one of the main components of our project, related features are currently reduced than initially thought. In the next step, interactions between users will take place with trees in between as they are now. For example, we can add features like users picking fruits from another user’s tree, or cutting another user’s tree. And if the obtained item could configure the tree to grow again from the item, not only the interaction but also the completeness of the app will increase.

Add motivating elements by creating a rewarding system. Currently, points that users could get from the number of steps and trees that could be purchased with points are the only ways to motivate users to walk. Suppose that we have added an achievement system that gives rewards to users when they find new kinds of trees and fruits. Users will try to discover more trees for rewards, and this could be another motivation for them to walk more. The more users walk, the fewer carbon emissions will occur than using transportation. Additionally, the quality of individual health and the overall health of society will be improved.

Provide users rich experience With a variety of types of seeds such as flowers or crops. It could make users’ experience richer when planting plants.

Contributors

About

2022 Google Solution Challenge - Treenity [Android Application]

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages