đź“–
AppKickstarter docs
  • Get Started
    • Get started
    • Initialize third parties
    • Project organization
    • Application initialization
  • Tech things
    • Multi modules Architecture
    • Dependency injection
    • Library management
    • Secrets and Build Config
    • Backend as an implementation detail
  • Tutorials
    • Add a login page
    • Add a screen with tab bars
    • Add a settings screen
    • Display an In-App Changelog for a new published version
    • Update localizations
    • Update theme
    • Customize onboarding
    • Setup your paywall
    • Setup your first notifications
    • Format dates and save on database
    • Using a Different Backend Instead of Firebase
    • Make an infinite list with pagination
  • Features
    • Onboarding
    • Authentication
    • Firebase support
    • Offline support
    • Monetization
    • Whats new feature
    • Navigation in AppKickstarter
    • Theme
    • UI Kit
    • Dates management
    • Platform specific
    • Offline cache
    • Translations
    • Analytics
    • User management
    • Logger
    • Platform utilities
    • Maps and locations
    • Secured AI Backend Proxy
    • Settings
    • Application monitoring
    • Notifications
  • UI Kit
    • Adaptive
    • Advanced Components
    • Animated Components
    • Badges
    • Buttons
    • Cards
    • Containers
    • Dialogs
    • EmptyStates
    • Icons
    • Images
    • Lists
    • Modals
    • Tabs
    • Texts
    • Text fields
    • Toasts
    • Toggles
  • Other
    • Known issues
Powered by GitBook
On this page
  • Defining Items
  • Calling the Screen

Was this helpful?

  1. Features

Onboarding

A well-designed onboarding process is crucial to maintain user engagement and motivation.

PreviousMake an infinite list with paginationNextAuthentication

Last updated 1 year ago

Was this helpful?

Learn on how to customize the onboarding experience in AppKickstarter by changing the text and resources, as well as mapping resource identifiers to the corresponding R.raw files in the Android app.

Our high-quality onboarding system effectively showcases your app’s key features and is customizable to meet your specific needs.

Our onboarding process in AppKickstarter is demonstrated in this onboarding GIF:

Onboarding screen in AppKickstarter

To personalize your onboarding experience, you can change the texts and resources. Simply modify the texts in the shared module’s onboarding file and add your Lottie files to the R.raw folder in the androidApp module. Finally, link each onboarding item to your R.raw files in the MainScreen on the androidApp module.

Remember, the most challenging part is finding the right texts and Lottie files for your onboarding.

Defining Items

All the items in the onboarding screen are defined in a list in the shared module’s onboarding package. Here’s an example:

val onboardingItems = listOf(
    OnboardingSwipeUniquePageData( 
        titleText = "Launch ideas in no time",
        subtitleText = "with a battle-tested app template",
        buttonText = "Next",
        resId = "presence"
    ),
    OnboardingSwipeUniquePageData( 
        titleText = "Prioritize key features",
        subtitleText = "you don't need to start from scratch",
        buttonText = "Next",
        resId = "capture"
    ),
    OnboardingSwipeUniquePageData( 
        titleText = "Some crazy feature",
        subtitleText = "start now",
        buttonText = "Start",
        resId = "ai"
    ),
),
...
)

You can modify the title and subtitle text to meet your needs. Soon, you’ll also be able to localize the texts in AppKickstarter. For the resources, use an identifier such as “presence”, “capture”, or “ai”. This identifier maps to the appropriate resource for Android. We’ve chosen this method since Lottie is currently not supported on Compose for iOS. For iOS images are displayed.

Calling the Screen

When you call the onboardingScreen in the androidApp module, provide the ID of the Lottie file (R.raw.your_file):

@Composable
fun OnboardingSwipeScreenAndroid(
    headerContent: @Composable (String) -> Unit,
    requestContinue: () -> Unit
)

You don’t have to modify the lambda parameter for requestContinue since AppKickstarter saves the value indicating that the user has already seen the onboarding in offline storage and won’t display it again. The last step is to map the resource identifier to your R.raw file (your Lottie file), like so:

val resId: Int = when (it) {
    "ai" -> R.raw.ai
    "presence" -> R.raw.social_network
    "schedule" -> R.raw.schedule
    else -> throw IllegalAccessException()
}