๋ชฉ๋กAndroid (92)
๐ฑ dreaming DiNO
๋ ํธ๋กํ ์ด์ฉํด์ ์ธ๋ถ API ํธ์ถํด์ ๋ฐ์ JsonData๋ฅผ ํ์ฑํด๋ณด์! call?.enqueue(object : retrofit2.Callback{ override fun onResponse(call: Call, response: Response) { when (response.code()){ 200 -> { Log.d(Constant.TAG, "RetrofitManager - ํต์ 200 ์ฑ๊ณต! \n" + "response: ${response.body()}") //jsonData์ฒ๋ฆฌ ๋ถ๋ถ // ํ์ฑ response.body()?.let{ responseBody -> val body = responseBody.asJsonObject val jsonArray = body.getAsJsonArray("..

Logging Interceptor ์ ์ฉ ์ RetrofitManager.searchPhotos(keyword, completion = { responseState, response -> when(responseState) { RESPONSE_STATE.OKAY -> { Toast.makeText(this, "ํธ์ถ์ฑ๊ณต!", Toast.LENGTH_SHORT).show() Log.d(TAG, "response OK! / reponseBody : $response") } RESPONSE_STATE.FAIL -> { Toast.makeText(this, "ํธ์ถ์คํจใ กใ ก", Toast.LENGTH_SHORT).show() Log.d(TAG, "response No! / t : $response") } } }) U..
Retrofit : (๊ธฐ๊ณ ์์ ์๋ ์๋ ๋ถํ ๋ฑ์) ์๋ก ์ฅ์ฐฉํ๋ค / ๋ฃ๋ค / ์ ๊ณตํ๋ค ์๋๋ก์ด๋์์์ Retrofit : ์๋ฒ์์ HTTP ํต์ ์ ํตํด ์ ๋ฌ๋ ๋ฐ์ดํฐ๋ฅผ ์ฑ์์ ํน์ ํํ๋ก ๋ฐ์๋ณผ ์ ์๊ฒ ํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ ํธ๋กํ์ ํ ๋ฌธ์ฅ์ผ๋ก ์ ์ํ๋ผ๊ณ ํ๋ฉด ์๋ฒ์ HTTP ํต์ ์ ํด์, ์๋ฒ๋ก๋ถํฐ ๋ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ฑ์์ ์ถ๋ ฅํด ์ฌ์ฉ์๊ฐ ๋ณผ ์ ์๊ฒ ํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ผ๋ฐ์ ์ธ ์ฑ์ ์๋ฒ์ ํด๋ผ์ด์ธํธ๊ฐ ๋คํธ์ํฌ ํต์ ์ผ๋ก ์ ๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ๊ณ ์ด ์ ๋ณด๋ฅผ ํ๋ฉด์ ๋ฟ๋ฆฌ๊ธฐ๋ ํ๋ฉฐ, ์ ๋ ฅ๋ ์ ๋ณด๋ฅผ ์ ์ฅํ๋ ๋ฑ์ ๊ธฐ๋ฅ๋ค์ด ๊ตฌํ๋ผ ์๋ค. ์ด๊ฑธ ๋คํธ์ํน ๊ธฐ๋ฅ์ด๋ผ๊ณ ํ๋ค. ์์ฆ์ ์๋ฒ์ ํด๋ผ์ด์ธํธ๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ๊ณผ์ ์์ REST API๋ผ๋ ๋ฐฉ์์ ์จ์ ๋คํธ์ํฌ ํต์ ์ ํ๋ค๊ณ ํ๋ค. AsyncTask์ HttpURLCon..

// letํจ์์ ์ฌ์ฉ๋ฒ -> if (null X) ์์ ๋๋ค์ ์คํํด๋ผ! val email : String?= "mia@naver.com" email?.let { println("My email is ${email}") } NunNull -> something ์ผ๋ก ์ด๊ธฐํ null ์ด๋ผ ์์ letํจ์ ๋๋ค์์ด ์์ ์คํ์ด ์๋์ ์๋ฌด ๋ฐ์์ด ์๋๊ฒ! (ํด๊ฒฐ^ใ ^) fun let(){ // ? ์ฌ์ฉ๋ฒ var name : String? = "mia" // null์ด๋ฉด mia๋ก ์ด๊ธฐํ name?.let{ println(it) } // for๋ฌธ ์ฌ์ฉ๋ฒ val students = arrayListOf("mia", "jino", "ted", "hoxvi") for (name in students) { print..

Android Spring ์ฐ๋ ํ์์ฑ

๐ฅบ ์๋ฌ ๋ฐ์ : ์ํ ๊ถํ ์ถ๊ฐํ๋ ค๊ณ Manifest.xml permission ์ถ๊ฐ, build.gradle (:app) ์ jitpack.io ์ dependency ์ถ๊ฐํ๊ณ ์ฑํฌ ๋ง์ถ๋ ์๋์ ๊ฐ์ Error ๋ฐ์! A problem occurred evaluating project ':app'. > Build was configured to prefer settings repositories over project repositories but repository 'maven' was added by build file 'app/build.gradle' ๐ ์๋ฌ ํด๊ฒฐ settings.gradle (Project๋ช ) ์์ ์์ ๊ฐ์ด ๋ณ๊ฒฝ ํ Sync ๋ง์ถ๋ ํด๊ฒฐ

MVVM - Model, View, ViewModel MVVM ์ ๊ฐ๋ ์ ๊ธฐ์ด๋ PM(Presentation Model - ๋งํดํ์ธ๋ฌ์ ์ ์)์ ๊ธฐ๋ฐ์ผ๋ก ๋ง๋ค์ด ์ก๋ค. PM ์ View์ ๋ ๋๋ง์ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๊ณ ์๋ ๊ฐ์ฒด์ด๊ณ , View ๋ PM ์ ๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ ๋๋งํ๋ค. PM ์ ์ค์ํ ํฌ์ธํธ๋ PM ์ด ๋ค๊ณ ์๋ ๋ฐ์ดํฐ์ View๋ ํญ์ ๋๊ธฐํ๊ฐ ๋์ด์ผํ๋ค๋ ๊ฒ. ์ฌ๊ธฐ์ ํ์ PM ์ ViewModel ์ด๋ผ๋ ์ด๋ฆ์ผ๋ก ๋ช ๋ช ํ๋ฉด์ MVVM์ด ํ์ํ๋ค. ์ ์ฒด ์์ ์ UI ๋ก์ง ์์ ๊ณผ ๋น์ฆ๋์ค ๋ก์ง ์์ ์ผ๋ก ๋๋ ์ ์๋ค. ์ด๋ ๊ฒ ๋๋์ด์ง ์์ ์ ๋์์ธ์ ํนํ๋ UI ๊ฐ๋ฐ์๋ UI์ชฝ์ ๋ด๋นํ๊ณ , ๋น์ฆ๋์ค ๋ก์ง์ ํนํ๋ ๊ฐ๋ฐ์๋ ๋๋จธ์ง ๋ถ๋ถ์ ๋ด๋นํ ์ ์๋๋ก ํ๊ธฐ ์ํด์ ๋๋์ด์๋ค. MVV..