2017-01-27 ../../

P2: Sudoku Shrunken and FireBase Getting Started

Table of Contents

1 Lab Goals

The purpose of this lab is (i) to give you more experience in developing Android APKs, (ii) to get you started with technologies that are essential in collaborative APKs, (iii) to familiarize elementary use of github and related utilities, (iv) apply all the above in a concrete instance of an APK. The various tasks of this P2 are very uneven in effort.

2 Background

  1. Report, as used below, is a single pdf file named report-P2.pdf, where all your work for this P2 should appear. Include a short description of your real device and laptop. Include screenshots. Use whatever editor to produce this pdf.
  2. Include a journal. Record how long each task took. Record glitches, if any. Critique the P2 overall.

2.1 Sudoku

  1. Read our overview of Open Sudoku in ../Lectures/AppDevelop. Google Play Store has OpenSudoku as a free app. It is helpful, but not essential, to learn to solve Sudoku puzzles. Using OpenSudoku.apk does give you a feel for its internal APK structure.
  2. We will use the stripped down OpenSudoku in a later project that will build a Collaborative Sudoku that works over a network. Also, this is an efficient way to become more familiar with howto develop a "medium-size" APK, without actually writing all of it.

2.2 FireBase Tasks Overview

  1. Firebase Cloud Messaging (FCM) was formerly called Google Cloud Messaging. This site gives you overviews as well as more detailed explanations of what FCM is.
  2. ./3900-firebase-notes.html Notes on logging into Firbase console, and google-services.json.
  3. https://firebase.google.com/pricing/ This lab uses the free pricing.
  4. We expect to use FCM in the development of Collaborative Sudoku Project (to be given) based on the work you do in this lab in pruning OpenSudoku.
  5. https://github.com/firebase/quickstart-android This has the source code for several sample APKs. These APKs introduce the use of the FCM API through concrete examples.
    1. You can download a master ZIP or git clone the source code bundles from the above link. The total size is about 10 MB.
    2. All the FireBase samples are worth studying, but due to our time limitations, we are interested in the following five used in the headings of the Tasks.
    3. The FireBase tasks in this lab expect you to build APKs using Android Studio, and run them in the AVD emulator or real device. In each case, there is a screenshot at the bottom of READMEs.

3 Tasks

3.1 Task Build OpenSudoku As-Is

  1. Download source code from http://opensudoku.moire.org/. Build as-is from the source and run this APK. Install this on your AVD using adb. Install this also on your real device. Write a paragraph or two on how you built it. Link to source is in the overview of Open Sudoku. Capture 4+ interesting screenshots. Especially capture the screens that will go away – see below.
  2. Deliverables: You are not expected to make any changes. See next task.

3.2 Task: Prune OpenSudoku

  1. The app as-given has a range of functionality. E.g., as-given it can download Sudoku examples from various places. Chop off all this functionality, except settings, and bring it down to the essentials of just interactively solving Sudoku. Make sure to ACK the OpenSudoku project on the first screen. Change to edu.wright.ceg3900. Build and run this stripped down APK.
  2. Deliverables: (i) Interesting Screenshots 4+ before/ 4+ after apps. (ii) Two .apk files – before and after. (iii) Your project files, after the strip down, as an archive exported from IDE.

3.3 Task: FireBase Storage

  1. Firebase Storage "is built for app developers who need to store and serve user-generated content, such as photos or videos." Build this APK.
  2. Deliverables: (i) Screenshot produced by running the APK you built (look at the bottom of Readme.md), (ii) the APK. (iii) Selected screenshots during usage.

3.4 Task: FireBase Auth

  1. Firebase Authenticate using Google, Facebook or Twitter services. Build this APK.
  2. Deliverables: (i) Screenshot produced by running the APK you built (look at the bottom of Readme.md), (ii) the APK.

3.5 Task: GitHub

  1. Get a free account at https://github.com/ (or another very similar site). You are welcome to use this account not only for this course, but others also.
  2. Deliverables: (i) Include the GitHub URL of yours in the Report prominently on the very first page. (ii) Make a directory for P2. Upload all source code of P2 (as-is, not zipped), APKs built, report-P2.pdf file, and other documents to GitHub, publicly visible. The contents of P2 should have a structure similar to the Firebase's and Sudoku's GitHub dirs. (iii) Make a directory for P1. Upload the files of P1. Note that these will not be re-graded. (iv) Note that anyone who has a link can download these files. So, do not upload P2 files until after the due date + 2 days. More details TBA.

4 TurnIn

Scripts are used to check various things – so file names should obey "rules".

Submit the file named exactly report-P2.pdf (upload later also on GitHub) to Pilot dropbox for P2. This pdf includes (i) [at the top] the link to your GitHub account, (ii) all screenshots, and (iii) your commentary on all aspects of this lab. Suggestions as to what this commentary should focus on are spread out in the above.

5 End

Copyright © 2017 Dr Prabhaker Mateti • 2017-01-27