Android Portfolio: My Portfolio
-
Skill set
Languages: Kotlin, Java
Declarative UI: Jetpack Compose, AndroidX xml
DI: Hilt, Dagger2, Koin
DB: Room, sqlite
Third-Party Service: Facebook, AWS, Google MLKit, Huawei, Lint bot API, Samsung, FCM, Huawei push kit…etc.
Asynchronous Programming: Thread, AsyncTask, Coroutine
Flow Control: RxJava, Kotlin Flow
Network & IPC: OkHttp, Retrofit, Socket, AIDL
Android Device control: Device Owner, Knox, Accessibility
Version Control: Git
Tool: adb, aapt, jd-gui, dex2jar, apktool, jekyll
General: Android, MVVM -
Hello everyone, I’m an experienced Android developer proficient in Kotlin and Java.
Today, I’d like to share some of my past works and experiences.
My portfolio showcases a variety of apps.
I hope my work inspires you.
Feel free to contact me for more information. Thank you for watching!
The app I participated in when I was at AirDroid
ChatInsight AI app
This app enable user chat with AI bot.Below are the features I was responsible for:
1. Developing new features and implementing product requirements.
2. Integrating backend APIs, AWS S3, and other functionalities.
3. 100% Kotlin
4. Using Jetpack Compose and Navigation-Compose to finish UI.
(for more information about Jetpack Compose, please refer to this article)
5. Maintenance and debugging.
Kid Browser app
Here are the features I was responsible for:1. Developing new features.
2. Implemented product requirement screens.
3. Implemented feature of binding, integration with other apps, history tracking, token refresh, etc.
4. Completed in Kotlin
5. Integrating backend API with Okhttp and Retrofit.
6. Before starting the project, I was responsible for researching information on how to implement a browser and you can refer here
7. Maintenance and debugging.
The image above shows the main UI of the Kid Browser, which includes the UI parts I was responsible for.
Remote Support app
Here are the features I was responsible for:
1. Maintaining the app and developing new features.
2. Implementing requirement screens and customizing the UI.
3. From scratch implemented features of QR code generation, QR code scanning, introduction, binding, switching between unattended/attended modes, permissions, integrating plugins, etc.
4. Integrating backend APIs and maintaining long-term connection with WebSocket.
5. All new features were written in Kotlin.
6. The project involved integration with our own plugin, implementing guided downloads, and adding and maintaining the built-in keyboard (InputMethodService) functionality within the plugin.
7. Upgrade to version catlogs with .toml.
The image above shows the UI of the Remote Support app, highlighting the parts I implemented.
AirDroid Business app
Here are the features I was responsible for:1. Maintaining the app and developing new features.
2. Implementing product requirement screens.
3. Implementing device policy-related functionalities.
4. Researching Knox
The image above shows the main UI of the AirDroid Business app.
AirDroid Parental app
Here are the features I was responsible for:1. Maintaining the app.
2. Implementing product requirement screens.
3. Responsible for the UI of the My page.
4. Fixing bugs, such as UI display issues.
The image above shows the main UI of the AirDroid Parental app, highlighting the parts I implemented.
The projects I participated in.
Sports IoT app
This is a project I encountered during my previous freelance work. Here are the features I was responsible for:1. Implementing the Vitality Coach UI for the project.
2. Assisting in clarifying Bluetooth processes, maintaining Room database, and fixing bugs.
The image above shows the main UI of the app, highlighting the parts I implemented.
Dispatch Taxi app
I have experienced two versions of this app, from version 8.0 to 9.0.
Here are the features I was responsible for:
1. Maintaining the app version 8.0 and fixing bugs.
2. Refactoring the app from Java to Kotlin.
3. Implemented UI requirements for version 9.0 based on project needs.
4. Implemented features such as login, ride-car, push notification, map, ad integration, and Crashlytics integration.
5. Developing with common libraries: Retrofit, OkHttp, RxJava, Dagger2, etc.
The image above shows the main UI of the Ride-Hailing app, highlighting the parts I implemented.
Project Reference
Bluetooth IoT app
Here are the features I was responsible for:
1. Maintaining the app and developing new features.
2. Integrating Bluetooth connections, searches, etc.
3. Understanding the Modbus protocol and parsing data received via Bluetooth.
4. Implementing required functionalities based on defined protocols, such as logging into the bluetooth device, retrieving bluetooth device information, modifying bluetooth device frequency, voltage, temperature, etc.
5. Integrating with the MQTT server.
6. Writing UI tests using Appium.
The image above shows the main UI of the Bluetooth IoT app, highlighting the parts I was implemented.
Project Reference
CTMS app
This product involves multiple products that need to be completed.
I was responsible for the development of multiple projects.
Here are the features I implemented:
1. Including CTMS app, CCore SDK, Sature Splash app, AWS Lambda integration, SGP Check Update app, etc.
2. CTMS is an app used in conjunction with Cashub Agent: In this project, I focused on implementing UI, network requests, local storage, AIDL communication, etc.
3. CCore SDK is designed for third-party use: It provides interface implementations for third-party developers.
4. Sature Splash app serves as the startup application for POS machines: This app listens for boot signals, implements page redirection, API requests, and other customized features.
5. AWS Lambda + S3: Integrating AWS services into our project, such as sending corresponding POS configuration commands to the backend server when certain conditions are met.
6. SGP Check Update, Ketting System app: These aim to allow customers to utilize the features of POS machines, primarily through the CTMS app for UI adjustments or customized feature requests.
The image above shows the UI of the CTMS app, which provides users with an feature to configure related settings and communicate with the server,
and provide information within the POS machine, and control underlying APIs, etc.