Skip to content

Discover movies app illustrating Kotlin Multiplatform development best practices

License

Notifications You must be signed in to change notification settings

michaelbel/movies

Folders and files

NameName
Last commit message
Last commit date

Latest commit

64a9282 · Sep 1, 2024
Aug 27, 2024
Oct 28, 2023
Aug 26, 2024
Sep 1, 2024
Apr 3, 2024
Jul 22, 2024
Jul 23, 2024
Jul 22, 2024
Jul 22, 2024
Aug 8, 2024
Sep 1, 2024
May 25, 2024
Jul 22, 2024
Jul 21, 2024
Aug 26, 2024
Aug 26, 2024
Jul 21, 2024
Jul 15, 2024
Oct 27, 2023
Aug 26, 2024
Oct 29, 2022
Dec 26, 2017
Oct 27, 2023
Jul 23, 2024
Jul 23, 2024
Oct 27, 2023
Aug 26, 2024

Repository files navigation

en ru




Movies

Check PR Last Commit

Movies - easy way to discover popular movies. This is a simple TMDb client.

The goal of this project is to implement an app that provides a consistent user experience on Android Phones, Android Tablets, Android Auto, Android Wear, Android TV, iOS, Desktop (MacOS, Windows, Linux) and Web. Used Material3, Compose, Kotlin and Multiplatform.

The app is currently in development. Android app is already available.

Screenshots

Android

iOS

macOS

Requirements

Take a look at local.properties and fill it with your own TMDB API key like this:

TMDB_API_KEY=your_own_tmdb_api_key

The app is still usable without an API key. In this case functionality will be limited.

Build

Choose a run configuration for an appropriate target in Android Studio and run it.

  • Clone this repository using latest version of Android Studio

  • Run the app on your Device or Emulator

    • For Android, run androidApp configuration.
    • For iOS, run iosApp configuration.
    • For Desktop, run desktopApp configuration.
  • Android Flavors

    • Android with Google Mobile Services:
      ./gradlew :androidApp:installGmsDebug
    • Android with Huawei Mobile Services:
      ./gradlew :androidApp:installHmsDebug
    • Android Free and Open Source Software:
      ./gradlew :androidApp:installFossDebug
  • Desktop Run

      ./gradlew :desktopApp:run

Download

Technologies

Git Kotlin Ktor Multiplatform Compose Material3 Gradle Android Room Firebase Coil Clean Dependabot Github Codebeat Tmdb InAppReview InAppUpdate

Modules

Loading
graph TD;
    main-impl-->androidApp
    main-impl-->iosComposeApp
    main-impl-->desktopApp

    account-->main-impl
    auth-->main-impl
    details-->main-impl
    feed-->main-impl
    gallery-->main-impl
    search-->main-impl
    settings-->main-impl
    debug-->main-impl

    account-impl-->account
    auth-impl-->auth
    details-impl-->details
    feed-impl-->feed
    gallery-impl-->gallery
    search-impl-->search
    settings-impl-->settings
    debug-impl-->debug

    core-->account-impl
    core-->auth-impl
    core-->details-impl
    core-->feed-impl
    core-->gallery-impl
    core-->search-impl
    core-->settings-impl
    core-->debug-impl

    navigation-->core
    ui-->core
    common-->core
    interactor-->core
    notifications-->core
    work-->core
    widget-->core
    platform-services-->core

    analytics-->interactor
    repository-->interactor

    network-->repository
    persistence-->repository

Roadmap

Movies App Roadmap

Contributing

All contributions are welcome!

⭐ Join stargazers
↗️ Submit your PR

Issues

If you find any problems or would like to suggest a feature, please feel free to file an issue.

Contacts

Star History

Star History Chart

License

Apache License 2.0
Copyright 2017 Michael Bely

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.