This is the Android repository for the "PricePal" project.
Want to avoid getting ripped off while traveling abroad?
PricePal is your travel price guide app that helps you check local prices at a glance, convert currencies, and estimate taxi fares.
- ✅ Real-time exchange rates by country
- 🛒 Local price comparison list
- 🚖 Taxi fare estimation based on departure and destination
- 📍 Route visualization using Google Maps
Built with Android (Jetpack Compose) + Spring Boot REST API
📌 Checking progress
나현주(Hyeonjoo Na) | 홍지현(Jihyun Hong) |
---|---|
![]() |
![]() |
@HyeonJooooo | @Hongji03 |
Here is a table summarizing the tech stack used for implementing the project.
Name | Detail |
---|---|
Kotlin | Programming Language |
Jetpack Compose | In-code declarative app architecture |
Git | Systematic code management and collaboration |
This project includes the following library dependencies.
Name | Version | Detail |
---|---|---|
Jetpack Navigation | 2.0.21 | A library for screen transition management |
Hilt | 2.51.1 | A library for dependency injection |
Retrofit2 | 2.11.0 | A library for HTTP communication |
SharedPreference | 1.2.1 | A library for local data storage |
Room | 2.6.1 | Local database library |
Android JUnit | 1.2.1 | A library for unit testing |
This project is based on a multi-module architecture and follows the MVVM design pattern using ViewModels.
The following are the conventions that developers contributing to this project must follow.
This project follows the Gitflow branch strategy.
master
: Deployable branch unitrelease
: A branch that allows testing before deploymentdevelop
: Development branchfeature/#issue_number
: Feature-specific branchhotfix
: Hotfix branch for the master branch
All feature development follows the process below:
- Create an issue for the feature to be developed and obtain an issue number.
- Branch off from the
develop
branch and create afeature
branch named using the issue number. - Once development is complete, open a pull request to the
develop
branch. After receiving team approval, merge the changes.
Commits are written visually using Gitmoji. Below is the commit format used in this project. Please note that an empty line is included between each section.
[Gitmoji] [title]
[content]
[Issue reference (optional)]
예시)
:bug: Fix button bug
Fixed an issue where the keyboard callback was not triggered.
Refs: #123, #234
Refer to this blog for the meaning of each Gitmoji.
You can conveniently use Gitmoji with the Gitmoji Plus: Commit Button plugin provided by Android Studio.
Issues must be created using the appropriate issue template provided in this repository.
Feature Template
: Used for issues related to feature additions.Bug Template
: Used for issues related to bug fixes.
Pull requests must be created using the template provided in this repository.
The code style follows the official Android Kotlin style guide as closely as possible.
Below are the key naming conventions:
- All source files must be encoded in UTF-8.
- Kotlin file names should use
PascalCase
whenever possible. - Composable function names should use
PascalCase
. Other functions should start with a verb and usecamelCase
. Variable names should also followcamelCase
(including variables storing lambda expressions). - Variables that pass callback functions should start with
on
, e.g.,onButtonClicked
,onDataLoaded
. - Pay attention to yellow underlines in the Android Studio IDE.
Here is the Android development environment for this project:
targetSDK
: 35,minSDK
: 26- Android Studio version: Ladybug | 2024.2.1 or higher
- Testing environment: Android Studio emulator (AVD)
-
- Device name: Pixel 8
- API 35 (Android 15.0, x86_64)
- 1080 x 2400 px (412 x 915 dp)