[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"site-settings":3,"blogpost-android-joins-declarative-ui-club-launching-jetpack-compose":72},{"footer":4,"contact_form":6,"chat_widget":11,"accolades":19,"seo_social":63},{"iso_notice":5},"Wolfpack Digital is an ISO 9001:2015, ISO 27001:2013 and ISO 14001:2015 certified company - © _YEAR_ Wolfpack Digital. All rights reserved.",{"budgets":7},[8,9,10],"Under $50.000","Between $50.000 - 200.000","Over $200.000",{"consent":12},{"greeting":13,"title":14,"body":15,"accept_label":16,"decline_label":17,"declined_message":18},"Awoo! I'm Wolfpack Digital's AI assistant. Ask me anything about our services, process, or team, and if you want a project estimate, I can point you to our AI Estimator.","Data Privacy","\u003Cp>Hi there! We would love to talk with you. Under the EU General Data Protection Regulation, we need your approval for our use of personal information (e.g. your name and email address) you may provide as we communicate:\u003C\u002Fp>\n\u003Col>\n  \u003Cli>We'll store your personal information so that we can pick up the conversation if we talk later.\u003C\u002Fli>\n  \u003Cli>We may send you emails to follow up on our discussion here.\u003C\u002Fli>\n  \u003Cli>We may send you emails about our upcoming services and promotions.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>Is this okay with you?\u003C\u002Fp>","Yes, I Accept","No, Not Now","No problem. Come back if you change your mind.",{"winnersOfList":20,"awardsList":29,"inHouseAppImages":46,"certificationsList":50},[21,25],{"alt":22,"href":23,"image":24},"European Awards","https:\u002F\u002Fwww.theeuropeanawards.eu\u002Fpremiado\u002Fwolfpack-digital-awarded-in-the-app-development-category","\u002Fimages\u002Fabout-us\u002Fwinners\u002Feuropean.svg",{"alt":26,"href":27,"image":28},"Webby Awards","https:\u002F\u002Fwinners.webbyawards.com\u002F2024\u002Fwebsites-and-mobile-sites\u002Fresponsible-technology\u002Fresponsible-ai\u002F275408\u002Fequality-ai-fair-and-unbiased-algorithms-to-eliminate-discrimination-in-machine-learning-models","\u002Fimages\u002Fabout-us\u002Fwinners\u002Fwebby.svg",[30,34,38,42],{"alt":31,"href":32,"image":33},"Clutch 1000 List Reveals Top-Rated Business Service Providers of 2023","https:\u002F\u002Fclutch.co\u002Fpress-releases\u002Fclutch-1000-fall-2023","\u002Fimages\u002Fabout-us\u002Fawards\u002Fclutch.svg",{"alt":35,"href":36,"image":37},"Clutch Recognizes the 1000 Best B2B Service Providers in its Exclusive 2019 Clutch 1000 List","https:\u002F\u002Fclutch.co\u002Fpress-releases\u002Frecognizes-1000-best-b2b-service-providers-its-exclusive-2019-1000-list","\u002Fimages\u002Fabout-us\u002Fawards\u002Fglobal.svg",{"alt":39,"href":40,"image":41},"Mobile App Daily Award","","\u002Fimages\u002Fabout-us\u002Fawards\u002Fmobile-app-daily.svg",{"alt":43,"href":44,"image":45},"Manifest Award","https:\u002F\u002Fthemanifest.com\u002Fro\u002Fweb-development\u002Fcompanies","\u002Fimages\u002Fabout-us\u002Fawards\u002Fmanifest.svg",[47],{"alt":48,"href":40,"image":49},"Wolfpack Labs","\u002Fimages\u002Fhomepage\u002Fawards\u002Flabs.svg",[51,55,59],{"alt":52,"href":53,"image":54},"ISO 27001 Certification","https:\u002F\u002Fwww.qscert.com\u002Fcs\u002Fissued-certificates\u002F?certID=_7690LD367","\u002Fimages\u002Fabout-us\u002Fcertifications\u002Fiso-27001.svg",{"alt":56,"href":57,"image":58},"ISO 9001 Certification","https:\u002F\u002Fwww.qscert.com\u002Fcs\u002Fissued-certificates\u002F?certID=_7690LBDB0","\u002Fimages\u002Fabout-us\u002Fcertifications\u002Fiso-9001.svg",{"alt":60,"href":61,"image":62},"ISO 14001 Certification","https:\u002F\u002Fwww.qscert.com\u002Fma\u002Fissued-certificates\u002F?certID=_7690LZSGS","\u002Fimages\u002Fabout-us\u002Fcertifications\u002Fiso-14001.svg",{"default_og_image_urls":64,"default_og_image_alt":68,"og_site_name":68,"og_locale":69,"twitter_site":70,"page_type_defaults":71},[65],{"style":66,"url":67},"og","\u002Fimages\u002Fsocial_share_preview.jpg","Wolfpack Digital","en_US","@DigitalWolfpack",{},["Reactive",73],{"title":74,"body":75,"slug":76,"featured_image_urls":77,"meta_tags":102,"reading_time":110,"title_size":111,"tag_list":112,"formatted_published_at":117,"short_description":118,"categories":119,"alt_text":40,"published_at":122,"content_updated_at":123,"formatted_content_updated_at":123,"key_takeaways":124,"faqs":125,"updated_at":126,"canonical_override":123,"no_index":127,"canonical_url":128,"publishers":129},"Android joins the declarative UI club after launching Jetpack Compose 1.0","\u003Cp>\u003Cmeta charset=\"utf-8\">\u003C\u002Fp>\r\n\r\n\u003Cp>This summer, a new important chapter was written in the Android world: Jetpack Compose 1.0. Remember our articles about Declarative UI and SwiftUI? Now it's time for Android to shine, as Jetpack Compose is their declarative UI framework.\u003C\u002Fp>\r\n\r\n\u003Cp>Android development is around for more than ten years. In the beginning, it was pretty basic: XMLs for the User Interface + Java for the \u003Ca href=\"https:\u002F\u002Fwww.wolfpack-digital.com\u002Fblogposts\u002Funderstanding-business-logic-as-quality-assurance-qa\" target=\"_blank\">\u003Cspan style=\"color:#fa357b;\">\u003Cstrong>business logic\u003C\u002Fstrong>\u003C\u002Fspan>\u003C\u002Fa>. Over time it has evolved in a lot of ways, for example:\u003C\u002Fp>\r\n\r\n\u003Cul>\r\n\t\u003Cli>New XML layout types appeared (like ConstraintLayout).\u003C\u002Fli>\r\n\t\u003Cli>Kotlin became supported in 2017 and recommended by Google in 2019.\u003C\u002Fli>\r\n\t\u003Cli>Android Jetpack appeared, supporting development in many ways.\u003C\u002Fli>\r\n\u003C\u002Ful>\r\n\r\n\u003Cp> \u003C\u002Fp>\r\n\r\n\u003Ch2>\u003Cspan style=\"font-size:22px;\">\u003Cstrong>Jetpack Compose Timeline\u003C\u002Fstrong>\u003C\u002Fspan>\u003C\u002Fh2>\r\n\r\n\u003Cp>Jetpack Compose is around for a while, but it was not officially launched until recently.\u003C\u002Fp>\r\n\r\n\u003Cp>The first version, Alpha 1.0, was published in August 2020, and Google stated that it's their new UI Toolkit for building native apps with Kotlin. They have combined three key elements into this framework:\u003C\u002Fp>\r\n\r\n\u003Cul>\r\n\t\u003Cli>Modern APIs (just like in other Jetpack libraries).\u003C\u002Fli>\r\n\t\u003Cli>Kotlin.\u003C\u002Fli>\r\n\t\u003Cli>Declarative programming.\u003C\u002Fli>\r\n\u003C\u002Ful>\r\n\r\n\u003Cp>However, an Alpha version is suitable for experimenting with new technologies, but it has some drawbacks.\u003Cbr>\r\nThe main ones would be that it most likely contains bugs and inconsistencies, while the APIs are also not set in stone. So, if you get used to some elements or functions, they are likely to change in the future.\u003C\u002Fp>\r\n\r\n\u003Cp>\u003Cstrong>What's the next stability step of a framework? \u003C\u002Fstrong>\u003Cbr>\r\nThe Beta release. For Jetpack Compose, that happened in February 2021. The main advantage over the Alpha versions is that the APIs are locked and will not change in the official release. So, if you're planning to learn something thoroughly, you can start doing that from the Beta version.\u003C\u002Fp>\r\n\r\n\u003Cp>When it comes to using a toolkit like this in production, the recommendation would be to wait at least until the first official release. Well, good news, Jetpack Compose was officially released on July 28, 2021. Does this mean that it's ready for production? We'll see that below.\u003C\u002Fp>\r\n\r\n\u003Cp> \u003C\u002Fp>\r\n\r\n\u003Ch2>\u003Cspan style=\"font-size:22px;\">\u003Cstrong>Pros and cons of Jetpack Compose | Technical Considerations \u003C\u002Fstrong>\u003C\u002Fspan>\u003C\u002Fh2>\r\n\r\n\u003Cp>First of all, Jetpack Compose is a declarative programming-based approach. In the traditional imperative way of building Android UI, you had to create UI elements using the XML syntax, then link to your Kotlin code all the elements that could change. This became better and better over time, especially with the appearance of Data Binding, LiveData, and ViewModels, but the paradigm remained the same.\u003C\u002Fp>\r\n\r\n\u003Cp>However, Compose is a brand new way of creating Android UI based on the received data. You use functions that transform this data into a UI hierarchy, and that's not the whole story. When your data changes, the framework will automatically update and redraw the UI without you needing to trigger that manually. Pretty cool, right?\u003C\u002Fp>\r\n\r\n\u003Cp>This approach is not new in the mobile world. Cross-platform solutions like React Native or Flutter already have this, and so does native iOS development with its new framework: SwiftUI. Does it mean it's better? Not necessarily, but is it worth trying? We would say that it is. Furthermore, it's also backward compatible with older versions of Android (back to Android 5.0), a luxury that SwiftUI, for example, doesn't have.\u003C\u002Fp>\r\n\r\n\u003Cp>\u003Cstrong>Diving into the syntax, we see that Compose is based 100% on Kotlin, which has at least two advantages:\u003C\u002Fstrong>\u003C\u002Fp>\r\n\r\n\u003Cul>\r\n\t\u003Cli>Your code will be consistent and uniform for both the UI and the business logic of your Android app.\u003C\u002Fli>\r\n\t\u003Cli>New developers can learn Android easier and faster because they can focus only on Kotlin, a single programming language that is concise and expressive, while also having many features.\u003C\u002Fli>\r\n\u003C\u002Ful>\r\n\r\n\u003Cp>The main idea is to use \u003Cem>composables\u003C\u002Fem> for creating your desired \u003Ca href=\"https:\u002F\u002Fwww.wolfpack-digital.com\u002Fblogposts\u002Fbuilding-your-apps-ui-for-2023-part-1\" target=\"_blank\">\u003Cspan style=\"color:#fa357b;\">\u003Cstrong>UI\u003C\u002Fstrong>\u003C\u002Fspan>\u003C\u002Fa>. A composable is a function written in Kotlin that has the following annotation: @Composable. It also doesn't have a return value. As the name implies, the recommendation is to use composition for creating complex UI elements and combine them.\u003C\u002Fp>\r\n\r\n\u003Cp>\u003Cbr>\r\n\u003Cstrong>Enough with the theory. Let's see some actual code 👇\u003C\u002Fstrong>\u003C\u002Fp>\r\n\r\n\u003Cp>\u003Cimg alt=\"android joins declarative ui club launching jetpack compose\" src=\"https:\u002F\u002Fs3-eu-west-2.amazonaws.com\u002Fwolfpack-digital-attachments-production\u002Fckeditor_assets\u002Fpictures\u002F324\u002Fcontent_Jetpack_Compose_wolfpack_digital_android_app_development_code_1.png\" style=\"width: 800px; height: 483px;\">\u003C\u002Fp>\r\n\r\n\u003Cp>First of all, your activity class needs to extend ComponentActivity. Then, in onCreate, you use \"setContent\" to load a composable.\u003C\u002Fp>\r\n\r\n\u003Cp>By default, Android Studio generates a theme for you when you create a new Compose project. Inside this theme, you can load your main composable, in our case: MainScreen.\u003C\u002Fp>\r\n\r\n\u003Cp> \u003C\u002Fp>\r\n\r\n\u003Cp>As for the implementation of MainScreen, it's a composable function that takes one argument and uses it below. For this example, we added a Scaffold (which is a basic Material Design composable) that contains a Column so we can display items one under another.\u003C\u002Fp>\r\n\r\n\u003Cp>\u003Cimg alt=\"android joins declarative ui club launching jetpack compose 2\" src=\"https:\u002F\u002Fs3-eu-west-2.amazonaws.com\u002Fwolfpack-digital-attachments-production\u002Fckeditor_assets\u002Fpictures\u002F325\u002Fcontent_Jetpack_Compose_wolfpack_digital_android_app_development_code_2.png\" style=\"width: 800px; height: 760px;\">\u003C\u002Fp>\r\n\r\n\u003Cp>The arguments of the Column are modifiers that set the size and background color, as well as arrangement properties. We also have a boolean property called \"expanded\" which will hold the current state of the greeting. This property changes from a click action that we set on the Column modifier.\u003Cbr>\r\nBesides that, we are just displaying an image and a greeting text that will appear or disappear based on the \"expanded\" property.\u003C\u002Fp>\r\n\r\n\u003Cp>One more thing. To display a gradient background, we needed to create an extension function on the Modifier class. This shows once again an advantage of using Kotlin for building UI.\u003C\u002Fp>\r\n\r\n\u003Cp>\u003Cimg alt=\"android joins declarative ui club launching jetpack compose 3\" src=\"https:\u002F\u002Fs3-eu-west-2.amazonaws.com\u002Fwolfpack-digital-attachments-production\u002Fckeditor_assets\u002Fpictures\u002F323\u002Fcontent_Jetpack_Compose_wolfpack_digital_android_app_development_code_3.png\" style=\"width: 800px; height: 496px;\">\u003C\u002Fp>\r\n\r\n\u003Cp>Last but not least, to display a preview of what we've created, we need the following:\u003C\u002Fp>\r\n\r\n\u003Cp>\u003Cimg alt=\"android joins declarative ui club launching jetpack compose 4\" src=\"https:\u002F\u002Fs3-eu-west-2.amazonaws.com\u002Fwolfpack-digital-attachments-production\u002Fckeditor_assets\u002Fpictures\u002F322\u002Fcontent_Jetpack_Compose_wolfpack_digital_android_app_development_code_4.png\" style=\"width: 800px; height: 430px;\">\u003C\u002Fp>\r\n\r\n\u003Cp>By using the @Preview annotation on a new composable function, we're able to display a static preview of our screen.\u003C\u002Fp>\r\n\r\n\u003Cp>\u003Cstrong>Finally, here's a GIF with how everything works together 🙌\u003C\u002Fstrong>\u003C\u002Fp>\r\n\r\n\u003Cp>\u003Cimg alt=\"android joins declarative ui club launching jetpack compose 5\" src=\"https:\u002F\u002Fs3-eu-west-2.amazonaws.com\u002Fwolfpack-digital-attachments-production\u002Fckeditor_assets\u002Fpictures\u002F326\u002Fcontent_Jetpack_Compose_wolfpack_digital_android_app_development_result_gif.gif\" style=\"width: 300px; height: 650px;\">\u003C\u002Fp>\r\n\r\n\u003Cp> \u003C\u002Fp>\r\n\r\n\u003Ch2>\u003Cspan style=\"font-size:22px;\">\u003Cstrong>Is Jetpack Compose ready for production?\u003C\u002Fstrong>\u003C\u002Fspan>\u003C\u002Fh2>\r\n\r\n\u003Cp>Now that Jetpack Compose is officially launched, should we use it in \"real\" projects? There's no right or wrong answer because every project is different in its own way. However, when it comes to brand new frameworks, we usually recommend a trial period to try them out and see how they perform.\u003C\u002Fp>\r\n\r\n\u003Cp>Innovation is one of the keys to success for any software development \u003Ca href=\"https:\u002F\u002Fwww.wolfpack-digital.com\u002Fteam\" target=\"_blank\">\u003Cspan style=\"color:#fa357b;\">\u003Cstrong>team\u003C\u002Fstrong>\u003C\u002Fspan>\u003C\u002Fa>. At Wolfpack Digital, we are always excited to try new technologies and keep ourselves up-to-date with the worldwide community. Nonetheless, we aim to keep a balance between excitement and stability so we can deliver powerful \u003Ca href=\"https:\u002F\u002Fwww.wolfpack-digital.com\u002Fblogposts\u002Fdifferences-between-static-websites-spa-and-ssr\" target=\"_blank\">\u003Cspan style=\"color:#fa357b;\">\u003Cstrong>web\u003C\u002Fstrong>\u003C\u002Fspan>\u003C\u002Fa> platforms and mobile apps at all times. \u003C\u002Fp>\r\n\r\n\u003Cp>This means that, for now, we will be experimenting with Jetpack Compose on our own projects, and as soon as we feel it's ready, we will strongly recommend it to our partners as well. \u003C\u002Fp>\r\n\r\n\u003Cp>\u003Cstrong>In the meantime, if you want to \u003Ca href=\"https:\u002F\u002Fwww.wolfpack-digital.com\u002Fservices\u002Fproduct-design\" target=\"_blank\">\u003Cspan style=\"color:#fa357b;\">design\u003C\u002Fspan>\u003C\u002Fa>, develop and launch an Android mobile app, let us know in the chat and we will guide you through the entire mobile app development process and build a flawless application for you! \u003C\u002Fstrong>\u003C\u002Fp>\r\n\r\n\u003Cp> \u003C\u002Fp>\r\n","android-joins-declarative-ui-club-launching-jetpack-compose",[78,81,84,87,90,93,96,99],{"style":79,"url":80},"640","https:\u002F\u002Fcdn.wolfpack-digital.com\u002Fstore\u002Fblogpost\u002F140\u002Ffeatured_image\u002F640\u002Fjetpack_compose_android_swift_mobile_app_development_wolfpack_digital.webp",{"style":82,"url":83},"768","https:\u002F\u002Fcdn.wolfpack-digital.com\u002Fstore\u002Fblogpost\u002F140\u002Ffeatured_image\u002F768\u002Fjetpack_compose_android_swift_mobile_app_development_wolfpack_digital.webp",{"style":85,"url":86},"1024","https:\u002F\u002Fcdn.wolfpack-digital.com\u002Fstore\u002Fblogpost\u002F140\u002Ffeatured_image\u002F1024\u002Fjetpack_compose_android_swift_mobile_app_development_wolfpack_digital.webp",{"style":88,"url":89},"1366","https:\u002F\u002Fcdn.wolfpack-digital.com\u002Fstore\u002Fblogpost\u002F140\u002Ffeatured_image\u002F1366\u002Fjetpack_compose_android_swift_mobile_app_development_wolfpack_digital.webp",{"style":91,"url":92},"1600","https:\u002F\u002Fcdn.wolfpack-digital.com\u002Fstore\u002Fblogpost\u002F140\u002Ffeatured_image\u002F1600\u002Fjetpack_compose_android_swift_mobile_app_development_wolfpack_digital.webp",{"style":94,"url":95},"1920","https:\u002F\u002Fcdn.wolfpack-digital.com\u002Fstore\u002Fblogpost\u002F140\u002Ffeatured_image\u002F1920\u002Fjetpack_compose_android_swift_mobile_app_development_wolfpack_digital.webp",{"style":97,"url":98},"thumb","https:\u002F\u002Fcdn.wolfpack-digital.com\u002Fstore\u002Fblogpost\u002F140\u002Ffeatured_image\u002Fthumb\u002Fjetpack_compose_android_swift_mobile_app_development_wolfpack_digital.webp",{"style":100,"url":101},"original","https:\u002F\u002Fcdn.wolfpack-digital.com\u002Fstore\u002Fblogpost\u002F140\u002Ffeatured_image\u002Foriginal\u002Fjetpack_compose_android_swift_mobile_app_development_wolfpack_digital.webp",{"title":103,"description":104,"keywords":105,"contact_form:title":106,"contact_form:cta":107,"og:site_name":68,"og:type":108,"og:locale":69,"twitter:card":109,"twitter:site":70,"twitter:creator":70,"og:title":74,"twitter:title":74},"Android Jetpack Compose 1.0: Declarative UI","A new important chapter was written in the Android world: Jetpack Compose 1.0. Now it's time for Android to shine with its declarative UI framework.","Android, declarative UI, Jetpack Compose 1.0, pros and cons of jetpack compose, android jetpack compose, android declarative ui, declarative ui, android app development, jetpack compose development, wolfpack digital, top agencies building android apps, android app development agencies","contact us","send message","article","summary_large_image","5 min",32,[113,114,115,116],"UX\u002FUI","android","jetpack","Kotlin","Aug 31, 2021","This summer, a new important chapter was written in the Android world: Jetpack Compose 1.0. Remember our articles about Declarative UI and SwiftUI? Now it's time for Android to shine, as Jetpack Compose is their declarative UI framework.",[120,121],"mobile-development","ux-ui-design","2021-08-31T09:18:40.000Z",null,[],[],"2026-06-27T14:27:38.893Z",false,"https:\u002F\u002Fwww.wolfpack-digital.com\u002Fblogposts\u002Fandroid-joins-declarative-ui-club-launching-jetpack-compose",[130],{"id":131,"author":132,"short_description":133,"role":134,"avatar_urls":135,"cover_urls":143,"linkedin_link":162,"instagram_link":40,"x_link":40,"meta_tags":163,"last_published_at":165,"same_as":166},6,"Dan","Dan is a passionate mobile software engineer who likes to push technologies to the limit, creating beautiful and intuitive products that improve people's lives.\r\n\r\nAfter graduating first in Computer Science in his class, Dan stepped into the mobile world as a native iOS developer, and he enjoyed it a lot. After a couple of years, his curiosity for tech and mobile apps pushed him to also learn native Android, Flutter, and to step into leadership roles, finding the right balance between development, research, and high-level guidance.\r\n\r\nBesides this, Dan also got into the content creation world, sharing insights from the tech and app development world on Instagram with 100k people, and recently on YouTube as well.\r\n\r\nOn the non-technical side, Dan plays tennis competitively. He's a big supporter of wellness and living an active life, and also believes that people can actually like their occupation and enjoy life productively.","Mobile Developer",[136,138,141],{"style":97,"url":137},"https:\u002F\u002Fcdn.wolfpack-digital.com\u002Fstore\u002Fpublisher\u002F6\u002Favatar\u002Fthumb\u002Fdan_head_of_mobile_development_wolfpack_digital.webp",{"style":139,"url":140},"medium","https:\u002F\u002Fcdn.wolfpack-digital.com\u002Fstore\u002Fpublisher\u002F6\u002Favatar\u002Fmedium\u002Fdan_head_of_mobile_development_wolfpack_digital.webp",{"style":100,"url":142},"https:\u002F\u002Fcdn.wolfpack-digital.com\u002Fstore\u002Fpublisher\u002F6\u002Favatar\u002Foriginal\u002Fdan_head_of_mobile_development_wolfpack_digital.webp",[144,146,148,150,152,154,156,158,160],{"style":79,"url":145},"https:\u002F\u002Fcdn.wolfpack-digital.com\u002Fstore\u002Fpublisher\u002F6\u002Fcover_image\u002F640\u002FDan%20Ilies.webp",{"style":82,"url":147},"https:\u002F\u002Fcdn.wolfpack-digital.com\u002Fstore\u002Fpublisher\u002F6\u002Fcover_image\u002F768\u002FDan%20Ilies.webp",{"style":85,"url":149},"https:\u002F\u002Fcdn.wolfpack-digital.com\u002Fstore\u002Fpublisher\u002F6\u002Fcover_image\u002F1024\u002FDan%20Ilies.webp",{"style":88,"url":151},"https:\u002F\u002Fcdn.wolfpack-digital.com\u002Fstore\u002Fpublisher\u002F6\u002Fcover_image\u002F1366\u002FDan%20Ilies.webp",{"style":91,"url":153},"https:\u002F\u002Fcdn.wolfpack-digital.com\u002Fstore\u002Fpublisher\u002F6\u002Fcover_image\u002F1600\u002FDan%20Ilies.webp",{"style":94,"url":155},"https:\u002F\u002Fcdn.wolfpack-digital.com\u002Fstore\u002Fpublisher\u002F6\u002Fcover_image\u002F1920\u002FDan%20Ilies.webp",{"style":97,"url":157},"https:\u002F\u002Fcdn.wolfpack-digital.com\u002Fstore\u002Fpublisher\u002F6\u002Fcover_image\u002Fthumb\u002FDan%20Ilies.webp",{"style":139,"url":159},"https:\u002F\u002Fcdn.wolfpack-digital.com\u002Fstore\u002Fpublisher\u002F6\u002Fcover_image\u002Fmedium\u002FDan%20Ilies.webp",{"style":100,"url":161},"https:\u002F\u002Fcdn.wolfpack-digital.com\u002Fstore\u002Fpublisher\u002F6\u002Fcover_image\u002Foriginal\u002FDan%20Ilies.webp","https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fdanilies\u002F",{"title":132,"description":134,"keywords":40,"contact_form:title":106,"contact_form:cta":107,"og:site_name":68,"og:type":164,"og:locale":69,"twitter:card":109,"twitter:site":70,"twitter:creator":70},"website","2023-06-07T17:55:55.000Z",[162]]