GADS 2020 Leaderboard
Google Africa Developer Scholarship
In 2020, I was honored to participate in the Google Africa Developer Scholarship (GADS) program - an initiative by Google, Andela, and Pluralsight to grow the developer community across Africa.
This app was the final project submission, demonstrating proficiency in Android development fundamentals.
App Features
Splash Screen
A clean entry point that sets the tone for the app.
Leaderboard - Learning Hours
Displays the top 20 learners ranked by total learning hours on Pluralsight.
Leaderboard - Skill IQ
Shows the top 20 learners ranked by their Skill IQ scores.
Submission Form
Allows participants to submit their information to a Google Form directly from the app.
Confirmation Dialog
Confirms the user's intent before final submission.
Success & Error States
Clear feedback for successful submissions and error handling.
Technical Implementation
Architecture
The app follows Android best practices:
- MVVM Architecture - Clean separation of concerns
- Navigation Component - Single-activity architecture with fragments
- Retrofit - API calls to fetch leaderboard data
- RecyclerView - Efficient list rendering with DiffUtil
- ViewBinding - Type-safe view references
API Integration
interface LeaderboardApi {
@GET("learning-leaders")
suspend fun getLearningLeaders(): List<Learner>
@GET("skill-iq-leaders")
suspend fun getSkillIQLeaders(): List<Learner>
@POST("submit")
suspend fun submitForm(@Body submission: Submission): Response<Unit>
}Key Dependencies
dependencies {
// Networking
implementation "com.squareup.retrofit2:retrofit:2.9.0"
implementation "com.squareup.retrofit2:converter-gson:2.9.0"
// Navigation
implementation "androidx.navigation:navigation-fragment-ktx:2.3.0"
implementation "androidx.navigation:navigation-ui-ktx:2.3.0"
// UI
implementation "com.google.android.material:material:1.2.0"
}Lessons Learned
This project reinforced several Android development principles:
- Error Handling - Always anticipate network failures and provide clear user feedback
- Loading States - Users should always know what's happening
- Form Validation - Validate before submission to prevent unnecessary API calls
- Tab Navigation - Material Design tabs with ViewPager2 for smooth transitions
Acknowledgments
Thank you to Google, Andela, and Pluralsight for providing this incredible learning opportunity to developers across Africa.