Assignment 1 Specification Project name: Rent a Car App You are required to design and develop using Android studio a Rent a Car App, that provides a listing of six Australian known car rental...

1 answer below »
Assignment 1 Specification Project name: Rent a Car App

You are required to design and develop using Android studio a Rent a Car App, that provides a listing of six Australian known car rental companies. By selecting a car company, a car rental site opens.

App requirement

1. An opening screen displays an image of a car and a button. 2. The second screen displays a listing of six car rental companies. This screen also contains a custom icon and layout. 3. Each car rental agency can be selected to view a website of the corresponding company.

Conditions: 1. Select your own images. 2. Create a custom layout for the list.

Submission Requirement

Submissions must consist of your zipped project folder. Submissions not following these requirements will be penalized. Submissions should reflect the concepts and practices we cover in class.

1. Complete code for your project. You can use any publicly available libraries / code / artwork / materials as long as you correctly acknowledge all sources. Please remember that when you include new features from the Android API or examples of code from other sources or projects - you must cite these examples in comments (author, website or book where you got the ideas from). 2. Documentation of your programming effort and your design process. This should be a separate document, giving an overview of the different steps you went through and presenting all documentation materials you produced on the way. 3. Manual for your product. Document that describes how the product is to be used. Please make use of screen shots here to document all functionality.

You are reminded to read the “Plagiarism” section of the course description. Your research should be a synthesis of ideas from a variety of sources expressed in your own words. All reports must use the Harvard referencing style. Marking rubrics are attached.



Unit Code HC2051 Unit Title Mobile Web Application Development Assessment Type Individual Assignment Assessment Title Android App Development Purpose of the assessment (with ULO Mapping) Students are required to design and develop an App for Australian rent a car office.

Students will be able to: a. Install and configure Android application development tools b. Apply Java programming concepts, models/architectures and patterns to Android application development c. Design components, systems and/or processes and develop user Interfaces for the Android platform to meet required specifications d. Implement and test solutions

Weight 10% of the total assessments Total Marks 10 Word limit 1000-1500 words Due Date Week 06 Submission Guidelines  All work must be submitted on Blackboard by the due date along with a completed Assignment Cover Page.  The assignment must be in MS Word format, 1.5 spacing, 11-pt Calibri (Body) font and 2 cm margins on all four sides of your page with appropriate section headings.  Reference sources must be cited in the text of the report, and listed appropriately at the end in a reference list using Harvard or IEEE referencing style.

Answered Same DayAug 16, 2020HC2051

Answer To: Assignment 1 Specification Project name: Rent a Car App You are required to design and develop using...

Akash answered on Aug 22 2020
136 Votes
MyApplication/.gitignore
*.iml
.gradle
/local.properties
/.idea/workspace.xml
/.idea/libraries
.DS_Store
/build
/captures
.externalNativeBuild
MyApplication/app/.gitignore
/build
MyApplication/app/build.gradle
apply plugin: 'com.android.application'
android {
compileSdkVersion 27
defaultConfig {
applicationId "com.example.deepz.myapplication"
minSdkVersion 16
targetSdkVersion 27
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:27.1.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.2'
implementation 'com.android.support:cardview-v7:27.1.0'
implementation 'com.jakewharton:butterknife:8.8.1'
implementation 'com.android.support:recyclerview-v7:26.1.0'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'
}
MyApplication/app/proguard-rules.pro
# Add project specific ProGuard ru
les here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
# http://developer.android.com/guide/developing/tools/proguard.html
# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
# public *;
#}
# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable
# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile
MyApplication/app/src/main/AndroidManifest.xml













MyApplication/app/src/main/java/com/example/deepz/myapplication/activity/MainActivity.java
MyApplication/app/src/main/java/com/example/deepz/myapplication/activity/MainActivity.java
package com.example.deepz.myapplication.activity;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.DefaultItemAnimator;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import com.example.deepz.myapplication.R;
import com.example.deepz.myapplication.adapter.CompanyAdapter;
import com.example.deepz.myapplication.model.Company;
import java.util.ArrayList;
import java.util.List;
import butterknife.BindView;
import butterknife.ButterKnife;
public class MainActivity extends AppCompatActivity {
    @BindView(R.id.recycler_view)
    RecyclerView recyclerView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ButterKnife.bind(this);
        CompanyAdapter mAdapter = new CompanyAdapter(getCompanyList(), getApplicationContext());
        RecyclerView.LayoutManager mLayoutManager = new LinearLayoutManager(getApplicationContext());
        recyclerView.setLayoutManager(mLayoutManager);
        recyclerView.setItemAnimator(new DefaultItemAnimator());
        recyclerView.setAdapter(mAdapter);
    }
    List getCompanyList() {
        List list = new ArrayList<>();
        list.add(new Company(R.drawable.a, getResources().getString(R.string.a)));
        list.add(new Company(R.drawable.b, getResources().getString(R.string.b)));
        list.add(new Company(R.drawable.c, getResources().getString(R.string.c)));
        list.add(new Company(R.drawable.d, getResources().getString(R.string.d)));
        list.add(new Company(R.drawable.e, getResources().getString(R.string.e)));
        list.add(new Company(R.drawable.f, getResources().getString(R.string.f)));
        return list;
    }
}
MyApplication/app/src/main/java/com/example/deepz/myapplication/activity/SplashActivity.java
MyApplication/app/src/main/java/com/example/deepz/myapplication/activity/SplashActivity.java
package com.example.deepz.myapplication.activity;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import com.example.deepz.myapplication.R;
import com.example.deepz.myapplication.activity.MainActivity;
public class SplashActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_splash);
        Button nxt = (Button) findViewById(R.id.nxt);
        nxt.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                startActivity(new Intent(getApplicationContext(), MainActivity.class));
                finish();
            }
        });
    }
}
MyApplication/app/src/main/java/com/example/deepz/myapplication/activity/WebActivity.java
MyApplication/app/src/main/java/com/example/deepz/myapplication/activity/WebActivity.java
package com.example.deepz.myapplication.activity;
import android.app.ProgressDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Window;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import com.example.deepz.myapplication.R;
public class WebActivity extends AppCompatActivity {
    ProgressDialog pd;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        this.requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.activity_web);
        getWindow().setFeatureInt( Window.FEATURE_PROGRESS, Window.PROGRESS_VISIBILITY_ON);
        WebView webView = (WebView) findViewById(R.id.webview);
        webView.getSettings().setJavaScriptEnabled(true);
        pd = new ProgressDialog(WebActivity.this);
        pd.setMessage("Please wait Loading...");
        pd.show();
        webView.setWebViewClient(new MyWebViewClient());
        webView.loadUrl(getIntent().getStringExtra("page"));
    }
    public class MyWebViewClient extends WebViewClient {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);
            if (!pd.isShowing()) {
                pd.show();
            }
            return true;
        }
        @Override
        public void onPageFinished(WebView view, String url) {
            System.out.println("on finish");
            if (pd.isShowing()) {
                pd.dismiss();
            }
        }
    }
}
MyApplication/app/src/main/java/com/example/deepz/myapplication/adapter/CompanyAdapter.java
MyApplication/app/src/main/java/com/example/deepz/myapplication/adapter/CompanyAdapter.java
package com.example.deepz.myapplication.adapter;
import android.content.Context;
import android.content.Intent;
import android.support.v7.widget.CardView;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import com.example.deepz.myapplication.R;
import com.example.deepz.myapplication.activity.WebActivity;
import com.example.deepz.myapplication.model.Company;
import java.util.List;
/**
 * Created by deepz on 21/08/18.
 */
