Home
Softono

FredsRoadtripStoryteller

Open source Kotlin
168
Stars
15
Forks
1
Issues
3
Watchers
2 years
Last Commit

 About FredsRoadtripStoryteller

Hear local historical markers as you travel on your road-trip. 100% Shared Compose UI, Kotlin native cross-platform codebase. Includes Cocoapods, Google Maps, GPS Location, notifications, background location tracking, In-App purchases, web-scraping, networking, persistent storage, CommonFlow

Platforms

Web Self-hosted iOS Android

Languages

Kotlin

Need Help Installing FredsRoadtripStoryteller?

We provide expert installation service for this software. Our team will install, configure, and secure FredsRoadtripStoryteller on your server. plans start at just $30.

FredsRoadtripStoryteller

View on GitHub

image

Fred's Roadtrip Storyteller

Listen to historical markers as you travel - Learn about local history as you drive.

  • KMP (Kotlin Multi-Platform) Compose-based Proof-of-concept experimental app using Google Maps for iOS and Android.
  • Pure Kotlin App using SHARED core and SHARED Compose based UI, running in native Kotlin.

Kotlin badge-kmp badge-kmp badge-android badge-ios

YouTube series following the development of the app:

image

YouTube Video Views

Assets

Screen Shots

Android Screenshots

image image image image image image image image image image

iOS Screenshots

note: screenshots may differ slightly from current version

image image image image image image image image image image image

External Locations for Promoting Project

Application Architecture

Developer notes

INSTALLATION

  • Secrets Files

    • Check the *.example files for proper placement
    • Must create AppSecrets.plist from within Xcode - in password vault, for google maps account ID's.
    • Can get google-services.json from Google Cloud Console for google maps account ID's.
  • Add to local.properties file located in the root directory (create if it doesn't exist):

    • MAPS_API_KEY=YOUR_KEY where YOUR_KEY is your key from previous step;
    • sdk.dir=YOUR_SDK_PATH where YOUR_SDK_PATH is a path to Android SDK in your system.
  • From root dir, must run ./gradlew :shared:generateDummyFramework.

  • Must run pod update then pod install in the iosApp folder.

  • Must build the Android app before running the iOS app.

  • Open project in IntelliJ IDEA or Android Studio and run the androidApp configuration.

  • Note: There are many spurious warning messages from the AS IDE and pop-up warnings.

    • It seems these can be safely ignored. (I assume they will address these issues in upcoming releases)

Source: (Code snapshot taken 10/8/23) https://github.com/JetBrains/compose-multiplatform/tree/master/examples/cocoapods-ios-example

Latest commit Ran & Built with:

  • Android Studio Koala | 2023.3.2 Canary 2
  • Build #AI-233.14475.28.2332.11606850, built on March 21, 2024
  • Runtime version: 17.0.10+0-17.0.10b1087.21-11572160 aarch64
  • VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o.
  • macOS 14.4
  • GC: G1 Young Generation, G1 Old Generation
  • Memory: 4096M
  • Cores: 10
  • Metal Rendering is ON
  • Registry:
  • ide.tooltip.initialDelay=812
  • ide.browser.jcef.gpu.disable=true
  • debugger.new.tool.window.layout=true
  • analyze.exceptions.on.the.fly=true
  • ide.experimental.ui=true
  • Non-Bundled Plugins:
  • com.c5inco.modifiers (1.0.15)
  • dev.j-a.swift (0.21.0.336-233)
  • wu.seal.tool.jsontokotlin (3.7.4)
  • idea.plugin.protoeditor (233.13135.65)
  • com.wakatime.intellij.plugin (14.3.11)
  • com.github.airsaid.androidlocalize (3.0.0)
  • DBN (3.4.3073.0)
  • net.seesharpsoft.intellij.plugins.csv (3.3.0-233)
  • com.jetbrains.kmm (0.8.2(233)-8)
  • com.squareup.sqldelight (2.0.1)
  • com.developerphil.adbidea (1.6.15)
  • org.jetbrains.compose.desktop.ide (1.6.1)
  • by.overpass.svg-to-compose-intellij (0.14)
  • com.github.copilot (1.5.0.5148)
  • mobi.hsz.idea.gitignore (4.5.2)
  • com.abeade.plugin.figma.import (1.0.8)

Code style

KMP Stuff

Android

iOS

-[Solved] iOS 17 MapKit: How to use Map(selection:)? -https://www.hackingwithswift.com/forums/swiftui/ios-17-mapkit-how-to-use-map-selection/22886

https://www.hackingwithswift.com/books/ios-swiftui/integrating-mapkit-with-swiftui

Dev notes

Asset links

Potential app names:

icons: https://www.google.com/search?q=flat+icons+navigation&sca_esv=585465592&tbm=isch&sxsrf=AM9HkKkbHZOj7DIYI42VD56hpTfPgmYrYQ:1701032930698&source=lnms&sa=X&ved=2ahUKEwj_kte8yeKCAxVQIEQIHeeIDDsQ_AUoAXoECAIQAw&biw=1622&bih=1050&dpr=2#imgrc=Tx7XOXuIaxmJtM

Play store badge generator: https://play.google.com/intl/en_us/badges/

Privacy Policy: https://www.privacypolicygenerator.info/ https://www.privacypolicygenerator.info/download.php?lang=en&token=dhslNflkEHizHHbsBssrE8zM1p5AXwnR

Firebase console: https://console.firebase.google.com/u/0/project/talkingmarkers/overview

Photo editors

Original Readme:

Compose Multiplatform iOS CocoaPods example

This example showcases using Kotlin Multiplatform shared module in Swift as a CocoaPods framework.

The official Kotlin documentation provides more information on working with CocoaPods:

Setting up your development environment

To setup the environment, please consult these instructions.

How to run

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

run-configurations.png