A currency converter application for most of the currencies used in the world.
You can quickly convert and make mathematical operations between currencies.
graph TD;
billing-->android
ad-->android
config{config}-->client
analytics{analytics} --> android
analytics --> ios
analytics-->client
res{res}-->android
res-->ios
client{client}-->android
client-->ios
common{common}-->client
common-->backend
android(android)
ios(ios)
backend(backend)
graph TD;
KMP_Library{KMP_Library}
Target(Target)
Library
Be sure that you have latest Android Studio Canary build installed and XCode 13.0 or later.
Open CCC folder with Android Studio and select android
from configurations and run
./gradlew :client:podspec :res:podspec --parallel &&
cd ios/CCC &&
pod install --repo-update
Then open CCC/ios/CCC.xcworkspace
with XCode after the packages are resolved you can run the project, please not XCode version should be bigger than 13.2.1
./gradlew :backend:run
After you run the app probably your all API calls will fail, it is expected since the private URLs are not shared publicly. If you want the test the app with real API calls, I have prepared a fake response. Please replace all the getRates
methods in
com.oztechan.ccc.common.api.backend.BackendApiImpl
com.oztechan.ccc.common.api.free.FreeApiImpl
com.oztechan.ccc.common.api.premium.PremiumApiImpl
with below;
override suspend fun getRates(base: String): CurrencyResponse = client.get {
url {
takeFrom("https://gist.githubusercontent.com/mustafaozhan/fa6d05e65919085f871adc825accea46/raw/d3bf3a7771e872e0c39541fe23b4058f4ae24c41/response.json")
}
}.body()
Copyright 2017 Mustafa Ozhan
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.