Kotlin Multiplatform project that gets network data from Food2Fork.ca

Related tags


Food2Fork App Icon Food2Fork Recipe App

This is the codebase for a Kotlin Multiplatform Mobile course. [Watch the course](https://codingwithmitch.com/courses/kotlin-multiplatform-mobile/)


Shared Components

  1. Ktor (Network Client)
  2. SQL Delight (Caching Client)
  3. Kotlinx.datetime

Android Specific Components

  1. Jetpack Compose
  2. Jetpack Compose Navigation
    • (Single activity, zero fragments)
  3. Accompanist Coil
  4. Hilt
    • I decided to use AAC ViewModel because it gives so much state management stuff for free. Maybe in the future a shared viewmodel will be more practical. I'll talk about this in detail in the course.
    • See this tweet thread if you want to do some reading: https://twitter.com/ianhlake/status/1388517293005574144

iOS Specific Components

  1. SwiftUI

Android Studio Version

The project dependencies have been updated and you can use Android Studio Bumblebee (2021.1.1) Canary 3. Download from the archive here.

Kotlin Multiplatform Talks

  1. Mitch Tabian
    1. Is Kotlin Multiplatform Ready for Production?
    2. KMM - Fragmented Podcast
  2. Daniele Barconcelli
  3. Ekaterina Petrova
  4. Dmitry Savvinov
  5. Kevin Galligan
  6. Ben Asher and Alec Strong
  • Gradle build failed

    Gradle build failed

    Error message:

    FAILURE: Build failed with an exception.

    • Where: Build file '~/Food2Fork-KMM/androidFood2Fork/build.gradle.kts' line: 1

    • What went wrong: An exception occurred applying plugin request [id: 'com.android.application']

    Failed to apply plugin [id 'com.android.internal.version-check'] Minimum supported Gradle version is 6.8.2. Current version is 6.5. If using the gradle wrapper, try editing the distributionUrl in ~/Food2Fork-KMM/gradle/wrapper/gradle-wrapper.properties to gradle-6.8.2-all.zip

    opened by FoRRestDp 2
  • How to join your discord server.

    How to join your discord server.

    Dear sir, I'm following you for around 3-4 months and I want to join your discord server. I have some doubts regarding Ktor, so I thought that by joining your discord server I'll get some help:).

    opened by EGOR-IND 2
  • Cannot run project on AS Arctic Fox 2020.3.1 Beta 3

    Cannot run project on AS Arctic Fox 2020.3.1 Beta 3

    After downloading the project I am required to update

    private const val gradleBuildTools = "7.0.0-alpha09"to "7.0.0-beta04"

    but this causes the following exception

    * Exception is:
    org.gradle.api.GradleException: Please initialize at least one Kotlin target in 'shared (:shared)'.
    Read more https://kotlinlang.org/docs/reference/building-mpp-with-gradle.html#setting-up-targets
    	at org.jetbrains.kotlin.gradle.plugin.KotlinMultiplatformPluginWrapper.whenBuildEvaluated(KotlinPluginWrapper.kt:217)
    	at org.jetbrains.kotlin.gradle.plugin.KotlinBasePluginWrapper$apply$1.execute(KotlinPluginWrapper.kt:68)
    	at org.jetbrains.kotlin.gradle.plugin.KotlinBasePluginWrapper$apply$1.execute(KotlinPluginWrapper.kt:67)

    I just went through the README file again and noticed that this project was built on an older version of AS. It would be cool to know which dependencies have to be updated in order to be able to run the project on the latest beta version.

    opened by GianlucaVeschi 2
  • Update to latest

    Update to latest

    bug invalid 
    opened by kevindmoore 2
  • SwiftUI previews not working

    SwiftUI previews not working

    Do I have to do anything special to get the SwiftUI previews working? Any preview of a view that uses a Type defined in the shared coded crashes for me (RecipeCard.swift for instance). At first it says that it took more than 5 seconds, and after a few tries it crashes.

    opened by cgaisl 1
  • What is the course for which this is the repo?

    What is the course for which this is the repo?

    Hi. What is the course for which this is the repo?

    opened by lgtout 1
  • how to run IOS app?

    how to run IOS app?

    I got the following exception whenewer I try to run ios version: failed with code: 65

    opened by NurseyitTursunkulov 0
