VioletDroid

Cay Horstmann

CS 151 Section 05

 

Anique Davla

Parvathy Menon

Vishaal Prasad

Charlene Young

VioletDroid

VioletDroid Capabilities

  • Create UML Diagrams
    • Classes, Interfaces, etc.
    • Notes
    • Arrows
  • Save/load diagrams as JSON files
  • Export diagrams as PNG images

Design Patterns

  • Use of Interfaces and Abstract Classes 
    • Minimize duplicate code 
    • Adding functionality was easier 

UmlDrawable Interface

draw(): draw items in Canvas 
contains(): check if points lie inside UmlDrawable
toJson(): returns JSON Object of UMLDrawable
  • Implementing classes:
    • UmlNode
    • UmlBentArrow  

UmlNode Abstract Class

float x, y: coordinates
Rect getOutline(): returns rectangle that defines the shape
set(): sets top-left position
boolean contains(): checks if given location is contained in node

 

 

 

  • Extending classes:
    • UmlNoteNode
    • UmlClassNode
  • Any rectangular item in a UML diagram

UmlEditor

  • UMLEditorActivity:
    • adding/editing arrow options
    • all file saving options
    • checking for unsaved changes
    • creating buttons in view
    • adding UML editor on top of pixel grid
    • creating pixel grid
  • UMLEditorView:
    • Creating new editor view and canvas
    • Adding/editing items, nodes, UMLDrawable items
    • All touch events
    • Bitmap object with all of the items in the view

What We Learned - Android

  • Creating Activities
  • Saving and reading files on the device
  • Efficient use of Interfaces
  • Returning Bitmaps and JSON Objects
  • OnClickListeners and Touch Events
  • Using the XML Editor to create views
  • Traversing through Activities
  • Dealing with GUI Objects (UMLNode classes, UMLDrawable)

What We Learned - Git

 

  • Git
    • Branching 
      • Working with individual develop branches
    • Merging 
      • Managing a master branch that is functional at all times with "finalized" code
      • Managing a project with multiple contributors
  • GitHub vs. Bitbucket
    • While both clients use Git Version Control, we used Github due to issues we were having with adding multiple contributors on Bitbucket.

Working As A Team

 

  • Git Management
    • Issue Tracker gave us an organized way to track the bugs and features that needed to be added or fixed to our project. 
    • Tracking our progress on issues gave us a clear idea of where we stood.
  • Communication
    • Communicating and critiquing our ideas about design changes, features, etc. was crucial to completing a clean, robust application.