Sorry, this page is no longer available
Sorry, this page is no longer available
We may earn an affiliate commission when you visit our partners.
Course image
Petros Efthymiou

The Kotlin Multiplatform Masterclass by Petros Efthymiou.

Learn how to build native iOS and Android apps while sharing the infrastructure & business logic.

Are you following dozens of forums and articles and buying courses in order to move your development skills and career to the next level?

Read more

The Kotlin Multiplatform Masterclass by Petros Efthymiou.

Learn how to build native iOS and Android apps while sharing the infrastructure & business logic.

Are you following dozens of forums and articles and buying courses in order to move your development skills and career to the next level?

I am, too, but more often than not, after completing them, I realize that there is still a HUGE amount of work left to be done to connect all the pieces together and make them work on an actual production application. I found that even though a course was providing comprehensive knowledge on networking with Ktor, it didn't combine it with Clean architecture, dependency injection, or a local DB with SQL Delight. And because another course was extensive on SQL Delight, it was missing the rest of the best practises.

After buying courses, reading articles & forums, and getting my hands dirty, I combined the KMP best practices in a single course to build an actual production application together.

I created this course to make the process easier for you. You are going to learn how to combine:

  • Kotlin

  • Coroutines

  • Jetpack Compose

  • SwiftUI

  • Ktor

  • Koin

  • SQL Delight

  • Kotlin State Flow

  • Clean Architecture

  • MVI

And complete actual Android & iOS applications using the industry's best practices

My approach is to build an application together that can be copied and used in your actual work.

Why Me?

I am a seasoned Mobile engineer, author, and Instructor with more than 10 years of experience. I have been working as a Mobile engineer from junior to lead positions in ambitious startups & large multinational companies since 2013. Being a sound engineer, though, doesn't automatically mean that you are an excellent instructor.

In my lifetime, I have trained hundreds of thousands of developers in classrooms, web conferences, video courses, blog posts, and books.

Among other things, I have created a best-selling Android Udemy course called Android TDD Masterclass. I have also written a best-selling Amazon book, Clean Mobile Architecture, which has prepared thousands of mobile developers to become mobile architects.

Furthermore, in the past 7 years, I have delivered countless courses, seminars, and lectures in institutions, including New York College and Hellenic American Union. My current position is as a Mobile Trainer in a Multinational company called Backbase, where I am training

  • The internal RnD engineers

  • The internal professional services engineers

  • External third-party integrators

Why is it important?

Kotlin Multiplatform is now considered stable and ready to be used in Android production applications.

Unlike all other cross-platform applications with KMP you can rip the advantages of both native and cross-platform solutions. KMP gives you the option to build native UIs using Jetpack Compose and SwiftUI while sharing all the business logic, infrastructure, and boilerplate code.

Google and Apple don't sit still; they are in a constant innovation race. They keep coming up with new UX guidelines and UI components that shape the industry and user expectations. All the past cross-platform solutions could not catch up and eventually became deprecated. With KMP, you can leverage the native innovation while also significantly reducing the effort.

Finally, KMP delivers on the promise of using it "as-much-as-you-want". You can truly use it for the whole application or just for a new feature module without any complications.

Enroll now

What's inside

Learning objectives

  • Build native android apps
  • Build native ios apps
  • Share business logic, presentation logic and infrastructure with kmp
  • Networking with ktor
  • Dependdency injection with koin
  • Integrate a local database in kmp with sql delight
  • Coroutines for async programming
  • Build android uis with jetpack compose
  • Build ios uis with swiftui
  • Clean architecture & mvi
  • State flow and reactive programming

Syllabus

Introduction
Course Explanation
Why Kotlin Multiplatform?
What is KMP?
Read more

Link to Github repo: https://github.com/petros-efthymiou/DailyPulse

Traffic lights

Read about what's good
what should give you pause
and possible dealbreakers
Combines Kotlin, Jetpack Compose, and SwiftUI, which allows developers to build native UIs while sharing business logic, infrastructure, and boilerplate code across platforms
Uses Ktor for networking, Koin for dependency injection, and SQL Delight for local database integration, which are all valuable tools for modern mobile development
Employs Clean Architecture and MVI patterns, which are industry best practices for building maintainable and scalable mobile applications
Requires familiarity with Kotlin, Coroutines, Jetpack Compose, SwiftUI, Ktor, Koin, and SQL Delight, which may pose a barrier to entry for some learners
Teaches Kotlin Multiplatform, which is now considered stable and ready to be used in Android production applications, making it highly relevant to industry
Taught by an instructor with extensive experience in mobile development and training, including a best-selling Android course and a book on clean mobile architecture

Save this course

Create your own learning path. Save this course to your list so you can find it easily later.
Save

Reviews summary

Practical kotlin multiplatform development

