Skip to main content

SDK Versions

MorseIt is built with the following Android SDK configurations:
SDK TypeVersionNotes
Compile SDK28Android 9.0 (Pie)
Target SDK28Android 9.0 (Pie)
Min SDK23Android 6.0 (Marshmallow)
The app supports devices running Android 6.0 (API level 23) and above.

App Configuration

Application Identity

applicationId "com.subin.morseit"
versionCode 1
versionName "1.0"
  • Package Name: com.subin.morseit
  • Version Code: 1
  • Version Name: 1.0

Build Configuration

From app/build.gradle:3-18:
android {
    compileSdkVersion 28
    defaultConfig {
        applicationId "com.subin.morseit"
        minSdkVersion 23
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

Dependencies

Core Libraries

MorseIt uses the following Android support libraries and dependencies:
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
DependencyVersionPurpose
AppCompat v728.0.0Backward compatibility for Material Design components
ConstraintLayout1.1.3Flexible layout management

Testing Libraries

testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
Test LibraryVersionType
JUnit4.12Unit testing
Android Test Runner1.0.2Instrumented testing
Espresso Core3.0.2UI testing

Local JAR Dependencies

implementation fileTree(dir: 'libs', include: ['*.jar'])
The app includes any JAR files placed in the libs/ directory.

Build Tools

Gradle Plugin

classpath 'com.android.tools.build:gradle:3.2.1'
  • Android Gradle Plugin: 3.2.1

Repositories

repositories {
    google()
    jcenter()
}
The project uses Google’s Maven repository and JCenter for dependency resolution.

App Permissions

Based on AndroidManifest.xml, MorseIt requires minimal permissions:
No special permissions are explicitly declared in the manifest. The app only uses standard system services like ClipboardManager.

Implicit Permissions

The app uses the following system services without requiring runtime permissions:
  • Clipboard Access: Uses ClipboardManager for copy functionality (no permission required)

ProGuard Configuration

minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
  • Code Minification: Disabled
  • ProGuard: Available but not enabled in release builds

Application Configuration

From AndroidManifest.xml:5-11:
<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
PropertyValueDescription
allowBackuptrueApp data can be backed up
supportsRtltrueRight-to-left layout support
themeAppThemeCustom app theme

Activity Configuration

<activity android:name=".MainActivity">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>
  • Main Activity: MainActivity
  • Launch Category: LAUNCHER (appears in app drawer)

Java Components

The app uses standard Java libraries:
import java.util.HashMap;
import java.util.Map;
  • Collections Framework: HashMap for character mapping
  • StringBuilder: For efficient string concatenation

Target Compatibility

Source File Locations

  • Build Config: app/build.gradle
  • Manifest: app/src/main/AndroidManifest.xml
  • Main Activity: app/src/main/java/com/subin/morseit/MainActivity.java

Build docs developers (and LLMs) love