All Projects → VictorKabata → Notflix

VictorKabata / Notflix

Licence: other
Kotlin Multiplatform playground

Programming Languages

kotlin
9241 projects
swift
15916 projects

Projects that are alternatives of or similar to Notflix

tv-maniac
Tv-Maniac is a Multiplatform app (Android & iOS) for viewing TV Shows from TMDB.
Stars: ✭ 55 (-79.78%)
Mutual labels:  kotlin-coroutines, kotlin-multiplatform, jetpack-compose, ktor-client
D-KMP-sample
D-KMP Architecture official sample: it uses a shared KMP ViewModel and Navigation for Compose and SwiftUI apps.
Stars: ✭ 636 (+133.82%)
Mutual labels:  kotlin-multiplatform, jetpack-compose, ktor-client, multiplatform-settings
Scout
Scout is a kotlin multiplatform application that allows users to search and save games to lists to be browsed later.
Stars: ✭ 28 (-89.71%)
Mutual labels:  koin, kotlin-multiplatform, jetpack-compose
kmm
Rick & Morty Kotlin Multiplatform Mobile: Ktor, Sqldelight, Koin, Flow, MVI, SwiftUI, Compose
Stars: ✭ 52 (-80.88%)
Mutual labels:  koin, kotlin-multiplatform, jetpack-compose
LinuxCommandLibrary
1M+ downloads Linux reference app with basics, tips and formatted man pages
Stars: ✭ 333 (+22.43%)
Mutual labels:  kotlin-multiplatform, jetpack-compose
moko-network
Network components with codegeneration of rest api for mobile (android & ios) Kotlin Multiplatform development
Stars: ✭ 107 (-60.66%)
Mutual labels:  kotlin-multiplatform, ktor-client
StarWars
Minimal GraphQL based Jetpack Compose, Wear Compose and SwiftUI Kotlin Multiplatform sample (using StarWars endpoint - https://graphql.org/swapi-graphql)
Stars: ✭ 165 (-39.34%)
Mutual labels:  kotlin-multiplatform, jetpack-compose
mobius.kt
Kotlin Multiplatform framework for managing state evolution and side-effects
Stars: ✭ 39 (-85.66%)
Mutual labels:  kotlin-coroutines, kotlin-multiplatform
FootballNews2
Personal Android project for Football daily updates
Stars: ✭ 16 (-94.12%)
Mutual labels:  kotlin-coroutines, koin
Delish
Delish, a Food Recipes App in Jetpack Compose and Hilt based on modern Android tech-stacks and MVI clean architecture.
Stars: ✭ 356 (+30.88%)
Mutual labels:  kotlin-coroutines, jetpack-compose
ThinkRchive
An app showing all details for various Lenovo Thinkpad models. Made to try out Jepack Compose for Android.
Stars: ✭ 84 (-69.12%)
Mutual labels:  jetpack-compose, ktor-client
PreCompose
Compose Multiplatform Navigation && ViewModel
Stars: ✭ 150 (-44.85%)
Mutual labels:  kotlin-multiplatform, jetpack-compose
Splitties
A collection of hand-crafted extensions for your Kotlin projects.
Stars: ✭ 1,945 (+615.07%)
Mutual labels:  kotlin-coroutines, kotlin-multiplatform
Coffeegram
Android app using Jetpack Compose together with StateFlow and MVI
Stars: ✭ 155 (-43.01%)
Mutual labels:  kotlin-coroutines, jetpack-compose
KMP-NativeCoroutines
Library to use Kotlin Coroutines from Swift code in KMP apps
Stars: ✭ 502 (+84.56%)
Mutual labels:  kotlin-coroutines, kotlin-multiplatform
DagashiApp
Unofficial Android Dagashi Android/iOS app.
Stars: ✭ 32 (-88.24%)
Mutual labels:  kotlin-multiplatform, jetpack-compose
kmm-production-sample
This is an open-source, mobile, cross-platform application built with Kotlin Multiplatform Mobile. It's a simple RSS reader, and you can download it from the App Store and Google Play. It's been designed to demonstrate how KMM can be used in real production projects.
Stars: ✭ 1,476 (+442.65%)
Mutual labels:  kotlin-multiplatform, jetpack-compose
foodies
A clean MVVM architecture android application
Stars: ✭ 14 (-94.85%)
Mutual labels:  kotlin-coroutines, jetpack-compose
NYTimes-Compose
An offline-first application in Jetpack Compose with MVVM architecture, representing a minimalistic implementation of Top Stories API.
Stars: ✭ 98 (-63.97%)
Mutual labels:  kotlin-coroutines, jetpack-compose
Photos
No description or website provided.
Stars: ✭ 74 (-72.79%)
Mutual labels:  kotlin-coroutines, jetpack-compose

NotFlix

NotFlix

Notflix

🛠️Migrating to KMP - Develop Branch

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

Kotlin Multiplatform is a framework of Kotlin that allows for sharing of a single codebase for business logic across different targets/platforms. Some of the targets supported by kotlin are: Android, iOS, Kotlin/JVM, Kotlin/JS, Android NDK, Windows, Linux, macOS etc.

Compose Multiplatform is a UI framework maybe by Jetbrains that allow for simple and accelerated desktop application and web development using compose. Compose multiplatform also allows sharing compose UI code between diffrent platforms. eg android, desktop(Windows, Linux, MacOS) and web.

Table Of Content

Prerequisite

// ToDo

Pros of KMP/KMM

  • Faster development since you only need to write most of the business logic and tests only once.
  • Improve code quality.
  • Highly maintainable and testable code due to separation of concern in the codebase.

App Structure

Project Structure

The project currently has 3 main modules:

1. androidApp

This module contains the android application's UI built using Jetpack compose.

2. desktopApp

This module contains the desktop application's UI built using Compose Multiplatform.

3. iOSApp

This module contains iOS code that holds the iosApp UI built using Swift UI

4 . shared

This module contains shared code that holds the domain and data layers and some part of the presentation logic ie.shared viewmodels

Domain

This is the core layer of the application. The domain layer is independent of any other layers this means that changes in other layers will have no effect on domain layer eg. screen UI (presentation layer) or changing database (data layer) will not result in any code change withing domain layer.

Components of domain layer include:

  • Models: Defines the core structure of the data that will be used within the application.

  • Repositories: Interfaces used by the use cases. Implemented in the data layer.

Data

The data layer is responsible for selecting the proper data source for the domain layer. It contains the implementations of the repositories declared in the domain layer.

Components of data layer include:

  • Models

    -Dto Models: Defines POJO of network responses.

    -Entity Models: Defines the schema of the database.

  • Mappers: They perform data transformation between domain, dto and entity models.

  • Network: This is responsible for performing network operations eg. defining API endpoints using Ktor.

  • Cache: This is responsible for performing caching operations using Realm.

  • Data Sources: Responsible for deciding which data source (network or cache) will be used when fetching data and presenting the data to viewmodels.

Clean Architecture Diagram

Presentation

The presentation package contains shared viewmodels code.

Libraries

Shared

  • Koin - Kotin dependency injection library with multiplatform support.
  • Ktor - Provides multiplatform libraries required to make network calls to the REST API.
  • 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 - Logger library for Kotlin Multiplatform.
  • Mockk - Library for creating mocks for tests.

Android

iOS

  • SwiftUI - SwiftUI is Apple's brand new declarative UI Toolkit for building user interfaces for iOS, tvOS, macOS, and watchOS.
  • Cached Async Image - SwiftUI Image loading framework with caching capability.
  • KMP Async - A library to use kotlin coroutines in Swift.
  • Cocoa Pods - CocoaPods is a dependency manager for Swift and Objective-C Cocoa projects.
  • UIimage Colors - Swift Library to extract colors from images.

Extras

  • GitHub Actions -The project uses GitHub actions for CI/CD operations such as running automated builds, tests and deploying applications.
  • KtLint - The project uses KtLint to check for syntax correctness.

Demo

Android App

iOS App

Desktop App

Related Resources

In this section I've included some resources ie. articles and GitHub repositories that i used to learn about kotlin multiplatform mobile:

Videos 📽️

Articles/Blogs 📖

Sample Projects 🤖

  • KMM Sample - A sample project for experiments with Kotlin Multiplatform mobile.
  • Fantasy Premier League - Kotlin Multiplatform project with Jetpack Compose, Compose for Desktop and SwiftUI clients (and using Ktor for remote API requests and Realm for persistence).
  • KaMPKit
  • People In Space - Minimal Kotlin Multiplatform project with SwiftUI, Jetpack Compose, Compose for Wear OS, Compose for Desktop, Compose for Web, and Kotlin/JS + React clients along with Ktor backend.
  • Poetree - Poetree is a minimalistic poetry app that helps people freely access art from a global community full of poetry lovers.

Other Helpful Resources

In this section I've included resources that are not related to kotlin multiplatform mobile but were really helpful in learning other android components and tools:

Videos 📽️

  • ToDo

Articles/Blogs 📖

Sample Projects 🤖

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].