Everything that broke moving FeedFlow's Compose Multiplatform macOS app from GitHub Releases to the App Store: sandboxing, architectures, and more.
Write
Publishing a Compose macOS app on App Store: architectures, sandboxing and native libraries
Publishing a Kotlin Multiplatform Android, iOS, and macOS app with GitHub Actions
An index of the series on setting up GitHub Actions CI to publish FeedFlow, a Kotlin Multiplatform app, to Play Store, App Store, and GitHub Releases.
How to publish a Kotlin Multiplatform macOS app on the App Store with GitHub Actions
Part four of the CI series: a GitHub Actions pipeline that deploys FeedFlow's Compose Multiplatform macOS app to the App Store.
How to publish a Kotlin Multiplatform macOS app on GitHub Releases with GitHub Actions
Part three of the CI series: automating the publishing of FeedFlow's macOS app to GitHub Releases, outside the Mac App Store.
How to publish a Kotlin Multiplatform iOS app on App Store with GitHub Actions
Part two of the CI series: a GitHub Actions pipeline to build and ship the Kotlin Multiplatform iOS app of FeedFlow to the App Store.
How to publish a Kotlin Multiplatform Android app on Play Store with GitHub Actions
Part one of the CI series: a GitHub Actions pipeline to build and deploy the Kotlin Multiplatform Android app of FeedFlow to Google Play.
Using annotations to improve iOS APIs on Kotlin Multiplatform
Using Kotlin 1.8's @HiddenFromObjC and @ObjCName annotations to clean up the iOS API surface of a Kotlin Multiplatform project.
Introducing FeedFlow, a minimalistic and opinionated RSS Reader
Introducing FeedFlow, a minimalistic RSS reader for Android, iOS, and macOS built with Kotlin Multiplatform. An overview of the project.
Migrating to Jetpack Compose: a step by step journey
A step-by-step migration of Secure QR Reader from the old View system to Jetpack Compose, with a matching commit for every step.
Organize your Views: SwiftUI edition
The SwiftUI companion to the Compose article: organizing a SwiftUI codebase with stateless views and state hoisting.
Organize your Views: Jetpack Compose edition
How to structure a Jetpack Compose codebase to avoid god classes, giant composables, and other messy-UI traps.
How to create a parameterized base test class in Kotlin
Combining JUnit 4's Parameterized runner with a shared base test class in Kotlin without losing common setup.