dinopriyano / Unplash-Mobile

Practice KMM (Kotlin Multiplatform Mobile)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

AEJ : Uplash Mobile

Practice KMM (Kotlin Multiplatform Mobile).

Platform Platform Kotlin Gradle License

Table of Contents

Introduction

This project is made to practice KMM (Kotlin Multiplatform Mobile).

I use Rest API from Unsplash API for the data source.

I made it with Clean architecture, Design Pattern, Networking using Ktor, Reactive Programming using Coroutines Flow for Android and Combine for iOS, Dependency Injection using Koin, and many things.

Thank you very much :)

Requirement

  • MacOS (for XCode)
  • Android Studio (Recommended Android Studio Chipmunk)
  • Kotlin 1.6.20
  • XCode (Recommended XCode 13.3.1)
  • Cocoapods
  • Unsplash Access Key

Installation

  1. Clone or Download and Open it into Android Studio
    https://github.com/dinopriyano/Unplash-Mobile
  1. Install Cocoapods
    brew install cocoapods
  1. Register or login to Unsplash Developer Page For the tutorial, read here

  2. Put ur Unsplash Access Key and Secret Key on local.properties

    unplashAccessKey=PUT_UR_ACCESS_KEY_HERE
    unplashSecretKey=PUT_UR_SECRET_KEY_HERE
  1. Run iOS App
    • Open /unplash-ios/unplash-ios.xcworkspace with XCode
    • Then run pod install using terminal
    • Last, you can build the project

Features

  • Get Photos

Tech Stack

  • MVVM (Model-View-ViewModel) Design Pattern
  • Clean Architecture (data, domain, presentation)
  • Dependency Injection with Koin
  • Coroutines Flow
  • Combine
  • Jetpack Compose
  • Safe Loging with Kermit

License

    Copyright (C) Dino Priyano

    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.

About

Practice KMM (Kotlin Multiplatform Mobile)


Languages

Language:Kotlin 79.8%Language:Swift 14.8%Language:Ruby 5.3%