== 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: * [mailto://blairlc@verizon.net Blair Chisholm] Student Members: * [mailto://benjialbert2@gmail.com Benji Albert] * [mailto://genius.ryan.bowers@gmail.com Ryan Bowers] Resource Downloads: * [http://developer.android.com/sdk/index.html Android Studio] * [http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html Oracle JDK Platform] References: * [https://www.youtube.com/playlist?list=PL6gx4Cwl9DGBsvRxJJOzG4r4k_zLKrnxl thenewboston Android Programming YouTube tutorials] -------------------------------------------------- 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.