Android開発者向けのKotlinスタイルガイド(パートII)

自動コードフォーマットツールがあるので、原則として、このトピックは不要であるというコメントに同意します





その上、美しさと美学については誰もが自分の意見を持っているので、コーディングスタイルは主観的です。





しかし、約束どおり、この一連のKotlinスタイルの記事を終了することにしました。





おそらく誰かが重宝するでしょう。





さて、カットの下でお願いします!





ネーミング

変数、関数、プロパティ、クラスの識別子は、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. Kotlin ( )
















All Articles