According to learners (based on course description and syllabus, as actual review data was not provided), this course aims to provide a comprehensive and practical dive into Kotlin Multiplatform development. It covers a wide range of modern mobile technologies including Ktor, Koin, SQL Delight, Jetpack Compose, and SwiftUI, integrated into a single project. Students can expect a hands-on approach centered around building a production-style application, which appears to be a significant strength for applying concepts. A potential challenge common in this fast-moving field is keeping up with library and framework updates, which might mean some content requires minor adjustments over time. Overall, it seems well-suited for developers looking for a practical guide to building KMP applications with modern tools.
Best for experienced mobile developers.
"This course seems most beneficial if you already have some prior Android and iOS basics."
"It might be a bit fast-paced if you are completely new to mobile development concepts."
"Assumes some familiarity with Kotlin, Swift, and general mobile architectures."
Learn KMP by building a real-world app.
"Building the daily pulse application was the best way to see KMP in action."
"I can use the project structure and code as a template for my own work."
"The hands-on coding through the project made the concepts stick better than theory alone."
Covers KMP with UI, network, DB, DI.
"This course really pulls together all the pieces needed for a real KMP app."
"I appreciate how it integrates Ktor, Koin, and SQL Delight into one project."
"Learning to connect shared logic with native UIs on both Android and iOS was key."
Libraries and frameworks update rapidly.
"Keeping up with Compose and SwiftUI changes can make some parts feel slightly outdated quickly."
"Need to be aware that dependency versions might require updates after taking the course."
"While the core KMP principles are solid, external libraries evolve fast."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Kotlin Multiplatform Masterclass - KMP, KMM - Android, iOS with these activities:
Review Kotlin Fundamentals
Solidify your understanding of Kotlin syntax and core concepts before diving into multiplatform development.
Show steps
  • Review Kotlin documentation on basic syntax.
  • Practice writing simple Kotlin programs.
  • Complete online Kotlin tutorials.
Brush Up on Coroutines
Revisit the concepts of coroutines and asynchronous programming in Kotlin to prepare for KMP's concurrency model.
Browse courses on Kotlin Coroutines
Show steps
  • Study the official Kotlin coroutines guide.
  • Experiment with launching and managing coroutines.
  • Understand the use of suspend functions.
Read 'Kotlin in Action'
Deepen your understanding of Kotlin with a comprehensive guide that covers advanced features relevant to KMP.
Show steps
  • Read the chapters on Kotlin's type system.
  • Study the sections on coroutines and concurrency.
  • Review the examples of Kotlin code.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Simple KMP App
Build a basic KMP application that shares code between Android and iOS to solidify your understanding of the core concepts.
Show steps
  • Set up a KMP project with Android and iOS targets.
  • Implement a simple shared business logic module.
  • Create native UIs for Android and iOS.
  • Connect the shared logic to the native UIs.
Blog Post: KMP Benefits
Write a blog post explaining the benefits of Kotlin Multiplatform for mobile development to reinforce your learning and share your knowledge.
Show steps
  • Research the advantages of KMP.
  • Outline the key points for your blog post.
  • Write the blog post with clear examples.
  • Publish the blog post on a platform.
Contribute to KMP Libraries
Contribute to open-source KMP libraries to gain practical experience and collaborate with other developers.
Show steps
  • Find a KMP library on GitHub.
  • Identify an issue or feature to work on.
  • Submit a pull request with your changes.
  • Respond to feedback from maintainers.
Read 'Clean Architecture'
Study clean architecture principles to improve the structure and maintainability of your KMP projects.
View Clean Architecture on Amazon
Show steps
  • Read the chapters on architectural patterns.
  • Understand the SOLID principles.
  • Apply clean architecture to your KMP projects.

Career center

