BMI Calculator – MVC Architecture Mobile App
Software architecture and web data integration are fundamentally important in mobile app design and implementation. This project provides students with the opportunity to put their knowledge of MVC architecture and mobile web integration into practice. Students will develop a simple BMI calculator application using MVC architecture, then use Web APIs to perform the same BMI calculation.
Students will be able to:
Students may develop an iOS app (preferred) or an Android app. For iOS app:
?XCode 10, programming language Swift (no Objective-C) -strongly preferredFor Android app:
?Android SDK using Java
Design and implement a mobile app that calculates BMI and displays the results to the user. In this app, you use a web API call to calculate BMI and use the API call results to show the BMI to the user.
BMI Calculator Using API:
Create an application that, when given the height and weight of a person, calculates their BMI. In this app,you will use a REST API call to calculate the BMI once height and weight are given as parameters to the API. The API should take the height and weight as parameters and return the BMI, Risk Factor, and Array of web links with BMI information. Your app should read the weight and height and call the API to calculate the BMI. See the example API call in Figure 2 for a height of 60 inches and weight of 156 lbs.
The main UI of your app should look like the following screenshot.
Figure 1: User Interface (UI) Design Guidelines1
Your application should process the JSON results and display BMI information to the user. Then, displays the following messages to the user based on the BMI value
You areunderweightif BMI is
You arepre-obeseif BMI is between 25 and 30–Purple
Color You areobeseif BMI is greater than 30–Red Color
Additionally, when the user selects the button “Educate Me,” the app should load a web page that shows additional information about BMI by using one of the web links (preferablythefirst web link) from the JSON results. If the”Educate Me”button is clicked before calculatingtheBMI, the URL with a default value (or without query parameters) can be used to call the API to get the URL and redirect to the web page.
The results from the API call is a JSON document structure:
“more”:[“https://www.cdc.gov/healthyweight/assessing/bmi/index.html”,”https: //www.nhlbi.nih.gov/health/educational/lose_wt/index.htm”,”https://www.ucsfh ealth.org/education/body_mass_index_tool/”],
“risk”:”You are obese :(” }
Figure 2: Example API call for a height of 60 inches and weight of 156 lbs
Submission Directions for Project Deliverables:
Submit your project as a separate zip file that implements all the requirements. Name your zipfile “FirstName_LastName_BMI Calculator Project.zip”.
|No Attempt -or- Undeveloped||Developing||Approaching||Meets|
Design User Interface Correctly forPhase II
Make the APICall andProcess JSONData
Educate Me Button Functionality Implemented Correctly
User Interface is missing majority of required UI components based on the specification given
Incorrect API call and incorrect JSONprocessing
Educate Me Button functionality not implemented
User Interface is missing majority at least half of the required UI components
Correct API call and incorrect JSONprocessing
Educate Me Button functionality incorrectly implemented
UI has all the majorcomponents, but missing proper alignment, placement in screen
Correct API call and few errors (less than 3) in JSONprocessing
UI has all the required components and has proper alignment and placement in the screen
Correct API call and correct JSONprocessing
Educate Me Button functionality correctly implemented
1Images modified from Xcode 10 and originally developed using Swift 4.2.