Android-based application development project with National Drones.
Project requirement
I created a live-streaming application for drone footage, integrating it with the SmartData API of National Drones as part of a two-person team. For this project, I applied Agile frameworks such as the Scrum process, sprint reviews, and stand-up meetings to flexibly meet client requirements.


Sprint 1 & 2: Getting Used to the Android Development Environment
I consistently shared information with my team member to ensure efficient project progress and used Jira as a tool to manage the development process. In Sprints 1 and 2, I focused on understanding the project and researching the DJI SDK. Since I had no prior experience in Android development, I also learned how to use Kotlin and Android Studio.


Implemented Login Page for SmartData
Checked the connection with the SmartData API provided by National Drones using Postman and developed a login page in Kotlin with API integration. This implementation enables retrieving a key response for subsequent POST HTTP requests.


Please tap the GitHub icon to explore the source code.
Enabled Page Navigation and Set Dropdown List for Asset and Location Selection
I modified multiple pages in Android Studio to enable page navigation and asset and location selection. For this, I implemented page navigation and spinners for dropdown lists. The system sends a POST request upon navigation to access SmartData's dataset. Additionally, I optimized the code to ensure assets and locations are correctly paired, allowing live-stream archives to be saved to the appropriate location. Furthermore, I decided to use AWS IVS to manage live streaming and meet the requirement of saving it to an S3 bucket.


Please tap the GitHub icon to explore the source code.
Final Assessment
I received positive feedback in the final meeting with the client for successfully meeting their requirements. Despite the lack of official documentation for the DJI SDK and its complex codebase of over 200 pages, my team member and I overcame this challenge through close communication and a persistent mindset. In the end, we created a comprehensive document explaining the code structure and added comments to each function, making future modifications easier.

