Projects in Accenture
Client: Global Brand based in Japan
Our team collaborates closely with a prominent global brand headquartered in Japan.
Our mission? To create, update, and maintain a suite of pre-installed applications for Android TV.
Over the past four years, we've worked on over 20 Android apps for this client, handling a diverse range of responsibilities.
Specifically, I've spearheaded the architecture and development efforts for four critical modules within these applications.
Top Highlight
Project Device Modules
This module includes different parts that adjust picture, sound, and other settings based on how close the person is to the TV, specific configurations, and gestures made in front of the TV.
Some of the modules were assigned to my team.
- Device Settings Module
Description: This application integrates a dedicated page into the Settings menu of Android TV, allowing seamless access to device-specific settings and related functionalities. Through this module, users can conveniently manage various device configurations directly from the Settings interface.
Type: Android App
Role: Lead, Android Engineer
Responsibility: Spearheaded the architecture design, development and act as the subject-matter expert
Language: Kotlin
Architecture: MVI-Clean Architecture
Library used: RxKotlin, Coroutine, JUnit, Mockito.
- Device Initial Setup Wizard Module
Description: This application features an activity designed to manage various device-related activities within the Android TV setup wizard. Additionally, it includes functionality to detect the device's connection status with the Android TV and display the setup screen accordingly. By embedding this module into the setup wizard, users can conveniently configure device settings and initiate setup procedures directly from their Android TV.
Type: Android App
Role: Lead, Android Engineer
Responsibility: Spearheaded the architecture design, development and act as the subject-matter expert
Language: Kotlin
Architecture: MVI-Clean Architecture
Libraries used: RxJava, Coroutine, JUnit, Mockito
- Factory Reset Library Module
Description: An Android Library designed to execute factory reset
operations on devices and invoke the necessary services related to
factory reset functionality. Type: Android Library
Type: Android Library
Role: Lead, Android Engineer
Responsibility: Development
Language: Kotlin
Others
Project Firmware Update
- Firmware Update Settings
Description: An Android application designed to facilitate firmware updates for the device directly within the Settings Menu.
Type: Android App
Role: Lead, Android Engineer
Responsibility: Spearheaded the architecture design, development and act as the subject-matter expert
Language: Kotlin
Architecture: MVVM-Clean Architecture
Libraries used: RxJava, JUnit, Mockito
- Firmware Update Setup
Description: This Android application component is called within the Device Initial Setup Wizard to initiate firmware updates in the background using a Service.
Type: Android App
Role: Lead, Android Engineer
Responsibility: Spearheaded the architecture design, development and act as the subject-matter expert
Language: Kotlin
Architecture: MVVM-Clean Architecture
Libraries used: RxJava, JUnit, Mockito
Energy Saving Projects
- Energy Saving Dashboard
Description: An Android application that displays a dashboard demonstrating how users can save energy by configuring their settings.
Type: Android App
Role: Android Engineer
Responsibility: Conducting code reviews, provide guidance on the development, acting as a sub-subject matter expert, and implementing new features.
Language: Kotlin
Architecture: MVVM Hybrid Architecture
Libraries used: Coroutine
- Power Saving Setup
Description: This Android application embeds a screen within the Initial Setup Wizard to configure Power Saving settings.
Type: Android App
Role: Maintainer, Android Engineer
Responsibility: Conducting code reviews and fixing defects.
Language: Kotlin
Initial Setup Wizard
- Initial Setup Wizard relating to Client
Description: This Android application manages various screens from other applications to arrange multiple setup screens as required.
Type: Android App
Role: Maintainer, Android Engineer
Responsibility: Conducting code reviews and fixing defects.
Language: Java
- Setup Wizard relating to Google
Description: This framework application manipulates the Google Initial Setup Wizard, which runs before the client's Initial Setup Wizard.
Type: Framework
Role: Maintainer, Android Engineer
Responsibility: Conducting code reviews, enhancing build configuration using build flavors, and adding additional configurations.
Language: Java, XML
Accessibility
- Accessibility Settings
Description: This Android application embeds additional accessibility settings items that are not included in the standard Android settings.
Type: Android App
Role: Code Reviewer
Responsibility: Conducting code reviews and providing guidance.
Language: Kotlin
- Accessibility Wizard
Description: This Android application is launched during the Initial Setup Wizard to inform users about the availability of accessibility features.
Type: Android App
Role: Code Reviewer
Responsibility: Conducting code reviews.
Language: Kotlin
- Accessibility Cards
Description: This Android application showcases how to utilize Accessibility features based on different accessibility needs.
Type: Android App
Role: Code Reviewer, Maintainer
Responsibility: Conducting code reviews and fixing defects.
Language: Java
- Accessibility Module in Client System Service
Description: This module configures the necessary accessibility features in the background using the client's system service.
Type: Module included in System Service
Role: Code Reviewer and Android Engineer
Responsibility: Conducting code reviews and adding new features.
Language: Kotlin
Country and Region
- Country and Region App
Description: This Android application integrates into the setup and settings, overriding the default country and region setup to align more closely with the client's expected data.
Type: Android App
Role: Android Engineer
Responsibility: Fixing defects and introducing unit tests for easier testing.
Language: Implementation is Java, but Unit Testing is done in Kotlin.
Libraries used: JUnit and Mockito
Clock
- Alarm and timer
Description: This Android application includes features for setting alarms, timers, and other related time management tools.
Type: Android App
Role: Maintainer
Responsibility: Fixing defects and providing guidance.
Language: Java
Other Device
- Remote control Settings
Description: This Android application is responsible for filtering remote types and updating the firmware of the remote.
Type: Android App
Role: Maintainer
Responsibility: Fixing defects and providing guidance.
Language: Java
Audio Device Related Projects
- Audio Settings
Description: This Android application is embedded in the settings menu and is responsible for managing previously connected audio devices.
Type: Android App
Role: Android Engineer
Responsibility: Contributed to the development of the app as part of the team.
Language: Kotlin
Architecture: MVVM
Libraries used: Room, Coroutine
- Audio Setup
Description: This Android application detects if a new audio device is connected and displays an audio setup screen accordingly.
Type: Android App
Role: Android Engineer
Responsibility: Contributed to the development of the app as part of the team.
Language: Kotlin
Architecture: MVVM
Libraries used: Room, Coroutine, Retrofit
- Audio Module related to Client System Service
Description: This module facilitates communication with the lower layers and checks Bluetooth connections by filtering only selected audio devices, enabling the launch of the Audio Setup screen.
Type: Module in Client System Service
Role: Android Engineer
Responsibility: Contributed to the development of the module as part of the team.
Language: Java
Picture and Sound Settings
- Picture and Sound Settings
Description: This Android application contains all the necessary configurations for picture and audio settings. Users can set up different configurations depending on the input type or application displayed on the screen (e.g., HDMI1, HDMI2, Cable, Netflix).
Type: Android App
Role: Android Engineer
Responsibility: Adding new features, updating the database to support new hardware versions, and fixing defects.
Language: Java
Architecture: Factory Pattern Design
Libraries used: SQLite
- Picture and Sound Modules related to Client System Service
Description: This module facilitates communication with the low layer to relay changes in picture and sound configurations to the Picture and Sound Application for rendering and sharing.
Type: Module in Client System Service
Role: Android Engineer
Responsibility: Contributed to the development of the module as part of the team.
Language: Java
Prototype Projects
- Remote Plugin
Description: This plugin simulates the behavior of a remote control by sending adb commands to control navigation and other functionalities that a remote can perform.
Type: Android Studio Plugin
Role: Researcher
Responsibility: Create a proof of concept application.
Language: Java
Reflection
Reflecting on my Android development projects, I've encountered various challenges and opportunities that have contributed to my growth as a developer. From leading critical modules to maintaining and enhancing applications, each project has been a learning experience.
I've tackled tasks like managing device settings, executing firmware updates, and developing custom features with enthusiasm and dedication.
Through code reviews, defect fixes, and feature enhancements, I've ensured the quality and functionality of every app.
My involvement in these projects has reinforced my commitment to continuous learning and improvement. By staying updated with the latest technologies and practices, I aim to deliver impactful solutions that meet evolving needs.
Looking ahead, I'm excited to take on new challenges and continue growing as an Android developer.
Each project has been a stepping stone in my journey, driving me toward excellence and innovation in every endeavor.