public class CompanyAdapter  extends RecyclerView.Adapter {
    private List companyList;
Context c;
    public class MyViewHolder extends RecyclerView.ViewHolder {
        public ImageView image;
        public CardView item;
        public MyViewHolder(View view) {
            super(view);
            image = (ImageView) view.findViewById(R.id.image);
            item = (CardView) view.findViewById(R.id.item);
        }
    }
    public CompanyAdapter(List companyList, Context c) {
        this.companyList = companyList;
        this.c=c;
    }
    @Override
    public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View itemView = LayoutInflater.from(parent.getContext())
                .inflate(R.layout.company_custom_layout, parent, false);
        return new MyViewHolder(itemView);
    }
    @Override
    public void onBindViewHolder(MyViewHolder holder, int position) {
        final Company company = companyList.get(position);
        holder.image.setBackground(c.getResources().getDrawable(company.getImage()));
        holder.item.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent in=new Intent(c, WebActivity.class);
                in.putExtra("page",company.getUrl());
                c.startActivity(in);
            }
        });
    }
    @Override
    public int getItemCount() {
        return companyList.size();
    }
}
MyApplication/app/src/main/java/com/example/deepz/myapplication/model/Company.java
MyApplication/app/src/main/java/com/example/deepz/myapplication/model/Company.java
package com.example.deepz.myapplication.model;
/**
 * Created by deepz on 21/08/18.
 */
public class Company {
    int image;
    public Company(int image, String url) {
        this.image = image;
        this.url = url;
    }
    public int getImage() {
        return image;
    }
    public void setImage(int image) {
        this.image = image;
    }
    public String getUrl() {
        return url;
    }
    public void setUrl(String url) {
        this.url = url;
    }
    String url;
}
MyApplication/app/src/main/res/drawable/a.png
MyApplication/app/src/main/res/drawable/b.png
MyApplication/app/src/main/res/drawable/c.png
MyApplication/app/src/main/res/drawable/car.jpg
MyApplication/app/src/main/res/drawable/d.png
MyApplication/app/src/main/res/drawable/e.png
MyApplication/app/src/main/res/drawable/f.webp
MyApplication/app/src/main/res/drawable/ic_launcher_background.xml


































MyApplication/app/src/main/res/drawable-v24/ic_launcher_foreground.xml










MyApplication/app/src/main/res/layout/activity_main.xml
MyApplication/app/src/main/res/layout/activity_splash.xml
MyApplication/app/src/main/res/layout/activity_web.xml
MyApplication/app/src/main/res/layout/company_custom_layout.xml




MyApplication/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml



MyApplication/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml



MyApplication/app/src/main/res/mipmap-hdpi/ic_launcher.png
MyApplication/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
MyApplication/app/src/main/res/mipmap-mdpi/ic_launcher.png
MyApplication/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
MyApplication/app/src/main/res/mipmap-xhdpi/ic_launcher.png
MyApplication/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
MyApplication/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
MyApplication/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
MyApplication/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
MyApplication/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
MyApplication/app/src/main/res/values/colors.xml

#3F51B5
#303F9F
#FF4081
#fff
MyApplication/app/src/main/res/values/strings.xml

Rent a Car
https://www.enterprise.com/en/car-rental/locations/australia.html
https://www.apexrentals.com.au
https://www.avis.com.au/en/home
https://www.hertz.com.au/p/hire-a-car/australia
https://www.budget.com.au/en/home/
https://www.drivenow.com.au/
MyApplication/app/src/main/res/values/styles.xml




@color/colorPrimary
@color/colorPrimaryDark
@color/colorAccent



@color/colorPrimary
@color/colorPrimaryDark
@color/colorAccent

MyApplication/build.gradle
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {

repositories {
google()
jcenter()
}
dependencies {
...
SOLUTION.PDF

Answer To This Question Is Available To Download

Submit New Assignment

Copy and Paste Your Assignment Here