/Gistagram

Kotlin Multiplatform GitHub/Instagram clone for android, iOS and desktop platforms

Primary LanguageKotlinMIT LicenseMIT

Gistagram

Work in Progress🔨 - Develop Branch

GitHub/Instagram clone android and desktop application built using Kotlin.

Prerequisite

// ToDo

Project Structure

// ToDo

Libraries

Shared

  • Koin - Kotin dependency injection library with multiplatform support.
  • Ktor - Provides multiplatform libraries required to make network calls to the REST API.
  • SQLDelight - Cross-Platform database library
  • Realm - Caching of application data from network responses.
  • Multiplatform Settings - This is a Kotlin library for Multiplatform apps, so that common code can persist key-value data.
  • kotlinx.coroutines - Library support for Kotlin coroutines with multiplatform support.
  • kotlinx.serialization - Provides sets of libraries for various serialization formats eg. JSON, protocol buffers, CBOR etc.
  • kotlinx.datetime - A multiplatform Kotlin library for working with date and time.
  • Napier - Logging library for Kotlin Multiplatform.
  • Mockk - Library for creating mocks for tests.

iOS

  • SwiftUI - SwiftUI is Apple's brand new declarative UI Toolkit for building user interfaces for iOS, tvOS, macOS, and watchOS.
  • SDWeb Image - SwiftUI Image loading framework.
  • KMP Async - A library to use kotlin coroutines in Swift.
  • Cocoa Pods - CocoaPods is a dependency manager for Swift and Objective-C Cocoa projects.

Android

  • Jetpack Compose - Modern toolkit for building native UI.
  • Coil - An image loading library for Android backed by kotlin coroutines.

Plugins

  • KtLint - This plugin creates convenient tasks in your Gradle project that run ktlint checks or do code auto format.
  • Detekt - A static code analysis tool for the Kotlin programming language.
  • Gradle Versions Plugin - This plugin provides a task to determine which dependencies have updates.

Screenshots

Android

iOS

Desktop

Sample Projects

  1. Notflix - An android and desktop app built using Kotlin Multiplatforom that consumes TMDB API to display current trending, upcoming and popular movies🍿 and tvshows🎬.

Learning Resources

  1. Official intro to Kotlin Multiplatform
  2. Migrating to Kotlin DSL medium article by Chepsi.
  3. Make your Android application work on iOStutorial.
  4. CocoaPods overview and setup tutorial.
  5. Creating a cross-platform mobile applicationofficial tutorial by the Ktor team.
  6. Using Koin in a Kotlin Multiplatform Project article by John O'Reilly.
  7. GitHub README on creating compose multiplatform desktop application
  8. GitHub Repository Template showcasing how to setup a gradle plugins by Harun Wangereka.
  9. Official SQLDelight KMP Documentation on getting started with SQLDelight.
  10. Getting started with Compose Multiplatform.
  11. Developing UI: Compose Multiplatform article by Raywenderlich.
  12. Wrapping Kotlin Flow with Swift Combine Publisher in a Kotlin Multiplatform project by John O'Reilly.
  13. T-shaping for iOS Developers with Kotlin Multiplatform in 4 hours! .
  14. Kotlin Multiplatform Mobile: what is it and when should you use it? blog post.
  15. Introduction to Kotlin Multiplatform Mobile - Getting Started article.