PROG2005 – Programming Mobile Systems Assignment 2 (S3 2021) This assignment is due on Friday, 4 Feb 2022, at 11:00 pm. You should submit your source code as a ZIP archive for all parts of the assignment to the assignment 2 submission link on the unit website. If the file size is too large to upload via the submission link, please submit only the SRC folder of the Ionic projects as a ZIP file, then send the entire project folders via a method specified by your tutor. Note that marks will be deducted for poorly structured or uncommented code. All submitted source code files must include title comments that at least identify the author and the assignment part. The separate parts of the assignment are to be submitted in separate subdirectories (e.g. Part1, Part2 etc.). Please note that this assignment will be due after the weekly sessions have covered the last of the required materials, and covers several laboratory sessions and topics. Do not leave this assignment to the last minute – complete the relevant parts of the assignment while concepts are fresh in your mind. If you require an extension, you must apply to your tutor before the due date to be considered. Unless an extension is approved, there is a penalty (see Unit Information Guide). This assignment requires you to develop two applications to demonstrate your knowledge of Cordova and Ionic framework. It will start with a Cordova application in part 1, and you will implement a multipage application using the Ionic framework in part 2. You must use only the Tabs Ionic template for your apps for Part 1 and Part 2. To ensure every aspect of the implemented apps work properly, test your apps on a real device or in an emulator before the submission. The browser platforms do not support some of the plugins and hardware sensors, so the applications may not be tested thoroughly in a browser window. Part 1 – Ionic app using Ionic Native APIs (13 marks) In this section, you will develop an app to use Cordova and Ionic Native plugins which access some of your device’s hardware sensors (1 mark for the correct use of Ionic native). It is unnecessary to test your app on a real device, but you should if you have one available. The app should be working correctly on an emulator (it will be tested). You are requested to develop a multipage Ionic app. The pages required are: 1. A page to display the current charge level of your device’s battery. Have your app also displays different messages when (2 marks): • the battery goes critical • the battery goes low status • the battery starts charging or stops charging You will need to add ‘Battery Status’ Ionic native plugin to your app 2. A page to display (2 marks): • device’s model • platform (device’s operating system name) • name and version of the operating system • device’s manufacturer To display the above information, you will need to add ‘Device’ Ionic native plugin to your app 3. A page to display the device acceleration in X, Y and Z directions (2 marks). Activate the vibrator when the device is shaken (1 marks). You can either activate the vibrator for a fixed time or toggle it on/off by the shaking motion. Note that the vibrator may be difficult to emulate, so if you do not have a real device, display a message while the vibration is active and use very slow shakes, so you can alter the emulator to simulate shaking. 4. A page that has • a button that plays a sound when swiped and another sound when swiped again. You can have more than two sounds if you like (cycle through them with each swipe) (2 marks). • a button that toggles the flashlight on/off using the Flashlight plugin (1 mark). 5. Add a splash screen to your app. Any graphic will do. You will need to research the splash-screen plugin for this. You will not need to call show() or hide() as the default configuration will show the screen for three seconds when the app starts. You will, however, need to configure your splash screen by editing config.xml (2 marks). There are many useful instructions on the internet, so look further than the official documentation. Part 2 – Ionic app to manage a veterinary clinic’s animal database (12 marks) The aim is to develop an Ionic multipage app for a veterinary clinic that uses Ionic components, to maintain a small database of animal information while the app is running on a mobile device or in a browser window. The app will access a remote website using RESTful operations (see below) to create, edit and delete records on the website. Your app will implement an injectable service to access the remote website using AJAX techniques. Each page component will access this injectable service for remote HTTP operations. The data records have the following format (1 mark): • Animal name – string. This will be a unique key for the data. • Animal species – string (must be “dog”, “cat”, “rabbit”, “guinea pig”, “bird” or “other”) • Animal age – number (will be the whole number of years) • Animal sex – string (must be “male” or “female”) • Phone number (owner’s number) – string The data has the following requirements (1 mark): • Each record must have a value for all fields. No field can be blank. • The animal ‘species’ and ‘sex’ must be one of the options shown. • The animal name can only be entered and saved once (it must be unique for each animal). Your app will have several pages: • Home page with greetings and your name as app author (1 mark) • A page for listing all animals (1.5 marks) • A page for adding new animals (1.5 marks) • A page for editing the existing animals (3 marks). This page will also allow searching for animals and deleting an animal from the data. Your app will have help information that appears over the current page when requested (each page require a help widget). The delete operation will require a prompt to confirm the delete. This prompt should be an Ionic dialogue (not a JavaScript alert!). You must have at least four pages on your app, and if you chose the tabs template, you must change the icons to be appropriate (3 marks for all of these). Use appropriate Ionic user interface components to implement the app. Several things are missing here from the usual app. For example, there is no splash screen requested and no media or other native interfaces (e.g. pictures of animals). You can add them if you wish, but these have not been added as requirements to simplify the app. The sever is at URL http://spike.scu.edu.au:8080/PetServ/ and the RESTful operations are as follows: GET PetServ/ - get all the animal data as a JSON response (an array) GET PetServ/name - get data for an animal named “name” PUT PetServ/ - updates the record on the database with the PUT body, which is a JSON format animal record. If the animal name exists, the associated data is updated. Otherwise, a new animal record is created. DELETE PetServ/name - removes the record with the given name. Note that removal of the animal named “terry” is forbidden (status 403 returned) so that students will find at least one record on the server. Successful deletion of other records must return a proper message.
欢迎咨询51作业君