{"id":1463,"date":"2025-06-01T08:12:36","date_gmt":"2025-05-31T23:12:36","guid":{"rendered":"https:\/\/itstudy365.com\/blog\/?p=1463"},"modified":"2025-06-01T08:12:36","modified_gmt":"2025-05-31T23:12:36","slug":"android-application-development-%e7%ac%ac32%e7%ab%a0%ef%bc%9a%e5%ae%9f%e8%b7%b5%e3%83%9f%e3%83%8b%e3%82%a2%e3%83%97%e3%83%aa%ef%bc%9a%e3%82%b7%e3%83%b3%e3%83%97%e3%83%ab%e3%81%aatodo%e3%83%aa%e3%82%b9","status":"publish","type":"post","link":"https:\/\/itstudy365.com\/blog\/2025\/06\/01\/android-application-development-%e7%ac%ac32%e7%ab%a0%ef%bc%9a%e5%ae%9f%e8%b7%b5%e3%83%9f%e3%83%8b%e3%82%a2%e3%83%97%e3%83%aa%ef%bc%9a%e3%82%b7%e3%83%b3%e3%83%97%e3%83%ab%e3%81%aatodo%e3%83%aa%e3%82%b9\/","title":{"rendered":"Android application development \u7b2c32\u7ae0\uff1a\u5b9f\u8df5\u30df\u30cb\u30a2\u30d7\u30ea\uff1a\u30b7\u30f3\u30d7\u30eb\u306aToDo\u30ea\u30b9\u30c8"},"content":{"rendered":"\n<button id=\"bb1\" type=\"button\" value=\"Play\" class=\"responsivevoice-button\" title=\"ResponsiveVoice Tap to Start\/Stop Speech\"><span>&#128266; Play<\/span><\/button>\n        <script>\n            bb1.onclick = function(){\n                if(responsiveVoice.isPlaying()){\n                    responsiveVoice.cancel();\n                }else{\n                    responsiveVoice.speak(\"\ud83c\udfaf \u76ee\u7684 \u3053\u306e\u7ae0\u3067\u306f\u3001\u300c\u30b7\u30f3\u30d7\u30eb\u306aToDo\u30ea\u30b9\u30c8\u30a2\u30d7\u30ea\u300d\u3092\u901a\u3057\u3066\u3001\u4ee5\u4e0b\u306e\u77e5\u8b58\u3092\u5b9f\u8df5\u7684\u306b\u7d71\u5408\u3057\u3066\u8eab\u306b\u3064\u3051\u307e\u3059\uff1a \u6a5f\u80fd\/\u5f79\u5272\u4f7f\u7528\u3059\u308b\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u753b\u9762\u8868\u793a\u30fbUIActivity, XML, RecyclerView\u72b6\u614b\u7ba1\u7406ViewModel, LiveData\u30c7\u30fc\u30bf\u4fdd\u5b58Room (SQLite\u306e\u30e9\u30c3\u30d1\u30fc)UI\u66f4\u65b0RecyclerView.Adapter \uff0b LiveData \ud83d\uddc2 \u30a2\u30d7\u30ea\u306e\u69cb\u6210\u30a4\u30e1\u30fc\u30b8 MainActivity\uff1aToDo\u4e00\u89a7\u3092\u8868\u793a\uff08RecyclerView\uff09\uff0b\u8ffd\u52a0\u30dc\u30bf\u30f3\u3042\u308a ViewModel\uff1aRoom\u3068RecyclerView\u306e\u6a4b\u6e21\u3057\u3002\u72b6\u614b\u3092\u4fdd\u6301\u3002 Room\uff1a\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306bToDo\u3092\u4fdd\u5b58\u3002 RecyclerView\uff1aToDo\u30a2\u30a4\u30c6\u30e0\u3092\u30ea\u30b9\u30c8\u3067\u8868\u793a\u3002 \ud83e\udde9 \u5404\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u306e\u5f79\u5272 \u2460 Activity\uff1aUI\u306e\u571f\u53f0 \u753b\u9762\u306e\u5236\u5fa1\u3092\u3059\u308b\u30af\u30e9\u30b9\u3067\u3059\u3002\u30dc\u30bf\u30f3\u3084\u30ea\u30b9\u30c8\u30d3\u30e5\u30fc\u3092\u8868\u793a\u3057\u3001\u30e6\u30fc\u30b6\u30fc\u306e\u64cd\u4f5c\u306b\u5fdc\u3058\u3066ViewModel\u3092\u547c\u3073\u51fa\u3057\u307e\u3059\u3002 MainViewModel viewModel = new ViewModelProvider(this).get(MainViewModel.class); viewModel.getTodoList().observe(this, todos -greater than { adapter.submitList(todos); }); \u2461 ViewModel\uff1aUI\u306b\u4f9d\u5b58\u3057\u306a\u3044\u30ed\u30b8\u30c3\u30af\u4fdd\u6301 Room\u306e\u30c7\u30fc\u30bf\u3092 LiveData \u3067\u4fdd\u6301 UI\uff08Activity\uff09\u306f LiveData \u3092 observe\uff08\u76e3\u8996\uff09\u3057\u3066\u3001\u5909\u66f4\u6642\u306b\u81ea\u52d5\u3067\u66f4\u65b0\u3055\u308c\u308b public class MainViewModel extends AndroidViewModel { private final TodoRepository repo; private final LiveDataless thanListless thanTodogreater thangreater than todoList; public MainViewModel(@NonNull Application app) { super(app); repo = new TodoRepository(app); todoList = repo.getAllTodos(); } public LiveDataless thanListless thanTodogreater thangreater than getTodoList() { return todoList; } public void addTodo(String title) { repo.insert(new Todo(title)); } } \u2462 RecyclerView\uff1a\u30ea\u30b9\u30c8\u8868\u793a\u306eUI\u90e8\u54c1 ToDo\u30ea\u30b9\u30c8\u3092\u8868\u793a\u3059\u308b\u305f\u3081\u306e\u90e8\u54c1\u3067\u3001\u5404\u30a2\u30a4\u30c6\u30e0\u3092\u52b9\u7387\u7684\u306b\u518d\u5229\u7528\u3057\u3066\u63cf\u753b\u3057\u307e\u3059\u3002Adapter\u30af\u30e9\u30b9\u3092\u4f7f\u3063\u3066\u3001\u30c7\u30fc\u30bf\u3068UI\u3092\u6a4b\u6e21\u3057\u3057\u307e\u3059\u3002 public class TodoAdapter extends ListAdapterless thanTodo, TodoAdapter.TodoViewHoldergreater than { \/\/ ViewHolder\u306a\u3069\u3092\u5b9a\u7fa9 } \u2463 Room\uff1a\u30c7\u30fc\u30bf\u4fdd\u5b58\u306e\u305f\u3081\u306eDB\u30e9\u30c3\u30d1\u30fc SQLite\u306e\u4ee3\u308f\u308a\u306b\u3001\u30a2\u30ce\u30c6\u30fc\u30b7\u30e7\u30f3\u30d9\u30fc\u30b9\u3067DB\u64cd\u4f5c\u3092\u7c21\u5358\u306b\u884c\u3048\u308b\u4ed5\u7d44\u307f\u3067\u3059\u3002 @Entity public class Todo { @PrimaryKey(autoGenerate = true) public int id; @NonNull public String title; public Todo(@NonNull String title) { this.title = title; } } @Dao public interface TodoDao { @Query(\\\"SELECT * FROM Todo ORDER BY id DESC\\\") LiveDataless thanListless thanTodogreater thangreater than getAll(); @Insert void insert(Todo todo); } \ud83d\udd04 \u9023\u643a\u306e\u6d41\u308c\uff08\u5168\u4f53\uff09 \ud83e\uddea \u5b9f\u88c5\u306e\u30dd\u30a4\u30f3\u30c8 \u30c7\u30fc\u30bf\u306e\u6d41\u308c\u306f\u4e00\u65b9\u5411\uff1aActivity \u2192 ViewModel \u2192 Repository \u2192 Room \u72b6\u614b\u7ba1\u7406\u306fViewModel\u304c\u4e2d\u5fc3\uff1a\u753b\u9762\u56de\u8ee2\u3067\u3082\u30c7\u30fc\u30bf\u304c\u6d88\u3048\u306a\u3044 Room\u3068LiveData\u3067DB\u66f4\u65b0\u304cUI\u306b\u53cd\u6620\u3055\u308c\u308b \ud83d\udee0 \u7df4\u7fd2\u8ab2\u984c\uff08\u767a\u5c55\uff09 ToDo\u306e\u30c1\u30a7\u30c3\u30af\u6a5f\u80fd\uff08\u5b8c\u4e86\u30d5\u30e9\u30b0\uff09 \u30a2\u30a4\u30c6\u30e0\u306e\u524a\u9664\u6a5f\u80fd\uff08\u30b9\u30ef\u30a4\u30d7\u5bfe\u5fdc\uff09 \u65e5\u6642\u3084\u512a\u5148\u5ea6\u306e\u8ffd\u52a0 DataBinding \u306e\u5c0e\u5165\u306b\u3088\u308b UI \u30ed\u30b8\u30c3\u30af\u7c21\u7565\u5316 \ud83d\udca1 \u307e\u3068\u3081 \u3053\u306eToDo\u30ea\u30b9\u30c8\u30a2\u30d7\u30ea\u3092\u901a\u3058\u3066\u3001\u4ee5\u4e0b\u306e\u300cAndroid\u958b\u767a\u306b\u304a\u3051\u308b\u5b9a\u756a\u69cb\u6210\u300d\u3092\u5b9f\u8df5\u7684\u306b\u7406\u89e3\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\uff1a ViewModel\u3068LiveData\u306b\u3088\u308b\u72b6\u614b\u7ba1\u7406 RecyclerView\u306b\u3088\u308b\u30ea\u30b9\u30c8\u8868\u793a Room\u306b\u3088\u308b\u6c38\u7d9a\u5316 Activity\u3068\u306e\u9023\u643a\", \"Japanese Female\");\n                }\n            };\n        <\/script>\n    <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83c\udfaf \u76ee\u7684<\/h2>\n\n\n\n<p>\u3053\u306e\u7ae0\u3067\u306f\u3001\u300c<strong>\u30b7\u30f3\u30d7\u30eb\u306aToDo\u30ea\u30b9\u30c8\u30a2\u30d7\u30ea<\/strong>\u300d\u3092\u901a\u3057\u3066\u3001\u4ee5\u4e0b\u306e\u77e5\u8b58\u3092\u5b9f\u8df5\u7684\u306b\u7d71\u5408\u3057\u3066\u8eab\u306b\u3064\u3051\u307e\u3059\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>\u6a5f\u80fd\/\u5f79\u5272<\/th><th>\u4f7f\u7528\u3059\u308b\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8<\/th><\/tr><\/thead><tbody><tr><td>\u753b\u9762\u8868\u793a\u30fbUI<\/td><td><code>Activity<\/code>, <code>XML<\/code>, <code>RecyclerView<\/code><\/td><\/tr><tr><td>\u72b6\u614b\u7ba1\u7406<\/td><td><code>ViewModel<\/code>, <code>LiveData<\/code><\/td><\/tr><tr><td>\u30c7\u30fc\u30bf\u4fdd\u5b58<\/td><td><code>Room<\/code> (SQLite\u306e\u30e9\u30c3\u30d1\u30fc)<\/td><\/tr><tr><td>UI\u66f4\u65b0<\/td><td><code>RecyclerView.Adapter<\/code> \uff0b <code>LiveData<\/code><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\uddc2 \u30a2\u30d7\u30ea\u306e\u69cb\u6210\u30a4\u30e1\u30fc\u30b8<\/h2>\n\n\n\n<ul>\n<li><strong>MainActivity<\/strong>\uff1aToDo\u4e00\u89a7\u3092\u8868\u793a\uff08RecyclerView\uff09\uff0b\u8ffd\u52a0\u30dc\u30bf\u30f3\u3042\u308a<\/li>\n\n\n\n<li><strong>ViewModel<\/strong>\uff1aRoom\u3068RecyclerView\u306e\u6a4b\u6e21\u3057\u3002\u72b6\u614b\u3092\u4fdd\u6301\u3002<\/li>\n\n\n\n<li><strong>Room<\/strong>\uff1a\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306bToDo\u3092\u4fdd\u5b58\u3002<\/li>\n\n\n\n<li><strong>RecyclerView<\/strong>\uff1aToDo\u30a2\u30a4\u30c6\u30e0\u3092\u30ea\u30b9\u30c8\u3067\u8868\u793a\u3002<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83e\udde9 \u5404\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u306e\u5f79\u5272<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">\u2460 <code>Activity<\/code>\uff1aUI\u306e\u571f\u53f0<\/h3>\n\n\n\n<p>\u753b\u9762\u306e\u5236\u5fa1\u3092\u3059\u308b\u30af\u30e9\u30b9\u3067\u3059\u3002\u30dc\u30bf\u30f3\u3084\u30ea\u30b9\u30c8\u30d3\u30e5\u30fc\u3092\u8868\u793a\u3057\u3001\u30e6\u30fc\u30b6\u30fc\u306e\u64cd\u4f5c\u306b\u5fdc\u3058\u3066ViewModel\u3092\u547c\u3073\u51fa\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-csharp\" data-lang=\"C#\" data-show-lang=\"0\"><code>MainViewModel viewModel = new ViewModelProvider(this).get(MainViewModel.class);\nviewModel.getTodoList().observe(this, todos -&gt; {\n    adapter.submitList(todos);\n});<\/code><\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">\u2461 <code>ViewModel<\/code>\uff1aUI\u306b\u4f9d\u5b58\u3057\u306a\u3044\u30ed\u30b8\u30c3\u30af\u4fdd\u6301<\/h3>\n\n\n\n<ul>\n<li>Room\u306e\u30c7\u30fc\u30bf\u3092 LiveData \u3067\u4fdd\u6301<\/li>\n\n\n\n<li>UI\uff08Activity\uff09\u306f LiveData \u3092 observe\uff08\u76e3\u8996\uff09\u3057\u3066\u3001\u5909\u66f4\u6642\u306b\u81ea\u52d5\u3067\u66f4\u65b0\u3055\u308c\u308b<\/li>\n<\/ul>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-csharp\" data-lang=\"C#\" data-show-lang=\"0\"><code>public class MainViewModel extends AndroidViewModel {\n    private final TodoRepository repo;\n    private final LiveData&lt;List&lt;Todo&gt;&gt; todoList;\n\n    public MainViewModel(@NonNull Application app) {\n        super(app);\n        repo = new TodoRepository(app);\n        todoList = repo.getAllTodos();\n    }\n\n    public LiveData&lt;List&lt;Todo&gt;&gt; getTodoList() {\n        return todoList;\n    }\n\n    public void addTodo(String title) {\n        repo.insert(new Todo(title));\n    }\n}<\/code><\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">\u2462 <code>RecyclerView<\/code>\uff1a\u30ea\u30b9\u30c8\u8868\u793a\u306eUI\u90e8\u54c1<\/h3>\n\n\n\n<p>ToDo\u30ea\u30b9\u30c8\u3092\u8868\u793a\u3059\u308b\u305f\u3081\u306e\u90e8\u54c1\u3067\u3001\u5404\u30a2\u30a4\u30c6\u30e0\u3092\u52b9\u7387\u7684\u306b\u518d\u5229\u7528\u3057\u3066\u63cf\u753b\u3057\u307e\u3059\u3002<code>Adapter<\/code>\u30af\u30e9\u30b9\u3092\u4f7f\u3063\u3066\u3001\u30c7\u30fc\u30bf\u3068UI\u3092\u6a4b\u6e21\u3057\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-csharp\" data-lang=\"C#\" data-show-lang=\"0\"><code>public class TodoAdapter extends ListAdapter&lt;Todo, TodoAdapter.TodoViewHolder&gt; {\n    \/\/ ViewHolder\u306a\u3069\u3092\u5b9a\u7fa9\n}<\/code><\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">\u2463 <code>Room<\/code>\uff1a\u30c7\u30fc\u30bf\u4fdd\u5b58\u306e\u305f\u3081\u306eDB\u30e9\u30c3\u30d1\u30fc<\/h3>\n\n\n\n<p>SQLite\u306e\u4ee3\u308f\u308a\u306b\u3001\u30a2\u30ce\u30c6\u30fc\u30b7\u30e7\u30f3\u30d9\u30fc\u30b9\u3067DB\u64cd\u4f5c\u3092\u7c21\u5358\u306b\u884c\u3048\u308b\u4ed5\u7d44\u307f\u3067\u3059\u3002<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-csharp\" data-lang=\"C#\" data-show-lang=\"0\"><code>@Entity\npublic class Todo {\n    @PrimaryKey(autoGenerate = true)\n    public int id;\n\n    @NonNull\n    public String title;\n\n    public Todo(@NonNull String title) {\n        this.title = title;\n    }\n}<\/code><\/pre><\/div>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-csharp\" data-lang=\"C#\" data-show-lang=\"0\"><code>@Dao\npublic interface TodoDao {\n    @Query(&quot;SELECT * FROM Todo ORDER BY id DESC&quot;)\n    LiveData&lt;List&lt;Todo&gt;&gt; getAll();\n\n    @Insert\n    void insert(Todo todo);\n}<\/code><\/pre><\/div>\n\n\n\n<p>\ud83d\udd04 \u9023\u643a\u306e\u6d41\u308c\uff08\u5168\u4f53\uff09<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"233\" height=\"321\" src=\"https:\/\/itstudy365.com\/blog\/wp-content\/uploads\/2025\/06\/image.png\" alt=\"\" class=\"wp-image-1464\" srcset=\"https:\/\/itstudy365.com\/blog\/wp-content\/uploads\/2025\/06\/image.png 233w, https:\/\/itstudy365.com\/blog\/wp-content\/uploads\/2025\/06\/image-218x300.png 218w\" sizes=\"(max-width: 233px) 100vw, 233px\" \/><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83e\uddea \u5b9f\u88c5\u306e\u30dd\u30a4\u30f3\u30c8<\/h2>\n\n\n\n<ul>\n<li><strong>\u30c7\u30fc\u30bf\u306e\u6d41\u308c\u306f\u4e00\u65b9\u5411<\/strong>\uff1aActivity \u2192 ViewModel \u2192 Repository \u2192 Room<\/li>\n\n\n\n<li><strong>\u72b6\u614b\u7ba1\u7406\u306fViewModel\u304c\u4e2d\u5fc3<\/strong>\uff1a\u753b\u9762\u56de\u8ee2\u3067\u3082\u30c7\u30fc\u30bf\u304c\u6d88\u3048\u306a\u3044<\/li>\n\n\n\n<li><strong>Room\u3068LiveData\u3067DB\u66f4\u65b0\u304cUI\u306b\u53cd\u6620\u3055\u308c\u308b<\/strong><\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\udee0 \u7df4\u7fd2\u8ab2\u984c\uff08\u767a\u5c55\uff09<\/h2>\n\n\n\n<ul>\n<li>ToDo\u306e\u30c1\u30a7\u30c3\u30af\u6a5f\u80fd\uff08\u5b8c\u4e86\u30d5\u30e9\u30b0\uff09<\/li>\n\n\n\n<li>\u30a2\u30a4\u30c6\u30e0\u306e\u524a\u9664\u6a5f\u80fd\uff08\u30b9\u30ef\u30a4\u30d7\u5bfe\u5fdc\uff09<\/li>\n\n\n\n<li>\u65e5\u6642\u3084\u512a\u5148\u5ea6\u306e\u8ffd\u52a0<\/li>\n\n\n\n<li>DataBinding \u306e\u5c0e\u5165\u306b\u3088\u308b UI \u30ed\u30b8\u30c3\u30af\u7c21\u7565\u5316<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\udca1 \u307e\u3068\u3081<\/h2>\n\n\n\n<p>\u3053\u306eToDo\u30ea\u30b9\u30c8\u30a2\u30d7\u30ea\u3092\u901a\u3058\u3066\u3001\u4ee5\u4e0b\u306e\u300cAndroid\u958b\u767a\u306b\u304a\u3051\u308b\u5b9a\u756a\u69cb\u6210\u300d\u3092\u5b9f\u8df5\u7684\u306b\u7406\u89e3\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\uff1a<\/p>\n\n\n\n<ul>\n<li>ViewModel\u3068LiveData\u306b\u3088\u308b\u72b6\u614b\u7ba1\u7406<\/li>\n\n\n\n<li>RecyclerView\u306b\u3088\u308b\u30ea\u30b9\u30c8\u8868\u793a<\/li>\n\n\n\n<li>Room\u306b\u3088\u308b\u6c38\u7d9a\u5316<\/li>\n\n\n\n<li>Activity\u3068\u306e\u9023\u643a<\/li>\n<\/ul>\n\n\n\n<p>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[54],"_links":{"self":[{"href":"https:\/\/itstudy365.com\/blog\/wp-json\/wp\/v2\/posts\/1463"}],"collection":[{"href":"https:\/\/itstudy365.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/itstudy365.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/itstudy365.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/itstudy365.com\/blog\/wp-json\/wp\/v2\/comments?post=1463"}],"version-history":[{"count":1,"href":"https:\/\/itstudy365.com\/blog\/wp-json\/wp\/v2\/posts\/1463\/revisions"}],"predecessor-version":[{"id":1465,"href":"https:\/\/itstudy365.com\/blog\/wp-json\/wp\/v2\/posts\/1463\/revisions\/1465"}],"wp:attachment":[{"href":"https:\/\/itstudy365.com\/blog\/wp-json\/wp\/v2\/media?parent=1463"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/itstudy365.com\/blog\/wp-json\/wp\/v2\/categories?post=1463"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/itstudy365.com\/blog\/wp-json\/wp\/v2\/tags?post=1463"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}