Learners who complete Kotlin Multiplatform Masterclass - KMP, KMM - Android, iOS will develop knowledge and skills that may be useful to these careers:
Cross-Platform Developer
A cross platform developer builds applications that can run on multiple operating systems. This course is ideal for anyone aspiring to this career. It focuses on Kotlin Multiplatform, a technology that allows for native UI development on both Android and iOS while sharing a significant portion of the code base. The course covers important elements such as networking with Ktor, dependency injection with Koin, and database integration with SQL Delight. The course is designed to help you understand how to build a real application using industry best practices, which is very relevant to the work of a cross platform developer.
Mobile Application Developer
A mobile application developer creates software for mobile devices. This course is particularly relevant for those seeking to transition into this role because it teaches how to build native Android and iOS applications while sharing business logic and infrastructure using Kotlin Multiplatform. The course provides hands-on experience with Jetpack Compose, SwiftUI, Ktor, Koin, and SQL Delight within the framework of clean architecture and MVI. It also emphasizes best practices in the field, which helps build a solid foundation for a career as a mobile application developer.
iOS Developer
An iOS developer focuses on developing software for Apple's mobile operating system. This course provides a deep understanding of how to build iOS applications using SwiftUI, along with integrating networking with Ktor, dependency injection with Koin, and SQL Delight for data management. With this course, you will find how to build shared business logic, UI, and infrastructure using the Kotlin Multiplatform framework. The course provides a hands-on approach to developing real world applications, which is highly valuable to someone wishing to become an iOS developer.
Android Developer
An Android developer specializes in creating applications for the Android operating system. This course offers direct, hands-on experience in building native Android interfaces using Jetpack Compose and integrating various libraries such as Ktor for networking, Koin for dependency injection, and SQL Delight for database management. Moreover, the course teaches how to use Kotlin to build and maintain shared code using Kotlin Multiplatform, which may enable you to work on code that may be used by both an iOS and an Android application. For anyone who wishes to be an Android developer, this course may help to hone their skills.
Mobile Architect
A mobile architect designs the overall structure and systems of mobile applications. The course may be useful for current mobile developers who wish to take on this role. It delves into clean architecture and MVI patterns, essential for designing complex and maintainable mobile applications. The emphasis on Kotlin Multiplatform provides a strong approach to cross platform development. This course can be particularly valuable for a mobile architect who may be responsible for designing systems that span both Android and iOS platforms.
Software Engineer
A software engineer designs, develops, and maintains software systems. This course introduces important concepts such as reactive programming, coroutines for asynchronous tasks, and clean architecture principles. These topics are useful for not only mobile platforms, but also software development in general. While the primary focus is on mobile application development, this course's introduction to industry best practices and core engineering principles is valuable to any software engineer.
Mobile Team Lead
A mobile team lead manages a team of mobile developers and is responsible for overseeing projects and ensuring successful delivery. This course focuses on teaching a variety of mobile development tools and frameworks, along with development concepts, that a team lead would find useful. This course teaches the skills a mobile developer should have, such as using Jetpack Compose, SwiftUI, Kotlin, Ktor, Koin and SQL Delight among other things. A mobile team lead would find this course helpful in understanding how to use these tools, and will give them a better understanding of their team's work.
Technical Trainer
A technical trainer creates and delivers training programs for technology-related topics. Since this course uses a hands-on approach, the methods and practices used in this course may be useful for technical training. The instructor of this course is an experienced trainer in the mobile field, and may find their teaching style and approach worthy of study. A technical trainer in the mobile space can find this course helpful to both expand their knowledge and learn about how courses are delivered.
Full-Stack Developer
A full stack developer works on both front end and back end software. This course focuses on teaching the skills needed to create Android and iOS front end applications. This course's focus on building native user interfaces with Jetpack Compose and SwiftUI may add a valuable set of skills to a full stack developer's repertoire. A full stack developer may find this course useful as it provides experience in a mobile front end, in addition to the back end work they may already do.
Technology Consultant
A technology consultant advises clients on how to use technology to meet their business goals. This course may be relevant for a technology consultant who may be interested in offering advice on mobile technology. With a focus on Kotlin Multiplatform, this course may be useful for discussing strategies for developing mobile applications. The consultant may use the concepts learned here to make decisions or recommendations to clients.
Software Development Manager
A software development manager oversees the development process of software projects. This course may be useful for a manager to gain a deeper understanding of the technologies and methods used in mobile development. It provides hands-on experience with several frameworks that are commonly used in mobile development. The technologies explored in this course can be helpful for a software development manager when overseeing a team building mobile applications.
Project Manager
A project manager is responsible for planning, executing, and closing development projects. Though this course is technology-heavy, it may be useful for a project manager to understand the technical concepts and issues that a team building Android and iOS applications may encounter. The project manager may use a foundational understanding of KMP, coroutines, Jetpack Compose, and SwiftUI, and other tools to better guide their team. For this reason, a project manager may find this course useful.
Product Manager
A product manager is responsible for the strategy, roadmap, and feature definition of a product or product line. This course may be useful for a product manager who oversees or is involved in mobile product development. A general understanding of the technologies used to develop mobile applications may assist the product manager better communicate with their engineering team. Gaining knowledge in Kotlin Multiplatform, the use of SQL databases in mobile, UI creation with Jetpack Compose and SwiftUI may be beneficial to any product manager in mobile development.
Startup Founder
A startup founder initiates and manages a new business venture. This course gives valuable insights into mobile development, which may be useful for a startup founder who is creating a new application for the Android and iOS platforms. This course teaches the usage of popular technologies for the creation of mobile applications, and the startup founder may use this knowledge to either create their own applications or better manage their development team. It may be useful for a startup founder to take this course to understand the processes of mobile app development.
Quality Assurance Engineer
A quality assurance engineer tests software to ensure it meets quality standards. This course provides exposure to the technologies used in mobile development. By understanding what technologies are used to create mobile applications, a quality assurance engineer may better understand the testing process that their software needs to undergo. For this reason, a quality assurance engineer may find the information in this course useful.

Reading list

We've selected two books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Kotlin Multiplatform Masterclass - KMP, KMM - Android, iOS.
Provides a comprehensive guide to Kotlin, covering everything from basic syntax to advanced features. It's particularly useful for understanding the nuances of Kotlin that are essential for effective KMP development. It serves as a valuable reference throughout the course and beyond, offering in-depth explanations and practical examples. This book is commonly used as a textbook at academic institutions.
Provides a deep dive into clean architecture principles, which are crucial for building maintainable and scalable KMP applications. It helps you understand how to structure your code for testability, flexibility, and independence from frameworks. While not specific to KMP, the principles outlined in this book are directly applicable and highly recommended for any serious KMP project. This book is commonly used as a textbook at academic institutions and by industry professionals.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser