Construct typical of many programming languages

Assignment Help Programming Languages
Reference no: EM132885923

ITECH2000 Mobile Development Fundamentals - Federation University

Overview
You will implement in App Invent or a multi-screen app, based on a given project specification. This app will use a range of components taught up to and including Week 11 of the course. You will also submit a brief report containing pseudo code and a description of how your solution utilises various concepts learned in class.

Learning Outcomes

K1. Understand constructs typical of many programming languages such as: variables, expressions, assignment, sequence, selection, iteration, procedures, parameters, return values.
A1. Design, develop, test and debug mobile apps from a given textual program specification.
S1. Analyse the input, processing and output needs of small programming problems.
S2. Design code sequences to realise algorithms in a programming language.
S3. Design basic user interfaces and develop storyboards to convey designed interaction sequences.
S5. Develop test cases to ensure correct behaviour.

Assessment Details
This assignment contains two parts: an app and a brief report.

App Details
Your assignment is to develop an Android application, using MIT AppInventor, which will store a list of interesting "subreddits" from the popular social website Reddit, and download the current top posts from those "subreddits" for viewing. If you are not familiar with the Reddit platform, you can read more about it here. As your application will only be reading information from the Reddit API (and not posting any information), you will not be required to register your own account on Reddit for this assignment. The application should contain a number of screens, which are described in the following sections. As long as you fulfil the requirements in a logical way that follows what you have learned this semester in terms of programming and app design, you have free reign to design your interfaces as you like.

Screen 1: Subreddit List

When the application is first opened, a screen should be displayed which contains a list of "subreddits" that the user has previously added (or an empty list on the first run), as well as a "Add New Subreddit" button and a "View Saved Posts" button.