Mitch Tabian
Mitch Tabian
Gradle plugin for simplify Kotlin Multiplatform mobile configurations

Mobile Multiplatform gradle plugin This is a Gradle plugin for simple setup of Kotlin Multiplatform mobile Gradle modules. Setup buildSrc/build.gradle

IceRock Development 59 Jul 5, 2021
Dependency Injection library for Kotlin Multiplatform, support iOS and Android

Multiplatform-DI library for Kotlin Multiplatform Lightweight dependency injection framework for Kotlin Multiplatform application Dependency injection

Anna Zharkova 12 Jul 27, 2021
Kotlin Multiplatform Mobile App Template

KMMT : Kotlin Multiplatform Mobile Template Kotlin Multiplatform Mobile Development Simplified KMMT is a KMM based project template designed to simpli

Jitty Andiyan 117 Jul 19, 2021
Android Kotlin paged endpoints made easy

A smart and simple way to work with paged endpoints. To see an example of how to use it, check out the introducing Fountain posts: part one and part t

xmartlabs 174 Jun 28, 2021
BuildConfig for Kotlin Multiplatform Project

BuildKonfig BuildConfig for Kotlin Multiplatform Project. It currently supports embedding values from gradle file. Table Of Contents Motivation Usage

Yasuhiro SHIMIZU 187 Jul 28, 2021
DI can be simple. Forget about modules and components. Just use it!

PopKorn - Kotlin Multiplatform DI PopKorn is a simple, powerful and lightweight Kotlin Multiplatform Dependency Injector. It doesn't need any modules

Pau Corbella 109 May 22, 2021
Generic AST parsing library for kotlin multiplatform

kotlinx.ast kotlinx.ast is a generic AST (Abstract Syntax Tree) parsing library, Kotlin is currently the only supported language. The library is desig

null 140 Jul 27, 2021
YouTube Player library for Android and Chromecast, stable and customizable.

android-youtube-player android-youtube-player is a stable and customizable open source YouTube player for Android. It provides a simple View that can

Pierfrancesco Soffritti 2.4k Aug 4, 2021
KaMP Kit by Touchlab is a collection of code and tools designed to get your mobile team started quickly with Kotlin Multiplatform.

KaMP Kit Welcome to the KaMP Kit! About Goal The goal of the KaMP Kit is to facilitate your evaluation of Kotlin Multiplatform (aka KMP). It is a coll

Touchlab 1.2k Aug 2, 2021
A simple library that can connect your autocomplete edittext to Google places api

Google Places AutoComplete EditText A simple library that can connect your autocomplete edittext to Google's places api Supporting Places AutoComplete

Mukesh Solanki 67 May 3, 2021
A Bluetooth kotlin multiplatform "Cross-Platform" library for iOS and Android

Blue-Falcon A Bluetooth "Cross Platform" Kotlin Multiplatform library for iOS, Android, MacOS, Raspberry Pi and Javascript. Bluetooth in general has t

Andrew Reed 146 Jul 24, 2021
The most complete and powerful data-binding library and persistence infra for Kotlin 1.3, Android & Splitties Views DSL, JavaFX & TornadoFX, JSON, JDBC & SQLite, SharedPreferences.

Lychee (ex. reactive-properties) Lychee is a library to rule all the data. ToC Approach to declaring data Properties Other data-binding libraries Prop

Mike 104 May 28, 2021
Koi, a lightweight kotlin library for Android Development.

Koi - A lightweight Kotlin library for Android Koi include many useful extensions and functions, they can help reducing the boilerplate code in Androi

Hello World 507 Jul 11, 2021
A collection of hand-crafted extensions for your Kotlin projects.

Splitties Splitties is a collection of small Kotlin multiplatform libraries (with Android as first target). These libraries are intended to reduce the

Louis CAD 1.8k Aug 4, 2021