Full 2025 Kotlin Crash Course For BeginnersPhilipp Lackner2025-03-19 | In this video I'll teach you everything you need to know to start developing real software with Kotlin.
00:00 - Introduction 1:30 - Why is Kotlin cool? 3:57 - IntelliJ Installation 5:15 - Creating the project 9:20 - Hello world program 11:32 - val and var 18:20 - Arithmetic operators 22:58 - Comparison operators 27:19 - Logical operators 32:40 - Console input 36:41 - Nullability & null-safe operators 47:27 - if conditions 55:48 - when expression 59:48 - Exceptions & try/catch 1:05:30 - Arrays 1:16:01 - Loops 1:31:10 - Normal functions 1:42:03 - Extension functions 1:49:07 - Function overloading 1:52:25 - Lambda functions 2:07:33 - Normal class & data class 2:18:28 - Interfaces 2:26:14 - Abstract classes 2:35:24 - Sealed interface & sealed class 2:37:34 - Enum classes 2:44:19 - Singletons 2:49:29 - Visibility modifiers 2:53:06 - GenericsIs Google going even more downhill with Android? - No more side-loading of Android appsPhilipp Lackner2025-09-10 | In this video, I'll share the recent news about Google forbidding side-loading of Android apps in future as well as my own thoughts about it.
Regular programming advice on my Instagram page: instagram.com/_philipplackner_The 2nd Software Revolution Nobody Is NoticingPhilipp Lackner2025-09-07 | While everyone has their eyes on AI, there's a second thing going on, specifically for us mobile developers...
Register for my free KMP workshop to get pure value over 1.5-2h and then be among the first who can get this bundle: pl-coding.com/workshop?utm_campaign=kmp-workshop&utm_source=youtube&utm_medium=video&cmc_strip=utmSo Many New Kotlin & Compose Features 😱 - Mobile Dev News September 2025Philipp Lackner2025-09-03 | In this video of mobile dev news, you'll hear of the most trending news about mobile development, especially in the Kotlin & Android ecosystem. There are many changes in Kotlin, KMP, CMP and Jetpack Compose!
00:00 - Introduction 00:23 - The problem of web based AIs 1:20 - Junie & why I like it 2:20 - What is an AI agent? 3:36 - Use case 1: Learning 10:27 - Use case 2: Coding 13:56 - My view on AI for codingHow to Deep Link Into iOS & Android With Compose MultiplatformPhilipp Lackner2025-08-27 | In this video, I'll show you how you can set up your Kotlin Multiplatform (KMP) app to support deep links. You'll learn how you can achieve that your users click on a link in the browser which opens in your app while passing in data from the URL.
Get the source code for this video on GitHub: github.com/philipplackner/CMPDeepLinkingSQL Databases With JPA Persistence - Spring Boot 4 Basics With KotlinPhilipp Lackner2025-08-24 | In this video, we'll explore talking to a PostgreSQL instance hosted on Supabase via JPA in a Kotlin Spring Boot project.
Get the source code for this video on GitHub: github.com/philipplackner/spring-boot-kotlin-basicsCustom Design Systems In Jetpack Compose - THESE Are My Best PracticesPhilipp Lackner2025-08-20 | In this video, I'll share what counts when creating your own design system in Compose (Multiplatform). Depend on Material3 components? What is part of your design system and what not? How to reuse them? I'll answer all of that.
Join my 12-week Android & KMP mentorship program and get prepared for the industry on an 1-to-1 basis: pl-coding.com/drop-table-mentoring
Regular programming advice on my Instagram page: instagram.com/_philipplackner_Validating Requests With Spring Validation - Spring Boot 4 Basics With KotlinPhilipp Lackner2025-08-17 | In this video, you'll learn how you can validate incoming request bodies with the help of the Spring Validation framework. You'll also learn how you can define your own validation constraints with custom annotations.
Get the source code for this video on GitHub: github.com/philipplackner/spring-boot-kotlin-basicsProfiles, Configuration & Environment Variables - Spring Boot 4 Basics With KotlinPhilipp Lackner2025-08-13 | In this video, you'll learn about the application.yml file in Spring Boot and how you can define different property values based on different application profiles, like development and production.
Get the source code for this video on GitHub: github.com/philipplackner/spring-boot-kotlin-basicsModels & Mappers With Presentation/Domain/Data - In-Depth GuidePhilipp Lackner2025-08-10 | In this video you'll learn about the different types of models and mappers in a typical presentation, domain & data layer architecture on Android or KMP.
Get the source code for this video on GitHub: github.com/philipplackner/MappersGuideDependency Injection, Autowiring & Beans - Spring Boot 4 Basics With KotlinPhilipp Lackner2025-08-06 | In this video, you'll learn about Spring Boot's built in mechanism to create class instances and automatically wire them together. Specifically, you'll learn about the Component, Service, Repository, Configuration & Bean annotations.
Get the source code for this video on GitHub: github.com/philipplackner/spring-boot-kotlin-basicsNew Kotlin Version, Cool KMP Changes & More - Android News August 2025Philipp Lackner2025-08-04 | In this Android news episode, I'll go over cool Kotlin related changes for both the Kotlin language and Kotlin/Compose Multiplatform.
Regular programming advice on my Instagram page: instagram.com/_philipplackner_How Easily Attackers Can Fake Requests to Your Server - And What You Can Do Against ItPhilipp Lackner2025-07-30 | In this video we'll take a closer look at how we can make sure a client device using your app is genuine, so they can't manipulate the requests being made to your server.
00:00 - What is app attestation? 00:46 - Real-world examples 4:18 - Practical example for app attestation 8:07 - How it works technically 12:15 - Guardsquare web dashboard 15:28 - Play Integrity vs. Guardsquare 16:47 - Which apps should stick to it?Response Handling & HTTP Status Codes - Spring Boot 4 Basics With KotlinPhilipp Lackner2025-07-27 | In this video you'll learn about the different ways to respond with clear HTTP status codes that tell the client what went wrong about their request.
Get the source code for this video on GitHub: github.com/philipplackner/spring-boot-kotlin-basicsREST Controllers & HTTP Requests - Spring Boot 4 Basics With KotlinPhilipp Lackner2025-07-23 | In the second part of the Spring Boot 4 with Kotlin playlist, you'll learn about building a first functional REST controller to handle incoming requests with different HTTP methods in a CRUD-like fashion.
Get the source code for this video on GitHub: github.com/philipplackner/spring-boot-kotlin-basicsHow to Implement Pagination In Compose Multiplatform (KMP)Philipp Lackner2025-07-20 | In this video you'll learn about a generic approach to paginate data from a remote API or local database.
Get the source code for this video here: github.com/philipplackner/CMP-PaginationProject Creation & First Hello World App - Spring Boot 4 Basics With KotlinPhilipp Lackner2025-07-16 | In this video, you'll learn about what Spring Boot and a backend is, why Kotlin is a great language for it and how you can build your very first hello world URL endpoint for it.
00:00 – Intro 01:14 – What is a Back End? 02:49 – What is Spring Boot? 04:18 – Why Build Spring Boot Backends with Kotlin? 06:12 – Build Your First "Hello World" URL EndpointTHIS Brand New Attribute Makes Compose Texts Fully Responsive (Auto-Scaling!)Philipp Lackner2025-07-13 | You'll learn how you can use the new autoTextSize attribute from Compose texts to build responsive texts that automatically scale between a minimum and maximum font size.
Get the source code for this video on GitHub: github.com/philipplackner/AutoTextComposableStateful vs. Stateless Composables In Jetpack Compose? - Everything You Need to KnowPhilipp Lackner2025-07-09 | In this video, I'll compare Composable UI components that contain local state with remember and mutableStateOf with stateless Composables that receive UI state from the outside, typically from a ViewModel.
Get the source code for this video on GitHub: github.com/philipplackner/StatefulStatelessComposablesIntroduction to Spring Boot for Android Developers In 15minPhilipp Lackner2025-07-06 | You're an Android or KMP developer, but were always interested in backend development? In this video I show you the core idea of Spring Boot with Kotlin and how easily you can get started with it as a Kotlin developer.
📺 Full 2025 Backend Dev Crash Course for Beginners With Spring Boot youtube.com/watch?v=tXC9DQRWHUQNew Stable Android Studio, Firebender AI & More - Android News July 2025Philipp Lackner2025-07-02 | In this episode of Android News I go over the most relevant changes of Android & KMP from June.
00:00 - Intro 00:18 - Android Studio Narwahl | 2025.1.1 IS Now Stable 01:55 - Compose Multiplattform 1.9.0-Alpha02 03:54 - Android 16 is now Available 04:57 - Firebender - Cursor for Android StudioKoin Annotations In Compose Multiplatform - Beginners Guide to Compile-Time Dependency InjectionPhilipp Lackner2025-06-29 | In this course, you'll learn about compile-time dependency injection using Koin for Android, iOS and Desktop targets in Compose Multiplatform. You'll learn about modules, ViewModels, platform-specific dependencies, as well as qualifiers.
00:00 - Introduction 00:44 - What is Dependency Injection? 04:25 - Real DI vs. Service Locator 10:07 - Koin Annotations Setup 18:50 - Creating sample dependencies 26:48 - Modules & providing dependencies 34:57 - Platform-specific dependencies 40:58 - ViewModel module 45:23 - Qualifiers 48:10 - Trying it out on all platforms✅ The Full Android 16 Migration Checklist - Your Todos For API Level 36Philipp Lackner2025-06-25 | In this video, I'll share every major change about Android 16 with you so afterwards you'll clearly know what you have to adjust in your code.
00:00 - Intro 00:38 - Bumping the SDK levels 00:57 - Edge-to-edge enforcement 01:54 - Back Gesture 03:27 - Elegant Font APIs deprecated 04:00 - Scheduled Executor Service 05:01 - Adaptive Layouts 06:34 - Health and Fitness Permissions 07:18 - Android 16 introduces 2 new IntentsThe Full Jetpack Compose Responsive UI Crash CoursePhilipp Lackner2025-06-22 | In this video, you'll learn about all kinds of different ways to make your Compose Multiplatform UI dynamic and responsive while minimizing duplicate code.
Get the source code for this video on GitHub: hgithub.com/philipplackner/CMP-Theming/tree/responsivenessHow to Upload & Download Files In Spring Boot - Full Production GuidePhilipp Lackner2025-06-18 | In this video, you'll learn how you can receive and process Multipart files in Spring Boot with Java to store these on the local file system along with metadata being stored in a MongoDB instance. You'll learn about best practices when it comes to handling files server-side.
Get the source code for this video on GitHub: github.com/philipplackner/SpringBootFileUploadDownloadFull Guide to Material3 Theming in Compose MultiplatformPhilipp Lackner2025-06-15 | In this video, you'll learn how you can set up your Material3 theme in Compose Multiplatform with colors, fonts and shapes.
➡️ Kotlin Multiplatform Wizard kmp.jetbrains.com/?android=true&ios=true&iosui=compose&includeTests=trueSimple Spring Boot Pagination With Pageable & Data RepositoriesPhilipp Lackner2025-06-11 | In this video, I'll show you how you can set up your Spring Boot Java backend to respond with paginated data from a MongoDB instance. This also works with other DBs.
📺 Full 2025 Backend Dev Crash Course for Beginners With Spring Boot (Kotlin, JWT Auth, MongoDB): youtube.com/watch?v=tXC9DQRWHUQ
Get the source code for this video on GitHub: github.com/philipplackner/SpringBootPaginationBeginners Crash Course to the New Navigation 3 Library (Android & KMP)Philipp Lackner2025-06-08 | Another nav library from Google? In this video, I'll go over Navigation 3 and why it's actually not so bad to have another one 🙂
Get the source code for this video on GitHub: github.com/philipplackner/Navigation3GuideTech Interviews, Talks & More - My Day at KotlinConf 2025 In CopenhagenPhilipp Lackner2025-06-04 | See my impressions from KotlinConf 2025 including interviews with interesting people from the tech community. Thanks to JetBrains for sponsoring this video.
⭐ Courses with real-life practices ⭐ Save countless hours of time ⭐ 100% money back guarantee for 30 days ⭐ Become a professional Android developer now: pl-coding.com/premium-courses
💻 Let me be your mentor and become an industry-ready Android developer in 10 weeks: pl-coding.com/drop-table-mentoringExciting KMP Changes, New Android Studio & More - Android News June 2025Philipp Lackner2025-06-01 | In this episode of Android News I'll go over the most relevant news for Android & KMP developers from May 2025.
00:00 - Intro 00:11 - Android Studio Meerkat Feature Drop | 2024.3.2 01:52 - Compose Multiplattform 1.8.0 05:30 - JetBrains is entering into a strategic partnership with Spring Boot 06:43 - New Google Play Requirement 08:34 - New Navigation LibraryHot Reload In Compose Multiplatform (CMP) - THIS Is All You Have to KnowPhilipp Lackner2025-05-28 | In this video you'll learn how to set up the brand new hot reload feature for Compose Multiplatform projects. Hot reload in CMP allows you to instantly refresh your UI during runtime when you change your code.
Regular programming advice on my Instagram page: instagram.com/_philipplackner_1h Spring Boot Logging Crash Course For Beginners (Config, Remote Logs, JSON Logging & More)Philipp Lackner2025-05-21 | In this video you'll learn everything you need to know about logging the right way on Spring Boot. This crash course will be split into these parts:
Console logging Changing default logger config (+ log setup for dev & prod) Remote logging with Grafana Loki Rotating JSON file logs
Afterwards, you'll be able to know what to log where and how to set up your rules to only see what you need to see.
📺 Full 2025 Backend Dev Crash Course for Beginners With Spring Boot (Kotlin, JWT Auth, MongoDB) youtube.com/watch?v=tXC9DQRWHUQ
00:00 - Introduction 2:00 - Console logging 7:05 - Configuring what to log when 13:14 - Grafana Loki overview 16:24 - Console logger config with Logback 24:10 - Grafana Loki log appenders 44:20 - Attaching custom Loki metadata 53:46 - Rotating JSON file logs 1:01:17 - Production logging best practicesHow You Get Your Compose UI From Hundreds of Recompositions to Almost ZeroPhilipp Lackner2025-05-18 | In this video I'll share some common realistic examples of how Compose UI can recompose more often than it should - and what you can do against that. Please note, that these tips shouldn't be applied blindly, but only if you really face performance issues, since optimizing recompositions is one of the trickiest things to do when it comes to UI performance.
Regular programming advice on my Instagram page: instagram.com/_philipplackner_5 Anti-Patterns With Coroutines & Flows You MUST Avoid!Philipp Lackner2025-05-14 | In this video I'll share 5 big anti-patterns with you when it comes to using coroutines & Flows.
00:00 - Intro 00:21 - Anti-Pattern 1 02:46 - Anti-Pattern 2 08:37 - Anti-Pattern 3 12:37 - Anti-Pattern 4 19:08 - Anti-Pattern 5Master Android Architecture With My New 14h Course (FREE for Campus Members!)Philipp Lackner2025-05-11 | New course is out fully focused on building Android apps with a bullet-proof architecture! And the best? As a Campus member, you can get this new course FOR FREE!
00:00 – Intro 00:23 – What’s the focus of the new course? 01:56 – The app you'll build 03:35 – Create a memo button, moods, and more inside your EchoJournal 08:57 – Option 1: One-time invest 09:17 – Option 2: The Mobile Dev Campus + the idea behind 12:16 – Courses included in the Campus 12:38 – App challenges in the Campus 13:49 – Community & access to me 15:05 – The new subscription plans 15:57 – The Ultimate plan 16:18 – Real student results 16:41 – The exclusive launch deal 16:31 – The current offerMy Top 10 UX Quick Tips to Instantly Improve the User-Friendliness of Your Mobile AppPhilipp Lackner2025-05-07 | In this video I'll share 10 super useful tips you can instantly apply to your app to improve its UX.
00:00 - Intro 00:39 - Tip 1 01:41 - Tip 2 02:35 - Tip 3 03:20 - Tip 4 + 5 04:59 - Tip 6 06:24 - Tip 7 07:34 - Tip 8 09:46 - Tip 9 11:09 - Tip 10Generate Whole Apps With Firebase Studio, New Kotlin Features & More - Android News May 2025Philipp Lackner2025-05-04 | In this episode of Android News, I go over lots of crazy changes to the Android and Kotlin ecosystem, such as Firebase Studio, Google Play Console changes, new Kotlin features, IntelliJ updates or brand new Jetpack Compose utility 🙌
00:00 - Intro 00:25 - Design Patterns Workshop 00:43 - Update on context Parameters 04:34 - Google Play Changes 06:39 - Update IntelliJ 2025.1 09:10 - New Room Version 2.7.0 10:01 - Android 16 Beta 4 Release 11:14 - Compose April’25 Update 13:31 - Firebase StudioWhy 99% Are Using Coroutine Dispatchers WRONG!Philipp Lackner2025-04-30 | 🎯 Get professional app dev challenges, join a committed community and more in the Campus: pl-coding.com/campus?utm_source=youtube&utm_campaign=default&utm_medium=video&cmc_strip=utm
00:00 - Intro 00:26 - Two bad examples 01:40 - Differences between coroutines and threads 03:23 - Dispatchers.IO & Dispatchers.Default 04:17 - Which one is better for what and why?Spring Boot Profiles: Manage Dev, Staging & Production Environments EasilyPhilipp Lackner2025-04-27 | In this video you'll learn about profiles in Spring Boot and how you can use them to create different application configs depending on the environment (dev, staging, prod) and how you can create beans just for a certain environment.
Get the source code for this video on GitHub: github.com/philipplackner/spring-boot-profilesThe 3 Biggest Coding Mistakes I Made In My Android ProjectsPhilipp Lackner2025-04-23 | We're all doing things that end up not being ideal. In this video, I'll share mistakes I made in the past which led to issues later on, so you don't have to make them.
00:00 - Intro 00:18 - Mistake 1 09:42 - Mistake 2 15:45 - Mistake 3Full Guide to Testing APIs on Android & KMP With Ktor MockEnginePhilipp Lackner2025-04-20 | In this video you'll learn how you can work with Ktor MockEngine to mock API calls for your tests. It also includes a guide on integration testing in general.
Get the source code for this video on GitHub: github.com/philipplackner/TestingWithKtorKtor vs. Spring Boot - Which Backend Framework Is Best For Mobile Developers?Philipp Lackner2025-04-16 | In this video I compare two popular backends among Kotlin developers: Spring Boot and Ktor. I will compare them in four categories to help you pick the backend that fits to you.
00:00 - Intro 01:06 - Core Differences 03:52 - Maturity 06:22 - Ease of use 20:32 - Personal Experience 24:40 - OutroClean Architecture: The ONE Change That Transforms Use Cases From Terrible to Super UsefulPhilipp Lackner2025-04-13 | In this video I go over why 99% of Android devs misunderstand use cases which leads to an overcomplicated useless architecture and how you can avoid that.
Regular programming advice on my Instagram page: instagram.com/_philipplackner_Full Guide to Auto-Deploy a Spring Boot Backend (VPS Server, GitHub Actions, HTTPS, Security)Philipp Lackner2025-04-09 | In this video, you'll learn how you can deploy a JAR-based backend (Spring Boot, Ktor, etc.) to a self-hosted VPS instance from Hetzner for just 3$/month. I'll walk you through creating the VPS instance, connecting to it via SSH, securing it via a custom user account, setting up and running a systemd service, setting up Nginx as a reverse-proxy with our own SSL certificate and custom domain and lastly how we can automate this deployment via a GitHub Actions pipeline when pushing to the master branch.
Get 20€ worth of Hetzner credits to create your VPS instance: https://hetzner.cloud/?ref=j8CRwH4G9Fmr
⭐ Courses with real-life practices ⭐ Save countless hours of time ⭐ 100% money back guarantee for 30 days ⭐ Become a professional Android developer now: pl-coding.com/premium-courses
00:00 - Introduction 3:07 - VPS Hosting 7:36 - Setting up the VPS 19:14 - Copying the SSH key for existing servers 23:52 - Creating an admin user 35:55 - Creating an SSH alias 38:58 - Installing Java 40:53 - Pushing the JAR to our server 46:06 - Systemd service setup 58:42 - SSL & Custom domain setup 1:08:08 - GitHub Actions automation 1:18:26 - Permitting service relaunch without sudo 1:20:11 - Creating a GitHub repository secret 1:21:40 - Testing everything 1:27:35 - Configuring a firewallFreelancing as Mobile Dev vs. Full-time Job - Which Path Is Best For YOU?Philipp Lackner2025-04-06 | In this video I compare the freelance route with becoming an employee in four categories: Earnings potential, security, freedom and skill development.
00:00 - Intro 00:46 - Earning Potential 03:15 - Security 05:28 - Freedom 10:04 - Skill Development 12:05 - Summary 13:52 - OutroAndroid 16 Features, Android Studio Meerkat, New APIs & More - Android News April 2025Philipp Lackner2025-04-02 | Another episode of Android News in which I summarize the most relevant news for Android & Kotlin developers, so you don't need to look it up yourself.
00:00 - Intro 00:39 - Ktor 3.1.0 Release 03:34 - Android 16 Beta 2 & 3 12:35 - TrustedTime API 14:44 - Window size classes 16:05 - Compose Multiplatform BackHandler 16:28 - Kotlin Multiplatform drops support for fleet 17:21 - Stable release of Android Studio Meerkat 19:01 - Android Studio Narwhal Canary 20:04 - OutroFull 2025 Backend Dev Crash Course for Beginners With Spring Boot (Kotlin, JWT Auth, MongoDB)Philipp Lackner2025-03-30 | Get an introduction to building a CRUD backend that allows users to register and login and then save notes in a MongoDB instance. This crash course uses Kotlin and covers REST APIs from the absolute basics up to building a fully working secured backend.
⭐ Courses with real-life practices ⭐ Save countless hours of time ⭐ 100% money back guarantee for 30 days ⭐ Become a professional Android developer now: pl-coding.com/premium-courses
00:00 Prerequisites 1:43 - What even is a REST API? 7:25 - What is a backend framework? 9:55 - What we will build 11:02 - Creating a Spring Boot project 15:20 - Project roundtrip 21:18 - Mongo Atlas setup 33:14 - Saving notes to MongoDB 1:06:00 - Base setup for security config 1:12:55 - Checking notes in Mongo Atlas 1:14:24 - Spring's Bean mechanism 1:17:30 - Deleting notes 1:21:05 - Setting up the user collection 1:30:12 - JWT generation & verification 1:57:27 - User registration & login 2:35:55 - Responding with correct status codes 2:44:57 - Field validation 2:52:47 - Trying it out & fixing last bugs10 Things I Wouldve Taught My Younger Self About DevelopmentPhilipp Lackner2025-03-26 | In this video I share 10 pieces of advice with you that will help you to do better as a developer in your overall career.
00:00 - Intro 00:21 - 1. Requirements are not requirements 01:28 - 2. Nobody is waiting for you 02:12 - 3. Perception Matters more than reality 03:07 - 4. Code reviews rarely catch bugs but are great for learning 05:07 - 5. Don’t take a senior as the sole source of truth 05:53 - 6. Best Practices are rarely universal 07:16 - 7. People online agree on 90% of things and clash over the remaining 10 % 09:36 - 8. Focus on personality over hard skills 11:47 - 9. Don’t base your enjoyment on just writing code 14:19 - 10. Exchange ideas with others 15:55 - OutroHow to Refactor Legacy Android Code With a Clear Step-By-Step ApproachPhilipp Lackner2025-03-23 | In this video I'll show you the most common anti-patterns in Android codebases and how you can refactor your codebase to follow proper architectural standards again with a clear step-by-step plan.