Quote Wire Kotlin Multiplatform

Quote Wire is a simple app that allows you to save and share quotes. It is built using Kotlin Multiplatform, so it works on both Android and iOS.

Video

Final video of fixing issues in your code in VS Code

Built with

Features

  • Get quotes from the internet
  • Save quotes
  • Share quotes
  • View a list of your saved quotes
  • Search for quotes

App Structure

image

shared

This is a Kotlin module that contains the logic common(domain and data layers) for both Android and iOS applications, that is, the code you share between platforms.

It uses Gradle as the build system. You can add dependencies and change settings in shared/build.gradle.kts. The shared module builds into an Android library and an iOS framework.

androidApp

This is a Kotlin module that builds into an Android application. This module contains the android application’s UI built using Jetpack compose.

iosApp

This is an Xcode project that builds into an iOS application. It depends on and uses the shared module as a CocoaPods dependency and contains iOS code that holds the iosApp UI built using Swift UI

Set up the environment

To work with this template, you need the following:

Check your environment

Before you start, use the [KDoctor](https://github.com/Kotlin/kdoctor) tool to ensure that your development environment is configured correctly:
  1. Install KDoctor with Homebrew:

    brew install kdoctor
    
  2. Run KDoctor in your terminal:

    kdoctor
    

    If everything is set up correctly, you’ll see valid output:

    Environment diagnose (to see all details, use -v option):
    [✓] Operation System
    [✓] Java
    [✓] Android Studio
    [✓] Xcode
    [✓] Cocoapods
    
    Conclusion:
      ✓ Your system is ready for Kotlin Multiplatform Mobile development!
    

Otherwise, KDoctor will highlight which parts of your setup still need to be configured and will suggest a way to fix them.

Examine the project structure

Open the project in Android Studio and switch the view from Android to Project to see all the files and targets belonging to the project:

License:

Copyright 2023 Nada Feteiha

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

GitHub

View Github