RecommendFragment - GachonCapstoneTeam/TTS_JAVA GitHub Wiki

๐Ÿ’ก RecommendFragment

RecommendFragment๋Š” ์‚ฌ์šฉ์ž์˜ ๊ด€์‹ฌ์„ ๋Œ ์ˆ˜ ์žˆ๋Š” ์ถ”์ฒœ ๋ฆฌํฌํŠธ์™€ ์ธ๊ธฐ ๋ฆฌํฌํŠธ๋ฅผ ViewPager2๋กœ ๋ณด์—ฌ์ฃผ๋Š” ํ™”๋ฉด์ž…๋‹ˆ๋‹ค. ๊ฐ๊ฐ์˜ ์Šฌ๋ผ์ด๋”๋Š” ์ž๋™ ์ˆœํ™˜๋˜๋ฉฐ, Shimmer ์—†์ด ์ฆ‰์‹œ UI์— ๋ฐ์ดํ„ฐ๋ฅผ ํ‘œ์‹œํ•˜๋„๋ก ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.


โœ… ์ฃผ์š” ๊ธฐ๋Šฅ ์š”์•ฝ

๊ธฐ๋Šฅ ์„ค๋ช…
์ถ”์ฒœ ๋ฆฌํฌํŠธ ViewPager ์ƒ๋‹จ ViewPager2์— ์ž๋™ ์ˆœํ™˜ ๋ฐฉ์‹์œผ๋กœ ์ถ”์ฒœ ๋ฆฌํฌํŠธ ํ‘œ์‹œ
์ธ๊ธฐ ๋ฆฌํฌํŠธ ViewPager ํ•˜๋‹จ ViewPager2๋กœ ์ธ๊ธฐ ์žˆ๋Š” ๋ฆฌํฌํŠธ ์Šฌ๋ผ์ด๋“œ ์ œ๊ณต
์ž๋™ ์Šฌ๋ผ์ด๋”ฉ 3์ดˆ ๊ฐ„๊ฒฉ์œผ๋กœ ํŽ˜์ด์ง€ ์ž๋™ ๋ณ€๊ฒฝ
API ํ†ต์‹  ์ถ”์ฒœ/์ธ๊ธฐ ๋ฆฌํฌํŠธ ๋ชจ๋‘ ๋™์ผํ•œ API์—์„œ ๋ฐ์ดํ„ฐ ์š”์ฒญ
๋”๋ฏธ ๋ฐ์ดํ„ฐ ๋Œ€์ฒด API ์‹คํŒจ ์‹œ ๋”๋ฏธ ๋ฆฌํฌํŠธ๋กœ ๋Œ€์ฒด ํ‘œ์‹œ

๐Ÿ”ง ์ฃผ์š” ๋กœ์ง ์„ค๋ช…

๐Ÿ›ฐ API ๋ฐ์ดํ„ฐ ๋กœ๋“œ - fetchDataForRecommend()

OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder().url(API_URL).build();
client.newCall(request).enqueue(new Callback() {
    @Override
    public void onResponse(Call call, Response response) throws IOException {
        List<Item> items = parseItemsFromJson(response.body().string());
        recommendAdapter.updateItems(items);
        startAutoSlide();
    }
});
  • ์ถ”์ฒœ ๋ฆฌํฌํŠธ ๋ฐ์ดํ„ฐ๋ฅผ ๋น„๋™๊ธฐ๋กœ ์š”์ฒญ ํ›„ ์–ด๋Œ‘ํ„ฐ์— ๋ฐ˜์˜ํ•˜๋ฉฐ ์ž๋™ ์Šฌ๋ผ์ด๋” ์‹œ์ž‘

๐Ÿ” ์ž๋™ ์Šฌ๋ผ์ด๋” ๊ตฌํ˜„ - startAutoSlide()

Runnable sliderRunnable = () -> {
    recommendCurrentPage = (recommendCurrentPage + 1) % totalRecommendItems;
    recommendViewPager.setCurrentItem(recommendCurrentPage, true);

    rankCurrentPage = (rankCurrentPage + 1) % totalRankItems;
    rankViewPager.setCurrentItem(rankCurrentPage, true);

    sliderHandler.postDelayed(this, 3000);
};
sliderHandler.postDelayed(sliderRunnable, 3000);
  • ์ถ”์ฒœ/์ธ๊ธฐ ViewPager๋ฅผ 3์ดˆ ๊ฐ„๊ฒฉ์œผ๋กœ ์ž๋™ ์ „ํ™˜ํ•˜๋ฉฐ ๋ฐ˜๋ณต

๐Ÿ“ฆ JSON ํŒŒ์‹ฑ - parseItemsFromJson()

JSONObject root = new JSONObject(jsonData);
JSONArray contents = root.getJSONArray("contents");
for (int i = 0; i < contents.length(); i++) {
    JSONObject obj = contents.getJSONObject(i);
    items.add(new Item(
        obj.getString("Category"),
        obj.getString("Title"),
        obj.getString("์ฆ๊ถŒ์‚ฌ"),
        obj.getString("PDF URL"),
        obj.getString("์ž‘์„ฑ์ผ"),
        obj.getString("Views"),
        obj.getString("Content"),
        obj.getString("PDF Content")
    ));
}
  • API ์‘๋‹ต์œผ๋กœ ๋ฐ›์€ JSON ๋ฐฐ์—ด์„ Item ๊ฐ์ฒด ๋ฆฌ์ŠคํŠธ๋กœ ํŒŒ์‹ฑ

โš ๏ธ **GitHub.com Fallback** โš ๏ธ