Kotlin Multiplatform project that gets network data from Food2Fork.ca

Related tags

Kotlin Food2Fork-KMM
Overview

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/)

Architecture

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
Comments
  • 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.

    grafik
    opened by GianlucaVeschi 3
  • 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
  • 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
  • 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
  • Update to Kotlin 1.6.0 and associated library changes (including fixes for some deprecations)

    Update to Kotlin 1.6.0 and associated library changes (including fixes for some deprecations)

    Description

    Upgrade Kotlin from 1.5.10 to 1.6.0 and upgrading Gradle, Compile SDK and libraries along with it. Also, removed arm64 setting from EXCLUDED_ARCHS in xcodeproj so that it can be built on M1 Mac. Also fixed some deprecations.

    Developed system environment info

    Build #AI-212.5457.46.2112.8094850, built on January 20, 2022
    Runtime version: 11.0.12+0-b1504.28-7817840 aarch64
    VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o.
    macOS 11.6
    GC: G1 Young Generation, G1 Old Generation
    Memory: 1280M
    Cores: 8
    Registry: external.system.auto.import.disabled=true
    Non-Bundled Plugins: IdeaVIM (1.9.2), org.moe.community (1.4.10), com.jetbrains.kmm (0.3.0(212-1.6.0-release-795-IJ)-132), Dart (212.5632), io.flutter (63.3.3)
    
    opened by 5altNaCl 0
  • Cannot run latest master

    Cannot run latest master

    IDE: AS Bumblebee 2021 1.1 Canary 3

    Error: No class roots are found in the JDK path: /Library/Java/JavaVirtualMachines/jdk-11.0.12.jdk/Contents/Home

    OS: Mac

    opened by crjacinro 0
Owner
Mitch Tabian
youtube.com/c/codingwithmitch
Mitch Tabian
🚆 Retrofit adapters for modeling network responses with Kotlin Result, Jetpack Paging3, and Arrow Either.

Retrofit Adapters ?? Retrofit adapters for modeling network responses with Kotlin Result, Jetpack Paging3, and Arrow Either. Sandwich If you're intere

Jaewoong Eum 293 Dec 26, 2022
Real life Kotlin Multiplatform project with an iOS application developed in Swift with SwiftUI, an Android application developed in Kotlin with Jetpack Compose and a backed in Kotlin hosted on AppEngine.

Conferences4Hall Real life Kotlin Multiplatform project with an iOS application developed in Swift with SwiftUI, an Android application developed in K

Gérard Paligot 98 Dec 15, 2022
One-stop-shop for Social Network integrations

Roguin One stop shop for Social Network integrations Use the same code for Google, Facebook and Twitter What is Roguin Social Network integrations can

Fanis Veizis 17 Aug 22, 2022
Easy to use cryptographic framework for data protection: secure messaging with forward secrecy and secure data storage. Has unified APIs across 14 platforms.

Themis provides strong, usable cryptography for busy people General purpose cryptographic library for storage and messaging for iOS (Swift, Obj-C), An

Cossack Labs 1.6k Jan 8, 2023
A basic application demonstrating IPFS for collaborative data analysis, from the perspective of a Data Analysis Provider.

Spacebox A basic application demonstrating IPFS for collaborative data analysis, from the perspective of a Data Analysis Provider. Description This pr

null 0 Jan 15, 2022
Mobile client for official Nextcloud News App written as Kotlin Multiplatform Project

Newsout Android and iOS mobile client for Nextcloud news App. The Android client is already available to download in the Play Store. F-Droid and Apple

Simon Schubert 118 Oct 3, 2022
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 331 Jan 4, 2023
A sample project that helps to start building a Mobile Kotlin Multiplatform application

Mobile Kotlin multiplatform project template A sample project that helps to start building a Mobile Kotlin Multiplatform application. It establishes a

Dizel 0 Oct 16, 2021
A Kotlin Multiplatform Project using TMDB Api. Currently supports Android,iOS,Desktop and web platforms

A Kotlin Multiplatform Project using TMDB Api(https://www.themoviedb.org/). Currently this project is implemented in following platforms Andr

Jackson E J 11 Nov 10, 2022
A Kotlin Multiplatform and Compose template that allows you to easily set up your project targeting: Android, Desktop, and Web

A Kotlin Multiplatform and Compose template that allows you to easily set up your project targeting: Android, Desktop, and Web

Carlos Mota 3 Oct 27, 2021
This is a Kotlin multiplatform template project used to generate and deploy a natively compiled AWS lambda function using the custom runtime.

Overview This is a Kotlin multiplatform template project used to generate and deploy a natively compiled AWS Lambda function using a custom runtime. U

Greg Steckman 5 Jun 25, 2022
PraxisKmm - A Kotlin multiplatform base project

PraxisKMM Minimal Kotlin Multiplatform project with SwiftUI, Jetpack Compose, Co

Mutual Mobile 45 Nov 15, 2022
Funstuff - Minimal Kotlin Multiplatform project with SwiftUI, Jetpack Compose, Compose for Wear OS, Compose for Desktop

PeopleInSpace Minimal Kotlin Multiplatform project with SwiftUI, Jetpack Compose

Shivam Dhuria 2 Feb 15, 2022
Astha Nayak 4 Oct 10, 2022
Filmesflix - Project made during the NTT DATA Android Developer bootcamp. Developing knowledge in MVVM and Clear Architecture

FilmesFlix Projeto criado para o módulo de MVVM e Clean Architecture no Bootcamp

Italo Bruno 0 Feb 12, 2022
Opinionated Redux-like implementation backed by Kotlin Coroutines and Kotlin Multiplatform Mobile

CoRed CoRed is Redux-like implementation that maintains the benefits of Redux's core idea without the boilerplate. No more action types, action creato

Kittinun Vantasin 28 Dec 10, 2022
An app architecture for Kotlin/Native on Android/iOS. Use Kotlin Multiplatform Mobile.

An app architecture for Kotlin/Native on Android/iOS. Use Kotlin Multiplatform Mobile. 项目架构主要分为原生系统层、Android/iOS业务SDK层、KMM SDK层、KMM业务逻辑SDK层、iOS sdkfra

libill 4 Nov 20, 2022
Skeleton project for show the architecture of Android project using MVVM, Clean Architecture and Kotlin coroutine Flow

ClearScoreDemo Skeleton project for showing the architecture of Android project using MVVM, Clean architecture and Kotlin coroutine Flow App Architect

Plabon Modak 1 Mar 6, 2022