use java to code diet and weight
Contents 1.0 Current Functions Deliverable: 3 1.2 Description: 3 1.3 Schedule: Behind / Ahead: 3 1.4 Problems encountered: 3 1.5 Overall Percent Completion: 3 2.0 MONDAY - Milestone 1. FINALIZE I/O. 4 2.1 Description: 4 2.2 Schedule: Behind / Ahead: 4 2.3 Problems encountered: 4 2.4 Percent Completion: 4 3.0 Tuesday - Milestone 2. FINALIZE INTERFACE DETAILS. 7 3.1 Description: 7 3.2 Schedule: Behind / Ahead: 7 3.3 Problems encountered: 7 3.4 Percent Completion: 7 4.0 Wednesday - Milestone 3. CODE FOR CONSOLE. 8 4.1 Description: 8 4.2 Schedule: Behind / Ahead: 8 4.3 Problems encountered: 8 4.4 Percent Completion: 8 5.0 Thursday - Milestone 4. CODE FOR GUI GRAPHICS. 9 5.1 Description: 9 5.2 Schedule: Behind / Ahead: 9 5.3 Problems encountered: 9 5.4 Percent Completion: 9 6.0 Friday - Milestone 5. ADD GUI FUNCTIONS / EVENT HANDLERS: 11 6.1 Description: 11 6.2 Schedule: Behind / Ahead: 11 6.3 Problems encountered: 11 6.4 Percent Completion: 11 7.0 Saturday – Milestone 6. PHASE 1 CODE: 11 7.1 Description: 11 7.2 Schedule: Behind / Ahead: 11 7.3 Problems encountered: (See Milestone 6) 11 7.4 Percent Completion: (See Milestone 6) 11 7.5 CODE: CALORIE INTAKE REQUIREMENTS CALCULATOR: (LUIS PEREZ) 11 7.6 CODE: BASIC MAIN MENU AND USER PROFILE: (SUN MOK HWANG) 12 7.7 CODE: EXERCISE LIST: (HENRY STEPHENS) 15 7.8 CODE: EXERCISE ACTIVITY (Android Adapted with XML): (KELLY TYLER) 17 7.9 CODE: XML ACTIVITY EXCERCISE 19 7.10 CODE: MAIN ACTIVITY CLASS (Android Adapted with XML): (KELLY TYLER) 20 7.11 CODE: XML ACTIVITY MAIN(KELLY TYLER) 21 7.12 CODE: XML MENU MAIN (KELLY TYLER) 21 7.13 CODE: XML MENU EXCERCISE 21 8.0 Sunday – Milestone 7. DELIVERABLES: 22 8.1 Description: 22 8.2 Problems encountered: 22 9.0 Phase I: Reevaluation . 22 10.0 List of Figures 24
1.0 Current Functions Deliverable:
1.2 Description:
1. Limited Android App functions as listed.
A
B
C
2. Limited JAVA App functions as listed.
A.
B.
C.
1.3 Schedule: Behind / Ahead:
1.4 Problems encountered:
1.5 Overall Percent Completion:
Figure 1: Developer Roles and Responsibilities:
|
Developer |
Application Feature |
|
Sun / John |
Profile, settings and motivational queue. |
|
Shan/Henry |
Diet: Food item entry, options, and suggestions. |
|
Louis/Shan |
Weight plan data entry and progress. |
|
Tyler/Henry |
Exercise plan data entry and progress. |
|
|
|
|
|
|
2.0 MONDAY - Milestone 1. REVIEW AND ADJUST INTERFACE ISSUES
2.1 Description:
Resolve issues in the notes column of the I/O matrix and ensure the plan for the Android and JAVA graphics layouts both feature the same I/O scheme.
2.2 Schedule: Behind / Ahead:
2.3 Problems encountered:
2.4 Percent Completion:
*The following figures (2-4) prioritize the application features relative to input and output functions with an additional breakdown of team member tasking.
Figure 2: High Priority Application Features
*High priority application features are generally associated with user profiling, which acts as a gateway from the main menu into other features of the application.
Figure 3: Medium Priority Application Features
*Medium priority application features effect user planning and progress reporting.
Figure 4: Low Priority Application Features
*Low priority application features are extensions of or additions to profiling, planning, and progress reporting.
3.0 Tuesday - Milestone 2. REVIEW AND ADJUST INTERFACE DETAILS.
3.1 Description:
Ensure the class hierarchy accommodates the most recent version of the graphics layout. Consider adding representations for event handler method calls. Determine how application feature functions will share values. Can be copy paste of screenshots from a package explorer after assembling a basic class structure .
3.2 Schedule: Behind / Ahead:
3.3 Problems encountered:
3.4 Percent Completion:
Figure 5: UML Diagram
Note:
The hierarchy is generalized for adaptability to Android activity interface structure. All GUI elements extend from the main activity with sub functions extended via progress reporting due to the fact that progress reporting is dependent on data included in all other application features.
I’m putting this chart back in because so far the UML’s have just been window dressing and we never actually discussed interfacing or UML. I need confirmation from everyone that the UML is OK. That did not happen for the design project. That did not happen for Phase 1. It’s about time for it to happen now. If we aren’t on the same page with the class structure and logical interface, I’m not sure how we will be able to succeed.
4.0 Wednesday - Milestone 3. REVIEW AND ADJUST CODE FOR CONSOLE.
4.1 Description:
The pair of programmers assigned to the features above should by this point have working code for the application feature that works at the console without a GUI. This code should include a class that provides a set of test values representing what will be inputs from the other features once the program is assembled. Most importantly, the message dialogues, user input file storage, and progress reporting logic should be accomplished here.
4.2 Schedule: Behind / Ahead:
Behind.
4.3 Problems encountered:
Timing.
4.4 Percent Completion:
Figure 6: Calorie Calculator Console (Eclipse IDE) Output (Caloric Limit)
5.0 Thursday - Milestone 4. REVIEW AND ADJUST CODE FOR GRAPHICS.
5.1 Description:
Assemble graphic presentation without working functions.
Continue use of Android Studio. Remember, it doesn’t really make sense to put graphics in this doc without the Phase Source code to back it up. I added the graphics for now but suggest the ones that have no code prepared be removed… or… provide a repository link for Dr. Comitz to reference even if we are not using one for collaboration.
5.2 Schedule: Behind / Ahead:
Behind
5.3 Problems encountered:
Timing, and inexperience with Android GUI programming
5.4 Percent Completion:
Figure 7: Profile and Exercise List
Figure 8: Android Interface.
6.0 Friday - Milestone 5. REVIEW AND ADJUST EVENT HANDLERS:
6.1 Description:
Begin adapting the code from milestones 3 and 4 together, allowing actions for GUI graphics.
6.2 Schedule: Behind / Ahead:
6.3 Problems encountered:
6.4 Percent Completion:
7.0 Saturday – Milestone 6. PHASE 2 CODE:
7.1 Description:
Begin adapting the code from milestones 3 and 4 together, allowing actions for GUI graphics.
7.2 Schedule: Behind / Ahead:
7.3 Problems encountered: (See Milestone 5)
7.4 Percent Completion: (See Milestone 5)
7.5 CURRENT CODE: CALORIE INTAKE REQUIREMENTS CALCULATOR: (LUIS PEREZ)
import java.util.Scanner;
public class Calculator {
public static void main(String[] args) {
Scanner reader = new Scanner(System. in );
System. out .print("Hello, what is your name? ");
String name = reader.nextLine();
//the reader.nextLine command assigns a line of user input into a variable, in
// this case a String (the user's name)
System. out .println("Hi, "+name+", we are going to calculate the ammount of
calories you need to maintain your weight.");
System. out .print("What is your weight in kg? ");
int weight = Integer.parseInt (reader.nextLine());
//we are assigning the user input to a int variable as we need it
//to be a whole number
System. out .print("What is your height in cm? ");
int height = Integer.parseInt (reader.nextLine()); //The Integer.parseInt
command converts user input into a integer variable, as we are expecting a
number from the user
System. out .print("What is your age? ");
int age = Integer.parseInt (reader.nextLine());
System. out .print("How active are you on a scale from 1.2 to 1.725? ");
double activity = Double.parseDouble (reader.nextLine());
//we are using the Double.parseDouble command to convert the user input into a
//double variable (a decimal number)
double calories = (66 + (13.7 * weight) + (5 * height) - (6.8 * age));
//finally we calculate the final variable which is the number of calories equal
to the rest metabolic rate
System. out .println(name + ", the ammount of calories you need to intake in
order to maintain your weight is " + calories*activity);
//and in the process of displaying it we multiply it by the activity coefficient
//and display the final result to the user.
}
}
7.6 CURRENT CODE: BASIC MAIN MENU AND USER PROFILE: (SUN MOK HWANG)
import javax.swing.*;
public class ProjectGUI extends JFrame
{
//Constructor - Creates the frame/window
public ProjectGUI() {
super("Lean Bean");
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame. EXIT_ON_CLOSE );
add(new MainMenuPanel());
pack();
setVisible(true);
}
//*****Panels for each interface*****
//Main Menu Interface components and panel
private JButton profileButton = new JButton("Profile");
private JButton weightPlanButton = new JButton("Weight Plan");
private JButton foodMenuButton = new JButton("Food Menu");
private JButton exercisesButton = new JButton("Exercises");
private JButton progressButton = new JButton("Progress");
class MainMenuPanel extends JPanel {
//Constructor
public MainMenuPanel() {
setLayout(new GridLayout(5,1));
add(profileButton);
add(weightPlanButton);
add(foodMenuButton);
add(exercisesButton);
add(progressButton);
//Action for profileButton
profileButton.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e){
JFrame profileFrame = new JFrame("Profile");
profileFrame.setLocationRelativeTo(null);
profileFrame.setDefaultCloseOperation(JFrame. EXIT_ON_CLOSE );
profileFrame.add(new ProfilePanel());
profileFrame.pack();
profileFrame.setVisible(true);
}
});
//Action for weightPlanButton
weightPlanButton.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e){
//Open Weight Plan interface
//ADD CODE
}
});
//Action for foodMenuButton
foodMenuButton.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e){
//Open Food Menu interface
//ADD CODE
}
});
//Action for exercisesButton
exercisesButton.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e){
//Open Exercises interface
//ADD CODE
}
});
//Action for progressButton
progressButton.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e){
//Open Progress interface
//ADD CODE
}
});
}//End constructor
}//End class mainMenuPanel
//Profile Interface components and panel
private JLabel firstNameLabel = new JLabel("First Name");
private JLabel lastNameLabel = new JLabel("Last Name");
private JLabel ageLabel = new JLabel("Age");
private JLabel genderLabel = new JLabel("Gender");
private JLabel weightLabel = new JLabel("Weight (lbs)");
private JLabel heightFeetLabel = new JLabel("Height (ft)");
private JLabel heightInchesLabel = new JLabel("Height (in)");
private JTextField firstNameTextField = new JTextField(" ");
private JTextField lastNameTextField = new JTextField(" ");
private JTextField ageTextField = new JTextField(" ");
private JTextField genderTextField = new JTextField(" ");
private JTextField weightTextField = new JTextField(" ");
private JTextField heightFeetTextField = new JTextField(" ");
private JTextField heightInchesTextField = new JTextField(" ");
private JButton submitProfileButton = new JButton("Submit");
class ProfilePanel extends JPanel {
//Constructor
public ProfilePanel() {
setLayout(new GridLayout(9,2));
add(firstNameLabel);
add(firstNameTextField);
add(lastNameLabel);
add(lastNameTextField);
add(ageLabel);
add(ageTextField);
add(genderLabel);
add(genderTextField);
add(weightLabel);
add(weightTextField);
add(heightFeetLabel);
add(heightFeetTextField);
add(heightInchesLabel);
add(heightInchesTextField);
add(submitProfileButton);
}
}
public static void main(String[] args) {
ProjectGUI test = new ProjectGUI();
}
}
7.7 CURRENT CODE: EXERCISE LIST: (HENRY STEPHENS)
import javax.swing.*;
public class ExcerciseList extends JFrame
{
// Declare Variables.
private JLabel jLabel1;
private JLabel jLabel2;
private JScrollPane jScrollPane2;
private JTable jTable1;
// Variables Declared.
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new ExcerciseList().setVisible(true);
}
});
}
public ExcerciseList() {
initComponents();
}
private void initComponents() {
jScrollPane2 = new JScrollPane();
jTable1 = new JTable();
jLabel1 = new JLabel();
jLabel2 = new JLabel();
setDefaultCloseOperation(javax.swing.WindowConstants. EXIT_ON_CLOSE );
setTitle("Lean Bean Excercise List");
setResizable(false);
jTable1.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{"1", "Aerobics, high imp", "533", "664", "796"},
{"2", "Aerobics, low imp", "365", "455", "545"},
{"3", "Aerobics, water", "402", "501", "600"},
{"4", "Backpacking", "511", "637", "763"},
{"5", "Basketball game", "584", "728", "872"},
{"6", "Bicycling, leisure", "292", "364", "436"},
{"7", "Bowling", "219", "273", "327"},
{"8", "Canoeing", "256", " 319", "382"},
{"9", "Dancing, ballrm", "219", "273", "327"},
{"10", "Elliptical, moderate", "365", " 455", "545"},
{"11", "Football, touch/ flag", "584", "728", "872"},
{"12", "Golfing (carry clubs)", "314", "391", "469"},
{"13", "Hiking", "438", "546", "654"},
{"14", "Ice skating", "511", " 637", "763"},
{"15", "Racquetball", "511", "637", "763"},
{"16", "Resistance weights", "365", "455", "545"},
{"17", "Rollerblading", "548", "683", "818"},
{"18", "Rope jumping", "861", "1,074", "1,286"},
{"19", "Rowing, stationary", "438", "546", "654"},
{"20", "Running, 5 mph", "606", "755", "905"},
{"21", "Running, 8 mph", "861", " 1,074", "1,286"},
{"22", "Skiing, cross-country", "496", "619", "741"},
{"23", "Skiing, downhill", "314", "391", "469"},
{"24", "Skiing, water", "438", "546", "654"},
{"25", "Softball or baseball", "365", "455", "545"},
{"26", "Stair treadmill", "657", "819", "981"},
{"27", "Swim ( moderate lap)", "423", "528", "632"},
{"28", "Swim ( vigerous lap)", "715", "892", "1,068"},
{"29", "Tae kwon do", "752", "937", " 1,123"},
{"30", "Tai chi", "219", "273", " 327"},
{"31", "Tennis, singles", "584", "728", "872"},
{"32", "Volleyball", "292", "364", "436"},
{"33", "Walking, 2 mph", "204", "255", "305"},
{"34", "Walking, 3.5 mph", "314", "391", "469"},
{"35", "Yoga, hatha", " 183", "228", "273"},
{"36", "Yoga, power", "292", "364", "436"}
},
new String [] {
"", "Activity(1 hr) ", "160 / 73", "200 / 91", "240 / 109"
}
) {
Class[] types = new Class [] {
String.class, String.class, String.class, String.class, String.class
};
public Class getColumnClass(int columnIndex) {
return types [columnIndex];
}
});
jScrollPane2.setViewportView(jTable1);
if (jTable1.getColumnModel().getColumnCount() > 0) {
jTable1.getColumnModel().getColumn(0).setPreferredWidth(1);
}
jLabel1.setText("Weight of person(lbs/kgs)");
jLabel2.setText("and calories burned.");
GroupLayout layout = new GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(GroupLayout.Alignment. LEADING )
.addComponent(jScrollPane2, GroupLayout. DEFAULT_SIZE , 388, Short. MAX_VALUE )
.addGroup(GroupLayout.Alignment. TRAILING , layout.createSequentialGroup()
.addContainerGap(GroupLayout. DEFAULT_SIZE , Short. MAX_VALUE )
.addGroup(layout.createParallelGroup(GroupLayout.Alignment. LEADING )
.addComponent(jLabel1)
.addGroup(layout.createSequentialGroup()
.addGap(10, 10, 10)
.addComponent(jLabel2)))
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(GroupLayout.Alignment. LEADING )
.addGroup(layout.createSequentialGroup()
.addComponent(jLabel1)
.addPreferredGap(LayoutStyle.ComponentPlacement. RELATED )
.addComponent(jLabel2)
.addPreferredGap(LayoutStyle.ComponentPlacement. RELATED )
.addComponent(jScrollPane2, javax.swing.GroupLayout. PREFERRED_SIZE , 324, GroupLayout. PREFERRED_SIZE )
.addContainerGap(63, Short. MAX_VALUE ))
);
pack();
}
}
7.8 CURRENT CODE: EXERCISE ACTIVITY (Android Adapted with XML): (KELLY TYLER)
package com.example.ktyler4.leanbean;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.TextView;
import java.util.ArrayList;
import java.util.List;
public class ExerciseActivity extends Activity {
List<String> listCal=new ArrayList<String>();
EditText txtCal;
@Override
public void setTitle(CharSequence title) {
super .setTitle("Test");
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_exercise);
Spinner dynamicSpinner = (Spinner) findViewById(R.id.dynamic_spinner);
txtCal=(EditText)findViewById(R.id.editTextCal);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item) {
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v = super.getView(position, convertView, parent);
if (position == getCount()) {
((TextView)v.findViewById(android.R.id.text1)).setText("");
((TextView)v.findViewById(android.R.id.text1)).setHint(getItem(getCount())); //"Hint to be displayed"
}
return v;
}
@Override
public int getCount() {
return super .getCount()-1; // you dont display last item. It is used as hint.
}
};
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
adapter.add("Aerobics, High Imp");
adapter.add("Aerobics, Low Imp");
adapter.add("Aerobics, Water");
adapter.add("Basketball");
adapter.add("Bicycling");
adapter.add("Hiking");
adapter.add("Ice Skating");
adapter.add("Running, 5mph");
adapter.add("Running, 8mph");
adapter.add("Skiing, cross-country");
adapter.add("Skiing, downhill");
adapter.add("Skiing, Water");
adapter.add("Swimming, Moderate");
adapter.add("Swimming, Vigorous");
adapter.add("Tennis");
adapter.add("Walking, 2mph");
adapter.add("Walking, 3.5mph");
adapter.add("Yoga");
adapter.add("Other, Manual");
adapter.add("SELECT EXERCISE"); //This is the text that will be displayed as hint.
listCal.add("533");
listCal.add("365");
listCal.add("402");
listCal.add("584");
listCal.add("292");
listCal.add("438");
listCal.add("511");
listCal.add("606");
listCal.add("861");
listCal.add("496");
listCal.add("314");
listCal.add("438");
listCal.add("423");
listCal.add("715");
listCal.add("584");
listCal.add("204");
listCal.add("314");
listCal.add("292");
listCal.add("0");
listCal.add("0");
dynamicSpinner.setAdapter(adapter);
dynamicSpinner.setSelection(adapter.getCount()); //set the hint the default selection so it appears on launch.
// dynamicSpinner.setOnItemSelectedListener(this);
dynamicSpinner.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view,
int position, long id) {
String strCal=listCal.get(position).toString();
txtCal.setText(strCal);
Log.v("item", (String) parent.getItemAtPosition(position));
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
// TODO Auto-generated method stub
}
});
}
7.9 CURRENT CODE: XML ACTIVITY EXERCISE: (KELLY TYLER)
<?xml version="1.0"?>
<LinearLayout android:orientation="vertical" android:layout_height="fill_parent" android:layout_width="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android"> <TextView android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/txtViewExercises" android:text="@string/listExercise"/><Spinner android:layout_height="wrap_content" android:layout_width="fill_parent" android:id="@+id/dynamic_spinner"/><TextView android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/txtViewCalories" android:text="@string/listCal"/><EditText android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/editTextCal" android:text="Calories per Hour"/></LinearLayout> }
7.10 CURRENT CODE: MAIN ACTIVITY CLASS (Android Adapted with XML): (KELLY TYLER)
package com.example.ktyler4.leanbean;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void buttonOnClick(View v) {
Button button=(Button) v;
startActivity(new Intent(getApplicationContext(), ExerciseActivity.class));
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_exercise, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
7.11 CURRENT CODE: XML ACTIVITY MAIN(KELLY TYLER)
<?xml version="1.0"?>
<RelativeLayout tools:context="com.example.ktyler4.leanbean.MainActivity" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingTop="@dimen/activity_vertical_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:layout_height="match_parent" android:layout_width="match_parent" xmlns:tools="http://schemas.android.com/tools" xmlns:android="http://schemas.android.com/apk/res/android"><TextView android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/textView" android:text="@string/app_name"/><Button android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/button" android:text="Exercise" android:onClick="buttonOnClick" android:layout_marginEnd="143dp" android:layout_alignParentEnd="true" android:layout_below="@+id/textView"/></RelativeLayout>
7.12 CURRENT CODE: XML MENU MAIN (KELLY TYLER)
<?xml version="1.0"?>
<LinearLayout android:orientation="vertical" android:layout_height="fill_parent" android:layout_width="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android"> <TextView android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/txtViewExercises" android:text="@string/listExercise"/><Spinner android:layout_height="wrap_content" android:layout_width="fill_parent" android:id="@+id/dynamic_spinner"/><TextView android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/txtViewCalories" android:text="@string/listCal"/><EditText android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/editTextCal" android:text="Calories per Hour"/></LinearLayout>
7.13 CURRENT CODE: XML MENU EXCERCISE
<?xml version="1.0"?>
<menu tools:context="com.example.ktyler4.leanbean.ExerciseActivity" xmlns:tools="http://schemas.android.com/tools" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:android="http://schemas.android.com/apk/res/android"> <item android:title="@string/action_settings" app:showAsAction="never" android:orderInCategory="100" android:id="@+id/action_settings"/></menu>
8.0 Sunday – Milestone 7. DELIVERABLES:
8.1 Description:
Finalized documentation and code.
8.2 Problems encountered:
9.0 Phase II: Re-Evaluation
Figure 9. Document Changes Recommendations:
This section will remain as a checklist. At the end of the week I’ll mark each for accomplished or not accomplished. I will take another look at the phase 1 Re-evaluation and consider adding items to this list.
|
Design Plan |
|
|
section 1.2. |
Application description must be more specific and address emphasis on Andriod. |
|
section 3.0 |
Determine salvagable relationship between Android Studio (AS) and JAVA coding with respect to combined group coding experience. |
|
section 3.1. |
UML should move from class structure to Andriod Activity structure. Current UML addresses this generally by roughly depicting an extention of GUI elements from main activity. |
|
section 4.2 |
Determine software database related functions needed for storing profile and progress reporting data. |
|
section 4.4 & 5.0 |
Decide if each one of these is a separate screen / Android activity. Discuss use of Android Intents for navigation through GUI. |
|
section 5.2 |
Ensure all team members are sharing the same developer environment under guidence of most experienced Android developer. |
|
Test Plan |
|
|
|
More work needs to be put into the general description of the applications purpose, functions, and features. |
|
|
Shift introductory references to glossary. |
|
|
Specify specific applications of all developer tools in the testing process including IDE's (AS, Eclipse, Netbeans) |
|
section 2.4 |
Need supporting text for use and purpose of I/O tables with the testing procedures. Make sure the ID number appropriately match the use case test sequence / appendix. |
|
section 3.1 |
Reserve feature descriptions for supporting text alongside use case tables. |
|
section 3.2 |
Assemble all discussion of testing technics (approach, black box, white box) in this section. |
|
section 4.0 |
Find a better solution for cross referencing the similarities among test case activities to reduce page flipping. |
|
Annex A |
Include supporting text for use of tables. |
|
Initial Analysis |
|
|
section 1.2. |
Application description must be more specific and address emphasis on Andriod. |
|
|
Our closest effort thus far has been to identify I/O and GUI screens without a concise general description close to finalization of functionality. |
|
|
This should summarize current details of the I/O and the annotated description of the design plan GUI. |
|
section 1.3 |
1.3 References - Ensure team members know how the documented references will contribute to each stage of development. |
|
section 2.1 |
2.1 Product Perspective - Application description must be more specific and address emphasis on Andriod. |
|
section 2.4 |
2.4 Operating Environment needs emphasis on Android. |
|
Section 2.5 |
(Constraints) Clarify sprint goals with priority for base functionality. Extended data table has addressed this. |
|
|
Create progect backlog. Data table / application feature listing can also contribute to this. |
|
section 2.6 |
Ensure developer test plan details are not included as user documentation. |
|
section 3.2 |
3XML is currently in usage, but approach is not specified … such as with JAXB (Java Architecture for XML Binding). Must specify. |
|
section 4.0 |
Use Cases require more supporting text. |
|
section 5.0 |
Development plan schedule needed. Milestones currently documented may need to be expanded or repeated. |
|
|
Need software based configuration management. |
|
Future Reference |
Refer to these links during development of data storage, GUI, and UML design. |
|
|
http://developer.android.com/reference/android/app/Activity.html). |
|
|
(http://developer.android.com/guide/components/fragments.html) |
|
|
http://developer.android.com/guide/topics/data/data-storage.html https://www.genymotion.com/#!/ *Genymotion Emulator. |
10.0 List of Figures
Figure 1: Developer Roles and Responsibilities………………………………………………………………………………………4
Figure 2: High Priority Application Features……………………………………………………………………………………………5
Figure 3: Medium Priority Application Features………………………………………………………………………………………6
Figure 4: Low Priority Application Features…………………………………………………………………………………………….7
Figure 5: UML Diagram…………………………………………………………………………………………………………………..………8
Figure 6: Calorie Calculator Console (Eclipse IDE) Output (Caloric Limit)……………………………………………… 9
Figure 7: Profile and Exercise List…………………………………………………………………………………………………………..10
Figure 8: Android Interface………………………………………………………………………………………………………………….. 11
Figure 9: Document Changes Recommendations………………………………………………………………………………… 24