Android 38

์„œ๋ฒ„์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅ, ์ˆ˜์ •, ์‚ญ์ œํ•˜๋Š” ๊ฒฝ์šฐ ์‚ฌ์šฉํ•˜๋Š” ์ฝ”๋“œ (SharedPreferences์— ์ €์žฅํ•˜๊ธฐ)

https://codebunny99.tistory.com/170 ๋ฉ”๋ชจ ์•ฑ app (ํšŒ์›๊ฐ€์ž…, ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ) Retrofit ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ๋งŒ๋“ค๊ธฐRestful API๋ฅผ MySQL๊ณผ ์—ฐ๋™ํ•˜์—ฌ Postman์œผ๋กœ ๊ฐœ๋ฐœํ•œ ํ›„, ์ง„ํ–‰ํ•˜์˜€๋‹ค.     ์•กํ‹ฐ๋น„ํ‹ฐ ์„ธ ๊ฐœ ๋งŒ๋“ค๊ธฐ   ํ™˜๊ฒฝ๋ณ€์ˆ˜ ์„ค์ •ํ•˜๊ธฐRetrofit ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ค์น˜ํ•˜๊ธฐ build.gradle.kts(:app)์—์„œimplementation("com.squareup.retroficodebunny99.tistory.com  -----------------------------------------------------------------------------------------------------------------------------------------..

Android 2024.06.13

Volley ๋ณด๋‹ค ์‰ฝ๊ฒŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ Retrofit2 ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ์œ ํŠœ๋ธŒ app ๊ฐœ๋ฐœํ•˜๊ธฐ

Retrofit ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ- ์•ˆ๋“œ๋กœ์ด๋“œ์—์„œ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” HTTP ํด๋ผ์ด์–ธํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ - Retrofit์€ Square์—์„œ ๊ฐœ๋ฐœํ•œ HTTP ํด๋ผ์ด์–ธํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๋‹ค. - ์ฃผ๋กœ Android ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ RESTful ์›น ์„œ๋น„์Šค๋ฅผ ํ˜ธ์ถœํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋œ๋‹ค. - ์ฆ‰, REST API์™€ ์ƒํ˜ธ์ž‘์šฉํ•˜๊ธฐ ์‰ฝ๊ฒŒ ๋„์™€์ค€๋‹ค. - JSON์„ Java ๊ฐ์ฒด๋กœ ๋ณ€ํ™˜ํ•˜๊ฑฐ๋‚˜ ๊ทธ ๋ฐ˜๋Œ€๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ์ž‘์—…์„ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค. - Retrofit ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” JSON์„ ์ž๋ฐ”์˜ ํด๋ž˜์Šค๋กœ ๋ฐ”๋กœ ๋‹ด์•„์ฃผ๋ฏ€๋กœ ํŒŒ์‹ฑ์„ ํ•  ํ•„์š”๊ฐ€ ์—†์–ด์„œ ๊ฐ„ํŽธํ•˜๋‹ค. - Retrofit์„ ์‚ฌ์šฉํ•˜๋ฉด ๋„คํŠธ์›Œํฌ ์š”์ฒญ์„ ์‰ฝ๊ฒŒ ๋งŒ๋“ค๊ณ  ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.  Retrofit (1.x)- Retrofit 1.x๋Š” HTTP ํด๋ผ์ด์–ธํŠธ๋กœ Apache HTTPClient๋ฅผ ์‚ฌ์šฉ..

Android 2024.06.13

์–ดํ”Œ ๋งŒ๋“ค๊ธฐ : ํŽ˜์ด์ง•(์Šคํฌ๋กค) ์ฒ˜๋ฆฌ๋ฅผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋Š” ์ฝ”๋“œ ์ž‘์„ฑํ•˜๊ธฐ

