Skip to content

An application that illustrates fetching data from remote api and caching it in local storage for both IOS and Android platforms using Kotlin Multiplatform Mobile and SqlDelight.

License

Notifications You must be signed in to change notification settings

Felix-Kariuki/KmmCaching

Repository files navigation

KmmCaching

An application that illustrates fetching data from remote data source and caching it in local storage for both IOS and Android platforms using Kotlin Multiplatform Mobile and SqlDelight.

NOTE: The api used to develop this project was hosted on heroku and is no longer hosted so you might fail to see the quotes

SqDelight Pros

  • It generates type-safe code and classes from the different SQL statements.
  • It is compatible with Kotlin Multi-platform (KMM)
  • SQL Delight is better when dealing with multi-table databases.

If you are good in Swift Feel Free to implement the IOS Design

ScreenShot

Android

IOS

Plugins and Resources

Tech Stack

  • Kotlin - Kotlin is a cross-platform, statically typed, general-purpose programming language with type inference. Kotlin is designed to interoperate fully with Java, and the JVM version of Kotlin's standard library depends on the Java Class Library, but type inference allows its syntax to be more concise
  • Sqlelight - a crossplatform database library built on Kotlin

  • Coroutines - a concurrency design pattern that you can use on Android to simplify code that executes asynchronously

  • Swift - Swift is a powerful and intuitive programming language for iOS, iPadOS, macOS, tvOS, and watchOS. Writing Swift code is interactive and fun, the syntax is concise yet expressive, and Swift includes modern features developers love. Swift code is safe by design and produces software that runs lightning-fast.

  • KMM (Kotlin MultiPlatform Mobile) - Kotlin Multiplatform Mobile (KMM) is an SDK designed to simplify the development of cross-platform mobile applications. You can share common code between iOS and Android apps and write platform-specific code only where it's necessary. For example, to implement a native UI or when working with platform-specific APIs.

  • Ktor - Ktor is a framework to easily build connected applications – web applications, HTTP services, mobile and browser applications. Modern connected applications need to be asynchronous to provide the best experience to users, and Kotlin coroutines provide awesome facilities to do it in an easy and straightforward way. The goal of Ktor is to provide an end-to-end multiplatform framework for connected applications.

Data Source

This application fetches programming quotes from the Programming Quotes Api.

Author

Felix Kariuki

Buy Me A Coffee

Do Reach Out :

License and Copyright

MIT LICENSE

MIT License

Copyright (c) 2022 Felix  Kariuki

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

About

An application that illustrates fetching data from remote api and caching it in local storage for both IOS and Android platforms using Kotlin Multiplatform Mobile and SqlDelight.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published