Skip to content

Commit

Permalink
Merge pull request #92 from VictorKabata/clean-up
Browse files Browse the repository at this point in the history
Update readme
  • Loading branch information
VictorKabata committed Aug 4, 2023
2 parents 85675e4 + 65ce582 commit 4366a12
Show file tree
Hide file tree
Showing 6 changed files with 42 additions and 49 deletions.
25 changes: 25 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
## Description
<!-- Describe the purpose and changes introduced by this pull request. -->

## Issue
<!-- Link to the related issue(s) if applicable. -->

## Changes Made
<!-- List the main changes made in this pull request. -->

## Screenshots / GIFs
<!-- Add any relevant screenshots or GIFs showcasing the changes (if applicable). -->

## Checklist
<!-- Mark the completed items with [x] and provide any additional comments when necessary. -->
- [ ] I have tested the changes on both Android and iOS platforms.
- [ ] I have written unit tests for the new code ___(if applicable)___.
- [ ] I have updated the project's documentation ___(if necessary)___.
- [ ] I have checked for any potential code duplications and removed them.
- [ ] I have run the Kotlin/Compose Multiplatform Gradle tasks and verified that they complete successfully.
- [ ] I have considered the impact of these changes on the existing codebase.

## Additional Notes
<!-- Add any other relevant information or notes that may be helpful for the code review. -->

<!-- Feel free to add any additional sections that may be specific to your project. -->
1 change: 1 addition & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
name: Build

on:
workflow_dispatch:
pull_request:

jobs:
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/deployDebug.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
name: Deploy Debug

on:
workflow_dispatch:
push:
branches: [ main ]

Expand Down
64 changes: 15 additions & 49 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,20 +4,20 @@
<img src="https://img.shields.io/badge/-KOTLIN-E50914?logo=kotlin&logoColor=white&style=for-the-badge">
<img src="https://img.shields.io/badge/-ANDROID-E50914?logo=android&logoColor=white&style=for-the-badge">
<img src="https://img.shields.io/badge/-IOS-E50914?logo=ios&logoColor=white&style=for-the-badge">
<img src="https://img.shields.io/badge/-WINDOWS-E50914?logo=windows&logoColor=white&style=for-the-badge">
<img src="https://img.shields.io/badge/-LINUX-E50914?logo=linux&logoColor=white&style=for-the-badge">
<img src="https://img.shields.io/badge/-MACOS-E50914?logo=apple&logoColor=white&style=for-the-badge">
<img src="https://img.shields.io/badge/-WINDOWS-CCCCCC?logo=windows&logoColor=606060&style=for-the-badge">
<img src="https://img.shields.io/badge/-LINUX-CCCCCC?logo=linux&logoColor=606060&style=for-the-badge">
<img src="https://img.shields.io/badge/-MACOS-CCCCCC?logo=apple&logoColor=606060&style=for-the-badge">
</p>

# Notflix

# 🛠️Migrating to KMP - [Develop Branch](https://youtu.be/dQw4w9WgXcQ)
# 🛠️Migrating to Compose Multiplatform - [Develop Branch](https://youtu.be/dQw4w9WgXcQ)

