Skip to content

Commit

Permalink
Merge pull request #343 from tyehooney/main
Browse files Browse the repository at this point in the history
v_1.0.0
  • Loading branch information
tyehooney authored Feb 9, 2022
2 parents b158eee + 7b40a71 commit 1a2e71a
Show file tree
Hide file tree
Showing 308 changed files with 15,996 additions and 2 deletions.
2 changes: 2 additions & 0 deletions .github/ISSUE_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
## Overview (Required)
-
13 changes: 13 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
## Issue
- close #ISSUE_NUMBER

## Overview (Required)
-

## Links
-

## Screenshot
Before | After
:--: | :--:
<img src="" width="300" /> | <img src="" width="300" />
36 changes: 36 additions & 0 deletions .github/workflows/develop-branch-review.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
name: Develop Branch CI

on:
push:
branches: [ develop ]
pull_request:
branches: [ develop ]

jobs:
build:

runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2
- name: set up JDK 11
uses: actions/setup-java@v2
with:
java-version: '11'
distribution: 'adopt'
cache: gradle

- name: Decrypt Services
run: gpg --quiet --batch --yes --always-trust --decrypt --passphrase="$SECRET_SERVICE_TAR_GPG" --output ./app/services.tar ./app/services.tar.gpg
env:
SECRET_SERVICE_TAR_GPG: ${{ secrets.SECRET_SERVICE_TAR_GPG }}

- name: Unzip Services
run: tar xvf ./app/services.tar -C ./app

- name: Grant execute permission for gradlew
run: chmod +x gradlew
- name: Build with Gradle
run: ./gradlew build
- name: Run Unit Test
run: ./gradlew testDebugUnitTest
182 changes: 182 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,182 @@
*.iml
.gradle
/local.properties
.idea
.DS_Store
/build
/captures
.externalNativeBuild
.cxx
local.properties
/app/google-services.json

# Created by https://www.toptal.com/developers/gitignore/api/android,androidstudio
# Edit at https://www.toptal.com/developers/gitignore?templates=android,androidstudio

### Android ###
# Built application files
*.apk
*.aar
*.ap_
*.aab

# Files for the ART/Dalvik VM
*.dex

# Java class files
*.class

# Generated files
bin/
gen/
out/
# Uncomment the following line in case you need and you don't have the release build type files in your app
# release/

# Gradle files
.gradle/
build/

# Proguard folder generated by Eclipse
proguard/

# Log Files
*.log

# Android Studio Navigation editor temp files
.navigation/

# Android Studio captures folder
captures/

# Keystore files
# Uncomment the following lines if you do not want to check your keystore files in.
#*.jks
#*.keystore

# External native build folder generated in Android Studio 2.2 and later
.cxx/

# Google Services (e.g. APIs or Firebase)
# google-services.json

# Freeline
freeline.py
freeline/
freeline_project_description.json

# fastlane
fastlane/report.xml
fastlane/Preview.html
fastlane/screenshots
fastlane/test_output
fastlane/readme.md

# Version control
vcs.xml

# lint
lint/intermediates/
lint/generated/
lint/outputs/
lint/tmp/
# lint/reports/

# Android Profiling
*.hprof

### Android Patch ###
gen-external-apklibs
output.json

# Replacement of .externalNativeBuild directories introduced
# with Android Studio 3.5.

### AndroidStudio ###
# Covers files to be ignored for android development using Android Studio.

# Built application files

# Files for the ART/Dalvik VM

# Java class files

# Generated files

# Signing files
.signing/

# Local configuration file (sdk path, etc)

# Proguard folder generated by Eclipse

# Log Files

# Android Studio
/*/build/
/*/local.properties
/*/out
/*/*/build
/*/*/production
*.ipr
*~
*.swp

# Keystore files
*.jks
*.keystore

# Google Services (e.g. APIs or Firebase)
# google-services.json

# Android Patch

# External native build folder generated in Android Studio 2.2 and later

# NDK
obj/

