In this assignment, you will develop a simple Android app, SDPEncryptor, that encrypts messages using a simple affine cipher. Before you make an ed post or communicate with your peers about this assignment, read ‘Guidelines for Communicating’ near the end of this assignment spec; failure to follow said guidelines may result in a points deduction. Configuring your Android Studio development environment is itself a key learning objective; it lays the groundwork for the group project. Spending 70 to 90 % of your time on this setup is normal.
The app should generate suitable error messages by calling EditText’s setError method (inherited from TextView) on the appropriate EditText widget when the computation is triggered (i.e., the button is pressed). If done correctly, this will result in (1) an error mark () on the right-hand side of the text field and (2) a floating error message whenever the field has focus, as shown in the error screenshots below. It is possible to have more than one error active at the same time, as shown in the screenshots below.
There are three error situations:
For illustration, we are providing several mockups for a possible implementation of the app:
We suggest that you try to generate a user interface (UI) similar to the one shown above, but you don’t have to. However, you must make sure to use the exact same identifiers we provide below for your widgets. This is very important, as we will use these identifiers to check and auto-grade your app.
Note the package name: “edu.gatech.seclass.sdpencryptor”
Note the language: “Java” (Kotlin is allowed, but our ability to support problems you may encounter will be limited)
Note the minimum SDK: “API 34: Android 14”
Note the build configuration language: “Groovy DSL (build.gradle)” (You must use this exact build configuration language)
android {
// …
compileSdk 34
defaultConfig {
// …
minSdk 34
targetSdk 34
// …
}
// …
compileOptions {
sourceCompatibility JavaVersion.VERSION_17
targetCompatibility JavaVersion.VERSION_17
}
}
implementation ‘androidx.appcompat:appcompat:1.4.1’
implementation ‘com.google.android.material:material:1.5.0’
implementation ‘androidx.constraintlayout:constraintlayout:2.1.4’
testImplementation ‘junit:junit:4.13.2’
testImplementation ‘org.robolectric:robolectric:4.11.1’
android {
// …
testOptions {
unitTests {
includeAndroidResources = true
}
}
// …
}
android {
//…
lintOptions {
tasks.lint.enabled = false
abortOnError false
}
}
Note: “SDPEncryptor” (without space) and “SDP Encryptor” (with space) are both acceptable
As for all other assignments, we check for plagiarism. Unfortunately, there are plagiarism cases every semester. Please keep in mind that the tools we use to identify cases of plagiarism have access to the same online resources that are available to you.
TL;DR (Checklist)
[1] We performed our testing and created these instructions using Android Studio Ladybug Feature Drop | 2024.2.2. Your windows may look slightly different from the ones we provide if you are using a different version.
[2] Be careful when extracting the files, as a conservative program may create a second “SDPEncryptor” directory (e.g., “SDPEncryptor 2”). If that happens, make sure to move the files to their right location.
Reviews
There are no reviews yet.