An android and desktop app built using [Kotlin Multiplatforom](https://kotlinlang.org/docs/multiplatform.html) that consumes [TMDB API]("https://developers.themoviedb.org/3") to display current trending, upcoming and popular movies🍿 and tvshows🎬.
An android and iOS app built using [Kotlin Multiplatforom](https://kotlinlang.org/docs/multiplatform.html) that consumes [TMDB API]("https://developers.themoviedb.org/3") to display current trending, upcoming and popular movies🍿 and tvshows🎬.

[Kotlin Multiplatform](https://kotlinlang.org/docs/multiplatform.html) is a framework of Kotlin that allows for sharing of a single codebase for business logic across different [targets](https://kotlinlang.org/docs/multiplatform-dsl-reference.html#targets)/platforms. Some of the targets supported by kotlin are: Android, iOS, Kotlin/JVM, Kotlin/JS, Android NDK, Windows, Linux, macOS etc.

[Compose Multiplatform](https://www.jetbrains.com/lp/compose-mpp/) is a UI framework maybe by Jetbrains that allow for simple and accelerated desktop application and web development using [compose](https://developer.android.com/jetpack/compose). Compose multiplatform also allows sharing compose UI code between diffrent platforms. eg android, desktop(Windows, Linux, MacOS) and web.
[Compose Multiplatform](https://www.jetbrains.com/lp/compose-mpp/) is a UI framework maybe by Jetbrains that allow for simple and accelerated desktop application and web development using [compose](https://developer.android.com/jetpack/compose). Compose multiplatform also allows sharing compose UI code between diffrent platforms. eg android, iOS desktop(Windows, Linux, MacOS) and web.

## Table Of Content

Expand Down Expand Up @@ -78,19 +78,16 @@ Run with the following command:

The project currently has 3 main modules:

### 1. [androidApp](https://github.com/VictorKabata/Notflix/tree/main/androidApp)
### 1. [appAndroid](https://github.com/VictorKabata/Notflix/tree/main/androidApp)

This module contains the android application's UI built using [Jetpack compose](https://developer.android.com/jetpack/compose).

### 2. [desktopApp](https://github.com/VictorKabata/Notflix/tree/main/desktopApp)

This module contains the desktop application's UI built using [Compose Multiplatform](https://www.jetbrains.com/lp/compose-mpp/).

## 3. [iOSApp](https://github.com/VictorKabata/Notflix/tree/main/iOSNotflix)
## 2. [appiOS](https://github.com/VictorKabata/Notflix/tree/main/iOSNotflix)
This module contains iOS code that holds the iosApp UI built using [Swift UI](https://developer.apple.com/xcode/swiftui/)


### 4 . [shared](https://github.com/VictorKabata/Notflix/tree/main/shared)
### 3 . [shared](https://github.com/VictorKabata/Notflix/tree/main/shared)
This module contains shared code that holds the domain and data layers and some part of the presentation logic ie.shared viewmodels


Expand Down Expand Up @@ -134,57 +131,26 @@ The `presentation` package contains shared viewmodels code.

### Shared

- [Compose Multiplatform](https://github.com/JetBrains/compose-multiplatform) - Compose Multiplatform is a declarative framework for sharing UIs across multiple platforms with Kotlin based on Jetpack compose.
- [Koin](https://insert-koin.io/docs/setup/v3.1) - Kotin dependency injection library with multiplatform support.
- [Ktor](https://ktor.io/docs/http-client-multiplatform.html) - Provides multiplatform libraries required to make network calls to the REST API.
- [Realm](https://github.com/realm/realm-kotlin) - Caching of application data from network responses.
- [Multiplatform Settings](https://github.com/russhwolf/multiplatform-settings) - This is a Kotlin library for Multiplatform apps, so that common code can persist key-value data.
- [kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) - Library support for Kotlin coroutines with multiplatform support.
- [kotlinx.serialization](https://github.com/Kotlin/kotlinx.serialization) - Provides sets of libraries for various serialization formats eg. JSON, protocol buffers, CBOR etc.
- [kotlinx.datetime](https://github.com/Kotlin/kotlinx-datetime) - A multiplatform Kotlin library for working with date and time.
- [Napier](https://github.com/AAkira/Napier) - Logger library for Kotlin Multiplatform.
- [Mockk](https://github.com/mockk/mockk) - Library for creating mocks for tests.

### Android

- [Jetpack Compose](https://developer.android.com/jetpack/compose?gclid=Cj0KCQiA95aRBhCsARIsAC2xvfwC4pw6JG3r8U_4zVVSzwfCSIMMM8MKPMGAOTRoMjpkfpimPVz1FwoaAqlUEALw_wcB&gclsrc=aw.ds) - Modern toolkit for building native UI.
- [Coil](https://coil-kt.github.io/coil/) - An image loading library for Android backed by kotlin coroutines.
- [Splash Screen API](https://developer.android.com/guide/topics/ui/splash-screen) - Splash screen API reduces boilerplate code required to create a splash screen.
- [Accompanist Navigation Animation](https://google.github.io/accompanist/navigation-animation/) - Add animation support when navigating between screens using Compose navigation component.
- [Accompanist Pager](https://google.github.io/accompanist/pager/) - A library which provides paging layouts for Jetpack Compose. If you've used Android's ViewPager before, it has similar properties.
- [Accompanist Insets](https://google.github.io/accompanist/insets/)
- [Accompanist System UI Controller](https://google.github.io/accompanist/systemuicontroller/) - A library that provides easy-to-use utilities for updating the System UI bar colors within Jetpack Compose.
- [Accompanist Material Placeholder](https://google.github.io/accompanist/placeholder/) -
- [Accompanist Pager Indicator](https://google.github.io/accompanist/api/pager-indicators/com.google.accompanist.pager/-horizontal-pager-indicator.html) - A horizontally laid out indicator for a HorizontalPager or VerticalPager, representing the currently active page and total pages drawn using shape.

## iOS
- [SwiftUI](https://developer.apple.com/xcode/swiftui/) - SwiftUI is Apple's brand new declarative UI Toolkit for building user interfaces for iOS, tvOS, macOS, and watchOS.
- [Cached Async Image](https://github.com/lorenzofiamingo/swiftui-cached-async-image) - SwiftUI Image loading framework with caching capability.
- [KMP Async](https://github.com/rickclephas/KMP-NativeCoroutines) - A library to use kotlin coroutines in Swift.
- [Cocoa Pods](https://cocoapods.org/) - CocoaPods is a dependency manager for Swift and Objective-C Cocoa projects.
- [UIimage Colors](https://github.com/jathu/UIImageColors) - Swift Library to extract colors from images.

- [BuildKonfig](https://github.com/yshrsmz/BuildKonfig) - Supports embedding values from gradle file.
- [Image Loader](https://github.com/qdsfdhvh/compose-imageloader) - Compose Image library for Kotlin Multiplatform

## Extras

- [GitHub Actions](https://docs.github.com/en/actions) -The project uses GitHub actions for CI/CD operations such as running automated builds, tests and deploying applications.
- [KtLint](https://github.com/pinterest/ktlint) - The project uses KtLint to check for syntax correctness.

## Demo
## Screenshots

## Android App

<img src="assets/img0.png" width="250"/> <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"/>
<img src="assets/img0.png" width="250"/> <img src="assets/img2.png" width="250"/>

## iOS App

<img src="assets/img9.0.png" width="250"/> <img src="assets/img9.1.png" width="250"/> <img src="assets/img10.png" width="250"/> <img src="assets/img11.png" width="250"/> <img src="assets/img12.png" width="250"/> <img src="assets/img13.png" width="250"/>

## Desktop App

<img src="assets/img6.png" width="900" height=500/>

<img src="assets/img7.png" width="900" height=500/>
<img src="assets/img8.png" width="900" height=500/>
<img src="assets/img9.0.png" width="250"/> <img src="assets/img11.png" width="250"/> <img src="assets/img12.png" width="250"/>

## Related Resources

Expand Down
Binary file modified assets/img11.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/img9.0.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 4366a12

Please sign in to comment.