Skip to content
f2prateek edited this page Mar 13, 2013 · 15 revisions

For project Part 3 - Please use the develop branch.

To build :

git clone [email protected]:CMPUT301W13T06/classproject.git

git checkout -b project-part-3 369f60d35209b3d977bfc6743580b013481562f5

mvn clean verify - Installs to all connected devices

Key features.

  • Backwards compatibility - our app runs on devices uptil Froyo. This means we can have a substantially larger user base, since over 50% of Android users are below API 14 (ice cream sandwich).
  • Android design - efforts have been made to optimise the app design as per the design guidelines at http://developer.android.com/design/index.html .
  • Unified design - not only does the app run on pre-ICS devices, but it has the same look and feel on older devices as well. This was done by using a number of open source libraries-primarily ActionBarSherlock. It allowed us to have a key navigation pattern (the action bar) regardless of the device.
  • Integration-tests have been implemented in addition to unit tests. Thanks to a stubbed api jar, we can't test android specific APIs (say Activity or Fragments) using simple unit tests (at least not without a framework like Roboelectric) - so we used integration tests for comprehensive testing. This let's us have confidence in submitting new features. We've used some additional libraries such as spoon (for easier to understand test results and better UI testing) and fest-android (for a simpler assertions API) to build the test suite.
  • Continuous Integration : we used Travis CI for continuous integration of our builds. All pull requests can be automatically verified before being merged. It runs the tests against a suite of different API levels.
  • Checkstyle : To maintain uniform code conventions we used a tool called checkstyle, that integrates with our build process. It is loosely modelled after the code conventions for the AOSP style guide.

Deliverables

  1. Addressing TA Feedback - Updated UML and updated use cases (added tests).

  2. Code Base (see source). Checkout from develop branch for latest code for this part of the project - master is reserved for more robust builds.

  3. Code Documentation (see source), or the javadoc branch. The javadoc branch may not be up to date with the latest code in the develop branch.

  4. Test Cases - A CI server is also set up. See unit tests and integration-tests. Substantial test case for the MainActivity (specifically switching between tabs) is missing due to this bug - https://code.google.com/p/android/issues/detail?id=38500. WIll likely be added when we sue a ViewPager to swipe between tabs.

  5. UML - updated.

  6. Release Planning - updated.

  7. Libraries that are used have been documented in README.md. There are more features we are working on that will be using specific code samples from open source projects (such as swipe to dismiss). Their attribution will be added as we implement them.

General Assignments

  • Search : Adam
  • Main Activity : Prateek
  • Recipe : Brian
  • Pantry : Ethan; add and delete from pantry (view)
  • Elastic Search client : Prateek; implement all mehtods form lab demo
  • Database : Adam; Add, delete and edit recipe; Add, delete pantry item
Clone this wiki locally