Dipublikasikan 6 Juli 2026
Aplikasi navigasi berbasis Google Maps memang nyaman, tapi tidak semua developer atau startup ingin bergantung pada layanan pihak ketiga yang mengumpulkan data lokasi pengguna. Organic Maps hadir sebagai solusi open source yang menawarkan navigasi offline penuh tanpa pelacakan. Lebih menarik lagi, kode sumbernya terbuka untuk dikustomisasi.
Tutorial ini akan membahas cara build Organic Maps dari source untuk platform Android dan iOS. Kita juga akan menyentuh bagaimana melakukan kustomisasi dasar agar aplikasi bisa disesuaikan dengan kebutuhan spesifik.
Organic Maps dibangun di atas data OpenStreetMap dan merupakan fork dari proyek MapsWithMe. Beberapa keunggulan yang membuatnya menarik bagi developer:
100% offline: semua fitur utama berfungsi tanpa koneksi internet
Tidak ada tracker, iklan, atau phoning home
Dukungan format bookmark KML, KMZ, GPX, dan GeoJSON
Lisensi Apache 2.0 yang memungkinkan modifikasi komersial
Sejak Desember 2025, aplikasi ini sudah mencapai lebih dari 6 juta install di seluruh platform. Detail lebih lanjut bisa dibaca di repository resmi.
Organic Maps menggunakan C++ sebagai core engine dengan binding ke platform native. Berikut dependency utama yang harus disiapkan:
CMake 3.22 atau lebih baru
Python 3 dengan pip
Android Studio dengan NDK untuk build Android
Xcode 14 atau lebih baru untuk build iOS
Qt 6 untuk tools desktop opsional
Pastikan kamu memiliki ruang disk minimal 20 GB karena repository cukup besar akibat data peta dan aset grafis.
Organic Maps memiliki beberapa submodule Git yang wajib diinisialisasi:
git clone --recursive https://github.com/organicmaps/organicmaps.git
cd organicmapsJika sudah clone tanpa recursive, jalankan perintah berikut untuk mengambil submodule yang tertinggal:
git submodule update --init --recursiveProses ini bisa memakan waktu cukup lama karena beberapa submodule berisi data peta dan library eksternal.
Setelah repository siap, install Python dependencies untuk tools build:
pip install -r tools/requirements.txtUntuk Android, set environment variable ANDROID_HOME dan pastikan NDK sudah terinstall melalui SDK Manager. Organic Maps umumnya menggunakan NDK r25c atau versi yang didokumentasikan di file konfigurasi CI.
Untuk iOS, pastikan Xcode Command Line Tools sudah terinstall:
xcode-select --installProses build Android dikelola oleh Gradle dengan CMake sebagai native builder. Jalankan:
./gradlew assembleDebugPerintah ini akan mengompilasi core engine C++ dan menghasilkan APK debug. Jika pertama kali build, proses bisa memakan waktu 30-60 menit tergantung spesifikasi mesin.
Setelah build selesai, APK akan tersedia di:
android/build/outputs/apk/debug/Install ke device untuk testing:
adb install android/build/outputs/apk/debug/organicmaps-debug.apkBuild iOS sedikit berbeda karena menggunakan Xcode project generator. Jalankan:
./configure.sh
open iphone/Maps.xcodeprojAtau jika menggunakan Xcode 15+ dengan workspace:
open iphone/OrganicMaps.xcworkspacePilih target device atau simulator, lalu tekan Build. Pastikan signing team sudah dikonfigurasi jika ingin deploy ke device fisik.
Salah satu bagian paling menarik dari Organic Maps adalah sistem style yang mendefinisikan cara fitur peta dirender. File style berada di direktori data/styles dengan format khusus yang mirip CSS.
Untuk mengubah tampilan default, edit file di data/styles/clear/style-clear dan rebuild aplikasi. Perubahan bisa mencakup warna jalan, ukuran ikon, atau visibility layer tertentu.
Data peta juga bisa dikustomisasi. Meskipun proses generate peta dari raw OpenStreetMap data memerlukan toolchain tambahan, kamu bisa bereksperimen dengan region kecil menggunakan dokumentasi di docs/MAPS.md.
Build Organic Maps bisa memakan waktu lama jika tidak dioptimasi. Beberapa tips untuk mempercepat proses:
Gunakan ccache untuk menyimpan hasil kompilasi object file dan mengurangi waktu build berikutnya
Build hanya untuk arsitektur target (arm64-v8a untuk Android modern) daripada semua ABI
Pastikan swap memory cukup besar jika build di mesin dengan RAM terbatas
Jika mengalami error saat build, periksa versi CMake dan NDK. Organic Maps sangat sensitif terhadap versi toolchain dan seringkali gagal build jika menggunakan NDK yang terlalu baru atau terlalu lama.
Organic Maps mendukung lebih dari 40 bahasa secara native. Jika kamu ingin menambahkan bahasa lokal atau mengubah terminologi tertentu, file terjemahan berada di direktori data/strings. Formatnya menggunakan file JSON yang terstruktur berdasarkan kategori fitur.
Setelah mengubah file terjemahan, jalankan script generate untuk memperbarui resource string di native code:
python3 tools/python/generate_localizations.pyPastikan untuk menguji tampilan teks di device karena beberapa bahasa memiliki karakter yang lebih lebar dan bisa menyebabkan overflow pada UI yang sudah ada.
Setelah berhasil melakukan kustomisasi, kamu perlu mempertimbangkan cara distribusi. Untuk penggunaan internal, cukup distribusikan APK atau IPA melalui platform enterprise seperti Firebase App Distribution atau internal TestFlight.
Perlu diingat bahwa nama dan logo Organic Maps dilindungi. Jika kamu berencana mendistribusikan versi modifikasi secara publik, ubah branding agar tidak menimbulkan kebingungan dengan aplikasi resmi. Dokumentasi lisensi Apache 2.0 menjelaskan detail tentang atribusi yang diperlukan.
Organic Maps membuktikan bahwa navigasi berkualitas tidak harus datang dengan kompromi privasi. Bagi developer mobile, codebase ini adalah studi kasus yang bagus untuk memahami bagaimana C++ core engine diintegrasikan dengan UI native Android dan iOS.
Jika kamu tertarik berkontribusi, mulai dari issues berlabel good first issue di repository GitHub Organic Maps. Komunitasnya aktif dan selalu terbuka terhadap pull request baru.
Dapatkan feedback, users, dan eksposur dari komunitas kreator, developer, dan entrepreneur digital Indonesia.
Submit Produk → Pelajari Dulu