๐ป Extracurricular/์ฝ๋ฎค๋ํฐ ๋ชจ๊ฐ์ฝ (17) ์ธ๋ค์ผํ ๋ฆฌ์คํธํ ๋ชจ๊ฐ์ฝ < Kotlin ๊ธฐ์ดํธ > -ํ๊ธฐ ์ด๊ณณ์ ์ ๋ง์ ๊ณต๊ฐ์ด๋ ์ข ๋ ์์งํ๊ฒ ํ๊ธฐ๋ฅผ ๋จ๊ฒจ๋ณผ๊นํด์! โ ๋ชจ๊ฐ์ฝ์ ์ฐธ์ฌํ๊ฒ ๋ ๊ณ๊ธฐ ์ ๋ ์ง๊ธ๊น์ง ํ๋ฒ๋ ์ฝํ๋ฆฐ์ ์จ๋ณธ ์ ์ด ์์ด์, ์ด๋ฒ ๊ฒจ์ธ๋ฐฉํ ๋์ ์ฝํ๋ฆฐ์ ๋ ํํ๋ฉด์ ์ฑ์ ๋ง๋ค์ด๋ณผ๊น? ๋ผ๋ ์๊ฐ์ ํ์ด์! ๊ทธ๋ฐ๋ฐ ๋งค์ฃผ ์์๊ธ 4์๊ฐ์ฉ ์งํ๋๋ ์๊ณ ๋ฆฌ์ฆ ์คํฐ๋์๋ ๋ค์ด๊ฐ๊ฒ ๋์๊ณ , CJ UNIT์ ๋๋ฌด ์ง์ํ๊ณ ์ถ์ด์ ๋นจ๋ฆฌ SNS ๊ณ์ ์ ๋ง๋ค์ด์ผ๊ฒ ๋ค๋ ์๊ฐ์ (CJ UNIT ์ฐ๋์ฌํญ์ SNS๋ฅผ ํ๋ฐํ๊ฒ ์ด์ํ๋ ์ฌ๋์ด๋ผ๊ณ ์จ์ ธ์์์ด์!) ๋ธ๋ก๊ทธ๋ ์ธ์คํ๊ทธ๋จ ๋ฑ์ ์ด์ํ๋๋ผ ํผ์ ๋ ํ์ ๋ฌด๋ฆฌ๋ผ๊ณ ํ๋จํ์ด์ ๐ฑ ๊ทธ๋๋ ๊ฒจ์ธ๋ฐฉํ์ด ๋๋๊ธฐ ์ ์ ์๋ก์ด ๋์ ์ ํด๋ณด๊ณ ์ถ๋ค๋ ์๊ฐ์ ์ฐ๋จน์ด๋ผ๋ ํด๋ณด์๋ ๋ง์(๏ฝก๏ฝฅ∀๏ฝฅ)๏พ๏พ์ผ๋ก ๋ชจ๊ฐ์ฝ ์ ์ฐธ๊ฐํ๊ฒ ๋์์ต๋๋ค. โ ๋ชจ๊ฐ์ฝ๋ก ์ธํ ๋ณํ(์ฝ๋ฉ ๊ณต๋ถ์ ๋ชจ๊ฐ์ฝ๊ฐ .. ๋ชจ๊ฐ์ฝ < Kotlin ๊ธฐ์ดํธ > - 15์ผ์ฐจ # ๊ณผ์ ๋ฅผ ์ ์ธํ๊ณ ์๋ ์ฌ์ฉ๋ ์ฌ์ง์ ๋ชจ๋ ์ด๊ณณ์์ ์ฐธ์กฐํ์์ต๋๋ค. https://codemate.kr/project/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-APP-%EB%A9%94%EC%9D%B4%ED%8A%B8-%EC%BD%94%ED%8B%80%EB%A6%B0-%EA%B8%B0%EC%B4%88%ED%8E%B8/15.-APK-%ED%8C%8C%EC%9D%BC%EB%A1%9C-%EB%B9%8C%EB%93%9C%ED%95%98%EA%B8%B0 ์๋๋ก์ด๋ APP ๋ฉ์ดํธ - ์ฝํ๋ฆฐ ๊ธฐ์ดํธ :: #15. APK ํ์ผ๋ก ๋น๋ํ๊ธฐ | ์ฝ๋๋ฉ์ดํธ ๐ APK ํ์ผ ํน์ ํ์ฅ์๊ฐ .apk ์ธ ํ์ผ ๋ค์ด๋ณด๊ฑฐ๋ ๋ณด์ ์ ์์ผ์ ๊ฐ์? ์ฐ๋ฆฌ๋ ๋ณดํต ๊ตฌ๊ธ ํ๋ ์ด ์คํ ์ด์์ ์ฑ์ ๋ค์ด๋ก.. ๋ชจ๊ฐ์ฝ < Kotlin ๊ธฐ์ดํธ > - 14์ผ์ฐจ โ ํ ์คํธ ๊ณต์ ํ๊ธฐ โก ACTION_SEND ์ธํ ํธ๋ฅผ ์์ฑ "๊ณต์ ํ ๋ฉ์์ง" ๋ถ๋ถ์ ์ํ๋ ํ ์คํธ๋ฅผ ๋ฃ์ ์ ์์ ๋น์ทํ ๋ฐฉ์์ผ๋ก ๋ค์ํ ์ฝํ ์ธ (์ด๋ฏธ์ง, url ๋ฑ) ๊ณต์ ๊ฐ๋ฅ val sendIntent = Intent().apply { action = Intent.ACTION_SEND putExtra(Intent.EXTRA_TEXT, "๊ณต์ ํ ๋ฉ์ธ์ง") type = "text/plain" } โก Intent.createChooser()๋ฅผ ์ด์ฉํด Intent ๊ฐ์ฒด๋ฅผ ์ ๋ฌ startActivity๋ก ์คํ val shareIntent = Intent.createChooser(sendIntent, null) startActivity(shareIntent) โ ์ ์ฉํ๊ธฐ ๋ฒํผ์ ํด๋ฆญ ์, ํ ์คํธ ๊ณต์ ์ฐฝ์ด ๋์ค๋๋ก.. ๋ชจ๊ฐ์ฝ < Kotlin ๊ธฐ์ดํธ > - 13์ผ์ฐจ โ ์ค๋์ ๋ฌธ์ : Activity ์ ํํ๊ธฐ โก ๋น๋ฐ๋ฒํธ ์ฒดํฌ ํ ๋น๋ฐ๋ฒํธ๊ฐ ํ๋ ธ๋ค๋ฉด ๋น๋ฐ๋ฒํธ๊ฐ ํ๋ ธ์ด์. ๋ค์ ์ ๋ ฅํด์ฃผ์ธ์. ๋ผ๋ ๋ฌธ๊ตฌ ํ์ โก ๋น๋ฐ๋ฒํธ๊ฐ ๋ง๋ค๋ฉด MemoActivity ๋ก ์ ํ (์ ํ ์ MainActivity๋ ์คํ์์ ์ ๊ฑฐ) ๐ MainActivity.kt package com.comu.android.secretmemo import android.os.Bundle import android.util.Log import android.widget.Button import android.widget.EditText import androidx.appcompat.app.AppCompatActivity import android.content.Intent import android.wid.. ๋ชจ๊ฐ์ฝ < Kotlin ๊ธฐ์ดํธ > - 12์ผ์ฐจ โ Activity ์์ฑํ๊ธฐ โกActivity ๋ฅผ ์์ฑํ ๋ ์ง์ ์ฝํ๋ฆฐ, xml ํ์ผ ๋ง๋ค๊ธฐ ์๋๋ก์ด๋ ์คํ๋์ค์์ ์ ๊ณตํ๋ ํ ํ๋ฆฟ ์ด์ฉ โก ํ ํ๋ฆฟ์ ์ด์ฉํ ๊ฒฝ์ฐ ๋ฐ๋ก ๋งค๋ํ์คํธ ์ค์ ์ ๋ฐ๋ก ํด์ฃผ์ง ์์๋ ๋จ! 1๏ธโฃ New > Activity > Empty Activity ๋ฅผ ํด๋ฆญ 2๏ธโฃ Activity ์ด๋ฆ ๋ณ๊ฒฝ ์ด๋ฆ์ ๋ณ๊ฒฝํ๋ฉด Layout ์ด๋ฆ๋ ์๋์ผ๋ก ๋ง์ถฐ์ ๋ณ๊ฒฝ๋จ 3๏ธโฃ Finish ๋ฒํผ ํด๋ฆญ ์๋ฃ ํ ๋ฉ๋ํ์คํธ ํ์ผ์ ์ด๋ฉด, ์๋ ์ฝ๋๊ฐ ์๋ก ์ถ๊ฐ๋จ. โ ์ฑ ๋ฐ์ฒ Activity ๋ณ๊ฒฝ โก Activity๊ฐ ์ ๋๋ก ๋ง๋ค์๋์ง TEST! : ํ ์คํธ ๊ฒธ ์ฑ์ ๋ฐ์ฒ (์ฑ์ด ์ด๋ฆด ๋ ๊ฐ์ฅ ๋จผ์ ์ด๋ฆฌ๋ Activity) ๋ฅผ ๋ณ๊ฒฝ โก ์๋ ์ฝ๋์ฒ๋ผ ๋งค๋ํ์คํธ ํ์ผ ์์ ! : MainActivity ->.. ๋ชจ๊ฐ์ฝ < Kotlin ๊ธฐ์ดํธ > - 11์ผ์ฐจ โ ์ค๋ ๋ฐฐ์ธ ๋ด์ฉ EditText ์ ์ ๋ ฅ๋ ํ ์คํธ ๊ฐ์ ธ์ค๊ธฐ ๋น๋ฐ๋ฒํธ ์ฒดํฌํ๋ ์กฐ๊ฑด๋ฌธ ๋ง๋ค๊ธฐ โ EditText์ ์ ๋ ฅ๋ ํ ์คํธ ๊ฐ์ ธ์ค๊ธฐ ๐ ์ฃผ์ ๐ Edit Text ์ปดํฌ๋ํธ์ text๋ฅผ ๋ถ๋ฌ์ฌ ๋๋ ๋ค์ ๊ผญ .toString()์ ๋ถ์ฌ์ผ ํจ! // EditText ์ปดํฌ๋ํธ๋ฅผ ์ฐพ์์ editText ๋ณ์์ ์ ์ฅํ๋ค. val editText = findViewById(R.id.์์ด๋) // editText ์์ ์ฌ์ฉ์๊ฐ ์ ๋ ฅํ ํ ์คํธ๋ฅผ ๋ถ๋ฌ์ passwordText ์ ์ ์ฅํ๋ค. val passwordText = editText.text.toString() EditText๋? ์ผ๋ฐ TextView โ ์ฌ์ฉ์๊ฐ ์ ๋ ฅํ ์ ์๋ ์ปดํฌ๋ํธ โญ text ์์ฑ์ด ์ผ๋ฐ textView์ ๋ฌ๋ฆฌ EditText ๋ง์.. ๋ชจ๊ฐ์ฝ < Kotlin ๊ธฐ์ดํธ > - 10์ผ์ฐจ โ ์ค๋์ ๋ฌธ์ : ๋น๋ฐ๋ฒํธ ์ ๋ ฅ ํ๋ฉด ๋ ์ด์์ ๊ตฌ์ฑํ๊ธฐ โก Text > TextView ์ปดํฌ๋ํธ๋ก “๋น๋ฐ๋ฒํธ๋ฅผ ์ ๋ ฅํด์ฃผ์ธ์” ๋ฌธ๊ตฌ ์ถ๊ฐ โก Text > Password(Numeric) ์ปดํฌ๋ํธ ์ถ๊ฐ โก ๋ฒํผ ์ถ๊ฐ ๋๋ฌด ๊ฝ ์ฑ์ฐ๋ ๊ฒ๋ณด๋ค ์ฌ๋ฐฑ์ด ์๋๊ฒ ๋ ์์ ๊ฒ ๊ฐ์์ ์์ชฝ ์ฌ๋ฐฑ์ 5~ 10์ฉ ์ฃผ์์ต๋๋ค! ๐ xml ์ฝ๋ ๐ ์คํ๊ฒฐ๊ณผ https://codemate.kr/@guswlsdl04/๋ชจ๊ฐ์ฝ-์ฝํ๋ฆฐ-๊ธฐ์ดํธ-10์ผ์ฐจ โ CLICK HERE! ๋ชจ๊ฐ์ฝ < Kotlin ๊ธฐ์ดํธ > - 9์ผ์ฐจ โ ์์ด์ฝ ๋ง๋ค๊ธฐ ๐๋งํฌ ํด๋ฆญ Launcher Icon Generator ์ด๋ฏธ์ง, ์์ด์ฝ, ํ ์คํธ ์ง์ ์์์ ์กฐ์ ํ์ฌ ์ํ๋ ์์ด์ฝ ์์ฑ ์ฐ์ธก ์๋จ์ ‘๋ค์ด๋ก๋ ๋ฒํผ’ ํด๋ฆญ! โ ์ฑ์์ ์์ด์ฝ ๋ณ๊ฒฝํ๊ธฐ โก ic_launcher ๋ผ๋ ๋ฌธ๊ตฌ๊ฐ ๋ค์ด๊ฐ ํ์ผ์ ๋ชจ๋ ์์ด์ฝ๊ณผ ๊ด๋ จ๋ ํ์ผ! 1๏ธโฃ New > Image Asset ํด๋ฆญ 2๏ธโฃ Configure Image Asset > Name Name ๊ฐ ๋ณ๊ฒฝ โ ๐ Foreground Layer : ์์ด์ฝ ์ด๋ฏธ์ง ์ค์ ๐ Background Layer : ์์ด์ฝ ์ด๋ฏธ์ง์ ๋ฐฐ๊ฒฝ์ ์ค์ 3๏ธโฃ Foreground Layer > ํด๋๋ฒํผ ํด๋ฆญ ์๊น ๋ค์ด ๋ฐ์๋ ํ์ผ ์ด๋ฆ.png ์ ํ! 4๏ธโฃ Background Layer > Color ์ค์ ์์ด์ฝ ๋ฐฐ๊ฒฝ์๊ณผ ๋์ผํ๊ฒ.. ์ด์ 1 2 3 ๋ค์