Discover movies app illustrating Kotlin Multiplatform development best practices
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.
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.
./gradlew :androidApp:installGmsDebug
./gradlew :androidApp:installHmsDebug
./gradlew :androidApp:installFossDebug
graph TD;
feature-->androidApp
feature-->desktopApp
account-->feature
auth-->feature
details-->feature
feed-->feature
gallery-->feature
search-->feature
settings-->feature
debug-->feature
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
All contributions are welcome!
⭐ Join stargazers
↗️ Submit your PR
If you find any problems or would like to suggest a feature, please feel free to file an issue.
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.