https://codebunny99.tistory.com/164 ์œ ํŠœ๋ธŒ API ํ‚ค์›Œ๋“œ ๊ฒ€์ƒ‰ํ•˜๋ฉด ํ‚ค์›Œ๋“œ์— ๋งž๋Š” ๊ฒŒ์‹œ๋ฌผ์„ ๊ฐ€์ ธ์˜ค๋Š” app๊ฐœ๋ฐœhttps://codebunny99.tistory.com/163 ์œ ํŠœ๋ธŒ ๋ฐ์ดํ„ฐ API๋ฅผ Postman(ํฌ์ŠคํŠธ๋งจ)์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•https://console.cloud.google.com/welcome/new?hl=ko&project=eastern-surface-426200-r0&supportedpurview=project Google ํด๋ผ์šฐ๋“œ ํ”Œ๋žซํผ๋กœcodebunny99.tistory.com ์ด ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋ฒ ์ด์Šค๋กœ ํ•˜์—ฌ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜์˜€๋‹ค.     MainActivity ์•ˆ์— ์ž‘์„ฑํ•œ๋‹ค 1. recyclerView ์Œ ๋ฐ‘ ์œ„์น˜์— //์Šคํฌ๋กค ์ฒ˜๋ฆฌ ~ ์ฝ”๋“œ ๋ฅผ์ž‘์„ฑํ•œ๋‹ค   ..

Android 2024.06.12

์œ ํŠœ๋ธŒ API ํ‚ค์›Œ๋“œ ๊ฒ€์ƒ‰ํ•˜๋ฉด ํ‚ค์›Œ๋“œ์— ๋งž๋Š” ๊ฒŒ์‹œ๋ฌผ์„ ๊ฐ€์ ธ์˜ค๋Š” app๊ฐœ๋ฐœ

https://codebunny99.tistory.com/163 ์œ ํŠœ๋ธŒ ๋ฐ์ดํ„ฐ API๋ฅผ Postman(ํฌ์ŠคํŠธ๋งจ)์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•https://console.cloud.google.com/welcome/new?hl=ko&project=eastern-surface-426200-r0&supportedpurview=project Google ํด๋ผ์šฐ๋“œ ํ”Œ๋žซํผ๋กœ๊ทธ์ธ Google ํด๋ผ์šฐ๋“œ ํ”Œ๋žซํผ์œผ๋กœ ์ด๋™accounts.google.com  youtube data ๊ฒ€์ƒ‰ํ•ด์„œ ์‚ฌ์šฉ ๋ˆ„๋ฅดcodebunny99.tistory.com ํ‚ค(key) ๊ฐ’์„ ์œ„์˜ ํฌ์ŠคํŒ…์„ ๋จผ์ € ์ฐธ๊ณ ํ•ด ๊ฐ€์ ธ์˜จ๋‹ค.    ์œ ํŠœ๋ธŒ API๋ฅผ Postman์œผ๋กœ ์‹คํ–‰์‹œํ‚ค๋ฉด, ๋‹ค์Œ๊ณผ ๊ฐ™์ด Json ํŒŒ์ผ์„ ์ค€๋‹ค.        MainActivity ๋””์ž์ธ(xml ํŒŒ..

Android 2024.06.12

๋‹ค์–‘ํ•œ ์ธํ…ํŠธ Intent (์—ฐ๋ฝ์ฒ˜, ์›น, ๋ฌธ์ž, ์ด๋ฉ”์ผ, ๊ณต์œ ) ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•

