{
    "id": 534,
    "date": "2024-07-03T21:51:50",
    "date_gmt": "2024-07-03T19:51:50",
    "guid": {
        "rendered": "https:\/\/bslthemes.com\/luique\/?p=534"
    },
    "modified": "2024-07-12T15:43:41",
    "modified_gmt": "2024-07-12T13:43:41",
    "slug": "tech-update",
    "status": "publish",
    "type": "post",
    "link": "https:\/\/azizaelgoul.com\/en\/tech-update\/",
    "title": {
        "rendered": "Tech Update [07-24]"
    },
    "content": {
        "rendered": "<div data-elementor-type=\"wp-post\" data-elementor-id=\"534\" class=\"elementor elementor-534\">\n\t\t\t\t<div class=\"elementor-element elementor-element-142ec149 e-flex e-con-boxed e-con e-parent\" data-id=\"142ec149\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-17fac538 elementor-widget elementor-widget-text-editor\" data-id=\"17fac538\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><\/p>\n<p><span style=\"text-align: var(--text-align);\">Hello everyone!&nbsp;<\/span><\/p>\n<p><span style=\"text-align: var(--text-align);\">Today, we&#8217;re going to dive into one of the most exciting updates introduced at the WWDC 2024: SwiftData. SwiftData is a new framework in iOS 17 that allows developers to model and persist their app&#8217;s data efficiently and safely. Let&#8217;s explore SwiftData and its new features, and I\u2019ll explain everything in a way that&#8217;s as easy as possible to understand.<\/span><\/p>\n<p><\/p>\n<p><\/p>\n<blockquote class=\"is-layout-flow wp-block-quote-is-layout-flow\">\n<p><\/p>\n<p><em>The only way to do great work is to love what you do.<\/em><\/p>\n<p><span style=\"color: #29a587; font-size: 16px; font-weight: bold;\">&#8211; Steve Jobs<\/span><\/p>\n<p><cite>&nbsp;<\/cite><\/p>\n<\/blockquote>\n<p><\/p>\n<p><\/p>\n<h5>What is SwiftData?<\/h5>\n<p>SwiftData is like a magic box that helps us save and organize information in our apps. Imagine you have a notebook where you keep track of all your favorite things. SwiftData is like that notebook, but on your iPhone or iPad, and it can do much more than just storing notes.<\/p>\n<h5>Setting Up a Simple App with SwiftData<\/h5>\n<p>Let&#8217;s say we want to create an app called &#8220;Trips&#8221; where we keep track of all our vacation ideas. We\u2019ll use SwiftData to save the information about each trip. Here\u2019s a simple guide on how to do this.<\/p>\n<h5>Step 1: Create the Trip Model<\/h5>\n<p><span style=\"text-align: var(--text-align);\">First, we need to create a model to represent our trip. A model is like a blueprint for the information we want to save. In our case, each trip has a name, a destination, a start date, and an end date. Here\u2019s the code:<\/span><\/p>\n<figure>\n<pre class=\"brush: swift; title: ; notranslate\" title=\"\">&lt;br&gt;\nimport Foundation&lt;br&gt;\nimport SwiftData&lt;p&gt;&lt;\/p&gt;\n&lt;p&gt;@Model&lt;br&gt;\nclass TripModel {&lt;br&gt;\n    var name: String&lt;br&gt;\n    var destination: String&lt;br&gt;\n    var startDate: Date&lt;br&gt;\n    var endDate: Date&lt;\/p&gt;\n&lt;p&gt;    init(name: String, destination: String, startDate: Date, endDate: Date) {&lt;br&gt;\n        self.name = name&lt;br&gt;\n        self.destination = destination&lt;br&gt;\n        self.startDate = startDate&lt;br&gt;\n        self.endDate = endDate&lt;br&gt;\n    }&lt;br&gt;\n}&lt;\/p&gt;\n&lt;p&gt;@Model&lt;br&gt;\nclass BucketListItem {&lt;br&gt;\n    var name: String&lt;br&gt;\n    var isInPlan: Bool&lt;\/p&gt;\n&lt;p&gt;    init(name: String, isInPlan: Bool) {&lt;br&gt;\n        self.name = name&lt;br&gt;\n        self.isInPlan = isInPlan&lt;br&gt;\n    }&lt;br&gt;\n}&lt;\/p&gt;\n&lt;p&gt;@Model&lt;br&gt;\nclass LivingAccommodation {&lt;br&gt;\n    var type: String&lt;br&gt;\n    var address: String&lt;\/p&gt;\n&lt;p&gt;    init(type: String, address: String) {&lt;br&gt;\n        self.type = type&lt;br&gt;\n        self.address = address&lt;br&gt;\n    }&lt;br&gt;\n}&lt;br&gt;\n<\/pre><\/p>\n<p><\/p>\n<\/figure>\n<p><\/p>\n<p><\/p>\n<h5>Step 2: Set Up the Model Container<\/h5>\n<p>The model container is like a box that holds all our models (in this case, trips). We tell our app to use this box so it knows where to look for the information.<\/p>\n<p><pre class=\"brush: swift; title: ; notranslate\" title=\"\">&lt;br&gt;\nimport SwiftUI&lt;br&gt;\nimport SwiftData&lt;\/p&gt;\n&lt;p&gt;@main&lt;br&gt;\nstruct TripsApp: App {&lt;br&gt;\n    var container: ModelContainer = {&lt;br&gt;\n        do {&lt;br&gt;\n            let configuration = ModelConfiguration(schema: Schema(&#x5B;TripModel.self]))&lt;br&gt;\n            return try ModelContainer(for: TripModel.self, configurations: configuration)&lt;br&gt;\n        } catch {&lt;br&gt;\n            fatalError(&quot;Failed to initialize model container: \\(error)&quot;)&lt;br&gt;\n        }&lt;br&gt;\n    }()&lt;\/p&gt;\n&lt;p&gt;    var body: some Scene {&lt;br&gt;\n        WindowGroup {&lt;br&gt;\n            ContentView()&lt;br&gt;\n                .modelContainer(container)&lt;br&gt;\n        }&lt;br&gt;\n    }&lt;br&gt;\n}&lt;br&gt;\n<\/pre><\/p>\n<div>&nbsp;<\/div>\n<p><\/p>\n<h5>Step 3: Display the Trips&nbsp;<\/h5>\n<p>The ContentView is the main view that lists all trips and includes a search feature.<\/p>\n<p><pre class=\"brush: swift; title: ; notranslate\" title=\"\">&lt;br&gt;\nimport SwiftUI&lt;br&gt;\nimport SwiftData&lt;\/p&gt;\n&lt;p&gt;struct ContentView: View {&lt;br&gt;\n    @State private var trips: &#x5B;TripModel] = &#x5B;]&lt;br&gt;\n    @State private var searchText = &quot;&quot;&lt;\/p&gt;\n&lt;p&gt;    var body: some View {&lt;br&gt;\n        NavigationView {&lt;br&gt;\n            List {&lt;br&gt;\n                ForEach(trips.filter {&lt;br&gt;\n                    searchText.isEmpty || $0.name.localizedStandardContains(searchText) || $0.destination.localizedStandardContains(searchText)&lt;br&gt;\n                }, id: \\.self) { trip in&lt;br&gt;\n                    NavigationLink(destination: TripDetail(trip: trip)) {&lt;br&gt;\n                        Text(trip.name)&lt;br&gt;\n                    }&lt;br&gt;\n                }&lt;br&gt;\n            }&lt;br&gt;\n            .searchable(text: $searchText)&lt;br&gt;\n            .navigationTitle(&quot;Trips&quot;)&lt;br&gt;\n        }&lt;br&gt;\n        .onAppear {&lt;br&gt;\n            \/\/ Simulate fetching trips (replace with actual data fetching logic)&lt;br&gt;\n            fetchTrips()&lt;br&gt;\n        }&lt;br&gt;\n    }&lt;\/p&gt;\n&lt;p&gt;    private func fetchTrips() {&lt;br&gt;\n        \/\/ Simulated data fetching&lt;br&gt;\n        trips = &#x5B;&lt;br&gt;\n            TripModel(name: &quot;Trip to Paris&quot;, destination: &quot;Paris&quot;, startDate: Date(), endDate: Date()),&lt;br&gt;\n            TripModel(name: &quot;Beach Vacation&quot;, destination: &quot;Maldives&quot;, startDate: Date(), endDate: Date()),&lt;br&gt;\n            TripModel(name: &quot;Skiing in Alps&quot;, destination: &quot;Switzerland&quot;, startDate: Date(), endDate: Date())&lt;br&gt;\n        ]&lt;br&gt;\n    }&lt;br&gt;\n}&lt;br&gt;\n<\/pre><\/p>\n<div>&nbsp;<\/div>\n<p><!-- \/wp:paragraph --><\/p>\n<h5>Step 4: Create the Trip Detail View<\/h5>\n<p><span style=\"text-align: var(--text-align);\">The TripDetail view shows detailed information about a selected trip. TripDetail Struct: Displays the details of a selected trip. formattedDate Method: Formats the date to a readable string.<\/span><\/p>\n<p><pre class=\"brush: swift; title: ; notranslate\" title=\"\">&lt;br&gt;\nimport SwiftUI&lt;\/p&gt;\n&lt;p&gt;struct TripDetail: View {&lt;br&gt;\n    var trip: TripModel&lt;\/p&gt;\n&lt;p&gt;    var body: some View {&lt;br&gt;\n        VStack {&lt;br&gt;\n            Text(&quot;Trip: \\(trip.name)&quot;)&lt;br&gt;\n                .font(.title)&lt;br&gt;\n            Text(&quot;Destination: \\(trip.destination)&quot;)&lt;br&gt;\n            Text(&quot;Start Date: \\(formattedDate(trip.startDate))&quot;)&lt;br&gt;\n            Text(&quot;End Date: \\(formattedDate(trip.endDate))&quot;)&lt;br&gt;\n        }&lt;br&gt;\n        .navigationTitle(trip.name)&lt;br&gt;\n    }&lt;\/p&gt;\n&lt;p&gt;    private func formattedDate(_ date: Date) -&amp;gt; String {&lt;br&gt;\n        let formatter = DateFormatter()&lt;br&gt;\n        formatter.dateStyle = .medium&lt;br&gt;\n        return formatter.string(from: date)&lt;br&gt;\n    }&lt;br&gt;\n}&lt;br&gt;\n<\/pre><\/p>\n<div>&nbsp;<\/div>\n<h5>Conclusion<\/h5>\n<p>By following these steps, you have created a SwiftUI application using SwiftData to manage and display trip information.<\/p>\n<h6>So why Use SwiftData?<\/h6>\n<p>SwiftData distinguishes itself from Core Data by its simplicity and seamless integration with SwiftUI. Unlike Core Data, which is primarily designed for managing local data within the app, SwiftData offers increased flexibility for interacting with external APIs. This makes it easy to synchronize local data with web services, enhancing the user experience.<\/p>\n<p>SwiftData also simplifies development by reducing boilerplate code and providing better type safety. In summary, SwiftData allows you to create more robust, performant, and maintainable applications while facilitating integration with online services, which is not as easily achievable with Core Data.<\/p>\n<table>\n<thead>\n<tr>\n<th>Feature<\/th>\n<th>SwiftData<\/th>\n<th>Core Data<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>Age<\/strong><\/td>\n<td>Newer<\/td>\n<td>Older<\/td>\n<\/tr>\n<tr>\n<td><strong>API<\/strong><\/td>\n<td>More modern and Swift-friendly<\/td>\n<td>More complex and Objective-C-oriented<\/td>\n<\/tr>\n<tr>\n<td><strong>Efficiency<\/strong><\/td>\n<td>More efficient<\/td>\n<td>Less efficient<\/td>\n<\/tr>\n<tr>\n<td><strong>Integration with SwiftUI<\/strong><\/td>\n<td>Seamless<\/td>\n<td>Not as seamless<\/td>\n<\/tr>\n<tr>\n<td><strong>Features<\/strong><\/td>\n<td>Fewer features<\/td>\n<td>More features<\/td>\n<\/tr>\n<tr>\n<td><strong>Maturity<\/strong><\/td>\n<td>Less mature<\/td>\n<td>More mature<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>",
        "protected": false
    },
    "excerpt": {
        "rendered": "<p>Hello everyone!&nbsp; Today, we&#8217;re going to dive into one of the most exciting updates introduced at the WWDC 2024: SwiftData&#8230;. <\/p>\n<div class=\"readmore\"><a href=\"https:\/\/azizaelgoul.com\/en\/tech-update\/\" class=\"lnk\">Read more<\/a><\/div>",
        "protected": false
    },
    "author": 1,
    "featured_media": 4184,
    "comment_status": "open",
    "ping_status": "open",
    "sticky": false,
    "template": "",
    "format": "standard",
    "meta": {
        "_acf_changed": false,
        "footnotes": ""
    },
    "categories": [
        51,
        50
    ],
    "tags": [
        48,
        49
    ],
    "acf": [],
    "yoast_head": "<!-- This site is optimized with the Yoast SEO plugin v24.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Tech Update [07-24] - Aziza Elgoul<\/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:\/\/azizaelgoul.com\/en\/tech-update\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Tech Update [07-24] - Aziza Elgoul\" \/>\n<meta property=\"og:description\" content=\"Hello everyone!&nbsp; Today, we&#8217;re going to dive into one of the most exciting updates introduced at the WWDC 2024: SwiftData.... Read more\" \/>\n<meta property=\"og:url\" content=\"https:\/\/azizaelgoul.com\/en\/tech-update\/\" \/>\n<meta property=\"og:site_name\" content=\"Aziza Elgoul\" \/>\n<meta property=\"article:published_time\" content=\"2024-07-03T19:51:50+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-07-12T13:43:41+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/azizaelgoul.com\/wp-content\/uploads\/2024\/07\/th-4.jpeg\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"1024\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Aziza\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Aziza\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/azizaelgoul.com\/tech-update\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/azizaelgoul.com\/tech-update\/\"},\"author\":{\"name\":\"Aziza\",\"@id\":\"https:\/\/azizaelgoul.com\/#\/schema\/person\/67cecbbea8e01e85282a9792ccb9e641\"},\"headline\":\"Tech Update [07-24]\",\"datePublished\":\"2024-07-03T19:51:50+00:00\",\"dateModified\":\"2024-07-12T13:43:41+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/azizaelgoul.com\/tech-update\/\"},\"wordCount\":773,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/azizaelgoul.com\/#\/schema\/person\/67cecbbea8e01e85282a9792ccb9e641\"},\"image\":{\"@id\":\"https:\/\/azizaelgoul.com\/tech-update\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/azizaelgoul.com\/wp-content\/uploads\/2024\/07\/th-4.jpeg\",\"keywords\":[\"Mobile\",\"Web\"],\"articleSection\":[\"Mobile\",\"Web\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/azizaelgoul.com\/tech-update\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/azizaelgoul.com\/tech-update\/\",\"url\":\"https:\/\/azizaelgoul.com\/tech-update\/\",\"name\":\"Tech Update [07-24] - Aziza Elgoul\",\"isPartOf\":{\"@id\":\"https:\/\/azizaelgoul.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/azizaelgoul.com\/tech-update\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/azizaelgoul.com\/tech-update\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/azizaelgoul.com\/wp-content\/uploads\/2024\/07\/th-4.jpeg\",\"datePublished\":\"2024-07-03T19:51:50+00:00\",\"dateModified\":\"2024-07-12T13:43:41+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/azizaelgoul.com\/tech-update\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/azizaelgoul.com\/tech-update\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/azizaelgoul.com\/tech-update\/#primaryimage\",\"url\":\"https:\/\/azizaelgoul.com\/wp-content\/uploads\/2024\/07\/th-4.jpeg\",\"contentUrl\":\"https:\/\/azizaelgoul.com\/wp-content\/uploads\/2024\/07\/th-4.jpeg\",\"width\":1024,\"height\":1024,\"caption\":\"mobile developer blog\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/azizaelgoul.com\/tech-update\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/azizaelgoul.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Tech Update [07-24]\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/azizaelgoul.com\/#website\",\"url\":\"https:\/\/azizaelgoul.com\/\",\"name\":\"Aziza Elgoul\",\"description\":\"Portfolio\",\"publisher\":{\"@id\":\"https:\/\/azizaelgoul.com\/#\/schema\/person\/67cecbbea8e01e85282a9792ccb9e641\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/azizaelgoul.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/azizaelgoul.com\/#\/schema\/person\/67cecbbea8e01e85282a9792ccb9e641\",\"name\":\"Aziza\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/azizaelgoul.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/azizaelgoul.com\/wp-content\/uploads\/2021\/11\/person-3.webp\",\"contentUrl\":\"https:\/\/azizaelgoul.com\/wp-content\/uploads\/2021\/11\/person-3.webp\",\"width\":500,\"height\":500,\"caption\":\"Aziza\"},\"logo\":{\"@id\":\"https:\/\/azizaelgoul.com\/#\/schema\/person\/image\/\"},\"sameAs\":[\"http:\/\/azizaelgoul.com\"],\"url\":\"https:\/\/azizaelgoul.com\/en\/author\/admin2181\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->",
    "yoast_head_json": {
        "title": "Tech Update [07-24] - Aziza Elgoul",
        "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:\/\/azizaelgoul.com\/en\/tech-update\/",
        "og_locale": "en_US",
        "og_type": "article",
        "og_title": "Tech Update [07-24] - Aziza Elgoul",
        "og_description": "Hello everyone!&nbsp; Today, we&#8217;re going to dive into one of the most exciting updates introduced at the WWDC 2024: SwiftData.... Read more",
        "og_url": "https:\/\/azizaelgoul.com\/en\/tech-update\/",
        "og_site_name": "Aziza Elgoul",
        "article_published_time": "2024-07-03T19:51:50+00:00",
        "article_modified_time": "2024-07-12T13:43:41+00:00",
        "og_image": [
            {
                "width": 1024,
                "height": 1024,
                "url": "https:\/\/azizaelgoul.com\/wp-content\/uploads\/2024\/07\/th-4.jpeg",
                "type": "image\/jpeg"
            }
        ],
        "author": "Aziza",
        "twitter_card": "summary_large_image",
        "twitter_misc": {
            "Written by": "Aziza",
            "Est. reading time": "4 minutes"
        },
        "schema": {
            "@context": "https:\/\/schema.org",
            "@graph": [
                {
                    "@type": "Article",
                    "@id": "https:\/\/azizaelgoul.com\/tech-update\/#article",
                    "isPartOf": {
                        "@id": "https:\/\/azizaelgoul.com\/tech-update\/"
                    },
                    "author": {
                        "name": "Aziza",
                        "@id": "https:\/\/azizaelgoul.com\/#\/schema\/person\/67cecbbea8e01e85282a9792ccb9e641"
                    },
                    "headline": "Tech Update [07-24]",
                    "datePublished": "2024-07-03T19:51:50+00:00",
                    "dateModified": "2024-07-12T13:43:41+00:00",
                    "mainEntityOfPage": {
                        "@id": "https:\/\/azizaelgoul.com\/tech-update\/"
                    },
                    "wordCount": 773,
                    "commentCount": 0,
                    "publisher": {
                        "@id": "https:\/\/azizaelgoul.com\/#\/schema\/person\/67cecbbea8e01e85282a9792ccb9e641"
                    },
                    "image": {
                        "@id": "https:\/\/azizaelgoul.com\/tech-update\/#primaryimage"
                    },
                    "thumbnailUrl": "https:\/\/azizaelgoul.com\/wp-content\/uploads\/2024\/07\/th-4.jpeg",
                    "keywords": [
                        "Mobile",
                        "Web"
                    ],
                    "articleSection": [
                        "Mobile",
                        "Web"
                    ],
                    "inLanguage": "en-US",
                    "potentialAction": [
                        {
                            "@type": "CommentAction",
                            "name": "Comment",
                            "target": [
                                "https:\/\/azizaelgoul.com\/tech-update\/#respond"
                            ]
                        }
                    ]
                },
                {
                    "@type": "WebPage",
                    "@id": "https:\/\/azizaelgoul.com\/tech-update\/",
                    "url": "https:\/\/azizaelgoul.com\/tech-update\/",
                    "name": "Tech Update [07-24] - Aziza Elgoul",
                    "isPartOf": {
                        "@id": "https:\/\/azizaelgoul.com\/#website"
                    },
                    "primaryImageOfPage": {
                        "@id": "https:\/\/azizaelgoul.com\/tech-update\/#primaryimage"
                    },
                    "image": {
                        "@id": "https:\/\/azizaelgoul.com\/tech-update\/#primaryimage"
                    },
                    "thumbnailUrl": "https:\/\/azizaelgoul.com\/wp-content\/uploads\/2024\/07\/th-4.jpeg",
                    "datePublished": "2024-07-03T19:51:50+00:00",
                    "dateModified": "2024-07-12T13:43:41+00:00",
                    "breadcrumb": {
                        "@id": "https:\/\/azizaelgoul.com\/tech-update\/#breadcrumb"
                    },
                    "inLanguage": "en-US",
                    "potentialAction": [
                        {
                            "@type": "ReadAction",
                            "target": [
                                "https:\/\/azizaelgoul.com\/tech-update\/"
                            ]
                        }
                    ]
                },
                {
                    "@type": "ImageObject",
                    "inLanguage": "en-US",
                    "@id": "https:\/\/azizaelgoul.com\/tech-update\/#primaryimage",
                    "url": "https:\/\/azizaelgoul.com\/wp-content\/uploads\/2024\/07\/th-4.jpeg",
                    "contentUrl": "https:\/\/azizaelgoul.com\/wp-content\/uploads\/2024\/07\/th-4.jpeg",
                    "width": 1024,
                    "height": 1024,
                    "caption": "mobile developer blog"
                },
                {
                    "@type": "BreadcrumbList",
                    "@id": "https:\/\/azizaelgoul.com\/tech-update\/#breadcrumb",
                    "itemListElement": [
                        {
                            "@type": "ListItem",
                            "position": 1,
                            "name": "Accueil",
                            "item": "https:\/\/azizaelgoul.com\/"
                        },
                        {
                            "@type": "ListItem",
                            "position": 2,
                            "name": "Tech Update [07-24]"
                        }
                    ]
                },
                {
                    "@type": "WebSite",
                    "@id": "https:\/\/azizaelgoul.com\/#website",
                    "url": "https:\/\/azizaelgoul.com\/",
                    "name": "Aziza Elgoul",
                    "description": "Portfolio",
                    "publisher": {
                        "@id": "https:\/\/azizaelgoul.com\/#\/schema\/person\/67cecbbea8e01e85282a9792ccb9e641"
                    },
                    "potentialAction": [
                        {
                            "@type": "SearchAction",
                            "target": {
                                "@type": "EntryPoint",
                                "urlTemplate": "https:\/\/azizaelgoul.com\/?s={search_term_string}"
                            },
                            "query-input": {
                                "@type": "PropertyValueSpecification",
                                "valueRequired": true,
                                "valueName": "search_term_string"
                            }
                        }
                    ],
                    "inLanguage": "en-US"
                },
                {
                    "@type": [
                        "Person",
                        "Organization"
                    ],
                    "@id": "https:\/\/azizaelgoul.com\/#\/schema\/person\/67cecbbea8e01e85282a9792ccb9e641",
                    "name": "Aziza",
                    "image": {
                        "@type": "ImageObject",
                        "inLanguage": "en-US",
                        "@id": "https:\/\/azizaelgoul.com\/#\/schema\/person\/image\/",
                        "url": "https:\/\/azizaelgoul.com\/wp-content\/uploads\/2021\/11\/person-3.webp",
                        "contentUrl": "https:\/\/azizaelgoul.com\/wp-content\/uploads\/2021\/11\/person-3.webp",
                        "width": 500,
                        "height": 500,
                        "caption": "Aziza"
                    },
                    "logo": {
                        "@id": "https:\/\/azizaelgoul.com\/#\/schema\/person\/image\/"
                    },
                    "sameAs": [
                        "http:\/\/azizaelgoul.com"
                    ],
                    "url": "https:\/\/azizaelgoul.com\/en\/author\/admin2181\/"
                }
            ]
        }
    },
    "_links": {
        "self": [
            {
                "href": "https:\/\/azizaelgoul.com\/en\/wp-json\/wp\/v2\/posts\/534"
            }
        ],
        "collection": [
            {
                "href": "https:\/\/azizaelgoul.com\/en\/wp-json\/wp\/v2\/posts"
            }
        ],
        "about": [
            {
                "href": "https:\/\/azizaelgoul.com\/en\/wp-json\/wp\/v2\/types\/post"
            }
        ],
        "author": [
            {
                "embeddable": true,
                "href": "https:\/\/azizaelgoul.com\/en\/wp-json\/wp\/v2\/users\/1"
            }
        ],
        "replies": [
            {
                "embeddable": true,
                "href": "https:\/\/azizaelgoul.com\/en\/wp-json\/wp\/v2\/comments?post=534"
            }
        ],
        "version-history": [
            {
                "count": 147,
                "href": "https:\/\/azizaelgoul.com\/en\/wp-json\/wp\/v2\/posts\/534\/revisions"
            }
        ],
        "predecessor-version": [
            {
                "id": 4839,
                "href": "https:\/\/azizaelgoul.com\/en\/wp-json\/wp\/v2\/posts\/534\/revisions\/4839"
            }
        ],
        "wp:featuredmedia": [
            {
                "embeddable": true,
                "href": "https:\/\/azizaelgoul.com\/en\/wp-json\/wp\/v2\/media\/4184"
            }
        ],
        "wp:attachment": [
            {
                "href": "https:\/\/azizaelgoul.com\/en\/wp-json\/wp\/v2\/media?parent=534"
            }
        ],
        "wp:term": [
            {
                "taxonomy": "category",
                "embeddable": true,
                "href": "https:\/\/azizaelgoul.com\/en\/wp-json\/wp\/v2\/categories?post=534"
            },
            {
                "taxonomy": "post_tag",
                "embeddable": true,
                "href": "https:\/\/azizaelgoul.com\/en\/wp-json\/wp\/v2\/tags?post=534"
            }
        ],
        "curies": [
            {
                "name": "wp",
                "href": "https:\/\/api.w.org\/{rel}",
                "templated": true
            }
        ]
    }
}