рд╕рднреА рдХреЛ рдирдорд╕реНрдХрд╛рд░ред рдПрдВрдбреНрд░реЙрдЗрдб рд╡рд┐рдХрд╛рд╕ рдкрд░ рдмреБрдирд┐рдпрд╛рджреА рдкрд╛рдареНрдпрдХреНрд░рдо рдХреА рд╢реБрд░реБрдЖрдд рдХреА рдкреНрд░рддреНрдпрд╛рд╢рд╛ рдореЗрдВ, рд╣рдо рдЙрдкрдпреЛрдЧреА рд╕рд╛рдордЧреНрд░реА рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрддреЗ рд╣реИрдВред
рдЗрди рдпреБрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдкрдврд╝рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЖрдкрдХреЛ try.kotlinlang.org
рдкреНрд░рд▓реЗрдЦрди рдХреЛ рдкрдврд╝рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ try.kotlinlang.org
рдкрд░ рд╕реНрд╡рдпрдВ рднрд╛рд╖рд╛ рд╕реАрдЦрдирд╛ try.kotlinlang.org
ред рдЪреВрдВрдХрд┐ рдпреЗ рдпреБрдХреНрддрд┐рдпрд╛рдВ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдПрдВрдбреНрд░реЙрдЗрдб рд╡рд┐рдХрд╛рд╕ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдХреЛрдЯрд▓рд┐рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдЙрджреНрджреЗрд╢реНрдп рд╕реЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдПрдВрдбреНрд░реЙрдЗрдб рдПрд╕рдбреАрдХреЗ рдХреЗ рд╕рд╛рде рднреА рдЕрдиреБрднрд╡ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рднреА рд╕рд▓рд╛рд╣ рджреА рдЬрд╛рддреА рд╣реИ рдХрд┐ рдХреЛрдЯрд▓рд┐рди рдкреНрд▓рдЧрдЗрди рдХреЗ рд╕рд╛рде рдЦреБрдж рдХреЛ рдкрд░рд┐рдЪрд┐рдд рдХрд░реЗрдВ рдФрд░ рдЬреЗрдЯрдмреНрд░реЗрди (рдХреЛрдЯрд▓рд┐рди рдХреЗ рдирд┐рд░реНрдорд╛рддрд╛) рд╕реЗ рдПрдВрдбреНрд░реЙрдЗрдб рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЗ рд╕рд╛рде рдХреЛрдЯрд▓рд┐рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
рдкрд╣рд▓рд╛ рднрд╛рдЧ рдкрдврд╝реЗрдВрд╡рд╕реНрддреБрдУрдВ рдХрд╛ рд╡рд┐рд╡рд░рдг
рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╡рд┐рд╡рд░рдг рдореЗрдВ рдХреЗрд╡рд▓ рд╕рд┐рдВрдЧрд▓рдЯрди рдХреА рдЕрдиреБрдорддрд┐ рд╣реЛрддреА рд╣реИ, рдЬрд┐рд╕реЗ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП рдЧрд▓рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЖрдкрдХреЛ рдПрдХ рд╕реНрдерд┐рд░ рд╡рд░реНрдЧ рдпрд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╡рд░реНрдЧ рдХреЗ рдЪрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХрд▓ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдереНрд░реЗрдбреНрд╕ рд╕реЗ рдЬреБрдбрд╝реЗ рд╕реНрдерд┐рд░ рддрд░реАрдХреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╡рд░реНрдЧ рд╣реИ, рдФрд░ рдореИрдВ рд╕рдВрдкреВрд░реНрдг рдПрдкреНрд▓рд┐рдХреЗрд╢рди рддрдХ рдкрд╣реБрдВрдЪрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рддреЛ рдЖрдк рдРрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
package com.myapps.example.util import android.os.Handler import android.os.Looper
рдереНрд░реЗрдбрдЯреАрд▓ рдХреЛ рдмрд╛рдж рдореЗрдВ рдЙрд╕реА рддрд░рд╣ рд╕реЗ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬрдм рдХрд┐рд╕реА рд╕реНрдерд┐рд░ рд╡рд░реНрдЧ рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
ThreadUtil.onMainThread(runnable)
рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЕрдм рдЖрдкрдХреЛ рдирд┐рдЬреА рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрдерд┐рд░ рд╡рд░реНрдЧ рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдЕрдиреБрдХрд░рдг рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдФрд░ рдЖрдкрдХреЛ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдХрд╣рд╛рдБ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИред рд╡рд╕реНрддреБрдПрдВ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рднрд╛рд╖рд╛ рдХреЗ рдореВрд▓ рддрддреНрд╡ рд╣реИрдВред рдЗрд╕реА рд╕рд┐рджреНрдзрд╛рдВрдд рджреНрд╡рд╛рд░рд╛, рд╣рдо рдЖрдВрддрд░рд┐рдХ рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рдмрдЬрд╛рдп рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рддреЗ рд╣реИрдВ:
iewPager.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { override fun onPageScrollStateChanged(state: Int) {} override fun onPageScrolled(position: Int, positionOffset: Float, positionOffsetPixels: Int) {} override fun onPageSelected(position: Int) { bindUser(position) } });
рджреЛрдиреЛрдВ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдПрдХ рд╣реА рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ - рд╡реЗ рдШреЛрд╖рд┐рдд рд╡рд╕реНрддреБ рдХреЗ рд░реВрдк рдореЗрдВ рдХрдХреНрд╖рд╛ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рддреЗ рд╣реИрдВред
рд╕рд╣рд╛рдпрдХ рд╡рд╕реНрддреБрдПрдВ
рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ, рдХреЛрдЯрд▓рд┐рди рдХреЗ рдкрд╛рд╕ рдХреЛрдИ рд╕реНрдерд┐рд░ рдЪрд░ рдФрд░ рд╡рд┐рдзрд┐рдпрд╛рдБ рдирд╣реАрдВ рд╣реИрдВред рдЗрд╕ рднрд╛рд╖рд╛ рдореЗрдВ рдРрд╕реА рдЕрд╡рдзрд╛рд░рдгрд╛рдПрдВ рдирд╣реАрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕рд╣рд╛рдпрдХ рд╡рд╕реНрддреБрдУрдВ рдХреА рдПрдХ рдЕрд╡рдзрд╛рд░рдгрд╛ рд╣реИред рд╡реЗ рдПрдХ рд╡рд░реНрдЧ рдореЗрдВ рд╕рд┐рдВрдЧрд▓рдЯрди рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рд╣реИрдВ рдЬрд┐рдирдореЗрдВ рд╡рд┐рдзрд┐рдпрд╛рдБ рдФрд░ рдЪрд░ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдк рд╕реНрдерд┐рд░ рддрд░реАрдХреЗ рд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдПрдХ рд╕рд╛рдереА рдСрдмреНрдЬреЗрдХреНрдЯ рдЬрд╛рд╡рд╛ рдореЗрдВ рд╕реНрдерд┐рд░ рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рд╕рдорд╛рди рдХреБрдЫ рд╕реНрдерд┐рд░рд╛рдВрдХ рдФрд░ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рд╕рд╛рде, рдЖрдк
newInstance рд╕реНрдирд┐рдкреЗрдЯ рдкреИрдЯрд░реНрди рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╕рд╛рдереА рд╡рд╕реНрддреБ рдХреЛ рдЙрд╕рдХреЗ рд╕рд░рд▓рддрдо рд░реВрдк рдореЗрдВ рджреЗрдЦреЗрдВ:
class User { companion object { const val DEFAULT_USER_AGE = 30 } }
рдПрдВрдбреНрд░реЙрдЗрдб рдкрд░, рд╣рдо рдЖрдо рддреМрд░ рдкрд░ рдЯреБрдХрдбрд╝реЛрдВ рдХреЗ рд▓рд┐рдП рд╕реНрдерд┐рд░ рдХрд╛рд░рдЦрд╛рдиреЛрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдерд┐рд░ рддрд░реАрдХреЛрдВ рдФрд░ рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
class ViewUserActivity : AppCompatActivity() { companion object { const val KEY_USER = "user" fun intent(context: Context, user: User): Intent { val intent = Intent(context, ViewUserActivity::class.java) intent.putExtra(KEY_USER, user) return intent } } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_cooking) val user = intent.getParcelableExtra<User>(KEY_USER)
рдПрдХ
рдЗрд░рд╛рджрд╛ рдмрдирд╛рдирд╛ рдЬрд╛рд╡рд╛ рдореЗрдВ рдПрдХ рд╕рдорд╛рди рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЗ рд╕рдорд╛рди рд╣реИ:
val intent = ViewUserActivity.intent(context, user) startActivity(intent)
рдпрд╣ рдкреИрдЯрд░реНрди рдЕрдЪреНрдЫрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЗрд╕ рд╕рдВрднрд╛рд╡рдирд╛ рдХреЛ рдХрдо рдХрд░рддрд╛ рд╣реИ рдХрд┐
рдЗрдВрдЯреЗрдВрдЯ рдпрд╛
рдлреНрд░реИрдЧрдореЗрдВрдЯ рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рдкрд░рд┐рднрд╛рд╖рд┐рдд рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рд╕рд╛рдордЧреНрд░реА рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдбреЗрдЯрд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдХрдВрдкреИрдирд┐рдпрди рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЛрдЯрд▓рд┐рди рдореЗрдВ рд╕реНрдерд┐рд░ рдПрдХреНрд╕реЗрд╕ рдлреЙрд░реНрдо рдХреЛ рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рд╣реИ, рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдХреНрд╖рд╛рдУрдВ рдХреА рдХрдореА рдХреА рднрд░рдкрд╛рдИ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рд╡реИрд╢реНрд╡рд┐рдХ рд╕реНрдерд┐рд░рд╛рдВрдХ
рдХреЛрдЯрд▓рд┐рди рдЖрдкрдХреЛ рдЙрди рд╕реНрдерд┐рд░рд╛рдВрдХ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬреЛ рдЖрд╡реЗрджрди рдХреЗ рдПрдХ рд╕реНрдерд╛рди рдкрд░ рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВ (рдпрджрд┐ рд▓рд╛рдЧреВ рд╣реЛ)ред рд▓реЗрдХрд┐рди рд╕реНрдерд┐рд░рд╛рдВрдХ рдХрд╛ рджрд╛рдпрд░рд╛ рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЙрддрдирд╛ рдХрдо рд╕реЗ рдХрдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдФрд░ рдРрд╕реА рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рдЬрд╣рд╛рдВ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдПрдХ рдХреНрд╖реЗрддреНрд░ рд╡реИрд╢реНрд╡рд┐рдХ рд╣реЛ, рдХреЛрдЯрд▓рд┐рди рдХреЗ рдкрд╛рд╕ рдПрдХ рдирд┐рд░рдВрддрд░ рд╡рд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рд╢рд╛рдирджрд╛рд░ рддрд░реАрдХрд╛ рд╣реИред рдХреБрдЫ рдЗрд╕ рддрд░рд╣:
package com.myapps.example import android.support.annotation.StringDef
рдлрд┐рд░ рдЙрдиреНрд╣реЗрдВ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдХрд╣реАрдВ рднреА рд╕реНрдерд┐рд░рд╛рдВрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
import com.savvyapps.example.PRESENTATION_MODE_EDITING val currentPresentationMode = PRESENTATION_MODE_EDITING
рдЗрд╕рдХреА рдЬрдЯрд┐рд▓рддрд╛ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рд╕реНрдерд┐рд░рд╛рдВрдХ рдпрдерд╛рд╕рдВрднрд╡ рдЫреЛрдЯреЗ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдореВрд▓реНрдп рд╣реИ рдЬреЛ рдХреЗрд╡рд▓ рдПрдХ рдХрд╕реНрдЯрдо рд╡рд░реНрдЧ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ рд╕рд╣рд╛рдпрдХ рд╡рд╕реНрддреБ рдореЗрдВ рд░рдЦрдирд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реИред
рд╡рд┐рд╕реНрддрд╛рд░
рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдЙрдкрдпреЛрдЧреА рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдЖрдкрдХреЛ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓реЗ рдмрд┐рдирд╛ рдХрдХреНрд╖рд╛ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
hideKeyboard()
рдЬреИрд╕реА
hideKeyboard()
рд▓рд┐рдП рдХреБрдЫ рд╡рд┐рдзрд┐ рдХреИрд╕реЗ рдЬреЛрдбрд╝реЗрдВ? рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк рдЗрд╕реЗ рдЖрд╕рд╛рдиреА рд╕реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
fun Activity.hideKeyboard(): Boolean { val view = currentFocus view?.let { val inputMethodManager = getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager return inputMethodManager.hideSoftInputFromWindow(view.windowToken, InputMethodManager.HIDE_NOT_ALWAYS) } return false }
рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдореЗрдВ рдЙрдкрдпреЛрдЧреА рд╣реИ рдХрд┐ рд╡реЗ:
- рдХреЛрдб рдкрдардиреАрдпрддрд╛ рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдВ
- рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╡рд░реНрдЧреЛрдВ рдФрд░ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рдирд╛ред
рдЖрдк рдЖрдЧреЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдХреЛрдб рдХреА рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдХрд▓реНрдкрдирд╛ рдХреАрдЬрд┐рдП рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдореВрд▓ рдореЙрдбрд▓ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
рдЕрдиреБрдЪреНрдЫреЗрдж , рдЬрд┐рд╕реЗ рдПрдкреАрдЖрдИ рджреНрд╡рд╛рд░рд╛ рд╕реНрд░реЛрдд рд╕реЗ рдирд┐рдХрд╛рд▓реЗ рдЧрдП рдбреЗрдЯрд╛ рдХреА рдПрдХ рд╢реНрд░реЗрдгреА рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ:
class Article(val title: String, val numberOfViews: Int, val topic: String)
рдХреБрдЫ рд╕реВрддреНрд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдЪреНрдЫреЗрдж рдХреА рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХрддрд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдХреНрдпрд╛ рдЖрдкрдХреЛ рдЗрд╕реЗ рд╕реАрдзреЗ рдЕрдиреБрдЪреНрдЫреЗрдж рд╡рд░реНрдЧ рдореЗрдВ рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП? рдФрд░ рдпрджрд┐ рдореЙрдбрд▓ рдореЗрдВ рдХреЗрд╡рд▓ API рд╕реЗ рдбреЗрдЯрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рддреЛ рдЕрдзрд┐рдХ рдХреБрдЫ рдирд╣реАрдВ, рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХрд╛ рдлрд┐рд░ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
fun Article.isArticleRelevant(user: User): Boolean { return user.favoriteTopics.contains(topic) }
рдпрд╣ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдкрд╕рдВрджреАрджрд╛ рд╡рд┐рд╖рдпреЛрдВ рдХреА рдЕрдкрдиреА рд╕реВрдЪреА рдореЗрдВ рдПрдХ рдЕрдиреБрдЪреНрдЫреЗрдж рд╡рд┐рд╖рдп рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рд╣реИред
рдпрд╣ рддрд░реНрдХ рдЗрд╕ рдЖрдзрд╛рд░ рдкрд░ рднрд┐рдиреНрди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рдЗрди рдФрд░ рдЕрдиреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдЪреВрдБрдХрд┐ рдпрд╣ рддрд░реНрдХ
рдЕрдиреБрдЪреНрдЫреЗрдж рдореЙрдбрд▓ рдХреА рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛ рдХреБрдЫ рд╣рдж рддрдХ рд╕рдорд░реНрдерд┐рдд рд╣реИ, рдЖрдк рдЗрд╕реЗ рдЙрджреНрджреЗрд╢реНрдп, рд╡рд┐рдзрд┐ рдФрд░ рдЗрд╕рдХреА рдХреНрд╖рдорддрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред