Skip to content

Let's create Read, Write and Share Blog community with Let's Blog written in Compose Multiplatform

License

Notifications You must be signed in to change notification settings

dungngminh/lets_blog_compose_multiplatform

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

demo.v4.mp4

Kotlin

Let's Blog - Read, Write and Share Blog platform

AppLogo.webp

Read, Write and Share Blog platform written in Compose Multiplatform, created by @dungngminh.

Getting Started πŸ€–

Everyone loves writing through their own stories, experiences, knowledge, lifehack,.. via blog and so do I. I want to create a place for everyone writing, sharing, reading blogs, anything, anyway, anytime and cross-platform. That's why I created this project. I hope this will be a good platform for everyone. This platform is also integrated Gemini AI to help read more efficiently, no more skimming through lines, find the needed information and also a good example of Compose Multiplatform. And now, Let's Blog! πŸš€

Feature set πŸ”₯

  • βœ… Huge blogs list, popular blogs that filter by favorite count.
  • βœ… Summary blog content with Gemini
  • βœ… Create new blog with WYSIWYG interactive editor.
  • βœ… Search blogs by title, content,
  • βœ… Save blog to favorite list.
  • βœ… Authentication
  • βœ… Manage user profile information, user's blogs

Architecture πŸ—οΈ

  • This app shared UI, logic code between Android, iOS, Web, Desktop with Compose Multiplatform.

  • Includes 2 main modules:

    • composeApp: Shared code between Android, iOS, Web, Desktop.
    • backend: Backend side written in Dart, using Dart Frog framework.
  • App architecture follows Recommended app architecture from Android.

architecture

What I used πŸ’ͺ

... and some utilities libraries like FlowExt, Landscapist, etc.

Platform πŸ“¦

  • βœ… Android
  • βœ… iOS
  • βœ… Web Wasm
  • βœ… Desktop JVM

How to run this project ❓

First step

Clone this project to your local machine.

git clone https://github.com/dungngminh/lets_blog_compose_multiplatform.git

This project includes 4 run configurations:

  • composeApp: Run Android app
  • iosApp: Run iOS app
  • WebApp: Run Web app
  • DesktopApp: Run Desktop app

Prepare env configuration

  • Currently, I filled env for KotlinConf contest, you can use it for testing in env.contest.properties.
  • If you want to run this project, with your own configuration, you need to create env properties file, I also put a sample file is env.sample.properties, you can copy it to env.properties and fill your own configuration. Currently, source code is filled with env.contest.properties file, you can change it in build.gradle.kts file at buildKonfig block in composeApp module.

buildKonfig

  • Env information:
    • GEMINI_KEY: Gemini API key
    • BASE_URL: Base URL for backend API

Backend side

Backend side is written in Dart, using Dart Frog framework, you can find it in install instruction here from backend folder.

Android

Run composeApp via imported configuration.

iOS

Run iosApp via imported configuration.

Desktop

Run DesktopApp via imported configuration or run command:

./gradlew :desktopApp:run

Web

Run WebApp via imported configuration or run command:

./gradlew :composeApp:wasmJsBrowserRun -t --quiet

Screenshots πŸ“Έ

Android

Click to expand
Home Search Favorite
home search favorite
Detail Blog Profile Blog Editor
detail profile editor
Preview Blog to upload Login Register
preview login register
Summary Blog
summary summary_1 summary_2

iOS

Click to expand
Home Search Favorite
home search favorite
Detail Blog Profile Blog Editor
detail profile editor
Preview Blog to upload Login Register
preview login register
Summary Blog
summary summary_1 summary_2

Desktop (MacOS)

Click to expand
Home Search Favorite
home search favorite
Detail Blog Profile Blog Editor
detail profile editor
Preview Blog to upload Login Register
preview login register
Summary Blog
summary

Web

Click to expand
Home Search Favorite
home search favorite
Detail Blog Profile Blog Editor
detail profile editor
Preview Blog to upload Login Register
preview login register
Summary Blog
summary summary_1

Contributors 🌟


Dzung Nguyen Minh
πŸ’» πŸ“– πŸ›

More about Compose Multiplatform πŸš€

Learn more about Kotlin Multiplatform, Compose Multiplatform, Kotlin/Wasm…

We would appreciate your feedback on Compose/Web and Kotlin/Wasm in the public Slack channel #compose-web. If you face any issues, please report them on GitHub.

About

Let's create Read, Write and Share Blog community with Let's Blog written in Compose Multiplatform

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages