Lewati ke konten utama

Naming Convention

Aturan penamaan yang konsisten di seluruh platform mobile.

File Naming​

PlatformConventionContoh
Android (Kotlin)PascalCaseUserViewModel.kt, HomeScreen.kt
iOS (Swift)PascalCaseUserViewModel.swift, HomeView.swift
Flutter (Dart)snake_caseuser_view_model.dart, home_screen.dart
React Native (TS)PascalCase (components), camelCase (hooks)UserCard.tsx, useHomeScreen.ts

Variable & Function Naming​

TipeConventionContoh
VariablecamelCaseuserName, isLoading, itemCount
ConstantUPPER_SNAKE_CASE / camelCaseMAX_RETRY_COUNT, apiBaseUrl
Function / MethodcamelCasefetchUser(), onButtonTap()
Class / TypePascalCaseUserRepository, HomeViewModel
EnumPascalCase (type), camelCase (value)UserRole.admin, LoadingState.idle
Interface / ProtocolPascalCase + suffixUserRepository (Kotlin), UserRepositoryProtocol (Swift)
Privateunderscore prefix (Dart) / private keyword_userName, private userName

Boolean Naming​

Boolean variable wajib menggunakan prefix yang jelas:

✅ isLoading, isVisible, hasError, canSubmit, shouldRefresh
❌ loading, visible, error, submit, refresh

Screen / Page Naming​

PlatformConventionContoh
Android*ScreenHomeScreen, ProfileScreen
iOS*ViewHomeView, ProfileView
Flutter*Screen atau *PageHomeScreen, ProfilePage
React Native*ScreenHomeScreen, ProfileScreen
TipeSuffixContoh
API Service*ApiService / *ApiUserApiService
DTO*Dto / *ResponseUserDto, UserResponse
Repository*RepositoryUserRepository
Use Case*UseCaseGetUserUseCase
Data Source*DataSourceUserRemoteDataSource
Konsistensi

Pilih satu convention dan gunakan secara konsisten di seluruh project. Jangan campur *Page dan *Screen dalam satu project.