When the "Add New Subreddit" button is clicked, this should open Screen 2, where the user inputs a subreddit name that is returned back to this screen and added to the list of "subreddits" (if it's not a duplicate that is already in the list).

When the "View Saved Posts" button is clicked, this should open Screen 5.

Once the user has added a subreddit, it should be displayed in the list of subreddits (along with any other subreddits that have been added). The list of subreddits should be persisted using a TinyDB so that it can be reloaded after the user closes and reopens the app or returns to this screen from another screen. As an added feature, the list of subreddits should always display in alphabetical order using a sorting algorithm (see Week 10 materials).

When the user clicks on a subreddit from the list, they should be presented with two options:

1. View Posts: If selected, then Screen 3 should be loaded with this subreddit being passed to it as a start value. Screen 3 will load the most recent posts from this subreddit (if it's valid).

2. Delete Subreddit: If selected, then this subreddit should be removed from the list and no longer persisted in the TinyDB.

Screen 2: Add Subreddit Screen

This screen should allow the user to enter a subreddit name and choose to save it.

If the user enters a subreddit name (it doesn't have to be valid) and chooses to save it, it should return the subreddit name back to Screen 1 to be persisted. This screen should include validation so that the user can't save an empty subreddit name.

If the users decides not to add a subreddit, they should be able to cancel and return back to Screen 1 without making any changes to the list of subreddits.

Screen 3: View Posts Screen
After a user selects to view the posts for a subreddit from Screen 1, this screen should be loaded. The name of the subreddit that is being viewed should be displayed on this screen, as well as a list of the titles of the most recent posts from this subreddit. See the instructions below for guidance on downloading the posts. If the subreddit doesn't exist, or there is no network connection, an appropriate error should be displayed to the user.

When a post title is clicked, its associated URL should be passed to Screen 4 which will load and display the website.
Downloading posts from Reddit using an API

We are going to use the Pushshift Reddit API to download the most recent posts for a subreddit. You can get the most recent posts for a subreddit in JSON format using the following URL - all you need to do is replace <subreddit_name> with an actual subreddit's name as required:

For example, It will give us the five most recent posts from the Android subreddit. Note that the limit parameter is optional, but to keep things simple I recommend loading only a small number of posts to start with.

Note: If you are receiving error 1101 when trying to connect to the Pushshift API, try changing the URL to use http instead.

If you visit the link and view the JSON in a web browser, you will see that the JSON contains an array (data) of posts, with each post containing a range of information that describes the post. For the purposes of this assignment, we are only interested in the title and the url values for each post, so your app should extract these and load into an appropriate data structure to achieve the functionality required for this screen.

On the other hand, if you provide a subreddit to the API that doesn't exist (try typing in some gibberish), you will see that the API returns an empty array of posts. This will help you to determine whether a subreddit is valid or not for the purpose of displaying an error to the user.

Screen 4:
View URL Screen After the user selects an individual post to view on Screen 3, this screen receives the post's URL and loads it in a WebViewer component. Using relevant event blocks, the user should be shown a loading message while the website URL is loading, which should disappear once the site has completed loading. This screen should also provide the user with a mechanism to return to the previous screen (Screen 3) to select another post to view from the current subreddit.

There should also be an option on this screen for the user to save the current link as a "favourite". This option should prompt the user to input a custom title for the link, and then the custom title and associated URL should be saved to a Text file. Do not use a TinyDB for this feature!

Screen 5: Saved / Favourite Posts Screen
Screen 5 should display the list of favourites by loading them from the Text file, as saved in Screen 4. The custom titles of the favourites should be displayed in a list on the screen. When the user selects a title from the list, the associated URL should be opened and displayed in Screen 4.

This screen should also provide an option to clear the favourites, which would delete all the currently saved favourites from the Text file.
General Requirements for Coding

While your app should meet the functionality described above, you need to ensure that you demonstrate the concepts we have covered in ITECH2000 so far. To achieve full marks you will need to ensure that you have correctly made use of each of the following components, constructs or concepts somewhere in your app:
• Dictionary
• WebViewer and Web component
• ListView or ListPicker
• TinyDB and File
• Local and global variables
• Procedures

You should follow best practices for coding that we have described this semester, including the use of procedures to promote code reuse. Make sure you thoroughly test your application to ensure that it is robust.

Please read through all of the requirements before you commence work on the app, so you get a full sense of what is required to be done. It is recommended that you first model any events using pseudocode before commencing programming.

Brief Report
As well as completing the program described above in AppInventor, you are also required to submit a brief report that includes the following:
• A title page that includes your name and student ID number.
• Pseudocode describing the behaviour of two (2) events that your app will respond to. Ensure that you clearly label your pseudocode so that it is clear what aspect you are modelling.
• For each of the design components/blocks listed in the previous section (General Requirements for Coding), you should describe in 2-3 sentences how you used the component(s) in your solution and justify why. If you have used a component multiple times, please describe one example. Note: There are 6 in total.
• A description of how you tested your application to ensure that it functioned correctly, with respect to user inputs, outputs, and networking.

Attachment:- Mobile Development Fundamentals.rar

Reference no: EM132885923

Questions Cloud

Describe corporate form of organization : Describe the corporate form of organization and its advantages and disadvantages. Explain management's role in the achievement of organizational objectives.
Discuss consequences that when accountant unknowingly : Discuss at least three consequences that can occur when an accountant unknowingly sets up a firm's company incorrectly. Justify your response.
How does financial planning influence health care : How does financial planning and strategic planning influence health care organizations? Explain in detail amd Provide an example.
Legitimate claim on the halo chip : Does the Human Rights Watch have a legitimate claim on the Halo Chip? what are the possible reactions of the Human Rights Watch on the Halo Chip
Construct typical of many programming languages : Constructs typical of many programming languages such as: variables, expressions, assignment, sequence, selection, iteration, procedures, parameters
Identify the hr demand of that company : Under the above situation, which statistical approach would be appropriate to identify the HR demand of that company? Explain.
Economist in council of economic advisers : Supposed you are an economist in the Council of Economic Advisers. You believe the current unemployment rate in the US is too high.
Review the example of the sentinel event policy : Review the Steps to the failure modes and effects analysis (FMEA) Process. What is an example of a process in which the FMEA could be used?
Explain the nature of each item in the income statement : Choose a major publicly traded corporation, then go to the corporate's site and retrieve the information needed for this assignment.

Reviews

Write a Review

Programming Languages Questions & Answers

  Write a haskell program to calculates a balanced partition

Write a program in Haskell which calculates a balanced partition of N items where each item has a value between 0 and K such that the difference b/w the sum of the values of first partition,

  Create an application to run in the amazon ec2 service

In this project you will create an application to run in the Amazon EC2 service and you will also create a client that can run on local machine and access your application.

  Explain the process to develop a web page locally

Explain the process to develop a Web page locally

  Write functions

These 14 questions covers java class, Array, link list , generic class.

  Programming assignment

If the user wants to read the input from a file, then the output will also go into a different file . If the user wants to read the input interactively, then the output will go to the screen .

  Write a prolog program using swi proglog

Write a Prolog program using swi proglog

  Create a custom application using eclipse

Create a custom Application Using Eclipse Android Development

  Create a application using the mvc architecture

create a application using the MVC architecture. No scripting elements are allowed in JSP pages.

  Develops bespoke solutions for the rubber industry

Develops bespoke solutions for the rubber industry

  Design a program that models the worms behavior

Design a program that models the worm's behavior.

  Writing a class

Build a class for a type called Fraction

  Design a program that assigns seats on an airplane

Write a program that allows an instructor to keep a grade book and also design and implement a program that assigns seats on an airplane.

Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd