1. Overview: Play Store vs App Store
Setelah mengembangkan aplikasi mobile, langkah selanjutnya adalah mempublishnya ke toko aplikasi agar bisa diunduh oleh pengguna. Dua toko aplikasi terbesar di dunia adalah Google Play Store (Android) dan Apple App Store (iOS). Keduanya memiliki proses, persyaratan, dan biaya yang berbeda.
Perbandingan Play Store vs App Store
| Aspek | Google Play Store | Apple App Store |
|---|---|---|
| Biaya Daftar | $25 (satu kali) | $99/tahun |
| Revenue Share | 70/30 (dev/store) | 70/30 (dev/store), 85/15 untuk pendapatan <$1M |
| Review Time | π’ Beberapa jam β 3 hari | π‘ 1 β 3 hari, bisa lebih lama |
| Build Format | AAB (Android App Bundle) | IPA |
| Signing | Google Play App Signing (opsional) | Wajib Apple Signing |
| Target Platform | Android 5.0+ (API 21+) | iOS 16+ (rekomendasi) |
| Review Strictness | π‘ Sedang | π΄ Ketat |
| Beta Testing | Internal/Closed/Open Testing | TestFlight |
| Country Distribution | 150+ negara | 175+ negara |
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β APP PUBLISHING FLOW β β β β ββββββββββββ ββββββββββββ ββββββββββββ βββββββββββ β β β 1. Buat βββΆβ 2. Build βββΆβ 3. UploadβββΆβ 4. β β β β Developerβ β App β β ke β β Review β β β β Account β β (AAB/ β β Store β β Process β β β β β β IPA) β β β β β β β ββββββββββββ ββββββββββββ ββββββββββββ βββββββββββ β β β β β βΌ β β ββββββββββββ ββββββββββββββββββββββββ β β β 6. ASO & ββββ 5. App Published! β β β β Monitor β β π β β β ββββββββββββ ββββββββββββββββββββββββ β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Sebelum mulai, pastikan aplikasi Anda sudah selesai dan stabil. Gunakan beta testing (Internal Testing di Play Store atau TestFlight di App Store) untuk menemukan bug sebelum app dirilis ke publik. Jangan pernah publish versi pertama yang belum diuji!
2. Membuat Developer Account
Google Play Developer Account
Untuk mempublish aplikasi di Play Store, Anda memerlukan Google Play Developer Account. Berikut langkah-langkahnya:
- Buka play.google.com/console dan login dengan akun Google
- Klik "Create account" dan pilih account type (personal atau organization)
- Isi informasi developer (nama, email, negara)
- Bayar biaya pendaftaran $25 USD (satu kali, untuk selamanya)
- Lengkapi verifikasi identitas (KTP/Paspor) untuk keamanan
- Tunggu verifikasi dari Google (biasanya 1-2 hari)
# Checklist Google Play Console Setup β Akun Google aktif dengan 2FA enabled β Email developer yang valid dan profesional β Pembayaran $25 via kartu kredit/debit β Verifikasi identitas (foto KTP/Paspor) β Alamat developer yang valid (bisa menggunakan alamat rumah) β Nomor telepon terverifikasi # Setelah verifikasi: β Buat aplikasi baru di Play Console β Konfigurasi app content ratings β Set target audience & content declarations β Konfigurasi pricing (free/paid) β Setup merchant account (jika app berbayar)
Apple Developer Account
Untuk mempublish aplikasi di App Store, Anda memerlukan Apple Developer Account yang diperbarui setiap tahun:
- Buka developer.apple.com dan login dengan Apple ID
- Klik "Enroll" dan pilih account type (Individual atau Organization)
- Lengkapi profil developer dan informasi kontak
- Bayar biaya tahunan $99 USD/tahun
- Tunggu verifikasi dari Apple (bisa 1-2 hari untuk Individual, lebih lama untuk Organization)
- Setelah disetujui, akses App Store Connect untuk mengelola app
Individual Account: Nama developer yang terlihat di App Store adalah nama pribadi Anda. Organization Account: Nama perusahaan yang ditampilkan, memerlukan D-U-N-S Number (Dun & Bradstreet). Untuk freelancer atau indie developer, Individual account sudah cukup. Namun jika ingin branding perusahaan, gunakan Organization account.
Persiapan Akun yang Dibutuhkan
| Kebutuhan | Google Play | Apple App Store |
|---|---|---|
| Akun Google | Apple ID | |
| Verifikasi ID | Ya (KTP/Paspor) | Ya (untuk D-U-N-S jika Organization) |
| Pembayaran | Kartu kredit/debit | Kartu kredit/debit |
| Tax Info | Ya (tax profile) | Ya (tax forms) |
| Bank Account | Ya (untuk terima pembayaran) | Ya (untuk terima pembayaran) |
3. App Signing & Build
App signing adalah proses menandatangani aplikasi dengan digital signature untuk memverifikasi keaslian dan integritas aplikasi. Tanpa signing, Anda tidak bisa mempublish app ke store manapun.
Android App Signing
# βββ 1. Generate Keystore (hanya sekali) βββ
keytool -genkey -v \
-keystore ~/upload-keystore.jks \
-keyalg RSA \
-keysize 2048 \
-validity 10000 \
-alias upload
# Masukkan password, nama, organisasi, kota, dll.
# SIMPAN PASSWORD DENGAN AMAN β hilang = tidak bisa update app!
# βββ 2. Konfigurasi di Flutter (key.properties) βββ
# Buat file android/key.properties:
storePassword=PASSWORD_ANDA
keyPassword=PASSWORD_ANDA
keyAlias=upload
storeFile=/home/user/upload-keystore.jks
# βββ 3. Update android/app/build.gradle.kts βββ
# Tambahkan di awal file:
# val keystoreProperties = Properties()
# val keystorePropertiesFile = rootProject.file("key.properties")
# if (keystorePropertiesFile.exists()) {
# keystoreProperties.load(keystorePropertiesFile.inputStream())
# }
# Di dalam android { }:
# signingConfigs {
# create("release") {
# keyAlias = keystoreProperties["keyAlias"] as String
# keyPassword = keystoreProperties["keyPassword"] as String
# storeFile = file(keystoreProperties["storeFile"] as String)
# storePassword = keystoreProperties["storePassword"] as String
# }
# }
# buildTypes {
# release {
# signingConfig = signingConfigs.getByName("release")
# }
# }
# βββ 4. Build AAB untuk Play Store βββ
flutter build appbundle --release
# Output: build/app/outputs/bundle/release/app-release.aab
iOS App Signing (Xcode)
# βββ 1. Buka project di Xcode βββ open ios/Runner.xcworkspace # βββ 2. Di Xcode: βββ # - Pilih target "Runner" # - Tab "Signing & Capabilities" # - Pilih team (akun Apple Developer Anda) # - Automatic signing: ON (untuk development) # - Untuk CI/CD: gunakan manual signing dengan provisioning profile # βββ 3. Update version & build number βββ # Di pubspec.yaml: # version: 1.0.0+1 β format: version_name+version_code # βββ 4. Build IPA βββ flutter build ipa --release # Output: build/ios/ipa/Runner.ipa # βββ 5. Upload ke App Store Connect βββ # Opsi A: Menggunakan Xcode β Product β Archive β Distribute App # Opsi B: Menggunakan Transporter app (download dari Mac App Store) # Opsi C: Menggunakan command line: xcrun altool --upload-app \ --type ios \ --file build/ios/ipa/Runner.ipa \ --apiKey YOUR_API_KEY \ --apiIssuer YOUR_ISSUER_ID
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β APP SIGNING FLOW β β β β ANDROID: β β ββββββββββ ββββββββββββ ββββββββββββ βββββββββββββ β β β Source βββΆβ Build βββΆβ Sign withβββΆβ Upload β β β β Code β β Release β β Keystore β β AAB β β β ββββββββββ ββββββββββββ ββββββββββββ βββββββββββββ β β β β iOS: β β ββββββββββ ββββββββββββ ββββββββββββ βββββββββββββ β β β Source βββΆβ Build βββΆβ Xcode βββΆβ Upload β β β β Code β β Archive β β Signing β β IPA β β β ββββββββββ ββββββββββββ ββββββββββββ βββββββββββββ β β β β β οΈ NEVER commit keystore/key.properties ke Git! β β β οΈ Tambahkan ke .gitignore! β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
- JANGAN PERNAH kehilangan keystore atau password β tidak bisa di-reset!
- Backup keystore ke tempat aman (encrypted cloud storage atau USB)
- Tambahkan
*.jksdankey.propertieske.gitignore - Gunakan Google Play App Signing agar Google mengelola signing key untuk Anda
4. Store Listing & Screenshots
Store listing adalah halaman yang dilihat pengguna sebelum mengunduh aplikasi Anda. Listing yang profesional dan menarik sangat mempengaruhi keputusan download pengguna.
Elemen Store Listing
| Elemen | Deskripsi | Tips |
|---|---|---|
| App Name | Nama aplikasi yang terlihat di store | Maks 30 karakter (Play Store), 30 karakter (App Store). Singkat, jelas, deskriptif |
| Short Description | Deskripsi singkat (Play Store) | Maks 80 karakter. Buat catchy dan informatif |
| Full Description | Deskripsi lengkap | Maks 4000 karakter (Play). Sertakan keyword yang relevan |
| App Icon | Ikon aplikasi | 512x512 (Play), 1024x1024 (App Store). Desain sederhana, mudah dikenali |
| Feature Graphic | Banner promosi (Play Store) | 1024x500 piksel. Eye-catching |
| Screenshots | Tampilan aplikasi | Min 2, maks 8. Tunjukkan fitur utama |
| Video | Video demo opsional | YouTube link (Play), App Preview (App Store) |
Panduan Screenshots
# βββ PERSYARATAN SCREENSHOTS βββ # Google Play Store: # βββββββββββββββββββββ # - Minimum 2 screenshots, maksimum 8 # - Rasio aspect: 16:9 atau 9:16 # - Ukuran: min 320px, max 3840px # - Format: JPEG atau PNG (24-bit) # - Tidak boleh ada alpha/transparency # Apple App Store: # βββββββββββββββββββββ # - iPhone: 6.7" (1290x2796), 6.5" (1242x2688), 5.5" (1242x2208) # - iPad: 12.9" (2048x2732) jika support iPad # - Minimum 3 screenshots, maksimum 10 # - Format: PNG atau JPEG (tanpa transparency) # βββ BEST PRACTICES SCREENSHOTS βββ β Screenshot 1: Tampilan utama dengan tagline β Screenshot 2: Fitur unggulan #1 dengan penjelasan β Screenshot 3: Fitur unggulan #2 dengan penjelasan β Screenshot 4: Social proof (testimoni, rating) β Screenshot 5: CTA (Call to Action) # Tips Penting: β Gunakan text overlay untuk menjelaskan fitur β Konsisten dengan warna brand β Tampilkan konten yang relevan (bukan placeholder) β Test di berbagai ukuran layar β Gunakan device frame untuk tampilan profesional
Category & Content Rating
# βββ MEMILIH KATEGORI βββ # Google Play Store Categories: # - Art & Design # - Business # - Education # - Entertainment # - Finance # - Health & Fitness # - Lifestyle # - Music & Audio # - News & Magazines # - Photography # - Productivity # - Shopping # - Social # - Tools # - Weather # ...dan lainnya # Tips Memilih Kategori: β Pilih yang paling sesuai dengan fungsi utama app β Periksa kategori kompetitor β Jangan memilih kategori yang tidak relevan # βββ CONTENT RATING βββ # Google Play: Isi questionnaire di Play Console β otomatis dapat rating # IARC (International Age Rating Coalition): # - 3+ : Cocok untuk semua umur # - 7+ : Mild violence # - 12+ : Moderate violence # - 16+ : Realistic violence # - 18+ : Extreme violence / adult content # Apple App Store: # Rating otomatis berdasarkan konten yang Anda deklarasikan: # - 4+ : Tidak ada konten yang tidak pantas # - 9+ : Mild violence, infrequent mature themes # - 12+ : Infrequent mild language, simulated gambling # - 17+ : Frequent/intense mature content
Sertakan keyword utama di nama app dan deskripsi awal. Gunakan bullet points untuk fitur utama. Tambahkan social proof (rating, jumlah download) jika sudah ada. Untuk app baru, fokus pada niche yang spesifik β lebih mudah bersaing di kategori kecil daripada kategori besar yang sudah jenuh.
5. Review Process
Setelah mengupload build dan melengkapi store listing, aplikasi akan masuk ke tahap review. Tim dari Google dan Apple akan meninjau aplikasi Anda untuk memastikan memenuhi pedoman kualitas dan keamanan mereka.
Google Play Review Process
| Tahap | Waktu | Yang Dicek |
|---|---|---|
| Automated Review | Beberapa jam | Malware, policy violation, API compliance |
| Manual Review | 1-3 hari | Konten, fungsionalitas, metadata |
| Update Review | Beberapa jam β 1 hari | Lebih cepat untuk update dibanding app baru |
Apple App Store Review Process
| Tahap | Waktu | Yang Dicek |
|---|---|---|
| App Review | 24-48 jam | UI guidelines, crash, bugs, metadata |
| Extended Review | 3-7 hari | Konten sensitif, legal issues, privacy |
| Expedited Review | Beberapa jam | Untuk critical fix (harus request) |
Alasan Penolakan Umum
- Crash & Bugs β App crash saat startup atau fitur utama tidak berfungsi
- Broken Links β URL di deskripsi atau privacy policy yang tidak valid
- Misleading Metadata β Nama, deskripsi, atau screenshot yang tidak sesuai dengan app
- Privacy Issues β Tidak ada privacy policy, atau mengakses data tanpa consent
- Incomplete Content β Placeholder text, gambar kosong, fitur yang belum selesai
- Spam/Clones β App yang terlalu mirip dengan app lain atau template yang sama
- Insufficient Functionality β App terlalu sederhana (wrapper website, dll)
- Apple Specific β Tidak menggunakan native iOS UI elements dengan benar
# βββ CHECKLIST SEBELUM SUBMIT βββ # β Fungsionalitas: # - Semua fitur utama berfungsi # - Tidak ada crash di berbagai device # - Error handling yang baik # - Loading states dan offline handling # - Deep links berfungsi dengan benar # β UI/UX: # - Tidak ada elemen yang terpotong # - Responsive di berbagai ukuran layar # - Mengikuti platform guidelines (Material Design / HIG) # - Dark mode support (opsional tapi direkomendasikan) # - Accessibility (screen reader support, contrast ratio) # β Metadata: # - App name sudah benar # - Description sudah lengkap dan bebas typo # - Screenshots sudah diperbarui # - Privacy policy URL aktif dan bisa diakses # - Support URL/email aktif # β Legal: # - Privacy policy ada dan lengkap # - Data collection declaration sudah benar # - COPPA compliance (jika app untuk anak-anak) # - Tidak melanggar trademark # β Technical: # - Version code/name sudah di-increment # - ProGuard/R8 enabled untuk release # - Tidak ada log/debug di production build # - API keys tidak hardcode di source # - Min SDK version yang sesuai
6. ASO: App Store Optimization
ASO (App Store Optimization) adalah proses mengoptimalkan store listing untuk meningkatkan visibilitas dan peringkat aplikasi di hasil pencarian store. Mirip dengan SEO untuk website, ASO bertujuan untuk mendapatkan lebih banyak organic download.
Faktor-faktor ASO
| Faktor | Bobot | Penjelasan |
|---|---|---|
| App Title / Name | βββββ | Faktor paling penting. Sertakan keyword utama di nama app |
| Keywords (App Store) | βββββ | 100 karakter keyword field (iOS only). Pisahkan dengan koma |
| Description | βββ | Google Play index deskripsi untuk search, iOS tidak |
| Downloads & Velocity | βββββ | Jumlah download dan kecepatan download sangat berpengaruh |
| Rating & Reviews | βββββ | Rating tinggi (4.0+) meningkatkan ranking dan conversion |
| App Quality | ββββ | Crash rate, uninstalls, engagement |
| Screenshots & Preview | ββββ | Meningkatkan conversion rate (download per view) |
| Updates | βββ | Update rutin menunjukkan app aktif dan dikelola |
ASO Strategy
# βββ 1. KEYWORD RESEARCH βββ # Tools yang bisa digunakan: # - AppTweak (apptweak.com) # - Sensor Tower (sensortower.com) # - App Annie (appannie.com) # - Ubersuggest (untuk ide keyword) # Proses: # 1. Brainstorm keyword yang relevan dengan app Anda # 2. Cek search volume setiap keyword # 3. Analisis keyword kompetitor # 4. Pilih keyword dengan volume tinggi + kompetisi rendah # βββ 2. OPTIMASI JUDUL βββ # Formula: [Nama Brand] - [Keyword Utama] # Contoh: # β "TasKu - Catatan & Pengingat Harian" # β "FitTrack - Workout & Gym Tracker" # β "My Cool App" # β "Application 1" # βββ 3. OPTIMASI DESKRIPSI βββ # - Paragraf pertama: HOOK yang menarik (2-3 kalimat) # - Bullet points: Fitur utama dengan keyword # - Social proof: Rating, awards, press mentions # - CTA: "Download sekarang dan coba gratis!" # βββ 4. OPTIMASI SCREENSHOTS βββ # - Screenshot 1: Tagline + tampilan terbaik # - Screenshot 2-5: Fitur utama dengan text overlay # - Gunakan warna yang konsisten dengan brand # - Tambahkan device frame # βββ 5. MINTA RATING & REVIEW βββ # - Gunakan in-app review API (Android & iOS) # - Minta rating SETELAH pengguna berhasil melakukan sesuatu # - JANGAN minta rating saat pertama kali buka app # - Target pengguna yang sudah aktif 5+ kali
In-App Review API
// Package: in_app_review
// pubspec.yaml: in_app_review: ^2.0.10
import 'package:in_app_review/in_app_review.dart';
class ReviewService {
final InAppReview _inAppReview = InAppReview.instance;
Future<void> requestReview() async {
try {
// Cek apakah review tersedia di platform ini
if (await _inAppReview.isAvailable()) {
// Minta review β ini membuka native review dialog
await _inAppReview.requestReview();
}
} catch (e) {
// Jika gagal, buka store page langsung
_inAppReview.openStoreListing(
appStoreId: 'YOUR_APP_STORE_ID',
);
}
}
// Strategi: Minta review setelah user menyelesaikan 10 task
void checkAndRequestReview(int completedTasks) {
if (completedTasks > 0 && completedTasks % 10 == 0) {
requestReview();
}
}
}
- Gunakan A/B testing (Google Play Experiments) untuk menguji icon, screenshot, dan deskripsi yang berbeda
- Update app secara berkala β minimal 1x per bulan untuk menjaga ranking
- Respond semua review negatif dengan solusi β ini menunjukkan Anda peduli
- Gunakan localization untuk menjangkau pasar internasional
- Monitor conversion rate (install/view ratio) dan optimasi terus-menerus
7. Quiz: Uji Pemahamanmu!
Setelah membaca tutorial di atas, jawablah 5 pertanyaan berikut untuk menguji pemahamanmu tentang publish app ke store: