์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- ์๋๋ก์ด๋ ์ฑ ๊ฐ๋ฐ
- ํ๋ค์ค๊ณต๋ถ
- ์๋ฐ
- ์๋ฐํ๋ก๊ทธ๋๋ฐ
- db
- ์๋ฐ์คํฌ๋ฆฝํธ ๊ณต๋ถ
- ์คํธ๋ฆผ๋ฆฟ
- ์น๋์๋ณด๋ ์ ์
- Android
- Streamlit๊ธฐ์ด
- java
- ์๋ฐ๊ณต๋ถ
- ์๋๋ก์ด๋ ์คํ๋์ค
- Streamlit๊ธฐ๋ณธ
- RESTful API
- ์๋ฐ์คํฌ๋ฆฝํธ
- Pandas
- ํ์ด์ฌ
- streamlit
- JavaScript
- MySQL
- ์น๋์๋ณด๋ ๊ธฐ์ด
- ํ์ด์ฌ๊ณต๋ถ
- ์๋ฐ์ด๋ณด
- ์๋ฐ๊ธฐ์ด
- ๋ฐ์ดํฐ๋ฒ ์ด์ค
- ์คํธ๋ฆผ๋ฆฟ ๊ธฐ๋ณธ
- serverless
- ํ๋ค์ค
- Flutter
- Today
- Total
๋ชฉ๋ก๐คAndroid (57)
ruriruriya
Retrofit2 ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ด์ฉํด์ POST๋ก API ํธ์ถํ์ฌ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ณด์. Retrofit2 ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ๋จผ์ ํ๊ฒฝ ์ค์ ์ ๋จผ์ ํด์ผ ํ๋ค. ์๋ ๋งํฌ ์ฐธ๊ณ ! https://ruriruriya.tistory.com/161 [Android] ์๋๋ก์ด๋ - Retrofit2 ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉ์ ์ํ ์ค์ ๋ฐฉ๋ฒ Retrofit์ ์๋๋ก์ด๋ ์ฑ์์ ๋คํธ์ํฌ ํต์ ์ ๊ฐํธํ๊ฒ ์ฒ๋ฆฌํ ์ ์๋๋ก ๋์์ฃผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค. ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ Square์ฌ์์ ๊ฐ๋ฐ๋์์ผ๋ฉฐ, ์๋๋ก์ด๋ ์ฑ์์ RESTful API์์ ํต์ ์ ํจ์จ์ ruriruriya.tistory.com ํด๋น Activity ์ค์ retrofit ์ฌ์ฉ์ ์ํ ๋ณ์๋ฅผ ์์ฑํ๋ค. api ํจํค์ง์ ์๋, Interface๋ฅผ ์์ฑํ..
Retrofit์ ์๋๋ก์ด๋ ์ฑ์์ ๋คํธ์ํฌ ํต์ ์ ๊ฐํธํ๊ฒ ์ฒ๋ฆฌํ ์ ์๋๋ก ๋์์ฃผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค. ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ Square์ฌ์์ ๊ฐ๋ฐ๋์์ผ๋ฉฐ, ์๋๋ก์ด๋ ์ฑ์์ RESTful API์์ ํต์ ์ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ๊ณ ๊ตฌํํ๋ ๋ฐ ์ฌ์ฉ๋๋ค. Retrofit์ ์ฃผ์ ๊ธฐ๋ฅ API Interface ์ ์: Retrofit์ ์ฌ์ฉํ๋ฉด REST API์ ์ํธ์์ฉํ๊ธฐ ์ํ ์ธํฐํ์ด์ค๋ฅผ ์ ์ํ ์ ์๋ค. ์ด ์ธํฐํ์ด์ค์์ API ์๋ํฌ์ธํธ, HTTP ์์ฒญ ๋ฉ์๋, ์์ฒญ ์ ํ์ํ ๋งค๊ฐ๋ณ์ ๋ฑ์ ๋ช ์ํ ์ ์๋ค. HTTP ํด๋ผ์ด์ธํธ ์ค์ : Retrofit์ OkHttp์ ํจ๊ป ์ฌ์ฉ๋ ์ ์์ด, HTTP ํด๋ผ์ด์ธํธ๋ฅผ ์์ฑํ๊ณ ์ค์ ํ๋ ๋ฐ ๋์์ ์ค๋ค. ์ด๋ฅผ ํตํด ๋คํธ์ํฌ ์ฐ๊ฒฐ ์ค์ , ํ์์์ ๋ฑ์ ๊ด๋ฆฌํ ์ ์๋ค. ..
ํํ๊ณ API๋ฅผ ์ฌ์ฉํ๋ฉด์ ์ํฌ๋ฆฟ ํค๋ฅผ Volley Header์ ๋ฐ์ดํฐ๋ฅผ ์ธํ ํด๋ณด์. 1.Config ํจํค์ง - config.java ์์ฑ ์๋๋ก์ด๋ ์ฑ์์ Config.java ๋๋ Constants.java์ ๊ฐ์ ํ์ผ์ ์ฑ ์ ๋ฐ์ ๊ฑธ์ณ ์ฌ์ฉ๋๋ ์์, ์ค์ ๊ฐ, ํค, URL ๋ฑ์ ๋ด๋ ๋ฐ ์ฌ์ฉ๋๋ค. ์ด ํ์ผ์ ์ฑ์ ๊ตฌ์ฑ์ ๊ด๋ฆฌํ๊ณ ๋ณ๊ฒฝ์ด ํ์ํ ๊ฐ๋ค์ ํ ๊ณณ์ ๋ชจ์๋์ด ๊ด๋ฆฌํ๊ธฐ ์ฝ๊ฒ ํ๋ค. 2. config.java ๋ค์ด๋ฒ ํด๋ผ์ด์ธํธ ์์ด๋์ ์ํฌ๋ฆฟ ํค๋ฅผ ์ด๋ค. ์ด๋ ๋ณ์๋ช ์ ๋๋ฌธ์์ ์ธ๋๋ฐ๋ฅผ ์ฌ์ฉํ๋ค. public class Config { public static final String X_NAVER_CLIENT_ID = "X-Naver-Client-Id"; public static final..
Volley ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํ์ฉํด์ POST ๋ฐฉ์์ผ๋ก body์ json์ ๋ณด๋ด๋ณด์. ํํ๊ณ API๋ก ์งํํ๋ค. 1. ๋ฒํผ ์์ฑ ๋ฐ setOnClickListener ํจ์ ์์ฑ ๋ฒํผ์ ๋ง๋ค๊ณ setOnClickListener ํจ์๋ฅผ ๋ง๋ ๋ค. ๊ทธ๋ฆฌ๊ณ onClick ํจ์ ์ค๋ฒ๋ผ์ด๋ฉ button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { } }); 2. ์ ๋ณด ๊ฐ์ ธ์ค๊ธฐ ์ด๋ค ์ธ์ด๋ก ๋ฒ์ญํ ์ง ์ ๋ณด๋ฅผ ๊ฐ์ ธ์จ๋ค. public void onClick(View v) { // 1. ์ด๋ค ์ธ์ด๋ก ๋ฒ์ญํ ์ง์ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์จ๋ค. int radioButtonId = radioGroup.getCheckedRadioBut..
๋ฒํผ์ ๋๋ฅด๋ฉด Intent์ ํจ์๋ค์ด ๋์ํ๋ ๊ฒ์ ๋ณด๊ณ Intent์ ํจ์๋ค์ ์์๋ณด์. 1. ํ๋ฉด์ค๊ณ xml ์์ ๊ฐ๋จํ ๋ฒํผ 1๊ฐ๋ฅผ ๋ง๋ ๋ค. 2. java ํ์ผ ์์ฑ. ๋ฒํผ ํ๋๋ฅผ ํ๋ฉด๊ณผ ์ฐ๊ฒฐ์ํค๊ณ . ๋ฒํผ์ setOnClickListener ํจ์๋ฅผ ์ค๋ฒ๋ผ์ด๋ฉํ๋ค. import androidx.appcompat.app.AppCompatActivity; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.provider.ContactsContract; import android.view.View; import android.widget.Button; public class MainAc..
25๊ฐ์ฉ ๋ฆฌ์ฌ์ดํด๋ฌ๋ทฐ๋ฅผ ๋ถ๋ฌ์ค๋ฉฐ ํ์ด์ง์ ํด๋ณด์! 1. ๋ฆฌ์ฌ์ดํด๋ฌ๋ทฐ ScrollListener ์์ฑ recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {}); 2. ScrollListener ํจ์ ์ค๋ฒ๋ผ์ด๋ฉ. - onScrollStateChanged : ์ํ ๋ณํ๋ ๊ฒ์ผ๋ก ์๋ ์์๋์ด ์์ ํ์ง ์์๋ ๋. - onScrolled : ์๊ฐ๋ฝ์ผ๋ก ์คํฌ๋กคํ ๋๋ง๋ค ํธ์ถ๋๋ ํจ์๋ก ์์ ์ด ํ์ํ๋ค. recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() { // ์ํ ๋ณํ๋ ๊ฒ์ด๋ผ ์ ๊ฒฝ์ธ ๊ฒ ์์. @Override public void onScrollStateChang..
Glide๋ ์๋๋ก์ด๋ ์ฑ์์ ์ด๋ฏธ์ง ๋ก๋ฉ๊ณผ ๋์คํ๋ ์ด๋ฅผ ์ํ ๊ฐ๋ ฅํ ์คํ ์์ค ์ด๋ฏธ์ง ๋ก๋ฉ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค. ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๋์ ์ฑ๋ฅ๊ณผ ์ ์ฐ์ฑ์ ์ ๊ณตํ์ฌ ์์ ์ ์ผ๋ก ์ด๋ฏธ์ง๋ฅผ ๋ก๋ํ๊ณ ํ์ํ ์ ์๋๋ก ๋์์ค๋ค. ํน์ง ์๋ ๋ฉ๋ชจ๋ฆฌ ๋ฐ ๋์คํฌ ์บ์ฑ: Glide๋ ์ด๋ฏธ์ง๋ฅผ ์๋์ผ๋ก ๋ฉ๋ชจ๋ฆฌ์ ๋์คํฌ์ ์บ์ฑํ์ฌ ๋ฐ๋ณต์ ์ธ ๋ค์ด๋ก๋๋ฅผ ๋ฐฉ์งํ๊ณ ์ฑ ์ฑ๋ฅ์ ํฅ์์ํจ๋ค. ์ ์ฐํ API: ๊ฐ๋จํ ์ฝ๋๋ก ์ด๋ฏธ์ง ๋ก๋ฉ์ ์ํํ ์ ์์ผ๋ฉฐ, ํ์์ ๋ฐ๋ผ ํฌ๊ธฐ ์กฐ์ , ๋ณํ ๋ฐ ์ ๋๋ฉ์ด์ ํจ๊ณผ๋ฅผ ์ฝ๊ฒ ์ ์ฉํ ์ ์๋ค. ๋ก๋ฉ ๋ฐ ์๋ฌ ์ด๋ฏธ์ง ์ค์ : ์ด๋ฏธ์ง๊ฐ ๋ก๋ฉ๋๋ ๋์ ๋ณด์ฌ์ง placeholder ์ด๋ฏธ์ง์ ์ด๋ฏธ์ง ๋ก๋ฉ ์คํจ ์ ๋ณด์ฌ์ง ์๋ฌ ์ด๋ฏธ์ง๋ฅผ ์ค์ ํ ์ ์๋ค. ์ด๋ฏธ์ง ๋ณํ ๊ธฐ๋ฅ: ์ด๋ฏธ์ง ํฌ๊ธฐ ์กฐ์ , ํ์ , ์๋ฅด๊ธฐ, ํํฐ๋ง ๋ฑ..
Floating Action Button (FAB)๋ ์๋๋ก์ด๋ ์ฑ์ ์ฌ์ฉ์ ์ธํฐํ์ด์ค(UI) ์์ ์ค ํ๋๋ก, ํ๋ฉด์์ ๋ ์๋ ์ํ์ ๋ฒํผ์ ๋งํ๋ค. ์ผ๋ฐ์ ์ผ๋ก ์ฑ์ ์ฃผ์ ์์ ์ด๋ ๊ฐ์ฅ ์ค์ํ ๋์์ ๊ฐ์กฐํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ค. 1. XML ๋ ์ด์์์์ FAB ์ถ๊ฐ activity_main.xml ํ์ผ์ ์ด๊ณ FAB๋ฅผ ์ถ๊ฐํ๋ค. 2. MainActivity์์ FAB ์ค์ ์กํฐ๋นํฐ ํด๋์ค์์ FAB๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ํด๋น FAB๋ฅผ ์ฐธ์กฐํ๊ณ ํด๋ฆญ ์ด๋ฒคํธ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฑ์ ์์ ์ ํ๋ค. public class MainActivity extends AppCompatActivity { FloatingActionButton fabAdd; @Override protected void onCreate(Bundle savedI..