Marco Gomiero
@marcoGomier
Senior Android Developer @ Airalo
Google Developer Expert for Kotlin
The rollercoaster of releasing
an Android, iOS, and macOS app
with Kotlin Multiplatform
Slide 2
Slide 2 text
@marcoGomier
feedflow.dev/
FeedFlow
Slide 3
Slide 3 text
@marcoGomier
feedflow.dev/
FeedFlow
Slide 4
Slide 4 text
@marcoGomier
FeedFlow
feedflow.dev/
Slide 5
Slide 5 text
@marcoGomier
Distribution
Slide 6
Slide 6 text
@marcoGomier
Android
• “Easy” for an Android Developer
• Sign the app
• Upload to Play Store
Slide 7
Slide 7 text
@marcoGomier
• Sign the app
• Provisioning profiles
• Upload to TestFlight
• All handled by Xcode (or manually on the CI)
iOS
Slide 8
Slide 8 text
@marcoGomier
Slide 9
Slide 9 text
@marcoGomier
• Sign the app
• Provisioning profiles
• Upload to TestFlight
• All handled by Xcode (or manually on the CI)
iOS
Slide 10
Slide 10 text
@marcoGomier
• JAR
• “Manual” distribution
• App Store
macOS - JVM App
❌
Slide 11
Slide 11 text
@marcoGomier
No Xcode, need to go manual
\o/
Slide 12
Slide 12 text
@marcoGomier
macOS - “Manual” distribution
• Sign the app
• Notarization
@marcoGomier
val logger = Logger(
config = StaticConfig(
logWriterList = listOf(
platformLogWriter(),
crashReportingLogWriter(),
),
),
tag = "FeedFlow",
)
Slide 44
Slide 44 text
@marcoGomier
val logger = Logger(
config = StaticConfig(
logWriterList = listOf(
platformLogWriter(),
crashReportingLogWriter(),
),
),
tag = "FeedFlow",
)
Slide 45
Slide 45 text
@marcoGomier
val logger = Logger(
config = StaticConfig(
logWriterList = listOf(
platformLogWriter(),
crashReportingLogWriter(),
),
),
tag = "FeedFlow",
)
Slide 46
Slide 46 text
@marcoGomier
internal expect fun crashReportingLogWriter(): LogWriter
actual fun crashReportingLogWriter(): LogWriter = CrashlyticsLogWriter()
actual fun crashReportingLogWriter(): LogWriter = SentryLogWriter()