wiki:GameApp

Version 21 (modified by benjialbert, 10 years ago) (diff)

--

Game App

This group will be working on the game app for this year's game and developing and maintaining the infrastructure for the team website.

Team Mentor:

  • Blair Chisholm

Student Members:

  • Benji Albert
  • Ryan Bowers

Resource Downloads:

References:


Tips:

General:

  • Use Android Studio! It is by far the easiest way to create Android Apps!
  • Go through the android developer tutorial! It goes over everything you need from creating a GUI to saving data.

GUIs:

  • Do not use Android Studio's drag and drop widget feature to create a GUI because it hardcodes values instead of using ratios which is bad practice! (this would make the app appear differently on different devices based on the screen size).
  • Use XML to create static layouts (layouts that will stay the same) and Java to create dynamic layouts (layouts that will or may change).

Saving Data:

  • Save to the external storage and not internal (Android names part of internal storage as external storage so that a device without physical external storage will always be able to store data in "external storage". Beware of this!)
  • When you create a new file, you have to tell the Android operating system that there is a new file. If you do not do this, it will appear as if the program is running smoothly until you try to access the files on a computer; the files do not show up on device viewer! I was able to tell Android that there was a new file created using this code:

ApplicationContextProvider?.getContext().sendBroadcast(new Intent( Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.fromFile(writeFile)));

where writeFile was the file I just saved. (The full code can be seen in through this Wiki here:

http://wiki.raidtech.net/browser/gameapp/app/src/main/java/net/raidtech/first/gameapp

  • Use a library like GSON which makes serialization and deserialization a breeze!
  • Although GSON will make a JSON file, you still need to represent the code in a human readable format! For this, I use CSV which I create without the help of a library. I saved individual matches in CSV files and I created a file called SUPER_FILE which combines the CSV files into one large spreadsheet. This spreadsheet shows every team and all the teams' statistics so someone can quickly retrieve general information.