Git Product home page Git Product logo

dotascoop's Introduction

*** IMPORTANT UPDATE 2023 :) ***

This project is fully inactive. It used to be my first bigger community project that I really poured myself into, and within a couple of months, I made it onto the Google Play Store:

https://apkcombo.com/dotascoop-handy-dota-2-data/github.com.rhacco.dotascoop/ (<- original description and screenshots here)

It did not receive enough traction or feedback to keep up my motivation, so eventually and sadly, I was its only proud user on my own phone. Now it serves as a read-only archive for my portfolio, and maybe the APK from the link above still works (?), who knows!

DotaScoop

A community project aiming to provide handy game data on Dota 2 for on the go.

The first states of the app were developed using this tutorial and modifying the example app provided by the tutorial.

Downloading and running the finished app (for users)

DotaScoop is now available on the Play Store:

https://play.google.com/store/apps/details?id=github.com.rhacco.dotascoop

Manually building and running the app (for developers)

Tested on Windows 10 and Windows 8.1.

Recommended setup and building the app

Clone this repository with the Git tool of your choice. On (most) *nix systems, git is preinstalled. To get a simple terminal with basic Unix commands and the git command for Windows, use this.

Download Android Studio from here. Click on Download Options or scroll all the way down to download it for Mac or Linux.

Start the installer and install Android Studio with the Android SDK and the recommended preconfigured virtual Android device. When this installation is finished and you start Android Studio for the first time, strangely enough another installation starts. Click Next, select "Custom" installation instead of "Standard" and click Next. Select your UI theme, click Next, select "Android Virtual Device", click Next, click Next and click Finish.

In Android Studio, choose Open an existing Android Studio project and open the DotaScoop folder which you received by cloning this repository earlier. When presented with a window titled "Gradle Sync", click OK. When presented with a Windows Firewall window, click Allow access. When presented with the "Tip of the Day" window, click Close.

Now you are probably presented with an error "Failed to find target [...]". Click Install missing platform(s) and sync project. Accept the agreement and click Next, when it's done click Finish. If you are presented with other errors like this, proceed the same way to install all missing components.

Wait for Android Studio to build the project. When it's done, you will see "Gradle build finished [...]" in a status bar at the bottom of Android Studio. This completes building the app.

Running the manually built app on a virtual Android device

In Android Studio, click the green play button in the middle of the toolbar (or press Shift+F10) to run the app. When presented with "Select Deployment Target", you should see an entry under "Available Virtual Devices". If yes, click OK. If no, click Create New Virtual Device, install missing components, click Next, click Download to install a recommended system image, click Next and click Finish. Now you should definitely see an entry under "Available Virtual Devices", then click OK.

Watch Android Studio start the virtual Android device to run the app. Follow the status bar at the bottom of Android Studio, it gives you some nice information about what's currently happening. When presented with a window titled "GPU Driver Issue", select Never show this again and click OK.

The app should now be started on the virtual Android device and ready to use.

Running the manually built app on a physical Android device

Of course you can also install and run the app on a physical Android device. Connect the device to your computer via USB. On the Android device, enable "Developer options" and "Android debugging" (or "USB debugging"), Google will tell you how to do that. Press the green play button in the middle of the toolbar (or press Shift+F10) and you should be able to select your physical Android device.

dotascoop's People

Contributors

rhacco avatar edbertchan avatar

Watchers

 avatar

dotascoop's Issues

Suggesting to add Items tab

Refer to intro here #12

Implementation

  1. Item names, portraits, and in-game descriptions
  2. Separate basic items from upgrades
  3. Clicking a basic item should display the upgrades they build into (if applicable of course)
  4. Item stats and effects
  5. Search bar

Future Implementation:

  1. Record our own videos to demonstrate items with active abilities

Enhance Live Matches overview

Enhance the overview with pro team names (for tournament matches), elapsed time, score, gold advantage, hero names and the Steam Server ID. Probably make most of the additional information only appear when tapping on a match to keep the UI clearer in the default case. Also add an info button to the Action Bar that shows a pop-up describing what can be done in this overview, especially with the Steam Server ID.

Improve organization of Activities

Right now there a very basic buttons that allow entering a new Activity, this should be improved. I really like this list fading in from the left side seen in many popular apps, e.g. in Google Maps:

Welcome/About screen

When opening the app for the very first time, show a welcome screen. Then, make it an "About" screen accessible optionally.

Add settings

Add some common settings to allow convenient customization.

Use Unix timestamps to check for updated datasets

Currently, the different datasets are always cached for a fixed amount of time. For example, leaderboards are cached for one hour since that's how often they are being updated. The same goes for the heroes and items datasets which are only updated every ~14 days.

Checking for updated datasets with Unix timestamps provided by the custom API over at https://github.com/Rhacco/Dota2ExtraServices is more flexible and more accurate, and the year 2038 is not too close yet.

Show interesting currently running matches

In a new Activity, show overviews of interesting currently running matches.

This should (at least) include tournament and highest average MMR matches. Both seem to be accessible via the official Dota 2 API fairly comfortably.

Apply a proper style

The app should have a proper general style. As a start, I would suggest giving backgrounds, title bars, buttons and maybe fonts a unique feel.

Enhance leaderboards

Enhance leaderboards with

  • cache received data and make it valid for one day
  • markers that indicate if a player moved up or down on the leaderboard or stayed at the same position compared to the previous day
  • a search function

Add a refresh action to Live Matches

With the ViewModel architecture, fetched data survives in memory (or in a database) when the related Activity is destroyed. Add a refresh action to Live Matches, e.g. 'swipe down to refresh', to allow refreshing the data again without having to reopen the app entirely.

Suggesting to add Heroes tab

It would be so helpful to just pull out your phone and have all the info you need about heroes and items. This can be used to look something up about a hero that you forgot about, and/or using it as an educational tool while telling your friends all about DotA. Having a search bar for either tabs is also crucial.

Please feel free to approach with an idea and we can discuss it.

Implementation:

  1. Hero names and portrait
  2. Ability name, portrait, and in-game description
  3. Heroes talent trees
  4. Heroes stats: attributes (also gain per level), attack, defense, mobility, health, and mana.
  5. Heroes difficulty and general role
  6. Heroes lore (biography section in the about tab after clicking a hero)
  7. Search bar

Future implementation:

  1. Record our own videos to demonstrate abilities
  2. Adding guides
  3. Adding custom builds
  4. Display detailed roles (Roles in the about tab after clicking a hero)
  5. Add proper Aghanim's Scepter upgrades to abilities that get upgraded

Add Steam authentication

Allow users to log in with their Steam account. I'm not familiar with this process yet but I'm thinking after a successful login, we should be able to query the Steam Web API with the specific user information somehow. This might help to get started.

Merge separated leaderboards

Currently, each leaderboard is stored in its own table. It's simpler to store them in one table with the region being the primary key.

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.