Panduan Gaya Kotlin untuk Pengembang Android (Bagian II)

Pada prinsipnya, saya setuju dengan komentar bahwa topik ini tidak berguna, karena ada alat pemformatan kode otomatis





Dan selain itu, setiap orang memiliki pendapatnya masing-masing tentang keindahan dan estetika, sehingga gaya pengkodeannya subjektif.





Tapi saya memutuskan untuk menyelesaikan seri artikel ini dengan gaya Kotlin, seperti yang dijanjikan.





Mungkin seseorang akan berguna.





Nah, tolong, di bawah potongan!





Penamaan

, , , ASCII ( + 10 )





(: _digit, power_



) (: Backing ).





.





: (: fetchDogs



) (makeRepost



)





, , :





@Test fun get_emptyList() {
  // ...
}
      
      



, @Composable



(Jetpack Compose ) , , Pascal :





@Composable
fun MyDog(name: String) {
    // …
}
      
      



, .





Kotlin - val



, get



, . :





(listOf(1, 2, 3)



), , const:





//          const
const val FIVE = 5	
val MY_DOGS = listOf("Dina", "Red")
val EMPTY_ARRAY = arrayOf()
      
      



object



( ).





, , .





, , . .





val viewModel by viewModels<DogViewModel> { viewModelFactory }
val firstName = "Anna"
val dogs = listOf(Dog("Dina"), Dog("Red"))
lateinit var binding: ListItemBinding

fun fetchDogs(page: Int): List<Dog> {
	// ...
}
                                   
                               
      
      



backing :





    private val _dogs = MutableLiveData<List<Dog>>()
    val dogs: LiveData<List<Dog>>
        get() = _dogs
      
      



generic :





  • ( , : T1, T2, R1



    )





  • generic , T (: RequestT, ResponseT



    )





, generic .





Pascal (: SleepingDog



- ).





(: MyCar



- )





. (: Cloneable, Readable, Writable



):





class MainActivity(): AppCompatActivity() {
  // ...
}

interface OnItemListener {
	fun onItemClick(id: Long)
}

interface Readable {}
      
      



: :





// 
package com.example.android.marsRealeState.overview

// 
package com.example.android.mars_reale_state.overview

// OK
package com.example.android.marsrealestate.overview

      
      



enum :





enum class NetworkStatus { 
  SUCCESS, FAILED, LOADING 
} 
      
      



: , :





enum class NetworkStatus {
  SUCCESS,
  FAILED,
  
  LOADING {
  	override fun toString() = "loading..." 
  }
}
      
      



, .





, :





//      
@Singleton
@Component(modules = [DatabaseModule::class])
interface AppComponent {
  // ...
}

//     ,       
@JvmField @Volatile
var disposable: Disposable? = null

//          :
@Inject lateinit var viewModelFactory: DogViewModelFactory
      
      



:





// 
override fun toString(): String = "My name is $name"
// 
override fun toString() = "My name is $name"

// 
private val redDog: Dog = Dog("Red")
// 
private val redDog = Dog("Red")

      
      



KDoc :





/**
 *   
 * 
 */
fun fetchDogs(page: Int) {
    // …
}
      
      



:





/**      */

      
      



:





  • , (*



    ),





  • : @constructor



    @receiver



    @param



    @property



    @return



    @throws,@see







  • KDoc , (: "This function returns sum of digits").





, KDoc , , , public API.





, , :





// ,   .
fun sum(a: Int, b: Int) = a + b
      
      



, , , .





: KDoc , .





.





, , : , , Android Studio, !





: " Android ?"





:





  1. Kotlin ( )





  2. Backing





  3. Generic





  4. Jetpack Compose





  5. Mendokumentasikan Kode Kotlin (dalam bahasa Inggris)





  6. Informasi lebih lanjut di Wikipedia












All Articles