MainActivity.kt
        package com.example.recyclerviewkotlin
        
        import android.content.Intent
        import android.os.Build
        import androidx.appcompat.app.AppCompatActivity
        import android.os.Bundle
        import android.view.*
        import android.widget.ImageView
        import android.widget.TextView
        import androidx.recyclerview.widget.LinearLayoutManager
        import androidx.recyclerview.widget.RecyclerView
        import com.bumptech.glide.Glide
        
        class MainActivity : AppCompatActivity() {
            override fun onCreate(savedInstanceState: Bundle?) {
                super.onCreate(savedInstanceState)
                setContentView(R.layout.activity_main)
        
                fullScreen()
        
                val recyclerView: RecyclerView = findViewById(R.id.recyclerView)
                recyclerView.layoutManager = LinearLayoutManager(this)
                setupRecyclerView(recyclerView)
            }
        
            private fun setupRecyclerView(recyclerView: RecyclerView) {
                recyclerView.adapter = VideoGameViewAdapter(getVideogames())
            }
        
            class VideoGameViewAdapter(private val values: List<Videogame>) :
                RecyclerView.Adapter<VideoGameViewAdapter.ViewHolder>() {
        
                override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
                    val view = LayoutInflater.from(parent.context)
                        .inflate(R.layout.list_content, parent, false)
                    return ViewHolder(view)
                }
        
                override fun onBindViewHolder(holder: ViewHolder, position: Int) {
                    val videogame = values[position]
                    holder.nameTextView.text = videogame.name
                    holder.dateTextView.text = videogame.date
        
                    holder.posterImageView.let {
                        Glide.with(holder.itemView.context)
                            .load(videogame.url)
                            .into(it)
                    }
        
                    holder.itemView.setOnClickListener { v ‐>
                        val intent = Intent(v.context, DetailActivity::class.java).apply {
                            putExtra("id", videogame.id)
                            putExtra("name", videogame.name)
                            putExtra("description", videogame.description)
                            putExtra("url", videogame.url)
                        }
                        v.context.startActivity(intent)
                    }
        
                }
        
                override fun getItemCount() = values.size
        
                inner class ViewHolder(view: View) : RecyclerView.ViewHolder(view) {
                    val nameTextView: TextView = view.findViewById(R.id.nameTextView)
                    val dateTextView: TextView = view.findViewById(R.id.dateTextView)
                    val posterImageView: ImageView = view.findViewById(R.id.posterImageView)
                }
            }
        
            private fun getVideogames(): MutableList<Videogame>{
                val mVideogame:MutableList<Videogame> = ArrayList()
                mVideogame.add(Videogame(1, "League of Legends", "Fecha de estreno inicial: 27 de octubre de 2009",
                    "League of Legends es un videojuego del género multijugador de arena de batalla en línea y deporte electrónico el cual fue desarrollado por Riot Games para Microsoft Windows y OS X y para consolas digitales.",
                    "https://i.pinimg.com/originals/9e/66/1d/9e661d10b945ec8389b2874ec7fd6b0c.jpg"))
                mVideogame.add(Videogame(2, "Valorant", "Fecha de estreno inicial: 2 de junio de 2020",
                    "Valorant es un videojuego de disparos en primera persona multijugador gratuito desarrollado y publicado por Riot Games. El juego se anunció por primera vez con el nombre en clave Project A en octubre de 2019.",
                    "https://assets.mycast.io/posters/valorant‐fan‐casting‐poster‐33618‐large.jpg?1586664619"))
                mVideogame.add(Videogame(3, "Fortnite", "Fecha de estreno inicial: 21 de julio de 2017",
                    "Fortnite es un videojuego del año 2017 desarrollado por la empresa Epic Games, lanzado como diferentes paquetes de software que presentan diferentes modos de juego, pero que comparten el mismo motor de juego y mecánicas. Fue anunciado en los Spike Video Game Awards en 2011.",
                    "https://galleryplus.ebayimg.com/ws/web/154293147956_1_0_1.jpg"))
                mVideogame.add(Videogame(4, "Dota 2", "9 de julio de 2013",
                    "Dota 2 es un videojuego perteneciente al género de Arena de batalla en línea ARTS, también conocido como MOBA, lanzado el 9 de julio del año 2013. El juego fue desarrollado por la empresa Valve Corporation.",
                    "https://upload.wikimedia.org/wikipedia/ru/8/8e/%D0%9E%D0%B1%D0%BB%D0%BE%D0%B6%D0%BA%D0%B0_Dota_2.jpg"))
                mVideogame.add(Videogame(5, "Counter‐Strike: Global Offensive", "Fecha de estreno inicial: 21 de agosto de 2012",
                    "Counter‐Strike: Global Offensive es un videojuego de disparos en primera persona desarrollado por Valve Corporation en cooperación con Hidden Path Entertainment, y es el cuarto juego de la saga Counter‐Strike, sin contar Counter‐Strike: Online.",
                    "https://s3.gaming‐cdn.com/images/products/62/orig/counter‐strike‐global‐offensive‐prime‐status‐upgrade‐cover.jpg"))
                return mVideogame
            }
        
            private fun fullScreen() {
                if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
                    window.setDecorFitsSystemWindows(false)
                    val controller = window.insetsController
                    if (controller != null) {
                        controller.hide(WindowInsets.Type.navigationBars())
                        controller.systemBarsBehavior = WindowInsetsController.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE
                    }
                }
            }
        }