{"id":32795,"date":"2024-11-01T09:11:36","date_gmt":"2024-11-01T09:11:36","guid":{"rendered":"http:\/\/atmokpo.com\/w\/?p=32795"},"modified":"2024-11-01T11:23:41","modified_gmt":"2024-11-01T11:23:41","slug":"swiftui-style-iphone-app-development-events-and-gestures","status":"publish","type":"post","link":"https:\/\/atmokpo.com\/w\/32795\/","title":{"rendered":"SwiftUI Style, iPhone App Development, Events and Gestures"},"content":{"rendered":"<article>\n<p>Modern mobile applications need to support various events and gestures for interaction with users. In particular, SwiftUI is the latest framework provided by Apple, allowing for easy and efficient construction of user interfaces (UIs). This article will delve deeply into how to utilize events and gestures in the process of developing iPhone apps using SwiftUI.<\/p>\n<h2>1. Overview of SwiftUI<\/h2>\n<p>SwiftUI is a framework that helps build UIs using declarative syntax. It provides a variety of features with intuitive components, enhancing code readability and making application maintenance easier. SwiftUI is designed with the goal of providing a consistent user experience across Apple\u2019s platforms, and can be used across the entire Apple ecosystem including iOS, macOS, watchOS, and tvOS.<\/p>\n<h2>2. Concept of Event Handling<\/h2>\n<p>Event handling refers to performing specific actions in the application in response to user inputs (touch, click, gesture, etc.). In SwiftUI, events mainly occur when interacting with views (elements within the view), and these events can change the state of the view model or the view itself. Events in SwiftUI are typically handled in the following forms:<\/p>\n<ul>\n<li>User touch input<\/li>\n<li>Keyboard input<\/li>\n<li>Scroll events<\/li>\n<li>Timer-based events<\/li>\n<\/ul>\n<h2>3. Gesture Handling in SwiftUI<\/h2>\n<p>SwiftUI supports various gesture recognitions, broadening the scope of user interactions. Gestures are primarily based on touch events, occurring when users swipe, tap, pinch, or drag on the screen. Gestures in SwiftUI can be handled in the following ways:<\/p>\n<h3>3.1. Tap Gesture<\/h3>\n<p>The tap gesture is a simple gesture where the user touches the screen once, typically used for actions like button clicks. Here\u2019s how to use a Tap Gesture in SwiftUI:<\/p>\n<pre><code>struct ContentView: View {\n        var body: some View {\n            Text(\"Tap Me\")\n                .onTapGesture {\n                    print(\"Tapped!\")\n                }\n        }\n    }<\/code><\/pre>\n<h3>3.2. Long Press Gesture<\/h3>\n<p>The long press gesture involves the user pressing the screen for a prolonged duration, allowing various additional actions to be associated with it. Here\u2019s the code to implement this:<\/p>\n<pre><code>struct ContentView: View {\n        @State private var isPressed = false\n\n        var body: some View {\n            Text(\"Long Press Me\")\n                .padding()\n                .background(isPressed ? Color.gray : Color.blue)\n                .onLongPressGesture {\n                    isPressed.toggle()\n                }\n        }\n    }<\/code><\/pre>\n<h3>3.3. Drag Gesture<\/h3>\n<p>The drag gesture occurs when the user moves their finger to drag the screen. This can primarily be used in relation to positional movement. Here\u2019s an example of implementing a drag gesture:<\/p>\n<pre><code>struct ContentView: View {\n        @State private var offset = CGSize.zero\n\n        var body: some View {\n            Text(\"Drag Me\")\n                .offset(x: offset.width, y: offset.height)\n                .gesture(\n                    DragGesture()\n                        .onChanged { value in\n                            self.offset = value.translation\n                        }\n                        .onEnded { value in\n                            self.offset = CGSize.zero\n                        }\n                )\n        }\n    }<\/code><\/pre>\n<h3>3.4. Swipe Gesture<\/h3>\n<p>The swipe gesture occurs when a user quickly swipes the screen in one direction. In SwiftUI, you can program gestures to recognize swipe actions. The example below implements a swipe action:<\/p>\n<pre><code>struct ContentView: View {\n        @State private var offset = CGSize.zero\n\n        var body: some View {\n            Text(\"Swipe Me\")\n                .offset(x: offset.width, y: offset.height)\n                .gesture(\n                    DragGesture()\n                        .onEnded { value in\n                            if value.translation.width > 100 {\n                                print(\"Swiped Right\")\n                            } else if value.translation.width < -100 {\n                                print(\"Swiped Left\")\n                            }\n                        }\n                )\n        }\n    }<\/code><\/pre>\n<h3>3.5. Pinch Gesture<\/h3>\n<p>The pinch gesture involves using two fingers to zoom in or out, primarily utilized in applications like image viewers. Here\u2019s how to implement a pinch gesture in SwiftUI:<\/p>\n<pre><code>struct ContentView: View {\n        @State private var scale: CGFloat = 1.0\n\n        var body: some View {\n            Image(\"example\")\n                .resizable()\n                .scaleEffect(scale)\n                .gesture(\n                    MagnificationGesture()\n                        .onChanged { value in\n                            self.scale = value.magnitude\n                        }\n                )\n        }\n    }<\/code><\/pre>\n<h2>4. Combining Events and Gestures<\/h2>\n<p>The power of SwiftUI lies in combining events and gestures to provide a richer user experience. Users can combine multiple gestures to perform a single action, enabling more intuitive interactions. Here\u2019s how to detect and handle multiple gestures simultaneously:<\/p>\n<pre><code>struct ContentView: View {\n        @State private var offset = CGSize.zero\n        @State private var scale: CGFloat = 1.0\n\n        var body: some View {\n            Text(\"Drag and Pinch Me\")\n                .scaleEffect(scale)\n                .offset(x: offset.width, y: offset.height)\n                .gesture(\n                    SimultaneousGesture(\n                        DragGesture()\n                            .onChanged { value in\n                                self.offset = value.translation\n                            },\n                        MagnificationGesture()\n                            .onChanged { value in\n                                self.scale = value.magnitude\n                            }\n                    )\n                )\n        }\n    }<\/code><\/pre>\n<h2>5. Gesture State Management<\/h2>\n<p>Managing gesture states is an important aspect of enhancing the responsiveness of the application. It is essential to properly manage state whenever a user's gesture occurs, enabling the application to provide immediate feedback to the user. In SwiftUI, you can efficiently manage the state of gestures using the @GestureState property.<\/p>\n<pre><code>struct ContentView: View {\n        @GestureState private var dragAmount = CGSize.zero\n\n        var body: some View {\n            Text(\"Drag Me\")\n                .offset(dragAmount)\n                .gesture(\n                    DragGesture()\n                        .updating($dragAmount) { (value, state, transaction) in\n                            state = value.translation\n                        }\n                )\n                .animation(.spring())\n        }\n    }<\/code><\/pre>\n<h2>6. Creating Custom Gestures<\/h2>\n<p>SwiftUI provides the flexibility to create custom gestures in addition to the built-in ones. This allows for the enhancement of the application's uniqueness and user experience by defining specific required actions. The basic process of creating a custom gesture is as follows:<\/p>\n<pre><code>struct CustomGesture: Gesture {\n        var minimumDistance: CGFloat\n\n        var body: some Gesture {\n            LongPressGesture(minimumDuration: 1)\n                .combined(with: DragGesture(minimumDistance: minimumDistance))\n        }\n    }\n\n    struct ContentView: View {\n        var body: some View {\n            Rectangle()\n                .gesture(CustomGesture(minimumDistance: 50))\n                .onEnded { _ in\n                    print(\"Custom Gesture Recognized\")\n                }\n        }\n    }<\/code><\/pre>\n<h2>7. Motion and Animation<\/h2>\n<p>SwiftUI allows for easy additions of animations to enhance the attractiveness of the application's UI. Combined with gestures, interactions can naturally apply animations, providing feedback to the user as well.<\/p>\n<pre><code>struct ContentView: View {\n        @State private var scale: CGFloat = 1.0\n\n        var body: some View {\n            Text(\"Pinch Me\")\n                .scaleEffect(scale)\n                .gesture(\n                    MagnificationGesture()\n                        .onChanged { value in\n                            withAnimation {\n                                self.scale = value.magnitude\n                            }\n                        }\n                )\n                .animation(.easeInOut, value: scale)\n        }\n    }<\/code><\/pre>\n<h2>8. Conclusion<\/h2>\n<p>SwiftUI offers an innovative approach to iPhone app development, enabling rich interactions through user events and gestures. By utilizing various gestures and event handling methods discussed in this article, you can add customized features to your applications and maximize user experience. Leveraging the diverse capabilities of SwiftUI allows for the easy development of professional apps.<\/p>\n<\/article>\n","protected":false},"excerpt":{"rendered":"<p>Modern mobile applications need to support various events and gestures for interaction with users. In particular, SwiftUI is the latest framework provided by Apple, allowing for easy and efficient construction of user interfaces (UIs). This article will delve deeply into how to utilize events and gestures in the process of developing iPhone apps using SwiftUI. &hellip; <a href=\"https:\/\/atmokpo.com\/w\/32795\/\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;SwiftUI Style, iPhone App Development, Events and Gestures&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[125],"tags":[],"class_list":["post-32795","post","type-post","status-publish","format-standard","hentry","category-swift-iphone-app-development-swiftui"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.2 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>SwiftUI Style, iPhone App Development, Events and Gestures - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/atmokpo.com\/w\/32795\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"SwiftUI Style, iPhone App Development, Events and Gestures - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"og:description\" content=\"Modern mobile applications need to support various events and gestures for interaction with users. In particular, SwiftUI is the latest framework provided by Apple, allowing for easy and efficient construction of user interfaces (UIs). This article will delve deeply into how to utilize events and gestures in the process of developing iPhone apps using SwiftUI. &hellip; \ub354 \ubcf4\uae30 &quot;SwiftUI Style, iPhone App Development, Events and Gestures&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/atmokpo.com\/w\/32795\/\" \/>\n<meta property=\"og:site_name\" content=\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"article:published_time\" content=\"2024-11-01T09:11:36+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-11-01T11:23:41+00:00\" \/>\n<meta name=\"author\" content=\"root\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@bebubo4\" \/>\n<meta name=\"twitter:site\" content=\"@bebubo4\" \/>\n<meta name=\"twitter:label1\" content=\"\uae00\uc4f4\uc774\" \/>\n\t<meta name=\"twitter:data1\" content=\"root\" \/>\n\t<meta name=\"twitter:label2\" content=\"\uc608\uc0c1 \ub418\ub294 \ud310\ub3c5 \uc2dc\uac04\" \/>\n\t<meta name=\"twitter:data2\" content=\"5\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/atmokpo.com\/w\/32795\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/32795\/\"},\"author\":{\"name\":\"root\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7\"},\"headline\":\"SwiftUI Style, iPhone App Development, Events and Gestures\",\"datePublished\":\"2024-11-01T09:11:36+00:00\",\"dateModified\":\"2024-11-01T11:23:41+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/atmokpo.com\/w\/32795\/\"},\"wordCount\":637,\"publisher\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\"},\"articleSection\":[\"Swift iPhone app development (SwiftUI)\"],\"inLanguage\":\"ko-KR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/atmokpo.com\/w\/32795\/\",\"url\":\"https:\/\/atmokpo.com\/w\/32795\/\",\"name\":\"SwiftUI Style, iPhone App Development, Events and Gestures - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#website\"},\"datePublished\":\"2024-11-01T09:11:36+00:00\",\"dateModified\":\"2024-11-01T11:23:41+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/atmokpo.com\/w\/32795\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/atmokpo.com\/w\/32795\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/atmokpo.com\/w\/32795\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\ud648\",\"item\":\"https:\/\/atmokpo.com\/w\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"SwiftUI Style, iPhone App Development, Events and Gestures\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/atmokpo.com\/w\/#website\",\"url\":\"https:\/\/atmokpo.com\/w\/\",\"name\":\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/atmokpo.com\/w\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ko-KR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\",\"name\":\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"url\":\"https:\/\/atmokpo.com\/w\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png\",\"contentUrl\":\"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png\",\"width\":400,\"height\":400,\"caption\":\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\"},\"image\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/bebubo4\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7\",\"name\":\"root\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g\",\"caption\":\"root\"},\"sameAs\":[\"http:\/\/atmokpo.com\/w\"],\"url\":\"https:\/\/atmokpo.com\/w\/author\/root\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"SwiftUI Style, iPhone App Development, Events and Gestures - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/atmokpo.com\/w\/32795\/","og_locale":"ko_KR","og_type":"article","og_title":"SwiftUI Style, iPhone App Development, Events and Gestures - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","og_description":"Modern mobile applications need to support various events and gestures for interaction with users. In particular, SwiftUI is the latest framework provided by Apple, allowing for easy and efficient construction of user interfaces (UIs). This article will delve deeply into how to utilize events and gestures in the process of developing iPhone apps using SwiftUI. &hellip; \ub354 \ubcf4\uae30 \"SwiftUI Style, iPhone App Development, Events and Gestures\"","og_url":"https:\/\/atmokpo.com\/w\/32795\/","og_site_name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","article_published_time":"2024-11-01T09:11:36+00:00","article_modified_time":"2024-11-01T11:23:41+00:00","author":"root","twitter_card":"summary_large_image","twitter_creator":"@bebubo4","twitter_site":"@bebubo4","twitter_misc":{"\uae00\uc4f4\uc774":"root","\uc608\uc0c1 \ub418\ub294 \ud310\ub3c5 \uc2dc\uac04":"5\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/atmokpo.com\/w\/32795\/#article","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/32795\/"},"author":{"name":"root","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7"},"headline":"SwiftUI Style, iPhone App Development, Events and Gestures","datePublished":"2024-11-01T09:11:36+00:00","dateModified":"2024-11-01T11:23:41+00:00","mainEntityOfPage":{"@id":"https:\/\/atmokpo.com\/w\/32795\/"},"wordCount":637,"publisher":{"@id":"https:\/\/atmokpo.com\/w\/#organization"},"articleSection":["Swift iPhone app development (SwiftUI)"],"inLanguage":"ko-KR"},{"@type":"WebPage","@id":"https:\/\/atmokpo.com\/w\/32795\/","url":"https:\/\/atmokpo.com\/w\/32795\/","name":"SwiftUI Style, iPhone App Development, Events and Gestures - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/#website"},"datePublished":"2024-11-01T09:11:36+00:00","dateModified":"2024-11-01T11:23:41+00:00","breadcrumb":{"@id":"https:\/\/atmokpo.com\/w\/32795\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/atmokpo.com\/w\/32795\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/atmokpo.com\/w\/32795\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\ud648","item":"https:\/\/atmokpo.com\/w\/en\/"},{"@type":"ListItem","position":2,"name":"SwiftUI Style, iPhone App Development, Events and Gestures"}]},{"@type":"WebSite","@id":"https:\/\/atmokpo.com\/w\/#website","url":"https:\/\/atmokpo.com\/w\/","name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","description":"","publisher":{"@id":"https:\/\/atmokpo.com\/w\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/atmokpo.com\/w\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ko-KR"},{"@type":"Organization","@id":"https:\/\/atmokpo.com\/w\/#organization","name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","url":"https:\/\/atmokpo.com\/w\/","logo":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/","url":"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png","contentUrl":"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png","width":400,"height":400,"caption":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8"},"image":{"@id":"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/bebubo4"]},{"@type":"Person","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7","name":"root","image":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g","caption":"root"},"sameAs":["http:\/\/atmokpo.com\/w"],"url":"https:\/\/atmokpo.com\/w\/author\/root\/"}]}},"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/32795","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/comments?post=32795"}],"version-history":[{"count":1,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/32795\/revisions"}],"predecessor-version":[{"id":32796,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/32795\/revisions\/32796"}],"wp:attachment":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/media?parent=32795"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/categories?post=32795"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/tags?post=32795"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}