Gistagram
Kotlin Multiplatform GitHub/Instagram clone for android, iOS and desktop platforms
Install / Use
/learn @VictorKabata/GistagramREADME
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
<img src="assets/img1.png" width="250"> <img src="assets/img2.png" width="250"> <img src="assets/img3.png" width="250"> <img src="assets/img4.png" width="250"> <img src="assets/img5.png" width="250">
iOS
<img src="assets/img13.png" width="250"> <img src="assets/img9.png" width="250"> <img src="assets/img11.png" width="250"> <img src="assets/img10.png" width="250"> <img src="assets/img12.png" width="250">
Desktop
<img src="assets/img6.png" width="800"> <img src="assets/img7.png" width="800"> <img src="assets/img8.png" width="800">
Sample Projects
- 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
- Official intro to Kotlin Multiplatform
- Migrating to Kotlin DSL medium article by Chepsi.
- Make your Android application work on iOStutorial.
- CocoaPods overview and setup tutorial.
- Creating a cross-platform mobile applicationofficial tutorial by the Ktor team.
- Using Koin in a Kotlin Multiplatform Project article by John O'Reilly.
- GitHub README on creating compose multiplatform desktop application
- GitHub Repository Template showcasing how to setup a gradle plugins by Harun Wangereka.
- Official SQLDelight KMP Documentation on getting started with SQLDelight.
- Getting started with Compose Multiplatform.
- Developing UI: Compose Multiplatform article by Raywenderlich.
- Wrapping Kotlin Flow with Swift Combine Publisher in a Kotlin Multiplatform project by John O'Reilly.
- T-shaping for iOS Developers with Kotlin Multiplatform in 4 hours! .
- Kotlin Multiplatform Mobile: what is it and when should you use it? blog post.
- Introduction to Kotlin Multiplatform Mobile - Getting Started article.
Related Skills
feishu-drive
348.2k|
things-mac
348.2kManage Things 3 via the `things` CLI on macOS (add/update projects+todos via URL scheme; read/search/list from the local Things database)
clawhub
348.2kUse the ClawHub CLI to search, install, update, and publish agent skills from clawhub.com
postkit
PostgreSQL-native identity, configuration, metering, and job queues. SQL functions that work with any language or driver
