/android-tech-challenge-1

Android Fundamentals

Primary LanguageJava

CapTech

Assignment 1: Android Fundamentals

This assignment, the first in a series, is designed to allow the developer to become familiarized with the tools necessary for development on a mobile platform. This assignment can be done for iOS, Android, mobile web, or any combination thereof.

Table of Contents

Overview

In this tech challenge, you will be creating a simple app that displays some text and a button, which takes the user to a second page that displays all the times the app has been opened.

Learning Objectives

When completed the student should have an understanding of the following concepts:

  • SDK installation
  • Software installation on the target device.
  • Basic application structure
  • Application startup
  • Application view display
  • View transitions
  • Table views
  • Basic local storage
  • Basic date formatting

Prerequisites

Before starting this tech challenge, a student should be familiar with the follow concepts:

  • General Java knowledge
  • The Android SDK installed on the development device
  • Android Studio (the latest stable release) installed on the development device

Grading Criteria

Here are some specific requirements the graders will be looking for in your submission in order for your submission to be accepted:

The application must do the following:

  • If the application is a native application is should conform to the Human Interface Guidelines (HIG) for the target device.
  • Run and display a page displaying the words ‘Hello World’ centered on the top of the page and contain a button, centered half-way down the page.
  • The button should readily appear to be a button to the user.
  • When the user presses the button the application should display a second page.
  • The second page must contain a list of all of the date/times that the application was run.
  • From the list page the user must be able to navigate back to the first page in a manner that conforms to best practices for the platform on which it is running.
  • The list must be sorted by start date/time in ascending order.
  • The display of the date/time should be in the format of the current locale of the device.
  • The application must not crash or leak memory.
  • The application must be deployed to a physical device.
  • If a native application is developed it must have a custom icon.
  • For native applications, it must operate correctly when the phone is in airplane mode.
  • All storage of data must occur on the phone.

Helpful Resources

These are some helpful documentation links and resources to help you be successful in completing this tech challenge:

Submission Instructions

Please provide these specific items when submitting your tech challenge, placing them inside of your repository where your grader can easily find them:

  • An application that meets the above requirements running on the target mobile device is required for completion of this assignment. Please place the .apk file of the completed app in the base directory of your repository.
  • The code for your submission should be at the base directory of the repo, or within a specified child directory.

Git Workflow

  • When you start a tech challenge, the tech challenge admin will create a private repository for you.
  • There will be two branches in the repo, master and develop.
  • Do all your work in the develop branch.
  • As you work, push your changes up to your GitLab repo.
  • When you are finished, make a merge request to the master version of your private repo.
  • At this point, the graders will review your merge request and offer comments where needed.
  • You may be asked to push updates, corrections to your develop branch in response to the coments by graders. You don't need to create another merge request.
  • When the grader is satisfied, he will merge your code into the master branch of your private repo.
  • Now celebrate, the Tech Challenge is completed!

Help and Discussion

If you need help on this Tech Challenge or would like to discuss it / leave feedback, please check out the Mobile Tech Challenges team in Microsoft Teams, especially the Help and Discussion channel.