Skip to content

naufalprakoso/Sample-Android-Nusantara-Data

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Sample Android Nusantara Data

Sample Android app demonstrating the usage of Nusantara Data library - a Kotlin Multiplatform library for Indonesia location data.

Features

  • Location Picker - Cascading dropdown untuk memilih Provinsi → Kota → Kecamatan → Kelurahan → Kode Pos
  • Smart Search - Cari lokasi dengan typo-tolerant search (contoh: "Jakrta" → "Jakarta")
  • Postal Code Lookup - Reverse lookup alamat lengkap dari kode pos
  • Statistics - Lihat statistik data lokasi Indonesia

Screenshots

Home Location Picker Search
Home Picker Search
Postal Code Statistics
Postal Stats

Requirements

  • Android Studio Hedgehog (2023.1.1) or later
  • JDK 17+
  • Android SDK 24+ (Android 7.0 Nougat)

Setup

  1. Clone repository
git clone https://github.com/naufalprakoso/Sample-Android-Nusantara-Data.git
  1. Open project di Android Studio

  2. Sync Gradle dan Run

Dependencies

// Nusantara Data Library
implementation("io.github.naufalprakoso.nusantara:data:1.0.2")

Project Structure

app/src/main/kotlin/com/example/nusantarasample/
├── MainActivity.kt              # Main entry point
├── NusantaraSampleApp.kt        # Application class (initialize library)
├── screens/
│   ├── HomeScreen.kt            # Home menu
│   ├── LocationPickerScreen.kt  # Cascading location picker
│   ├── SearchScreen.kt          # Smart search
│   ├── PostalCodeScreen.kt      # Postal code lookup
│   └── StatisticsScreen.kt      # Data statistics
└── ui/theme/
    ├── Color.kt
    └── Theme.kt

Usage Example

Initialize Library

class NusantaraSampleApp : Application() {
    override fun onCreate() {
        super.onCreate()
        // Initialize synchronously to ensure data is ready before UI starts
        runBlocking {
            NusantaraData.initialize()
        }
    }
}

Get All Provinces

val provinces = NusantaraData.getAllProvinces()

Cascading Location Selection

// 1. Get provinces
val provinces = NusantaraData.getAllProvinces()

// 2. Get cities by province
val cities = NusantaraData.getCitiesByProvinceId(selectedProvince.id)

// 3. Get districts by city
val districts = NusantaraData.getDistrictsByCityId(selectedCity.id)

// 4. Get villages by district
val villages = NusantaraData.getVillagesByDistrictId(selectedDistrict.id)

Smart Search

// Typo-tolerant search
val results = NusantaraData.searchCities("Jakrta") // Returns "Jakarta"

Postal Code Lookup

val locations = NusantaraData.getLocationByPostalCode("10110")
// Returns full address: Gambir, Gambir, Kota Jakarta Pusat, DKI Jakarta

License

Copyright 2026 Naufal Prakoso

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Related

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages