In this chapter, we presented the most common reasons for performance issues. We'll talk about them in more depth in the next chapters. We compared several examples in Java and Kotlin to know how to use features of these languages to prevent performance bottlenecks. We also introduced the most common things that influence the user experience of the whole application.
In the next chapter, we'll introduce different tools and practices for identifying performance issues.