# IntelliJ IDEA
*.iws
/out/

# OS-specific files
.DS_Store?
._*
.Spotlight-V100
.Trashes
ehthumbs.db
Thumbs.db

# Legacy Eclipse project files
.classpath
.project
.cproject
.settings/

# Mobile Tools for Java (J2ME)
.mtj.tmp/

# Package Files #
*.war
*.ear

# virtual machine crash logs (Reference: http://www.java.com/en/download/help/error_hotspot.xml)
hs_err_pid*

## Plugin-specific files:

# JIRA plugin
atlassian-ide-plugin.xml

# Crashlytics plugin (for Android Studio and IntelliJ)
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties
fabric.properties

### AndroidStudio Patch ###

!/gradle/wrapper/gradle-wrapper.jar

# End of https://www.toptal.com/developers/gitignore/api/android,androidstudio
56 changes: 54 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,54 @@
# android03-IvyClub
안드로이드 그룹 프로젝트 3조 아이비클럽 저장소입니다.
<h1 align="center">컨택</h1>

<p align="center">
<a href="https://android-arsenal.com/api?level=21"><img alt="API" src="https://img.shields.io/badge/API-21%2B-brightgreen.svg?style=flat"/></a>
<a href="https://github.com/boostcampwm-2021/android03-Contact/actions/workflows/develop-branch-review.yml"><img alt="API" src="https://github.com/boostcampwm-2021/android03-Contact/actions/workflows/develop-branch-review.yml/badge.svg"/></a>
</p>

<p align="center">
ReadMe in <a href="https://github.com/boostcampwm-2021/android03-Contact/blob/develop/docs/ReadMeEn.md">English</a><br>
Contact는 안드로이드 기반의 지인 관리 애플리케이션입니다.
<br>

<p align="center">
<img src="https://user-images.githubusercontent.com/57510192/143352328-dece1dcf-60f6-4726-a161-3d8db1aa8576.png" width="75%" />
</p>

## Previews
<img src="https://user-images.githubusercontent.com/57510192/143807697-396a4e55-3175-48e8-86d7-81e01111fab6.gif" width="100%">

## 제공되는 기능
- 친구와 지인의 정보를 기록하고 저장할 수 있는 **컨택트**입니다.
- 여러분들의 소중한 파트너를 기록해보세요. 어떤 정보라도 좋습니다.
- 지인 정보를 기록함으로써 지인을 기억하고 다음 만남에서 더 자연스럽게 대화를 이어나갈 수 있도록 도와드릴게요.
- 이뿐만 아니라 지인과의 약속을 저장해주시면 기억하고 있다가 해당 약속을 알림으로 알려드릴게요.
- 컨택을 보호하기 위해 비밀번호와 지문인식 기능을 이용할 수 있어요. 걱정하지 마세요.