package com.~.intent;import android.content.Intent;import android.net.Uri;import android.os.Bundle;import android.provider.ContactsContract;import android.view.View;import android.widget.Button;import androidx.appcompat.app.AppCompatActivity;public class MainActivity extends AppCompatActivity { Button button; @Override protected void onCreate(Bundle savedInstanceState) { super.on..

Android 2024.06.11

Glide ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ์ด๋ฏธ์ง€ upload ํ•˜๊ธฐ

https://github.com/bumptech/glide GitHub - bumptech/glide: An image loading and caching library for Android focused on smooth scrollingAn image loading and caching library for Android focused on smooth scrolling - bumptech/glidegithub.com   ํ™˜๊ฒฝ๋ณ€์ˆ˜ ์„ค์ •, Glide ์„ค์น˜ํ•˜๊ธฐ   Manifest ์„ค์ •     gradle.kts (:app) ์„ค์ •   ์‹ฑํฌ(Sync) ํ•ด์ค€๋‹ค.     ํ™”๋ฉด ๋ฐฐ์น˜ํ•˜๊ธฐ https://fonts.google.com/icons?icon.size=24&icon.color=%235f6368 Mater..

Android 2024.06.11

๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ๊ฐ์ฒด๋ฅผ ์ฃผ๊ณ ๋ฐ›๊ธฐ ์œ„ํ•œ Serializable(์ง๋ ฌํ™”)

์ง๋ ฌํ™”(Serializable) ๋ž€? ๊ฐ์ฒด์˜ ์ƒํƒœ๋ฅผ ๋ฐ”์ดํŠธ ์ŠคํŠธ๋ฆผ์œผ๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ํŒŒ์ผ๋กœ ์ €์žฅํ•˜๊ฑฐ๋‚˜ ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ์ „์†กํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ณผ์ •  ์ง๋ ฌํ™”(Serializable)์˜ ๋ชฉ์  ? ๊ฐ์ฒด๋ฅผ ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ์ „์†กํ•  ๋•Œ ์ง๋ ฌํ™”๊ฐ€ ํ•„์š”ํ•˜๋ฉฐ ๊ฐ์ฒด๋ฅผ ์ฃผ๊ณ ๋ฐ›๊ธฐ ์œ„ํ•ด ์ง๋ ฌํ™”๊ฐ€ ์‚ฌ์šฉ๋œ๋‹ค. ์ง๋ ฌํ™”๋œ ๊ฐ์ฒด๋Š” ๋ฉ”๋ชจ๋ฆฌ๋‚˜ ๋””์Šคํฌ์— ์บ์‹œ๋กœ ์ €์žฅํ•˜๊ณ , ํ•„์š”ํ•  ๋•Œ ๋‹ค์‹œ ๋ถˆ๋Ÿฌ์™€์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.  ์ ์šฉํ•˜๊ธฐ Activity์—์„œ ์•„๋ž˜์™€ ๊ฐ™์€ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋ฉด ๋นจ๊ฐ„ ๋ฐ‘์ค„์ด ๋œจ๋Š”๋ฐ, Employer employer = new Employer(1000,name,salary,age);   class๋กœ ์ด๋™ํ•ด์„œ ํด๋ž˜์Šค์— implements Serializable ๋ถ™์—ฌ์„œ ์ง๋ ฌํ™” ํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค.    ์ง๋ ฌํ™”๋œ ๊ฐ์ฒด๋ฅผ ๋ฐ›์•„์˜ค๊ธฐ ์œ„ํ•ด์„œ๋Š” .getSe..

Android 2024.06.10

Json (์ œ์ด์Šจ) ํ˜•์‹์˜ ๋ฐ์ดํ„ฐ ํŒŒ์‹ฑํ•˜๊ณ  ์–ด๋Œ‘ํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ

activity_main.xml ์ž‘์„ฑํ•˜๊ธฐ         JSON ๋ฐ์ดํ„ฐ๋ฅผ ํŒŒ์‹ฑํ•˜๊ณ  RecyclerView๋กœ ํ‘œ์‹œํ•˜๋Š” ๊ณผ์ • JSON ๋ฐ์ดํ„ฐ ์ˆ˜์‹  ๋ฐ ํŒŒ์‹ฑ : ์„œ๋ฒ„์—์„œ JSON ํ˜•์‹์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์‹ , ํŒŒ์‹ฑ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(Gson, Jackson ๋“ฑ)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ JSON ๋ฐ์ดํ„ฐ๋ฅผ ํŒŒ์‹ฑํ•˜์—ฌ        Java ๊ฐ์ฒด๋กœ ๋ณ€ํ™˜์–ด๋Œ‘ํ„ฐ ์ƒ์„ฑ : RecyclerView.Adapter๋ฅผ ํ™•์žฅํ•˜์—ฌ ์ปค์Šคํ…€ ์–ด๋Œ‘ํ„ฐ๋ฅผ ๋งŒ๋“ค๊ณ  ์–ด๋Œ‘ํ„ฐ ๋‚ด์—์„œ ViewHolder ํด๋ž˜์Šค๋ฅผ ์ •์˜ํ•œ ํ›„, onBindViewHolder ๋ฉ”์„œ๋“œ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ทฐ์— ๋ฐ”์ธ๋”ฉRecyclerView ์„ค์ • : RecyclerView์— ๋ ˆ์ด์•„์›ƒ ๋งค๋‹ˆ์ €๋ฅผ ์„ค์ •(์˜ˆ: LinearLayoutManager, GridLayou..

Android 2024.06.10

๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๊ธฐ ์œ„ํ•œ ํ™˜๊ฒฝ ์„ค์ •, Volley ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ค์น˜ํ•˜๊ธฐ

๋„คํŠธ์›Œํฌ ํ™˜๊ฒฝ์„ค์ •ํ•˜๊ธฐ    Volley ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์„ค์น˜ํ•ด์•ผ ํ•˜๋Š” ์ด์œ  Volley๋Š” Google์—์„œ ๊ฐœ๋ฐœํ•œ ๋„คํŠธ์›Œํฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ, ์•ˆ๋“œ๋กœ์ด๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๋„คํŠธ์›Œํฌ ํ†ต์‹ ์„ ๋ณด๋‹ค ์‰ฝ๊ฒŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ค€๋‹ค. Volley๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋„คํŠธ์›Œํฌ ์š”์ฒญ๊ณผ ๊ด€๋ จ๋œ ๋งŽ์€ ๋ฐ˜๋ณต์ ์ธ ์ž‘์—…์„ ๊ฐ„์†Œํ™”ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋„คํŠธ์›Œํฌ ํ†ต์‹ ์„ ๋ณด๋‹ค ํšจ์œจ์ ์ด๊ณ  ํšจ๊ณผ์ ์œผ๋กœ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. 1. Volley๋Š” GET, POST ๋“ฑ ๋‹ค์–‘ํ•œ HTTP ์š”์ฒญ์„ ์‰ฝ๊ฒŒ ๋งŒ๋“ค๊ณ  ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” API๋ฅผ ์ œ๊ณตํ•˜๋ฉฐ ์ด๋ฅผ ํ†ตํ•ด ๋„คํŠธ์›Œํฌ ์š”์ฒญ์„ ๊ฐ„ํŽธํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค. 2. Volley๋Š” ์š”์ฒญ ํ(queue)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋„คํŠธ์›Œํฌ ์š”์ฒญ์„ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•œ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์—ฌ๋Ÿฌ ๋„คํŠธ์›Œํฌ ์š”์ฒญ์ด ๋™์‹œ์— ๋ฐœ์ƒํ•˜๋”๋ผ๋„ ํšจ๊ณผ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค. 3. ์บ์‹ฑ์— ..

Android 2024.06.10

SharedPreferences ์‚ฌ์šฉํ•˜์—ฌ ํšŒ์›๊ฐ€์ž… app ๋งŒ๋“ค๊ธฐ

package com.yujinoh.register;import android.content.Intent;import android.content.SharedPreferences;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.EditText;import androidx.appcompat.app.AppCompatActivity;import com.google.android.material.snackbar.Snackbar;public class MainActivity extends AppCompatActivity { EditText editEmail; EditTex..

Android 2024.06.07