{"id":32687,"date":"2024-11-01T09:10:51","date_gmt":"2024-11-01T09:10:51","guid":{"rendered":"http:\/\/atmokpo.com\/w\/?p=32687"},"modified":"2024-11-01T11:24:51","modified_gmt":"2024-11-01T11:24:51","slug":"swift-uikit-style-iphone-app-development-creating-view-controller-based-programs","status":"publish","type":"post","link":"https:\/\/atmokpo.com\/w\/32687\/","title":{"rendered":"Swift UIKIT style, iPhone app development, creating view controller-based programs"},"content":{"rendered":"<p><body><\/p>\n<p>iPhone app development is an important area in the field of smartphone application development. The combination of Apple&#8217;s Swift language and UIKit framework provides developers with powerful tools to create intuitive interfaces and smooth user experiences. In this course, we will learn in detail how to create iPhone apps based on view controllers using Swift language and UIKit framework.<\/p>\n<h2>1. Preparing the Development Environment<\/h2>\n<p>To start iOS app development, you first need to set up the development environment. Apple\u2019s Xcode is the official IDE (Integrated Development Environment) for iOS app development. After installing Xcode, it is also necessary to join the Apple Developer program and obtain a development certificate.<\/p>\n<h3>1.1 Installing Xcode<\/h3>\n<p>Xcode can be downloaded from the Mac App Store. After installation, launch Xcode and create a new project. Follow the steps below:<\/p>\n<ol>\n<li>Open Xcode and select &#8220;Create a new Xcode project.&#8221;<\/li>\n<li>Select the &#8220;iOS&#8221; tab and choose the &#8220;App&#8221; template.<\/li>\n<li>Enter the project name and organization identifier, and select the Swift language.<\/li>\n<li>Choose &#8220;UIKit&#8221; for Interface, and click &#8220;Next.&#8221;<\/li>\n<li>Select the location to save the project, then click &#8220;Create.&#8221;<\/li>\n<\/ol>\n<h2>2. Overview of the UIKit Framework<\/h2>\n<p>UIKit is the fundamental UI framework for building iOS applications. With UIKit, you can easily handle views, view controllers, event handling, and animations. Let\u2019s take a look at the core components and basic terminology of UIKit.<\/p>\n<h3>2.1 UIView and UIViewController<\/h3>\n<p>UIView is the basic graphic element representing a specific part of the screen. You can create various user interface elements through subclasses of UIView. UIViewController is an object that manages a UIView, handling user interactions and configuring necessary views.<\/p>\n<h2>3. Understanding the View Controller Structure<\/h2>\n<p>Setting up a view controller using UIKit in Swift is the starting point of app development. You can declare a UIViewController subclass to create instances and write the code and interface that configure the app\u2019s UI.<\/p>\n<h3>3.1 Creating a Basic UIViewController<\/h3>\n<pre><code>\nimport UIKit\n\nclass MyViewController: UIViewController {\n    override func viewDidLoad() {\n        super.viewDidLoad()\n        self.view.backgroundColor = .white\n        \/\/ Additional setup code\n    }\n}\n<\/code><\/pre>\n<p>Here, the <code>viewDidLoad()<\/code> method is called after the view is loaded into memory and is used for UI initialization and setting up additional actions.<\/p>\n<h2>4. Building the User Interface<\/h2>\n<p>You can add various UI elements using Swift and UIKit. Let\u2019s create a basic user interface with UILabel, UIButton, and UIImageView.<\/p>\n<h3>4.1 Adding a UILabel<\/h3>\n<pre><code>\nlet label = UILabel()\nlabel.text = \"Hello, Swift!\"\nlabel.textColor = .black\nlabel.translatesAutoresizingMaskIntoConstraints = false\nview.addSubview(label)\n\n\/\/ Setting up Auto Layout\nNSLayoutConstraint.activate([\n    label.centerXAnchor.constraint(equalTo: view.centerXAnchor),\n    label.centerYAnchor.constraint(equalTo: view.centerYAnchor)\n])\n<\/code><\/pre>\n<h3>4.2 Adding a UIButton<\/h3>\n<pre><code>\nlet button = UIButton(type: .system)\nbutton.setTitle(\"Click me!\", for: .normal)\nbutton.addTarget(self, action: #selector(buttonTapped), for: .touchUpInside)\nbutton.translatesAutoresizingMaskIntoConstraints = false\nview.addSubview(button)\n\n\/\/ Setting up Auto Layout\nNSLayoutConstraint.activate([\n    button.topAnchor.constraint(equalTo: label.bottomAnchor, constant: 20),\n    button.centerXAnchor.constraint(equalTo: view.centerXAnchor)\n])\n\n@objc func buttonTapped() {\n    print(\"Button was clicked!\")\n}\n<\/code><\/pre>\n<h2>5. Data and Models<\/h2>\n<p>The functionality of the app is based on data. Let\u2019s learn how to define models and manage data.<\/p>\n<h3>5.1 Defining a Model<\/h3>\n<pre><code>\nstruct User {\n    var name: String\n    var age: Int\n}\n<\/code><\/pre>\n<p>By defining a model structure like the one above, you can manage data related to users. This increases code reusability and maintainability.<\/p>\n<h2>6. Understanding Table Views and Collection Views<\/h2>\n<p>Let\u2019s learn how to use UITableView and UICollectionView to efficiently display large amounts of data.<\/p>\n<h3>6.1 Using UITableView<\/h3>\n<p>UITableView is a powerful view that easily displays list-formatted data. Let\u2019s set up a UITableView using the example below.<\/p>\n<pre><code>\nclass TableViewController: UITableViewController {\n    let items = [\"Item 1\", \"Item 2\", \"Item 3\"]\n\n    override func viewDidLoad() {\n        super.viewDidLoad()\n        tableView.register(UITableViewCell.self, forCellReuseIdentifier: \"cell\")\n    }\n\n    override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {\n        return items.count\n    }\n\n    override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {\n        let cell = tableView.dequeueReusableCell(withIdentifier: \"cell\", for: indexPath)\n        cell.textLabel?.text = items[indexPath.row]\n        return cell\n    }\n}\n<\/code><\/pre>\n<h3>6.2 Using UICollectionView<\/h3>\n<p>UICollectionView is used to display data in a grid format. The structure of a collection view is similar to that of a table view.<\/p>\n<pre><code>\nclass CollectionViewController: UICollectionViewController {\n    let items = [UIColor.red, UIColor.green, UIColor.blue]\n\n    override func viewDidLoad() {\n        super.viewDidLoad()\n        collectionView.register(UICollectionViewCell.self, forCellWithReuseIdentifier: \"cell\")\n    }\n\n    override func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {\n        return items.count\n    }\n\n    override func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {\n        let cell = collectionView.dequeueReusableCell(withReuseIdentifier: \"cell\", for: indexPath)\n        cell.backgroundColor = items[indexPath.row]\n        return cell\n    }\n}\n<\/code><\/pre>\n<h2>7. Navigation and Tab Bar<\/h2>\n<p>Let\u2019s learn how to use navigation controllers and tab bar controllers to make transitions between screens in an app easier.<\/p>\n<h3>7.1 Using UINavigationController<\/h3>\n<p>UINavigationController provides a stack-based navigation mechanism. Let\u2019s look at how to push controllers in navigation as demonstrated below.<\/p>\n<pre><code>\nlet secondViewController = SecondViewController()\nnavigationController?.pushViewController(secondViewController, animated: true)\n<\/code><\/pre>\n<h3>7.2 Using UITabBarController<\/h3>\n<p>UITabBarController displays multiple view controllers in a tab format, helping users to navigate easily within the app.<\/p>\n<pre><code>\nlet tabBarController = UITabBarController()\ntabBarController.viewControllers = [viewController1, viewController2, viewController3]\nwindow?.rootViewController = tabBarController\n<\/code><\/pre>\n<h2>8. Managing the App Lifecycle<\/h2>\n<p>The app lifecycle is an important part of managing the overall user experience. You can use UIApplication to manage when the app becomes active, inactive, and terminated.<\/p>\n<h3>8.1 App Lifecycle Methods<\/h3>\n<p>Here is how to implement the UIApplicationDelegate protocol to handle app lifecycle events in Swift.<\/p>\n<pre><code>\nfunc applicationDidBecomeActive(_ application: UIApplication) {\n    \/\/ Called when the app becomes active\n}\n\nfunc applicationWillResignActive(_ application: UIApplication) {\n    \/\/ Called just before the app becomes inactive\n}\n<\/code><\/pre>\n<h2>9. Storing Data<\/h2>\n<p>Let&#8217;s learn how to save and retrieve data generated by the app. We can utilize UserDefaults, Core Data, and the File System.<\/p>\n<h3>9.1 Using UserDefaults<\/h3>\n<pre><code>\nlet defaults = UserDefaults.standard\ndefaults.set(\"Model Data\", forKey: \"key\")\nlet value = defaults.string(forKey: \"key\")\n<\/code><\/pre>\n<h3>9.2 Using Core Data<\/h3>\n<p>Core Data is a database technology used to manage complex data models. It helps to efficiently store and retrieve data. To use Core Data, you must set up the model first and manage data with NSManagedObject subclass.<\/p>\n<h2>10. Preparing for App Distribution<\/h2>\n<p>Finally, let\u2019s summarize what needs to be prepared for distributing the app on the App Store. You need to set up the app\u2019s icon, screenshots, descriptions, etc., and conduct tests for distribution.<\/p>\n<h3>10.1 Setting Up App Store Connect<\/h3>\n<p>Using App Store Connect, you can submit the app and manage the app within the App Store. After completing the basic settings, you need to get approval for distribution after testing.<\/p>\n<h2>Conclusion<\/h2>\n<p>Developing iPhone apps using Swift and UIKit requires various skills, from the initial setup to adding complex UI components, managing data, and distribution. I hope this course has helped you understand the basic flow and concepts. I recommend gaining more experience through practice and continuously learning.<\/p>\n<p>In conclusion, I wish you success in your iPhone app development!<\/p>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"<p>iPhone app development is an important area in the field of smartphone application development. The combination of Apple&#8217;s Swift language and UIKit framework provides developers with powerful tools to create intuitive interfaces and smooth user experiences. In this course, we will learn in detail how to create iPhone apps based on view controllers using Swift &hellip; <a href=\"https:\/\/atmokpo.com\/w\/32687\/\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;Swift UIKIT style, iPhone app development, creating view controller-based programs&#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":[127],"tags":[],"class_list":["post-32687","post","type-post","status-publish","format-standard","hentry","category-swift-iphone-app-development-uikit"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.2 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Swift UIKIT style, iPhone app development, creating view controller-based programs - \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\/32687\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Swift UIKIT style, iPhone app development, creating view controller-based programs - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"og:description\" content=\"iPhone app development is an important area in the field of smartphone application development. The combination of Apple&#8217;s Swift language and UIKit framework provides developers with powerful tools to create intuitive interfaces and smooth user experiences. In this course, we will learn in detail how to create iPhone apps based on view controllers using Swift &hellip; \ub354 \ubcf4\uae30 &quot;Swift UIKIT style, iPhone app development, creating view controller-based programs&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/atmokpo.com\/w\/32687\/\" \/>\n<meta property=\"og:site_name\" content=\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"article:published_time\" content=\"2024-11-01T09:10:51+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-11-01T11:24:51+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\/32687\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/32687\/\"},\"author\":{\"name\":\"root\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7\"},\"headline\":\"Swift UIKIT style, iPhone app development, creating view controller-based programs\",\"datePublished\":\"2024-11-01T09:10:51+00:00\",\"dateModified\":\"2024-11-01T11:24:51+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/atmokpo.com\/w\/32687\/\"},\"wordCount\":806,\"publisher\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\"},\"articleSection\":[\"Swift iPhone app development (UIKit)\"],\"inLanguage\":\"ko-KR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/atmokpo.com\/w\/32687\/\",\"url\":\"https:\/\/atmokpo.com\/w\/32687\/\",\"name\":\"Swift UIKIT style, iPhone app development, creating view controller-based programs - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#website\"},\"datePublished\":\"2024-11-01T09:10:51+00:00\",\"dateModified\":\"2024-11-01T11:24:51+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/atmokpo.com\/w\/32687\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/atmokpo.com\/w\/32687\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/atmokpo.com\/w\/32687\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\ud648\",\"item\":\"https:\/\/atmokpo.com\/w\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Swift UIKIT style, iPhone app development, creating view controller-based programs\"}]},{\"@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":"Swift UIKIT style, iPhone app development, creating view controller-based programs - \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\/32687\/","og_locale":"ko_KR","og_type":"article","og_title":"Swift UIKIT style, iPhone app development, creating view controller-based programs - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","og_description":"iPhone app development is an important area in the field of smartphone application development. The combination of Apple&#8217;s Swift language and UIKit framework provides developers with powerful tools to create intuitive interfaces and smooth user experiences. In this course, we will learn in detail how to create iPhone apps based on view controllers using Swift &hellip; \ub354 \ubcf4\uae30 \"Swift UIKIT style, iPhone app development, creating view controller-based programs\"","og_url":"https:\/\/atmokpo.com\/w\/32687\/","og_site_name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","article_published_time":"2024-11-01T09:10:51+00:00","article_modified_time":"2024-11-01T11:24:51+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\/32687\/#article","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/32687\/"},"author":{"name":"root","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7"},"headline":"Swift UIKIT style, iPhone app development, creating view controller-based programs","datePublished":"2024-11-01T09:10:51+00:00","dateModified":"2024-11-01T11:24:51+00:00","mainEntityOfPage":{"@id":"https:\/\/atmokpo.com\/w\/32687\/"},"wordCount":806,"publisher":{"@id":"https:\/\/atmokpo.com\/w\/#organization"},"articleSection":["Swift iPhone app development (UIKit)"],"inLanguage":"ko-KR"},{"@type":"WebPage","@id":"https:\/\/atmokpo.com\/w\/32687\/","url":"https:\/\/atmokpo.com\/w\/32687\/","name":"Swift UIKIT style, iPhone app development, creating view controller-based programs - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/#website"},"datePublished":"2024-11-01T09:10:51+00:00","dateModified":"2024-11-01T11:24:51+00:00","breadcrumb":{"@id":"https:\/\/atmokpo.com\/w\/32687\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/atmokpo.com\/w\/32687\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/atmokpo.com\/w\/32687\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\ud648","item":"https:\/\/atmokpo.com\/w\/en\/"},{"@type":"ListItem","position":2,"name":"Swift UIKIT style, iPhone app development, creating view controller-based programs"}]},{"@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\/32687","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=32687"}],"version-history":[{"count":1,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/32687\/revisions"}],"predecessor-version":[{"id":32688,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/32687\/revisions\/32688"}],"wp:attachment":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/media?parent=32687"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/categories?post=32687"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/tags?post=32687"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}