## 기술 스택
- Minimum SDK level 21로 98% 이상의 안드로이드 디바이스 지원
- 100% [Kotlin](https://kotlinlang.org/) 기반 + [Coroutines](https://developer.android.com/kotlin/coroutines) + [Flow](https://developer.android.com/kotlin/flow)
- [Jetpack](https://developer.android.com/jetpack)
- ViewModel
- Room Persistence
- Architecture
- MVVM Architecture ( View - Databinding - ViewModel - Model )
- Repository Pattern
- DI를 위한 [Hilt](https://developer.android.com/training/dependency-injection/hilt-android)
- 지문인식을 위한 [Biometric](https://developer.android.com/jetpack/androidx/releases/biometric)
- 알림을 위한 [WorkManager](https://developer.android.com/topic/libraries/architecture/workmanager)
- 이미지 처리를 위한 [Glide](https://github.com/bumptech/glide)
- 온보딩 애니메이션을 위한 [Lottie](https://airbnb.io/lottie/#/)
- Unit test를 위한 [JUnit 4](https://github.com/junit-team/junit4)
- CI를 위한 [Github Actions](https://github.com/boostcampwm-2021/android03-Contact/tree/develop/.github/workflows)
- 한국어, 영어, 중국어 지원

## 릴리즈
이번 겨울 구글 플레이 스토어에서 만나요.

## MAD Scorecard
<img src="https://user-images.githubusercontent.com/57510192/143381010-667f6493-b547-46f1-9e24-0d967c4cfd0b.png">
<img src="https://user-images.githubusercontent.com/57510192/143814020-43f3aaac-f21a-4b17-a166-e37121d29184.png">
<img src="https://user-images.githubusercontent.com/57510192/143814025-e21ff3cb-9eed-4e0c-ae23-87f9ea8d9d98.png">

## 연락처
email : bcivyclub@gmail.com
1 change: 1 addition & 0 deletions app/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/build
89 changes: 89 additions & 0 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
plugins {
id("com.android.application")
kotlin("android")
kotlin("kapt")
id("kotlin-android")
id("androidx.navigation.safeargs.kotlin")
id("dagger.hilt.android.plugin")
id("com.google.gms.google-services")
id("com.google.android.gms.oss-licenses-plugin")
id("com.google.firebase.crashlytics")
}

android {
defaultConfig {
applicationId = "com.ivyclub.contact"
versionCode = Apps.versionCode
versionName = Apps.versionName
}

buildTypes {
getByName("release") {
isMinifyEnabled = true
isShrinkResources = true
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
}

lint {
isAbortOnError = false
}
}
buildFeatures {
viewBinding = true
dataBinding = true
}
testOptions {
unitTests.isReturnDefaultValues = true
}
}

dependencies {
implementation(Dep.AndroidX.core)
implementation(Dep.AndroidX.appcompat)
implementation(Dep.AndroidX.material)
implementation(Dep.AndroidX.constraintLayout)
implementation(Dep.AndroidX.navigationUIKtx)
implementation(Dep.AndroidX.legacySupport)
implementation(Dep.AndroidX.navigationFragmentKtx)
implementation(Dep.AndroidX.activityKtx)
implementation(Dep.AndroidX.fragmentKtx)
implementation(Dep.AndroidX.viewpager2)
implementation(Dep.AndroidX.support)
implementation(Dep.AndroidX.liveDataKtx)
implementation(Dep.AndroidX.lifecycleRuntimeKtx)
implementation(Dep.AndroidX.biometric)
implementation(Dep.AndroidX.workRuntime)
implementation(Dep.AndroidX.hiltWork)
implementation(Dep.Kotlin.coroutine)
implementation(Dep.Kotlin.coroutineCore)
implementation(Dep.Libs.glide)
implementation(Dep.Libs.gson)
implementation(Dep.Libs.flexboxLayout)
implementation(Dep.Libs.hilt)
implementation(Dep.Libs.hiltViewModel)
implementation(Dep.Libs.indicator)
implementation(Dep.Libs.lottie)
implementation(Dep.Libs.jBCrypt)
implementation(Dep.Libs.ossLicensesLibrary)
implementation(platform(Dep.Firebase.firebaseBom))
implementation(Dep.Firebase.crashlyticsKtx)
implementation(Dep.Firebase.analyticsKtx)
implementation(project(mapOf("path" to ":data")))
kapt(Dep.AndroidX.roomCompiler)
kapt(Dep.Libs.hiltCompiler)
kapt(Dep.Libs.hiltViewModelCompiler)
kapt(Dep.Libs.hiltWorkCompiler)
testImplementation(Dep.Test.jUnit)
testImplementation(Dep.Test.mockito)
testImplementation(Dep.Test.coroutines)
testImplementation(Dep.Test.mockitoInline)
debugImplementation(Dep.Libs.leakCanary)
androidTestImplementation(Dep.Test.ext)
androidTestImplementation(Dep.Test.espresso)
androidTestImplementation(Dep.Test.hilt)
androidTestImplementation(Dep.Test.core)
androidTestImplementation(Dep.Test.contrib)
}
Loading

0 comments on commit 1a2e71a

Please sign in to comment.