= Game App Development Team = This team annually develops a professional, scouting app for this year's game. '''Team Mentor''' '''Student Members''' == Resources * [http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html Oracle JDK Platform] * [http://developer.android.com/sdk/index.html Android Studio] == Tips & Tricks 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: {{{#!java 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 through this Wiki [http://wiki.raidtech.net/browser/gameapp/app/src/main/java/net/raidtech/first/gameapp here]. * 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. Distribution: * Instead of distributing via cable, upload the apk--which can be found in the Android Studio Project files--to google drive so scouts can download and install it on their phones. This is faster and less error-prone.