\"Apple
Apple MacBook Pro 14.2\" with M4 Pro Chip, Late 2024 - Space Black, 12-Core / 16-Core, Standard Display, 24GB, 70W Adapter, 1TB SSD
Amazon
Affiliate Link
\n

Other new features in macOS are expected to be in the spirit of integration with iOS. For example, a new gaming app is expected to replace the old Game Center. Bloomberg has hinted that Apple is planning to completely revamp the gaming experience on its devices—the new gaming hub is supposed to unify games across platforms and possibly offer some social features, leaderboards, and achievements, all in a modern package. Let's be honest. Most of us have been ignoring Game Center for years, so restarting this idea makes sense. As a tester, I just pray that Apple doesn't repeat some of its experiments – remember when badges and animations were everywhere. We were hunting for bugs like \"the game freezes when you get three notifications in a row\"? Hopefully, the new gaming hub will be more robust.

\n

There is also talk of more innovative AirPods integration – such as better automatic switching between devices or new features for customising sound to the user's ears. It's no secret that Apple is working on AirPods firmware that could adaptively adjust volume and noise cancellation based on the environment. If this is also implemented in macOS, Macs could, for example, communicate more intelligently with AirPods so that you never miss a meeting or Kevin's meow behind your back.

\n

And what will the new macOS be called? Apple has traditionally drawn inspiration from California's natural beauty. Among the registered trademarks are reportedly Redwood, Mammoth, Skyline, and Diablo. I would probably bet on macOS Redwood – redwoods symbolise something big and new. (I just hope Kevin doesn't take offence – he has a habit of scratching furniture, and Redwood literally means \"red wood,\" so he might take it as a challenge on our iMac.)

\n

There is also some less joyful news: some older Macs may not be compatible with the new system. Leaks suggest that macOS 26 will support models from 2019 onwards (for MacBook Pro) or iMac 2020+ and, of course, all Macs with Apple Silicon. On the other hand, the 2018 MacBook Pro, the 2017 iMac Pro, and the latest Intel MacBook Air from 2020 are expected to be excluded. However, Intel Macs will generally get another year of support, which is fair—Apple promised several years of support and has kept its promise so far. For businesses, this means planning hardware upgrades (and for our testers, perhaps holding some older machines aside for testing on older macOS versions for as long as necessary).

\n

In short, macOS is in for a big spring this year (or fall, when the final version is released). A new look, new apps, and a clean-up of the old. As a long-time test manager, I have a message for Apple: Please allow enough time for debugging in the betas! Redesigns can be tricky – a slight change in controls can disrupt user habits (and test scripts) significantly. But I believe the result will be a modern macOS that will be easy to get used to. And I bet Kevin will find his favourite spot in the new design – maybe on the translucent menu, where he can watch the cursor chasing the Apple Intelligence puzzle.

\n
\n

AI everywhere: Apple Intelligence one year later

\n

Apple introduced the \"Apple Intelligence\" platform in 2024. However, in the eyes of many, its logo is still missing a vital piece...

\n

No tech fan has failed to notice that artificial intelligence has been the buzzword of recent years. Last year at WWDC 2024, Apple finally unveiled its vision in the form of Apple Intelligence – a set of features built on generative AI, deeply integrated into the iPhone, iPad, and Mac. It was intended to be Apple's response to the rise of ChatGPT and its counterparts but with an Apple twist: an emphasis on privacy, on-device processing, and practicality in everyday life.

\n

What did Apple Intelligence bring? For example, system-wide writing assistants – the Rewrite feature on iPhone and Mac allows you to take text (such as an email or a message) and have it rephrased or toned down to better suit the situation. Mail now features intelligent sorting of priority emails, and Notes and Phone allow you to record a meeting, have it automatically transcribed into text, and summarise it. Photos and videos now feature an AI-powered Memories option – users describe a scenario (e.g., \"a memory video from last summer with Kevin\" 😊). The system selects relevant photos and videos, adds music, and creates a movie with chapters. And the cherry on top – Apple has even integrated Image Playground, an image generator directly on the device, and Genmoji, which allows you to create custom emojis using AI. All this with the promise that \"user data remains on the device and is not sent anywhere\" – which is a bit of a jab at the competition because ChatGPT on your iPhone, for example, runs on OpenAI servers, and you don't know what happens to your data.

\n

Great, right? Except... a year has passed, and many feel that Apple has overpromised with AI and failed to deliver on everything it touted. Some of the announced features (such as an entirely contextual Siri that understands what you're looking at on the screen and responds accordingly) are still not available – Apple has postponed them for later. Siri itself hasn't seen much visible improvement since last year, and in the meantime, Google and Microsoft are racing ahead. Tom's Guide recently commented aptly: WWDC 2024 was unusually about \"overpromise & underdeliver,\" and WWDC 2025 is a bit of a va banque for Apple Intelligence — either Apple dispels concerns or risks ending up like Siri did years ago. Harsh words, but not surprising – Apple came to AI later than others and can't afford to disappoint expectations twice in a row.

\n

What can we expect from AI this year?

\n

First, improvements to existing Apple Intelligence features. There is speculation about a more intelligent Siri, possibly incorporating ChatGPT-like technology for enhanced conversational capabilities. Siri could learn to better understand context – for example, finally understanding that when you say \"send this to Peter,\" \"this\" refers to the document you're currently viewing. Bloomberg and other sources suggest that Apple is testing larger language models for Siri, but this could be a long haul. At least minor improvements in iOS 18.4 and 18.5 have already hinted at progress—Siri has started to handle longer context when dictating and, for example, generate better shortcut suggestions. WWDC 2025 could bring an official announcement of \"Siri 2.0,\" but let's keep our expectations in check until we see it with our own eyes (and ears).

\n

Second, Apple will likely expand its AI features in health and lifestyle. A report has leaked that it is planning a virtual health coach—AI that will process data from your Apple Watch and iPhone (including sleep, movement, and diet) and provide you with personalised tips for improving your fitness through a conversational chatbot. Imagine looking at your phone in the morning and seeing a message saying, \"You only slept 6 hours last night, try going to bed half an hour earlier today. And don't forget to stretch, your average activity level is down this week.\" – something like that. For some, it's a little scary. For others, it's a great trainer in their pocket. Of course, all of this depends heavily on trust in the data – Apple will emphasise that the \"Apple Intelligence Coach\" (whatever they call it) runs privately and does not share your health data with anyone.

\n

There's also a lot of talk about AI-enhanced battery management – it sounds dry, but who wouldn't want their iPhone or MacBook to last longer? Apple is reportedly testing a model that predicts your consumption and charging habits and manages processes more intelligently to conserve battery life. We may see a feature that learns your daily rhythm—for example, it recognises that your battery is usually low around 3 p.m., so it starts saving power in the morning. It turns down unnecessary things, or it advises you, \"Hey, boss, if we plug it in for 20 minutes now, it'll last until evening.\" It's a small thing that makes you happy, and you don't even notice that there's a lot of data magic behind it.

\n
\"Apple
Apple 2025 MacBook Air 13-inch Laptop with M4 chip: Built for Apple Intelligence, 13.6-inch Liquid Retina Display, 16GB Unified Memory, 256GB SSD Storage, 12MP Center Stage Camera, Touch ID; Midnight
Amazon
Affiliate Link
\n

Third (and perhaps most essential for us developers and testers): Apple is finally opening its AI models to third-party developers. This is a significant development – according to Bloomberg, Apple is preparing a set of tools (SDKs) and frameworks that will enable developers to utilise Apple's AI models in their applications. In practical terms, this means that features such as intelligent text transcription, notification summarisation, and image generation could appear in apps from other manufacturers, not just Apple systems. Apple aims to enhance its platform's attractiveness (as it has been lagging behind in AI and has some catching up to do) while maintaining control and security. Compared to integrating third-party AI (such as calling the OpenAI interface), developers would get a home solution—Apple will offer them its large language models, but initially only in a smaller version that runs directly on the device. Therefore, no user data is sent outside the device.

\n

On the other hand, these on-device models will likely be simpler and less potent than mega AI in the cloud. For specific tasks (e.g., text recognition, basic conversation), this may be sufficient. And if Apple eventually offers connectivity to larger models via iCloud, we may see more robust AI—but that's just speculation on my part.

\n

BBC_PLACEHOLDER_1

\n

In any case, this is a significant shift for the developer community. Until now, we could only use a few minor AI features from Apple (such as face recognition via the Vision framework and basic machine learning via CoreML), but we couldn't \"touch\" the large generative models that Apple uses internally. Anyone who wanted to add a chatbot or text generator to their app had to use third-party services and deal with complex privacy and online requirements. Now, Apple will likely announce at WWDC25: here's our AI, now under the hood; use it as you wish (within the terms and limits, of course). Reuters has confirmed that Apple intends to unveil this plan at its keynote on June 9. Personally, I'm looking forward to it – I can imagine how it could help in the testing process: we could quickly generate test data (e.g., text, images) in the app using built-in AI or have an intelligent assistant in our enterprise app that advises employees based on company documents stored on their mobile phones. Of course, we have a lot of learning and experimenting to do before we get there. But that's part of development – and we test maniacs will be right there with our scenarios, ready to tame the new AI features and iron out the kinks.

\n

By the way, here's another AI treat that falls somewhat into the next section (Xcode), but we'll mention it here: Swift Assist. That's a name that may have flown by you last year and disappeared. At last year's WWDC, Apple introduced the concept of an AI assistant for programming – integrated into Xcode, capable of generating code from natural language input. It looked amazing: you would type, \"I want a table showing a list of tasks that can be checked off\", and Swift Assist would prepare a SwiftUI code skeleton with a Table and markers. Apple promised that it would \"come later in 2024.\" But... 2024 came and went, 2025 began, and Swift Assist was still nowhere to be found. It didn't appear in Xcode 16.x, and there was no sign of it in the betas. Developers started grumbling on forums – some angrily wrote, \"Apple missed the AI boat. They should have worked on this instead of glasses.\"

\n

BBC_PLACEHOLDER_2

\n

In contrast, others desperately cried, \"When will it be ready? SwiftUI really needs an LLM that knows the Apple API. Other models struggle with it.\" The truth is that Apple has put itself under a bit of pressure with this: WWDC 2025 is now seen by everyone as the latest date when it must come out with AI assistance for coding – otherwise, it risks developers continuing to rely on competing solutions such as GitHub Copilot, Tabnine, and others, which are already in real-world use today. There is even speculation that Apple might rename Swift Assist and release it with Xcode 17 or that it has secretly formed an alliance (or at least a technology license) with someone like OpenAI or Anthropic. It's hard to say. In any case, I'm very curious to hear what they have to say about AI for development in the keynote or Platforms State of the Union. Personally, I hope Apple will pleasantly surprise us—perhaps by releasing Swift Assist in the beta version of the new Xcode. And I secretly dream of a feature that would use AI to automatically generate unit tests for our code. (That would be a real treat for testers! Kevin could finally play with his mouse for a while while AI typed out the tests for me... Okay, back to reality.)

\n
\n

Xcode and developer tools: faster, more innovative, more reliable

\n

Last but certainly not least are developer tools, especially Xcode. For many WWDC attendees (including me), the keynote is interesting. Still, the real gems are revealed in the detailed lectures and documentation for the new versions of Xcode, SDK, and frameworks. So, what can we expect this year?

\n

Xcode 17 (which will likely be released in beta during WWDC) should build on last year's improvements. Xcode 16 brought, for example, predictive code completion powered by machine learning directly on-device – and I must say that when developing on an Apple Silicon Mac, the code suggestions were fast and sometimes pleasantly surprised me with how they were able to complete the entire expression. This year, Apple could take it a step further and integrate a bit of generative intelligence into the suggestions. Not a full-fledged Copilot (that's supposed to be Swift Assist), but perhaps more intelligent code completion based on project context. In the corridors, this is called Code Completion 3.0 – simply the next evolution of autocomplete, which may learn to better understand your code and intentions. This is more of a wish than a confirmed thing, but there have been mentions of \"AI-predictive code completion\" in leaks.

\n

Where we do expect something concrete are improvements to the debugger and profiling tools. Apple will most likely introduce new features in Instruments (a set of tools for measuring performance, memory, etc.). Last year, they added a great Flame Graph view for performance analysis. This year, I would bet on further enhancements—perhaps a more detailed thread view or more usable power consumption measurements (which are related to AI battery management—developers should have tools to monitor which part of the app is draining the battery and optimise it). There are also rumours of an improved visual debugger – meaning that when debugging the UI (especially SwiftUI apps), we will get a more interactive preview, the ability to click directly into the UI preview and edit properties, or possibly better visualisation of the view hierarchy. For us testers, this means that developers will hopefully find bugs in the UI layout more easily and won't send us builds where something overlaps or disappears on small displays 😇.

\n

Apple hasn't forgotten about automation and Continuous Integration either. For a few years now, it has been promoting its Xcode Cloud service, an integrated cloud CI/CD solution directly within Xcode. We don't know if they will announce anything groundbreaking in this area at WWDC 2025. Still, I expect some minor improvements, such as faster runs, more parallel tests, and better integration with TestFlight and App Store Connect. As a test manager, I use Xcode Cloud on a few projects, and it would be helpful if Apple clarified the logs from automatic tests and made it possible to efficiently run only a subset of tests. We'll see that someday.

\n

Another hidden treasure could be improvements to the testing frameworks. XCTest, the basic framework for writing tests on Apple platforms, received minor improvements last year (e.g., asynchronous expectations). However, there is still room for improvement—how about official support for testing UI in SwiftUI apps? So far, UI Tests mainly work through accessibility elements and UIKit, and SwiftUI apps are testable, but it's not quite there yet. Personally, I hope Apple will introduce something like \"SwiftUI Test Recorder\" or a new API for simulating gestures directly in SwiftUI views. This would greatly help automate the testing of modern apps. If nothing else, it might at least streamline test execution—for example, by allowing tests to be run in parallel on a local Mac, not just in the cloud.

\n

BBC_PLACEHOLDER_3

\n

What about development on the iPad? This is an evergreen topic—there has been speculation for years about whether Apple will release Xcode (or a lightweight version) for the iPad Pro. So far, we \"only\" have Swift Playgrounds, which allows you to create simple apps directly on the iPad, but it's not full-fledged development. This year, Apple announced that iPadOS 26 will finally be more \"Pro\" – perhaps bringing better multitasking, windows, and more. Some optimists claim that this could open the door to more demanding applications such as Xcode on the iPad. Personally, I don't think we'll see a full version of Xcode on the iPad just yet. Still, I can imagine Apple expanding the capabilities of Playgrounds or allowing at least simpler parts of development to run on the iPad. We'll see – if it happens, it would be a pleasant surprise and a clear signal that the iPad is heading towards becoming a truly professional tool. From a testing perspective, this would mean new scenarios for us (\"test that our library works when compiled on an iPad\"), but what wouldn't we do for progress?

\n

To conclude this section, I am compelled to return to Swift Assist and AI in coding. If Apple announces the availability of an AI assistant in Xcode at WWDC 2025, it will be a big deal. MacRumors aptly noted that developer news from WWDC is usually available by the end of summer, so last year's \"spirit\" of Swift Assist is a big exception. Apple is undoubtedly aware that a second delay would look really bad. So I wouldn't be surprised if CEO Tim Cook or software chief Craig Federighi took the stage and announced, \"And now something for our developers — Swift Assist is here, and it's even better.\" Let's keep our fingers crossed. And then, it will be up to all of us to train this innovative help feature so that it doesn't make us lazy programmers but instead teaches us to write better code... (And it will teach me to name variables better. Kevin would confirm that I sometimes grumble when I can't find my way around the code.)

\n
\n

In conclusion, Get your coffee ready (and a bowl for the cat)

\n

WWDC 2025 promises to be one of the most significant Apple software releases in the last decade. macOS will get a new look, the likes of which we may not have seen since the transition from OS X to macOS Sierra (and even that was nothing compared to the upcoming \"design transfusion\" inspired by Vision Pro). Artificial intelligence is poised to become not just a buzzword but a practical part of the Apple ecosystem – from a smarter Siri to an AI health coach and developers gaining access to tools that integrate AI into their apps. And Xcode and dev tools? They are in for an evolution that will hopefully make our work easier, speed up development cycles, and open up new possibilities for automation. As a test manager, I'm doubly excited: first, as a tech-savvy user, and second, because of the new challenges at work. Because every new framework and every UI change means that we, as nitpicky testers, will have something new to discover and improve.

\n

Before it all kicks off, I follow these conference announcements live with my colleagues. This year, we're planning to screen the keynote on a large screen in the office (popcorn is allowed, but the bug-tracking tool will be closed). After the show, it's our time – to study documentation, download beta profiles, and try out new features. I can already see myself playing with the AI assistant in Xcode. At the same time, Kevin purrs contentedly on my lap, utterly unaware of why his human is cheering when a colourful circle with the number 26 appears on the screen.

\n

So, there you have it: WWDC 2025 - we're ready! Fasten your seatbelts, pour yourself some caffeine, and if you have a four-legged friend like my Kevin, give him a scratch behind the ear – we have a week full of (not only) developer treats ahead of us. Whatever Apple shows us, we won't be bored.\nIn a few days, we'll see how accurate the predictions are. And if everything we dreamed of doesn't come true, it doesn't matter – at least we'll have something to write about next time. After all, in the world of technology, the journey is the destination. Apple intends to enhance that journey once again with new products that may transform the way we work, play, and create. I can already hear the familiar motto from the keynote: \"Can't innovate anymore, my ass!\" – and I believe that Apple will want to prove it twice as much this year.

\n

So here's to WWDC and all the fun (and testing) times that await us, thanks to it! 🍏🎉

\n"},{"node":54,"type":"clear","feat":11},{"node":54,"type":"splice","feat":11,"index":0,"add":["post-content"]},{"node":55,"type":"attach"},{"node":55,"type":"put","key":"tag","feat":0,"value":"div"},{"node":55,"type":"splice","feat":2,"index":0,"addNodes":[54]},{"node":55,"type":"splice","feat":11,"index":0,"add":["post-content"]},{"node":55,"type":"put","key":"word-spacing","feat":12,"value":"0.05em"},{"node":55,"type":"put","key":"color","feat":12,"value":"rgba(41, 41, 41, 1)"},{"node":55,"type":"put","key":"max-width","feat":12,"value":"100%"},{"node":55,"type":"put","key":"letter-spacing","feat":12,"value":"0.01em"},{"node":55,"type":"put","key":"font-size","feat":12,"value":"18px"},{"node":55,"type":"put","key":"font-family","feat":12,"value":"'Merriweather', 'Georgia', serif"},{"node":55,"type":"put","key":"line-height","feat":12,"value":"1.8"},{"node":55,"type":"put","key":"margin-bottom","feat":12,"value":"2rem"},{"node":55,"type":"put","key":"overflow-wrap","feat":12,"value":"break-word"},{"node":56,"type":"attach"},{"node":56,"type":"put","key":"text","feat":7,"value":"AFFILIATE"},{"node":57,"type":"attach"},{"node":57,"type":"put","key":"tag","feat":0,"value":"span"},{"node":57,"type":"clear","feat":2},{"node":57,"type":"splice","feat":2,"index":0,"addNodes":[56]},{"node":57,"type":"splice","feat":11,"index":0,"add":["special-tag","tag-affiliate"]},{"node":57,"type":"put","key":"title","feat":3,"value":"special.tag.affiliate"},{"node":57,"type":"put","key":"mouseover","feat":4,"value":"vIpODLLAUDo="},{"node":57,"type":"put","key":"mouseout","feat":4,"value":"vIpODLLAUDo="},{"node":57,"type":"put","key":"cursor","feat":12,"value":"help"},{"node":57,"type":"put","key":"border","feat":12,"value":"1px solid #00838F"},{"node":57,"type":"put","key":"padding","feat":12,"value":"4px 12px"},{"node":57,"type":"put","key":"color","feat":12,"value":"#00838F"},{"node":57,"type":"put","key":"white-space","feat":12,"value":"nowrap"},{"node":57,"type":"put","key":"font-weight","feat":12,"value":"500"},{"node":57,"type":"put","key":"display","feat":12,"value":"inline-block"},{"node":57,"type":"put","key":"font-size","feat":12,"value":"12px"},{"node":57,"type":"put","key":"line-height","feat":12,"value":"1.4"},{"node":57,"type":"put","key":"transition","feat":12,"value":"all 0.2s ease"},{"node":57,"type":"put","key":"margin-right","feat":12,"value":"8px"},{"node":57,"type":"put","key":"border-radius","feat":12,"value":"100px"},{"node":57,"type":"put","key":"background-color","feat":12,"value":"transparent"},{"node":57,"type":"put","key":"font-family","feat":12,"value":"system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif"},{"node":57,"type":"put","key":"margin-bottom","feat":12,"value":"8px"},{"node":58,"type":"attach"},{"node":58,"type":"put","key":"text","feat":7,"value":"Development"},{"node":59,"type":"attach"},{"node":59,"type":"put","key":"tag","feat":0,"value":"a"},{"node":59,"type":"clear","feat":2},{"node":59,"type":"splice","feat":2,"index":0,"addNodes":[58]},{"node":59,"type":"put","key":"router-link","feat":3,"value":""},{"node":59,"type":"put","key":"href","feat":3,"value":"en/blog/tag/development"},{"node":59,"type":"put","key":"mouseover","feat":4,"value":"vIpODLLAUDo="},{"node":59,"type":"put","key":"mouseout","feat":4,"value":"vIpODLLAUDo="},{"node":59,"type":"put","key":"border","feat":12,"value":"1px solid #e0e0e0"},{"node":59,"type":"put","key":"padding","feat":12,"value":"4px 12px"},{"node":59,"type":"put","key":"color","feat":12,"value":"#333333"},{"node":59,"type":"put","key":"font-weight","feat":12,"value":"500"},{"node":59,"type":"put","key":"text-decoration","feat":12,"value":"none"},{"node":59,"type":"put","key":"display","feat":12,"value":"inline-block"},{"node":59,"type":"put","key":"font-size","feat":12,"value":"12px"},{"node":59,"type":"put","key":"line-height","feat":12,"value":"1.4"},{"node":59,"type":"put","key":"transition","feat":12,"value":"all 0.2s ease"},{"node":59,"type":"put","key":"margin-right","feat":12,"value":"8px"},{"node":59,"type":"put","key":"background-color","feat":12,"value":"#f5f5f5"},{"node":59,"type":"put","key":"border-radius","feat":12,"value":"100px"},{"node":59,"type":"put","key":"font-family","feat":12,"value":"system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif"},{"node":59,"type":"put","key":"margin-bottom","feat":12,"value":"8px"},{"node":60,"type":"attach"},{"node":60,"type":"put","key":"text","feat":7,"value":"Technology"},{"node":61,"type":"attach"},{"node":61,"type":"put","key":"tag","feat":0,"value":"a"},{"node":61,"type":"clear","feat":2},{"node":61,"type":"splice","feat":2,"index":0,"addNodes":[60]},{"node":61,"type":"put","key":"router-link","feat":3,"value":""},{"node":61,"type":"put","key":"href","feat":3,"value":"en/blog/tag/technology"},{"node":61,"type":"put","key":"mouseover","feat":4,"value":"vIpODLLAUDo="},{"node":61,"type":"put","key":"mouseout","feat":4,"value":"vIpODLLAUDo="},{"node":61,"type":"put","key":"border","feat":12,"value":"1px solid #e0e0e0"},{"node":61,"type":"put","key":"padding","feat":12,"value":"4px 12px"},{"node":61,"type":"put","key":"color","feat":12,"value":"#333333"},{"node":61,"type":"put","key":"font-weight","feat":12,"value":"500"},{"node":61,"type":"put","key":"text-decoration","feat":12,"value":"none"},{"node":61,"type":"put","key":"display","feat":12,"value":"inline-block"},{"node":61,"type":"put","key":"font-size","feat":12,"value":"12px"},{"node":61,"type":"put","key":"line-height","feat":12,"value":"1.4"},{"node":61,"type":"put","key":"transition","feat":12,"value":"all 0.2s ease"},{"node":61,"type":"put","key":"margin-right","feat":12,"value":"8px"},{"node":61,"type":"put","key":"background-color","feat":12,"value":"#f5f5f5"},{"node":61,"type":"put","key":"border-radius","feat":12,"value":"100px"},{"node":61,"type":"put","key":"font-family","feat":12,"value":"system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif"},{"node":61,"type":"put","key":"margin-bottom","feat":12,"value":"8px"},{"node":62,"type":"attach"},{"node":62,"type":"put","key":"text","feat":7,"value":"WWDC"},{"node":63,"type":"attach"},{"node":63,"type":"put","key":"tag","feat":0,"value":"a"},{"node":63,"type":"clear","feat":2},{"node":63,"type":"splice","feat":2,"index":0,"addNodes":[62]},{"node":63,"type":"put","key":"router-link","feat":3,"value":""},{"node":63,"type":"put","key":"href","feat":3,"value":"en/blog/tag/wwdc"},{"node":63,"type":"put","key":"mouseover","feat":4,"value":"vIpODLLAUDo="},{"node":63,"type":"put","key":"mouseout","feat":4,"value":"vIpODLLAUDo="},{"node":63,"type":"put","key":"border","feat":12,"value":"1px solid #e0e0e0"},{"node":63,"type":"put","key":"padding","feat":12,"value":"4px 12px"},{"node":63,"type":"put","key":"color","feat":12,"value":"#333333"},{"node":63,"type":"put","key":"font-weight","feat":12,"value":"500"},{"node":63,"type":"put","key":"text-decoration","feat":12,"value":"none"},{"node":63,"type":"put","key":"display","feat":12,"value":"inline-block"},{"node":63,"type":"put","key":"font-size","feat":12,"value":"12px"},{"node":63,"type":"put","key":"line-height","feat":12,"value":"1.4"},{"node":63,"type":"put","key":"transition","feat":12,"value":"all 0.2s ease"},{"node":63,"type":"put","key":"margin-right","feat":12,"value":"8px"},{"node":63,"type":"put","key":"background-color","feat":12,"value":"#f5f5f5"},{"node":63,"type":"put","key":"border-radius","feat":12,"value":"100px"},{"node":63,"type":"put","key":"font-family","feat":12,"value":"system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif"},{"node":63,"type":"put","key":"margin-bottom","feat":12,"value":"8px"},{"node":64,"type":"attach"},{"node":64,"type":"put","key":"text","feat":7,"value":"Apple"},{"node":65,"type":"attach"},{"node":65,"type":"put","key":"tag","feat":0,"value":"a"},{"node":65,"type":"clear","feat":2},{"node":65,"type":"splice","feat":2,"index":0,"addNodes":[64]},{"node":65,"type":"put","key":"router-link","feat":3,"value":""},{"node":65,"type":"put","key":"href","feat":3,"value":"en/blog/tag/apple"},{"node":65,"type":"put","key":"mouseover","feat":4,"value":"vIpODLLAUDo="},{"node":65,"type":"put","key":"mouseout","feat":4,"value":"vIpODLLAUDo="},{"node":65,"type":"put","key":"border","feat":12,"value":"1px solid #e0e0e0"},{"node":65,"type":"put","key":"padding","feat":12,"value":"4px 12px"},{"node":65,"type":"put","key":"color","feat":12,"value":"#333333"},{"node":65,"type":"put","key":"font-weight","feat":12,"value":"500"},{"node":65,"type":"put","key":"text-decoration","feat":12,"value":"none"},{"node":65,"type":"put","key":"display","feat":12,"value":"inline-block"},{"node":65,"type":"put","key":"font-size","feat":12,"value":"12px"},{"node":65,"type":"put","key":"line-height","feat":12,"value":"1.4"},{"node":65,"type":"put","key":"transition","feat":12,"value":"all 0.2s ease"},{"node":65,"type":"put","key":"margin-right","feat":12,"value":"8px"},{"node":65,"type":"put","key":"background-color","feat":12,"value":"#f5f5f5"},{"node":65,"type":"put","key":"border-radius","feat":12,"value":"100px"},{"node":65,"type":"put","key":"font-family","feat":12,"value":"system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif"},{"node":65,"type":"put","key":"margin-bottom","feat":12,"value":"8px"},{"node":66,"type":"attach"},{"node":66,"type":"put","key":"text","feat":7,"value":"Future"},{"node":67,"type":"attach"},{"node":67,"type":"put","key":"tag","feat":0,"value":"a"},{"node":67,"type":"clear","feat":2},{"node":67,"type":"splice","feat":2,"index":0,"addNodes":[66]},{"node":67,"type":"put","key":"router-link","feat":3,"value":""},{"node":67,"type":"put","key":"href","feat":3,"value":"en/blog/tag/future"},{"node":67,"type":"put","key":"mouseover","feat":4,"value":"vIpODLLAUDo="},{"node":67,"type":"put","key":"mouseout","feat":4,"value":"vIpODLLAUDo="},{"node":67,"type":"put","key":"border","feat":12,"value":"1px solid #e0e0e0"},{"node":67,"type":"put","key":"padding","feat":12,"value":"4px 12px"},{"node":67,"type":"put","key":"color","feat":12,"value":"#333333"},{"node":67,"type":"put","key":"font-weight","feat":12,"value":"500"},{"node":67,"type":"put","key":"text-decoration","feat":12,"value":"none"},{"node":67,"type":"put","key":"display","feat":12,"value":"inline-block"},{"node":67,"type":"put","key":"font-size","feat":12,"value":"12px"},{"node":67,"type":"put","key":"line-height","feat":12,"value":"1.4"},{"node":67,"type":"put","key":"transition","feat":12,"value":"all 0.2s ease"},{"node":67,"type":"put","key":"margin-right","feat":12,"value":"8px"},{"node":67,"type":"put","key":"background-color","feat":12,"value":"#f5f5f5"},{"node":67,"type":"put","key":"border-radius","feat":12,"value":"100px"},{"node":67,"type":"put","key":"font-family","feat":12,"value":"system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif"},{"node":67,"type":"put","key":"margin-bottom","feat":12,"value":"8px"},{"node":68,"type":"attach"},{"node":68,"type":"put","key":"text","feat":7,"value":"Xcode"},{"node":69,"type":"attach"},{"node":69,"type":"put","key":"tag","feat":0,"value":"a"},{"node":69,"type":"clear","feat":2},{"node":69,"type":"splice","feat":2,"index":0,"addNodes":[68]},{"node":69,"type":"put","key":"router-link","feat":3,"value":""},{"node":69,"type":"put","key":"href","feat":3,"value":"en/blog/tag/xcode"},{"node":69,"type":"put","key":"mouseover","feat":4,"value":"vIpODLLAUDo="},{"node":69,"type":"put","key":"mouseout","feat":4,"value":"vIpODLLAUDo="},{"node":69,"type":"put","key":"border","feat":12,"value":"1px solid #e0e0e0"},{"node":69,"type":"put","key":"padding","feat":12,"value":"4px 12px"},{"node":69,"type":"put","key":"color","feat":12,"value":"#333333"},{"node":69,"type":"put","key":"font-weight","feat":12,"value":"500"},{"node":69,"type":"put","key":"text-decoration","feat":12,"value":"none"},{"node":69,"type":"put","key":"display","feat":12,"value":"inline-block"},{"node":69,"type":"put","key":"font-size","feat":12,"value":"12px"},{"node":69,"type":"put","key":"line-height","feat":12,"value":"1.4"},{"node":69,"type":"put","key":"transition","feat":12,"value":"all 0.2s ease"},{"node":69,"type":"put","key":"margin-right","feat":12,"value":"8px"},{"node":69,"type":"put","key":"background-color","feat":12,"value":"#f5f5f5"},{"node":69,"type":"put","key":"border-radius","feat":12,"value":"100px"},{"node":69,"type":"put","key":"font-family","feat":12,"value":"system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif"},{"node":69,"type":"put","key":"margin-bottom","feat":12,"value":"8px"},{"node":70,"type":"attach"},{"node":70,"type":"put","key":"text","feat":7,"value":"AI"},{"node":71,"type":"attach"},{"node":71,"type":"put","key":"tag","feat":0,"value":"a"},{"node":71,"type":"clear","feat":2},{"node":71,"type":"splice","feat":2,"index":0,"addNodes":[70]},{"node":71,"type":"put","key":"router-link","feat":3,"value":""},{"node":71,"type":"put","key":"href","feat":3,"value":"en/blog/tag/ai"},{"node":71,"type":"put","key":"mouseover","feat":4,"value":"vIpODLLAUDo="},{"node":71,"type":"put","key":"mouseout","feat":4,"value":"vIpODLLAUDo="},{"node":71,"type":"put","key":"border","feat":12,"value":"1px solid #e0e0e0"},{"node":71,"type":"put","key":"padding","feat":12,"value":"4px 12px"},{"node":71,"type":"put","key":"color","feat":12,"value":"#333333"},{"node":71,"type":"put","key":"font-weight","feat":12,"value":"500"},{"node":71,"type":"put","key":"text-decoration","feat":12,"value":"none"},{"node":71,"type":"put","key":"display","feat":12,"value":"inline-block"},{"node":71,"type":"put","key":"font-size","feat":12,"value":"12px"},{"node":71,"type":"put","key":"line-height","feat":12,"value":"1.4"},{"node":71,"type":"put","key":"transition","feat":12,"value":"all 0.2s ease"},{"node":71,"type":"put","key":"margin-right","feat":12,"value":"8px"},{"node":71,"type":"put","key":"background-color","feat":12,"value":"#f5f5f5"},{"node":71,"type":"put","key":"border-radius","feat":12,"value":"100px"},{"node":71,"type":"put","key":"font-family","feat":12,"value":"system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif"},{"node":71,"type":"put","key":"margin-bottom","feat":12,"value":"8px"},{"node":72,"type":"attach"},{"node":72,"type":"put","key":"text","feat":7,"value":"macOS"},{"node":73,"type":"attach"},{"node":73,"type":"put","key":"tag","feat":0,"value":"a"},{"node":73,"type":"clear","feat":2},{"node":73,"type":"splice","feat":2,"index":0,"addNodes":[72]},{"node":73,"type":"put","key":"router-link","feat":3,"value":""},{"node":73,"type":"put","key":"href","feat":3,"value":"en/blog/tag/macos"},{"node":73,"type":"put","key":"mouseover","feat":4,"value":"vIpODLLAUDo="},{"node":73,"type":"put","key":"mouseout","feat":4,"value":"vIpODLLAUDo="},{"node":73,"type":"put","key":"border","feat":12,"value":"1px solid #e0e0e0"},{"node":73,"type":"put","key":"padding","feat":12,"value":"4px 12px"},{"node":73,"type":"put","key":"color","feat":12,"value":"#333333"},{"node":73,"type":"put","key":"font-weight","feat":12,"value":"500"},{"node":73,"type":"put","key":"text-decoration","feat":12,"value":"none"},{"node":73,"type":"put","key":"display","feat":12,"value":"inline-block"},{"node":73,"type":"put","key":"font-size","feat":12,"value":"12px"},{"node":73,"type":"put","key":"line-height","feat":12,"value":"1.4"},{"node":73,"type":"put","key":"transition","feat":12,"value":"all 0.2s ease"},{"node":73,"type":"put","key":"margin-right","feat":12,"value":"8px"},{"node":73,"type":"put","key":"background-color","feat":12,"value":"#f5f5f5"},{"node":73,"type":"put","key":"border-radius","feat":12,"value":"100px"},{"node":73,"type":"put","key":"font-family","feat":12,"value":"system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif"},{"node":73,"type":"put","key":"margin-bottom","feat":12,"value":"8px"},{"node":74,"type":"attach"},{"node":74,"type":"put","key":"text","feat":7,"value":"WWDC 2025"},{"node":75,"type":"attach"},{"node":75,"type":"put","key":"tag","feat":0,"value":"a"},{"node":75,"type":"clear","feat":2},{"node":75,"type":"splice","feat":2,"index":0,"addNodes":[74]},{"node":75,"type":"put","key":"router-link","feat":3,"value":""},{"node":75,"type":"put","key":"href","feat":3,"value":"en/blog/tag/wwdc-2025"},{"node":75,"type":"put","key":"mouseover","feat":4,"value":"vIpODLLAUDo="},{"node":75,"type":"put","key":"mouseout","feat":4,"value":"vIpODLLAUDo="},{"node":75,"type":"put","key":"border","feat":12,"value":"1px solid #e0e0e0"},{"node":75,"type":"put","key":"padding","feat":12,"value":"4px 12px"},{"node":75,"type":"put","key":"color","feat":12,"value":"#333333"},{"node":75,"type":"put","key":"font-weight","feat":12,"value":"500"},{"node":75,"type":"put","key":"text-decoration","feat":12,"value":"none"},{"node":75,"type":"put","key":"display","feat":12,"value":"inline-block"},{"node":75,"type":"put","key":"font-size","feat":12,"value":"12px"},{"node":75,"type":"put","key":"line-height","feat":12,"value":"1.4"},{"node":75,"type":"put","key":"transition","feat":12,"value":"all 0.2s ease"},{"node":75,"type":"put","key":"margin-right","feat":12,"value":"8px"},{"node":75,"type":"put","key":"background-color","feat":12,"value":"#f5f5f5"},{"node":75,"type":"put","key":"border-radius","feat":12,"value":"100px"},{"node":75,"type":"put","key":"font-family","feat":12,"value":"system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif"},{"node":75,"type":"put","key":"margin-bottom","feat":12,"value":"8px"},{"node":76,"type":"attach"},{"node":76,"type":"put","key":"text","feat":7,"value":"Innovation"},{"node":77,"type":"attach"},{"node":77,"type":"put","key":"tag","feat":0,"value":"a"},{"node":77,"type":"clear","feat":2},{"node":77,"type":"splice","feat":2,"index":0,"addNodes":[76]},{"node":77,"type":"put","key":"router-link","feat":3,"value":""},{"node":77,"type":"put","key":"href","feat":3,"value":"en/blog/tag/innovation"},{"node":77,"type":"put","key":"mouseover","feat":4,"value":"vIpODLLAUDo="},{"node":77,"type":"put","key":"mouseout","feat":4,"value":"vIpODLLAUDo="},{"node":77,"type":"put","key":"border","feat":12,"value":"1px solid #e0e0e0"},{"node":77,"type":"put","key":"padding","feat":12,"value":"4px 12px"},{"node":77,"type":"put","key":"color","feat":12,"value":"#333333"},{"node":77,"type":"put","key":"font-weight","feat":12,"value":"500"},{"node":77,"type":"put","key":"text-decoration","feat":12,"value":"none"},{"node":77,"type":"put","key":"display","feat":12,"value":"inline-block"},{"node":77,"type":"put","key":"font-size","feat":12,"value":"12px"},{"node":77,"type":"put","key":"line-height","feat":12,"value":"1.4"},{"node":77,"type":"put","key":"transition","feat":12,"value":"all 0.2s ease"},{"node":77,"type":"put","key":"margin-right","feat":12,"value":"8px"},{"node":77,"type":"put","key":"background-color","feat":12,"value":"#f5f5f5"},{"node":77,"type":"put","key":"border-radius","feat":12,"value":"100px"},{"node":77,"type":"put","key":"font-family","feat":12,"value":"system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif"},{"node":77,"type":"put","key":"margin-bottom","feat":12,"value":"8px"},{"node":78,"type":"attach"},{"node":78,"type":"put","key":"text","feat":7,"value":"Technology"},{"node":79,"type":"attach"},{"node":79,"type":"put","key":"tag","feat":0,"value":"a"},{"node":79,"type":"clear","feat":2},{"node":79,"type":"splice","feat":2,"index":0,"addNodes":[78]},{"node":79,"type":"put","key":"router-link","feat":3,"value":""},{"node":79,"type":"put","key":"href","feat":3,"value":"en/blog/tag/technology"},{"node":79,"type":"put","key":"mouseover","feat":4,"value":"vIpODLLAUDo="},{"node":79,"type":"put","key":"mouseout","feat":4,"value":"vIpODLLAUDo="},{"node":79,"type":"put","key":"border","feat":12,"value":"1px solid #e0e0e0"},{"node":79,"type":"put","key":"padding","feat":12,"value":"4px 12px"},{"node":79,"type":"put","key":"color","feat":12,"value":"#333333"},{"node":79,"type":"put","key":"font-weight","feat":12,"value":"500"},{"node":79,"type":"put","key":"text-decoration","feat":12,"value":"none"},{"node":79,"type":"put","key":"display","feat":12,"value":"inline-block"},{"node":79,"type":"put","key":"font-size","feat":12,"value":"12px"},{"node":79,"type":"put","key":"line-height","feat":12,"value":"1.4"},{"node":79,"type":"put","key":"transition","feat":12,"value":"all 0.2s ease"},{"node":79,"type":"put","key":"margin-right","feat":12,"value":"8px"},{"node":79,"type":"put","key":"background-color","feat":12,"value":"#f5f5f5"},{"node":79,"type":"put","key":"border-radius","feat":12,"value":"100px"},{"node":79,"type":"put","key":"font-family","feat":12,"value":"system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif"},{"node":79,"type":"put","key":"margin-bottom","feat":12,"value":"8px"},{"node":80,"type":"attach"},{"node":80,"type":"put","key":"text","feat":7,"value":"Apple"},{"node":81,"type":"attach"},{"node":81,"type":"put","key":"tag","feat":0,"value":"a"},{"node":81,"type":"clear","feat":2},{"node":81,"type":"splice","feat":2,"index":0,"addNodes":[80]},{"node":81,"type":"put","key":"router-link","feat":3,"value":""},{"node":81,"type":"put","key":"href","feat":3,"value":"en/blog/tag/apple"},{"node":81,"type":"put","key":"mouseover","feat":4,"value":"vIpODLLAUDo="},{"node":81,"type":"put","key":"mouseout","feat":4,"value":"vIpODLLAUDo="},{"node":81,"type":"put","key":"border","feat":12,"value":"1px solid #e0e0e0"},{"node":81,"type":"put","key":"padding","feat":12,"value":"4px 12px"},{"node":81,"type":"put","key":"color","feat":12,"value":"#333333"},{"node":81,"type":"put","key":"font-weight","feat":12,"value":"500"},{"node":81,"type":"put","key":"text-decoration","feat":12,"value":"none"},{"node":81,"type":"put","key":"display","feat":12,"value":"inline-block"},{"node":81,"type":"put","key":"font-size","feat":12,"value":"12px"},{"node":81,"type":"put","key":"line-height","feat":12,"value":"1.4"},{"node":81,"type":"put","key":"transition","feat":12,"value":"all 0.2s ease"},{"node":81,"type":"put","key":"margin-right","feat":12,"value":"8px"},{"node":81,"type":"put","key":"background-color","feat":12,"value":"#f5f5f5"},{"node":81,"type":"put","key":"border-radius","feat":12,"value":"100px"},{"node":81,"type":"put","key":"font-family","feat":12,"value":"system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif"},{"node":81,"type":"put","key":"margin-bottom","feat":12,"value":"8px"},{"node":82,"type":"attach"},{"node":82,"type":"put","key":"tag","feat":0,"value":"div"},{"node":82,"type":"splice","feat":2,"index":0,"addNodes":[81,79,77,75,73,71,69,67,65,63,61,59,57]},{"node":82,"type":"put","key":"padding","feat":12,"value":"0"},{"node":82,"type":"put","key":"display","feat":12,"value":"flex"},{"node":82,"type":"put","key":"gap","feat":12,"value":"8px"},{"node":82,"type":"put","key":"margin-top","feat":12,"value":"2rem"},{"node":82,"type":"put","key":"margin-bottom","feat":12,"value":"2rem"},{"node":82,"type":"put","key":"flex-wrap","feat":12,"value":"wrap"},{"node":83,"type":"attach"},{"node":83,"type":"put","key":"text","feat":7,"value":"21 min read · Jul 2, 2025"},{"node":84,"type":"attach"},{"node":84,"type":"put","key":"tag","feat":0,"value":"span"},{"node":84,"type":"clear","feat":2},{"node":84,"type":"splice","feat":2,"index":0,"addNodes":[83]},{"node":84,"type":"put","key":"color","feat":12,"value":"rgba(41, 41, 41, 0.6)"},{"node":84,"type":"put","key":"font-size","feat":12,"value":"14px"},{"node":84,"type":"put","key":"font-family","feat":12,"value":"sohne, 'Helvetica Neue', Arial, sans-serif"},{"node":85,"type":"attach"},{"node":85,"type":"put","key":"text","feat":7,"value":"Jakub Jirak"},{"node":86,"type":"attach"},{"node":86,"type":"put","key":"tag","feat":0,"value":"h3"},{"node":86,"type":"clear","feat":2},{"node":86,"type":"splice","feat":2,"index":0,"addNodes":[85]},{"node":86,"type":"put","key":"margin","feat":12,"value":"0 0 4px 0"},{"node":86,"type":"put","key":"color","feat":12,"value":"#212121"},{"node":86,"type":"put","key":"font-weight","feat":12,"value":"600"},{"node":86,"type":"put","key":"font-size","feat":12,"value":"16px"},{"node":86,"type":"put","key":"font-family","feat":12,"value":"sohne, 'Helvetica Neue', Arial, sans-serif"},{"node":87,"type":"attach"},{"node":87,"type":"put","key":"tag","feat":0,"value":"div"},{"node":87,"type":"splice","feat":2,"index":0,"addNodes":[86,84]},{"node":87,"type":"put","key":"flex-direction","feat":12,"value":"column"},{"node":87,"type":"put","key":"display","feat":12,"value":"flex"},{"node":87,"type":"put","key":"justify-content","feat":12,"value":"center"},{"node":88,"type":"attach"},{"node":88,"type":"put","key":"tag","feat":0,"value":"img"},{"node":88,"type":"put","key":"src","feat":3,"value":"/images/avatar.avif"},{"node":88,"type":"put","key":"alt","feat":3,"value":"Author Avatar"},{"node":88,"type":"put","key":"border-radius","feat":12,"value":"50%"},{"node":88,"type":"put","key":"box-shadow","feat":12,"value":"0 2px 4px rgba(0, 0, 0, 0.05)"},{"node":88,"type":"put","key":"object-fit","feat":12,"value":"cover"},{"node":88,"type":"put","key":"width","feat":12,"value":"48px"},{"node":88,"type":"put","key":"height","feat":12,"value":"48px"},{"node":88,"type":"put","key":"margin-right","feat":12,"value":"16px"},{"node":89,"type":"attach"},{"node":89,"type":"put","key":"tag","feat":0,"value":"div"},{"node":89,"type":"splice","feat":2,"index":0,"addNodes":[88,87]},{"node":89,"type":"put","key":"padding","feat":12,"value":"12px 0"},{"node":89,"type":"put","key":"display","feat":12,"value":"flex"},{"node":89,"type":"put","key":"align-items","feat":12,"value":"center"},{"node":89,"type":"put","key":"margin-bottom","feat":12,"value":"2rem"},{"node":89,"type":"put","key":"border-bottom","feat":12,"value":"1px solid rgba(230, 230, 230, 0.8)"},{"node":90,"type":"attach"},{"node":90,"type":"put","key":"text","feat":7,"value":"Not just for developers."},{"node":91,"type":"attach"},{"node":91,"type":"put","key":"tag","feat":0,"value":"h2"},{"node":91,"type":"clear","feat":2},{"node":91,"type":"splice","feat":2,"index":0,"addNodes":[90]},{"node":91,"type":"put","key":"color","feat":12,"value":"rgba(41, 41, 41, 0.7)"},{"node":91,"type":"put","key":"font-weight","feat":12,"value":"400"},{"node":91,"type":"put","key":"letter-spacing","feat":12,"value":"0.01em"},{"node":91,"type":"put","key":"font-size","feat":12,"value":"1.25rem"},{"node":91,"type":"put","key":"font-family","feat":12,"value":"'Merriweather', 'Georgia', serif"},{"node":91,"type":"put","key":"line-height","feat":12,"value":"1.4"},{"node":91,"type":"put","key":"margin-top","feat":12,"value":"0"},{"node":91,"type":"put","key":"text-rendering","feat":12,"value":"optimizeLegibility"},{"node":91,"type":"put","key":"margin-bottom","feat":12,"value":"2rem"},{"node":92,"type":"attach"},{"node":92,"type":"put","key":"text","feat":7,"value":"WWDC 2025: In anticipation of a revolution"},{"node":93,"type":"attach"},{"node":93,"type":"put","key":"tag","feat":0,"value":"h1"},{"node":93,"type":"clear","feat":2},{"node":93,"type":"splice","feat":2,"index":0,"addNodes":[92]},{"node":93,"type":"put","key":"color","feat":12,"value":"#212121"},{"node":93,"type":"put","key":"font-weight","feat":12,"value":"700"},{"node":93,"type":"put","key":"letter-spacing","feat":12,"value":"-0.016em"},{"node":93,"type":"put","key":"font-size","feat":12,"value":"2.5rem"},{"node":93,"type":"put","key":"font-family","feat":12,"value":"'Merriweather', 'Georgia', serif"},{"node":93,"type":"put","key":"line-height","feat":12,"value":"1.25"},{"node":93,"type":"put","key":"text-rendering","feat":12,"value":"optimizeLegibility"},{"node":93,"type":"put","key":"margin-bottom","feat":12,"value":"0.75rem"},{"node":94,"type":"attach"},{"node":94,"type":"put","key":"text","feat":7,"value":"WWDC 2025 promises the biggest revolution in Apple's history – a new macOS, cross-platform AI, and major improvements to Xcode. How will this affect developers and testers?"},{"node":95,"type":"attach"},{"node":95,"type":"put","key":"tag","feat":0,"value":"h3"},{"node":95,"type":"clear","feat":2},{"node":95,"type":"splice","feat":2,"index":0,"addNodes":[94]},{"node":95,"type":"put","key":"text-transform","feat":12,"value":"uppercase"},{"node":95,"type":"put","key":"color","feat":12,"value":"#6B6B6B"},{"node":95,"type":"put","key":"font-weight","feat":12,"value":"400"},{"node":95,"type":"put","key":"letter-spacing","feat":12,"value":"0.077em"},{"node":95,"type":"put","key":"font-size","feat":12,"value":"13px"},{"node":95,"type":"put","key":"font-family","feat":12,"value":"sohne, \"Helvetica Neue\", Helvetica, Arial, sans-serif"},{"node":95,"type":"put","key":"line-height","feat":12,"value":"18px"},{"node":95,"type":"put","key":"font-style","feat":12,"value":"normal"},{"node":95,"type":"put","key":"margin-bottom","feat":12,"value":"-0.31em"},{"node":96,"type":"attach"},{"node":96,"type":"put","key":"text","feat":7,"value":"AI-generated image (DALL·E 3)"},{"node":97,"type":"attach"},{"node":97,"type":"put","key":"tag","feat":0,"value":"span"},{"node":97,"type":"clear","feat":2},{"node":97,"type":"splice","feat":2,"index":0,"addNodes":[96]},{"node":98,"type":"attach"},{"node":98,"type":"put","key":"tag","feat":0,"value":"div"},{"node":98,"type":"splice","feat":2,"index":0,"addNodes":[97]},{"node":98,"type":"put","key":"color","feat":12,"value":"rgba(117, 117, 117, 1)"},{"node":98,"type":"put","key":"font-size","feat":12,"value":"13px"},{"node":98,"type":"put","key":"margin-top","feat":12,"value":"0.5rem"},{"node":98,"type":"put","key":"font-family","feat":12,"value":"sohne, 'Helvetica Neue', Arial, sans-serif"},{"node":98,"type":"put","key":"font-style","feat":12,"value":"italic"},{"node":98,"type":"put","key":"margin-bottom","feat":12,"value":"1.5rem"},{"node":98,"type":"put","key":"text-align","feat":12,"value":"center"},{"node":99,"type":"attach"},{"node":99,"type":"put","key":"text","feat":7,"value":"Cover image for article: WWDC 2025: In anticipation of a revolution"},{"node":100,"type":"attach"},{"node":100,"type":"put","key":"tag","feat":0,"value":"span"},{"node":100,"type":"clear","feat":2},{"node":100,"type":"splice","feat":2,"index":0,"addNodes":[99]},{"node":100,"type":"put","key":"id","feat":3,"value":"cover-image-description"},{"node":100,"type":"put","key":"border","feat":12,"value":"0"},{"node":100,"type":"put","key":"padding","feat":12,"value":"0"},{"node":100,"type":"put","key":"margin","feat":12,"value":"-1px"},{"node":100,"type":"put","key":"overflow","feat":12,"value":"hidden"},{"node":100,"type":"put","key":"white-space","feat":12,"value":"nowrap"},{"node":100,"type":"put","key":"width","feat":12,"value":"1px"},{"node":100,"type":"put","key":"position","feat":12,"value":"absolute"},{"node":100,"type":"put","key":"clip","feat":12,"value":"rect(0, 0, 0, 0)"},{"node":100,"type":"put","key":"height","feat":12,"value":"1px"},{"node":101,"type":"attach"},{"node":101,"type":"put","key":"tag","feat":0,"value":"img"},{"node":101,"type":"put","key":"src","feat":3,"value":"/s3-images/null"},{"node":101,"type":"put","key":"aria-describedby","feat":3,"value":"cover-image-description"},{"node":101,"type":"put","key":"alt","feat":3,"value":"WWDC 2025: In anticipation of a revolution"},{"node":101,"type":"put","key":"loading","feat":3,"value":"lazy"},{"node":101,"type":"put","key":"max-height","feat":12,"value":"500px"},{"node":101,"type":"put","key":"object-fit","feat":12,"value":"cover"},{"node":101,"type":"put","key":"width","feat":12,"value":"100%"},{"node":102,"type":"attach"},{"node":102,"type":"put","key":"tag","feat":0,"value":"div"},{"node":102,"type":"splice","feat":2,"index":0,"addNodes":[101,100]},{"node":102,"type":"splice","feat":11,"index":0,"add":["image-display"]},{"node":102,"type":"put","key":"margin-left","feat":12,"value":"-20px"},{"node":102,"type":"put","key":"max-width","feat":12,"value":"calc(100% + 40px)"},{"node":102,"type":"put","key":"margin-top","feat":12,"value":"1rem"},{"node":102,"type":"put","key":"margin-bottom","feat":12,"value":"2rem"},{"node":102,"type":"put","key":"margin-right","feat":12,"value":"-20px"},{"node":103,"type":"attach"},{"node":103,"type":"put","key":"tag","feat":0,"value":"div"},{"node":103,"type":"splice","feat":2,"index":0,"addNodes":[102,98,95,93,91,89]},{"node":103,"type":"put","key":"margin-bottom","feat":12,"value":"2rem"},{"node":104,"type":"attach"},{"node":104,"type":"put","key":"tag","feat":0,"value":"div"},{"node":104,"type":"splice","feat":2,"index":0,"addNodes":[103,82,55]},{"node":104,"type":"put","key":"background-color","feat":12,"value":"#ffffff"},{"node":104,"type":"put","key":"border-radius","feat":12,"value":"8px"},{"node":104,"type":"put","key":"padding","feat":12,"value":"32px"},{"node":104,"type":"put","key":"box-shadow","feat":12,"value":"0 1px 3px rgba(0, 0, 0, 0.05)"},{"node":104,"type":"put","key":"margin","feat":12,"value":"32px auto"},{"node":104,"type":"put","key":"max-width","feat":12,"value":"700px"},{"node":104,"type":"put","key":"box-sizing","feat":12,"value":"border-box"},{"node":105,"type":"attach"},{"node":105,"type":"put","key":"tag","feat":0,"value":"vaadin-vertical-layout"},{"node":105,"type":"clear","feat":2},{"node":105,"type":"splice","feat":2,"index":0,"addNodes":[104]},{"node":105,"type":"put","key":"data-width-full","feat":3,"value":""},{"node":105,"type":"put","key":"data-height-full","feat":3,"value":""},{"node":105,"type":"put","key":"background-color","feat":12,"value":"#f9f9f9"},{"node":105,"type":"put","key":"width","feat":12,"value":"100%"},{"node":105,"type":"put","key":"justify-content","feat":12,"value":"flex-start"},{"node":105,"type":"put","key":"align-items","feat":12,"value":"center"},{"node":105,"type":"put","key":"height","feat":12,"value":"100%"},{"node":106,"type":"attach"},{"node":106,"type":"put","key":"tag","feat":0,"value":"div"},{"node":106,"type":"clear","feat":2},{"node":106,"type":"splice","feat":2,"index":0,"addNodes":[105,53]},{"node":106,"type":"put","key":"data-width-full","feat":3,"value":""},{"node":106,"type":"put","key":"width","feat":12,"value":"100%"},{"node":107,"type":"attach"},{"node":107,"type":"put","key":"tag","feat":0,"value":"vaadin-vertical-layout"},{"node":107,"type":"splice","feat":2,"index":0,"addNodes":[106,52]},{"node":107,"type":"put","key":"data-width-full","feat":3,"value":""},{"node":107,"type":"put","key":"width","feat":12,"value":"100%"},{"node":108,"type":"attach"},{"node":108,"type":"put","key":"tag","feat":0,"value":"vaadin-app-layout"},{"node":108,"type":"splice","feat":2,"index":0,"addNodes":[107,39,38]},{"node":108,"type":"put","key":"primary-section-changed","feat":4,"value":"mob6pkwuiMc="},{"node":108,"type":"put","key":"overlay-changed","feat":4,"value":"DrWiPES1Urc="},{"node":108,"type":"put","key":"drawer-opened-changed","feat":4,"value":"Og7tgrAg/pE="},{"node":113,"type":"attach"},{"node":113,"type":"put","key":"tag","feat":0,"value":"div"},{"node":113,"type":"clear","feat":2},{"node":113,"type":"splice","feat":2,"index":0,"addNodes":[126]},{"node":114,"type":"attach"},{"node":114,"type":"put","key":"text","feat":7,"value":"Blog"},{"node":115,"type":"attach"},{"node":115,"type":"put","key":"tag","feat":0,"value":"a"},{"node":115,"type":"clear","feat":2},{"node":115,"type":"splice","feat":2,"index":0,"addNodes":[114]},{"node":115,"type":"put","key":"highlight","feat":3,"value":""},{"node":115,"type":"put","key":"router-link","feat":3,"value":""},{"node":115,"type":"put","key":"href","feat":3,"value":"en/blog"},{"node":116,"type":"attach"},{"node":116,"type":"put","key":"text","feat":7,"value":"Hire Me"},{"node":117,"type":"attach"},{"node":117,"type":"put","key":"tag","feat":0,"value":"a"},{"node":117,"type":"clear","feat":2},{"node":117,"type":"splice","feat":2,"index":0,"addNodes":[116]},{"node":117,"type":"put","key":"router-link","feat":3,"value":""},{"node":117,"type":"put","key":"href","feat":3,"value":"en/hire-me"},{"node":118,"type":"attach"},{"node":118,"type":"put","key":"text","feat":7,"value":"Home"},{"node":119,"type":"attach"},{"node":119,"type":"put","key":"tag","feat":0,"value":"a"},{"node":119,"type":"clear","feat":2},{"node":119,"type":"splice","feat":2,"index":0,"addNodes":[118]},{"node":119,"type":"put","key":"highlight","feat":3,"value":""},{"node":119,"type":"put","key":"router-link","feat":3,"value":""},{"node":119,"type":"put","key":"href","feat":3,"value":"en"},{"node":120,"type":"attach"},{"node":120,"type":"put","key":"tag","feat":0,"value":"vaadin-horizontal-layout"},{"node":120,"type":"splice","feat":2,"index":0,"addNodes":[119,117,115,113]},{"node":120,"type":"splice","feat":11,"index":0,"add":["nav-links","gap-6"]},{"node":120,"type":"put","key":"theme","feat":3,"value":"spacing"},{"node":121,"type":"attach"},{"node":121,"type":"put","key":"tag","feat":0,"value":"div"},{"node":121,"type":"put","key":"flex-grow","feat":12,"value":"1.0"},{"node":122,"type":"attach"},{"node":122,"type":"put","key":"tag","feat":0,"value":"img"},{"node":122,"type":"put","key":"src","feat":3,"value":"/images/logo.avif"},{"node":122,"type":"put","key":"alt","feat":3,"value":"Logo"},{"node":123,"type":"attach"},{"node":123,"type":"put","key":"tag","feat":0,"value":"a"},{"node":123,"type":"splice","feat":2,"index":0,"addNodes":[122]},{"node":123,"type":"splice","feat":11,"index":0,"add":["logo-img","h-6"]},{"node":123,"type":"put","key":"href","feat":3,"value":"/"},{"node":124,"type":"attach"},{"node":124,"type":"put","key":"tag","feat":0,"value":"vaadin-horizontal-layout"},{"node":124,"type":"splice","feat":2,"index":0,"addNodes":[123,121,120]},{"node":124,"type":"splice","feat":11,"index":0,"add":["header-container"]},{"node":124,"type":"put","key":"data-width-full","feat":3,"value":""},{"node":124,"type":"put","key":"theme","feat":3,"value":"spacing"},{"node":124,"type":"put","key":"margin-left","feat":12,"value":"auto"},{"node":124,"type":"put","key":"padding","feat":12,"value":"0 16px"},{"node":124,"type":"put","key":"max-width","feat":12,"value":"1200px"},{"node":124,"type":"put","key":"width","feat":12,"value":"100%"},{"node":124,"type":"put","key":"justify-content","feat":12,"value":"space-between"},{"node":124,"type":"put","key":"align-items","feat":12,"value":"center"},{"node":124,"type":"put","key":"margin-right","feat":12,"value":"auto"},{"node":125,"type":"attach"},{"node":125,"type":"put","key":"payload","feat":0,"value":{"type":"inMemory"}},{"node":125,"type":"put","key":"tag","feat":0,"value":"div"},{"node":125,"type":"clear","feat":2},{"node":125,"type":"splice","feat":2,"index":0,"addNodes":[127,146]},{"node":126,"type":"attach"},{"node":126,"type":"put","key":"tag","feat":0,"value":"vaadin-menu-bar"},{"node":126,"type":"put","key":"theme","feat":3,"value":"tertiary"},{"node":126,"type":"splice","feat":24,"index":0,"addNodes":[125]},{"node":126,"type":"put","key":"border","feat":12,"value":"none"},{"node":126,"type":"put","key":"margin-left","feat":12,"value":"auto"},{"node":126,"type":"put","key":"box-shadow","feat":12,"value":"none"},{"node":126,"type":"put","key":"outline","feat":12,"value":"none"},{"node":126,"type":"put","key":"background","feat":12,"value":"none"},{"node":126,"type":"put","key":"background-image","feat":12,"value":"none"},{"node":126,"type":"put","key":"margin-right","feat":12,"value":"1em"},{"node":127,"type":"attach"},{"node":127,"type":"put","key":"tag","feat":0,"value":"div"},{"node":127,"type":"splice","feat":2,"index":0,"addNodes":[133,139,145]},{"node":128,"type":"attach"},{"node":128,"type":"put","key":"text","feat":7,"value":"Czech"},{"node":129,"type":"attach"},{"node":129,"type":"put","key":"tag","feat":0,"value":"span"},{"node":129,"type":"clear","feat":2},{"node":129,"type":"splice","feat":2,"index":0,"addNodes":[128]},{"node":130,"type":"attach"},{"node":130,"type":"put","key":"tag","feat":0,"value":"img"},{"node":130,"type":"put","key":"src","feat":3,"value":"https://flagcdn.com/cz.svg"},{"node":130,"type":"put","key":"alt","feat":3,"value":"Czech"},{"node":130,"type":"put","key":"height","feat":12,"value":"15px"},{"node":130,"type":"put","key":"margin-right","feat":12,"value":"5px"},{"node":131,"type":"attach"},{"node":131,"type":"put","key":"tag","feat":0,"value":"vaadin-horizontal-layout"},{"node":131,"type":"splice","feat":2,"index":0,"addNodes":[130,129]},{"node":131,"type":"put","key":"data-width-full","feat":3,"value":""},{"node":131,"type":"put","key":"theme","feat":3,"value":"spacing"},{"node":131,"type":"put","key":"slot","feat":3,"value":"prefix"},{"node":131,"type":"put","key":"width","feat":12,"value":"100%"},{"node":131,"type":"put","key":"align-items","feat":12,"value":"center"},{"node":132,"type":"attach"},{"node":132,"type":"put","key":"tag","feat":0,"value":"vaadin-button"},{"node":132,"type":"splice","feat":2,"index":0,"addNodes":[131]},{"node":132,"type":"put","key":"data-width-full","feat":3,"value":""},{"node":132,"type":"put","key":"theme","feat":3,"value":"icon tertiary"},{"node":132,"type":"put","key":"click","feat":4,"value":"F8oCtNArLiI="},{"node":132,"type":"put","key":"width","feat":12,"value":"100%"},{"node":133,"type":"attach"},{"node":133,"type":"put","key":"tag","feat":0,"value":"vaadin-menu-bar-item"},{"node":133,"type":"splice","feat":2,"index":0,"addNodes":[132]},{"node":133,"type":"put","key":"click","feat":4,"value":"F8oCtNArLiI="},{"node":134,"type":"attach"},{"node":134,"type":"put","key":"text","feat":7,"value":"German"},{"node":135,"type":"attach"},{"node":135,"type":"put","key":"tag","feat":0,"value":"span"},{"node":135,"type":"clear","feat":2},{"node":135,"type":"splice","feat":2,"index":0,"addNodes":[134]},{"node":136,"type":"attach"},{"node":136,"type":"put","key":"tag","feat":0,"value":"img"},{"node":136,"type":"put","key":"src","feat":3,"value":"https://flagcdn.com/de.svg"},{"node":136,"type":"put","key":"alt","feat":3,"value":"German"},{"node":136,"type":"put","key":"height","feat":12,"value":"15px"},{"node":136,"type":"put","key":"margin-right","feat":12,"value":"5px"},{"node":137,"type":"attach"},{"node":137,"type":"put","key":"tag","feat":0,"value":"vaadin-horizontal-layout"},{"node":137,"type":"splice","feat":2,"index":0,"addNodes":[136,135]},{"node":137,"type":"put","key":"data-width-full","feat":3,"value":""},{"node":137,"type":"put","key":"theme","feat":3,"value":"spacing"},{"node":137,"type":"put","key":"slot","feat":3,"value":"prefix"},{"node":137,"type":"put","key":"width","feat":12,"value":"100%"},{"node":137,"type":"put","key":"align-items","feat":12,"value":"center"},{"node":138,"type":"attach"},{"node":138,"type":"put","key":"tag","feat":0,"value":"vaadin-button"},{"node":138,"type":"splice","feat":2,"index":0,"addNodes":[137]},{"node":138,"type":"put","key":"data-width-full","feat":3,"value":""},{"node":138,"type":"put","key":"theme","feat":3,"value":"icon tertiary"},{"node":138,"type":"put","key":"click","feat":4,"value":"F8oCtNArLiI="},{"node":138,"type":"put","key":"width","feat":12,"value":"100%"},{"node":139,"type":"attach"},{"node":139,"type":"put","key":"tag","feat":0,"value":"vaadin-menu-bar-item"},{"node":139,"type":"splice","feat":2,"index":0,"addNodes":[138]},{"node":139,"type":"put","key":"click","feat":4,"value":"F8oCtNArLiI="},{"node":140,"type":"attach"},{"node":140,"type":"put","key":"text","feat":7,"value":"English"},{"node":141,"type":"attach"},{"node":141,"type":"put","key":"tag","feat":0,"value":"span"},{"node":141,"type":"clear","feat":2},{"node":141,"type":"splice","feat":2,"index":0,"addNodes":[140]},{"node":142,"type":"attach"},{"node":142,"type":"put","key":"tag","feat":0,"value":"img"},{"node":142,"type":"put","key":"src","feat":3,"value":"https://flagcdn.com/gb.svg"},{"node":142,"type":"put","key":"alt","feat":3,"value":"English"},{"node":142,"type":"put","key":"height","feat":12,"value":"15px"},{"node":142,"type":"put","key":"margin-right","feat":12,"value":"5px"},{"node":143,"type":"attach"},{"node":143,"type":"put","key":"tag","feat":0,"value":"vaadin-horizontal-layout"},{"node":143,"type":"splice","feat":2,"index":0,"addNodes":[142,141]},{"node":143,"type":"put","key":"data-width-full","feat":3,"value":""},{"node":143,"type":"put","key":"theme","feat":3,"value":"spacing"},{"node":143,"type":"put","key":"slot","feat":3,"value":"prefix"},{"node":143,"type":"put","key":"width","feat":12,"value":"100%"},{"node":143,"type":"put","key":"align-items","feat":12,"value":"center"},{"node":144,"type":"attach"},{"node":144,"type":"put","key":"tag","feat":0,"value":"vaadin-button"},{"node":144,"type":"splice","feat":2,"index":0,"addNodes":[143]},{"node":144,"type":"put","key":"data-width-full","feat":3,"value":""},{"node":144,"type":"put","key":"theme","feat":3,"value":"icon tertiary"},{"node":144,"type":"put","key":"click","feat":4,"value":"F8oCtNArLiI="},{"node":144,"type":"put","key":"font-weight","feat":12,"value":"bold"},{"node":144,"type":"put","key":"width","feat":12,"value":"100%"},{"node":145,"type":"attach"},{"node":145,"type":"put","key":"tag","feat":0,"value":"vaadin-menu-bar-item"},{"node":145,"type":"splice","feat":2,"index":0,"addNodes":[144]},{"node":145,"type":"put","key":"click","feat":4,"value":"F8oCtNArLiI="},{"node":146,"type":"attach"},{"node":146,"type":"put","key":"tag","feat":0,"value":"div"},{"node":146,"type":"splice","feat":2,"index":0,"addNodes":[151]},{"node":147,"type":"attach"},{"node":147,"type":"put","key":"text","feat":7,"value":"English"},{"node":148,"type":"attach"},{"node":148,"type":"put","key":"tag","feat":0,"value":"span"},{"node":148,"type":"clear","feat":2},{"node":148,"type":"splice","feat":2,"index":0,"addNodes":[147]},{"node":149,"type":"attach"},{"node":149,"type":"put","key":"tag","feat":0,"value":"img"},{"node":149,"type":"put","key":"src","feat":3,"value":"https://flagcdn.com/gb.svg"},{"node":149,"type":"put","key":"alt","feat":3,"value":"English"},{"node":149,"type":"put","key":"height","feat":12,"value":"15px"},{"node":149,"type":"put","key":"margin-right","feat":12,"value":"5px"},{"node":150,"type":"attach"},{"node":150,"type":"put","key":"tag","feat":0,"value":"vaadin-horizontal-layout"},{"node":150,"type":"splice","feat":2,"index":0,"addNodes":[149,148]},{"node":150,"type":"put","key":"theme","feat":3,"value":"spacing"},{"node":150,"type":"put","key":"align-items","feat":12,"value":"center"},{"node":151,"type":"attach"},{"node":151,"type":"put","key":"tag","feat":0,"value":"vaadin-menu-bar-item"},{"node":151,"type":"splice","feat":2,"index":0,"addNodes":[150]},{"node":151,"type":"put","key":"_containerNodeId","feat":1,"value":127},{"node":151,"type":"put","key":"click","feat":4,"value":"F8oCtNArLiI="}],"execute":[["en","document.documentElement.setAttribute('lang', $0);"],["WWDC 2025: In anticipation of a revolution","if(window.Vaadin.Flow.navigation) { window.addEventListener('vaadin-navigated', function(event) { document.title = $0;\n if(window?.Vaadin?.documentTitleSignal) {\n window.Vaadin.documentTitleSignal.value = $0;\n }\n}, {once:true}); } else { document.title = $0;\n if(window?.Vaadin?.documentTitleSignal) {\n window.Vaadin.documentTitleSignal.value = $0;\n }\n }"],["document.querySelector('meta[name=\"description\"]')?.remove()"],["WWDC 2025 brings major changes: macOS redesign, deep AI integration, developer tool innovations, and new automation capabilities. Read what's in store for Apple, developers, and testers this June!","var meta = document.createElement('meta'); meta.name = 'description'; meta.content = $0; document.head.appendChild(meta);"],["document.querySelector('meta[name=\"author\"]')?.remove()"],["Jakub Jirak","var meta = document.createElement('meta'); meta.name = 'author'; meta.content = $0; document.head.appendChild(meta);"],["document.querySelector('meta[name=\"robots\"]')?.remove()"],["var meta = document.createElement('meta'); meta.name = 'robots'; meta.content = 'index, follow'; document.head.appendChild(meta);"],["if (!document.querySelector('meta[name=\"viewport\"]')) { var meta = document.createElement('meta'); meta.name = 'viewport'; meta.content = 'width=device-width, initial-scale=1'; document.head.appendChild(meta);}"],["document.querySelector('link[rel=\"canonical\"]')?.remove()"],["https://jakubjirak.com/blog/wwdc-2025-in-anticipation-of-a-revolution-ae0738","var link = document.createElement('link'); link.rel = 'canonical'; link.href = $0; document.head.appendChild(link);"],["var charset = document.querySelector('meta[charset]');if (!charset) { charset = document.createElement('meta'); charset.setAttribute('charset', 'UTF-8'); if (document.head.firstChild) { document.head.insertBefore(charset, document.head.firstChild); } else { document.head.appendChild(charset); }} else if (charset.parentNode === document.head && charset !== document.head.firstChild) { document.head.insertBefore(charset, document.head.firstChild);}"],["document.querySelector('meta[name=\"version\"]')?.remove()"],["v0.1.0-SNAPSHOT","var meta = document.createElement('meta'); meta.name = 'version'; meta.content = $0; document.head.appendChild(meta);"],["document.querySelectorAll('meta[property^=\"og:\"]').forEach(el => el.remove())"],["WWDC 2025: In anticipation of a revolution","var meta = document.createElement('meta'); meta.setAttribute('property', 'og:title'); meta.content = $0; document.head.appendChild(meta);"],["WWDC 2025 brings major changes: macOS redesign, deep AI integration, developer tool innovations, and new automation capabilities. Read what's in store for Apple, developers, and testers this June!","var meta = document.createElement('meta'); meta.setAttribute('property', 'og:description'); meta.content = $0; document.head.appendChild(meta);"],["https://jakubjirak.com/images/c4243e8d-023f-44aa-afb3-912b66f8dbd6.png","var meta = document.createElement('meta'); meta.setAttribute('property', 'og:image'); meta.content = $0; document.head.appendChild(meta);"],["https://jakubjirak.com/blog/wwdc-2025-in-anticipation-of-a-revolution-ae0738","var meta = document.createElement('meta'); meta.setAttribute('property', 'og:url'); meta.content = $0; document.head.appendChild(meta);"],["var meta = document.createElement('meta'); meta.setAttribute('property', 'og:type'); meta.content = 'article'; document.head.appendChild(meta);"],["Modern Blog","var meta = document.createElement('meta'); meta.setAttribute('property', 'og:site_name'); meta.content = $0; document.head.appendChild(meta);"],["Jakub Jirak","var meta = document.createElement('meta'); meta.setAttribute('property', 'article:author'); meta.content = $0; document.head.appendChild(meta);"],["document.querySelectorAll('meta[name^=\"twitter:\"]').forEach(el => el.remove())"],["var meta = document.createElement('meta'); meta.name = 'twitter:card'; meta.content = 'summary_large_image'; document.head.appendChild(meta);"],["WWDC 2025: In anticipation of a revolution","var meta = document.createElement('meta'); meta.name = 'twitter:title'; meta.content = $0; document.head.appendChild(meta);"],["WWDC 2025 brings major changes: macOS redesign, deep AI integration, developer tool innovations, and new automation capabilities. Read what's in store for Apple, developers, and testers this June!","var meta = document.createElement('meta'); meta.name = 'twitter:description'; meta.content = $0; document.head.appendChild(meta);"],["https://jakubjirak.com/images/c4243e8d-023f-44aa-afb3-912b66f8dbd6.png","var meta = document.createElement('meta'); meta.name = 'twitter:image'; meta.content = $0; document.head.appendChild(meta);"],["@ModernBlog","var meta = document.createElement('meta'); meta.name = 'twitter:site'; meta.content = $0; document.head.appendChild(meta);"],["@ModernBlog","var meta = document.createElement('meta'); meta.name = 'twitter:creator'; meta.content = $0; document.head.appendChild(meta);"],["document.querySelectorAll('script[type=\"application/ld+json\"]').forEach(script => { if (script.textContent.includes('\"@type\":\"BlogPosting\"') || script.textContent.includes('\"@type\":\"TechArticle\"')) { script.remove(); }});"],["{\n \"@context\": \"https://schema.org\",\n \"@type\": \"BlogPosting\",\n \"headline\": \"WWDC 2025: In anticipation of a revolution\",\n \"description\": \"WWDC 2025 brings major changes: macOS redesign, deep AI integration, developer tool innovations, and new automation capabilities. Read what's in store for Apple, developers, and testers this June!\",\n \"mainEntityOfPage\": {\n \"@type\": \"WebPage\",\n \"@id\": \"https://jakubjirak.com/blog/wwdc-2025-in-anticipation-of-a-revolution-ae0738\"\n },\n \"author\": {\n \"@type\": \"Person\",\n \"name\": \"Jakub Jirak\",\n \"url\": \"https://jakubjirak.com/about\"\n },\n \"image\": [\"https://jakubjirak.com/images/c4243e8d-023f-44aa-afb3-912b66f8dbd6.png\"],\n \"publisher\": {\n \"@type\": \"Organization\",\n \"name\": \"Modern Blog\",\n \"logo\": {\n \"@type\": \"ImageObject\",\n \"url\": \"https://jakubjirak.com/images/logo.avif\"\n }\n },\n \"articleSection\": \"Apple\",\n \"keywords\": \"Apple, Technology, Innovation, WWDC 2025, macOS, AI, Xcode, Future, Apple, WWDC, Technology, Development\",\n \"wordCount\": 4138,\n \"inLanguage\": \"en\",\n \"url\": \"https://jakubjirak.com/blog/wwdc-2025-in-anticipation-of-a-revolution-ae0738\"\n}","var script = document.createElement('script');script.type = 'application/ld+json';script.textContent = $0;document.head.appendChild(script);"],["const style = document.createElement('style');style.textContent = `.post-content p { display: block; text-align: justify; margin-bottom: 1.5em; text-indent: 0; hyphens: auto;}`;document.head.appendChild(style);"],["var link = document.querySelector('link[rel=\"icon\"]');if (!link) { link = document.createElement('link'); link.rel = 'icon'; document.head.appendChild(link);}link.href = '/favicon.ico';"],["const style = document.createElement('style');\nstyle.textContent = `\n vaadin-menu-bar-overlay {\n box-shadow: none !important;\n border: none !important;\n outline: none !important;\n background: none !important;\n background-image: none !important;\n }\n vaadin-menu-bar-overlay vaadin-context-menu-item {\n text-align: left !important;\n }\n vaadin-menu-bar-overlay vaadin-context-menu-item::part(content) {\n justify-content: flex-start !important;\n }\n`;\ndocument.head.appendChild(style);\n"],["const style = document.createElement('style');\nstyle.textContent = `\n vaadin-menu-bar-overlay {\n box-shadow: none !important;\n border: none !important;\n outline: none !important;\n background: none !important;\n background-image: none !important;\n }\n vaadin-menu-bar-overlay vaadin-context-menu-item {\n text-align: left !important;\n }\n vaadin-menu-bar-overlay vaadin-context-menu-item::part(content) {\n justify-content: flex-start !important;\n }\n`;\ndocument.head.appendChild(style);\n"],["const style = document.createElement('style');\nstyle.textContent = `\n vaadin-menu-bar-overlay {\n box-shadow: none !important;\n border: none !important;\n outline: none !important;\n background: none !important;\n background-image: none !important;\n }\n vaadin-menu-bar-overlay vaadin-context-menu-item {\n text-align: left !important;\n }\n vaadin-menu-bar-overlay vaadin-context-menu-item::part(content) {\n justify-content: flex-start !important;\n }\n`;\ndocument.head.appendChild(style);\n"],["const style = document.createElement('style');\nstyle.textContent = `\n vaadin-menu-bar-overlay {\n box-shadow: none !important;\n border: none !important;\n outline: none !important;\n background: none !important;\n background-image: none !important;\n }\n vaadin-menu-bar-overlay vaadin-context-menu-item {\n text-align: left !important;\n }\n vaadin-menu-bar-overlay vaadin-context-menu-item::part(content) {\n justify-content: flex-start !important;\n }\n`;\ndocument.head.appendChild(style);\n"],[[0,53],"console.log('Setting up analytics event listeners');if (window.analyticsLinkClickHandler) { console.log('Removing existing analytics event listener'); window.removeEventListener('analytics-link-click', window.analyticsLinkClickHandler); window.analyticsLinkClickHandler = null;}window.analyticsLinkClickHandler = function(event) { const detail = event.detail; // Check if this is an external link const isExternal = detail.url && ( (detail.url.startsWith('http') && !detail.url.includes(window.location.hostname)) || detail.url.startsWith('mailto:') || detail.url.startsWith('tel:') ); if (isExternal) { detail.isExternal = true; } // Call the server-side method to track the link click $0.$server.trackLinkClick(detail.linkId, detail.linkIndex, detail.url, detail.text, detail.pageUrl, isExternal);};window.addEventListener('analytics-link-click', window.analyticsLinkClickHandler);const setupExternalLinkTracking = function() { // Check if we're on a blog post page const isBlogPost = window.location.pathname.startsWith('/blog/') && !window.location.pathname.startsWith('/blog/tag/'); // Select all links in the content area of blog posts const selector = isBlogPost ? '.blog-content a, .markdown-content a' : 'a[href^=\"http\"]'; document.querySelectorAll(selector).forEach(function(link, index) { // Check if this is an external link const href = link.getAttribute('href'); if (!href) return; const isExternal = (href.startsWith('http') && !href.includes(window.location.hostname)) || href.startsWith('mailto:') || href.startsWith('tel:'); if (isExternal && !link.hasAttribute('data-analytics-tracked')) { link.setAttribute('data-analytics-tracked', 'true'); link.addEventListener('click', function(e) { // Don't prevent default for mailto: and tel: links if (!href.startsWith('mailto:') && !href.startsWith('tel:')) { e.preventDefault(); } const url = this.href; const text = this.textContent.trim(); const linkId = this.getAttribute('data-analytics-link-id') || 'external-link-' + index; const linkIndex = this.getAttribute('data-link-index') || index.toString(); const pageUrl = window.location.pathname; const event = new CustomEvent('analytics-link-click', { detail: { linkId: linkId, linkIndex: linkIndex, url: url, text: text, pageUrl: pageUrl, isExternal: true } }); window.dispatchEvent(event); // For http links, open in new tab after a short delay if (!href.startsWith('mailto:') && !href.startsWith('tel:')) { setTimeout(function() { window.open(url, '_blank'); }, 200); } }); } });};if (document.readyState === 'complete') { setupExternalLinkTracking();} else { window.addEventListener('load', setupExternalLinkTracking);}"],["WWDC 2025: In anticipation of a revolution","if(window.Vaadin.Flow.navigation) { window.addEventListener('vaadin-navigated', function(event) { document.title = $0;\n if(window?.Vaadin?.documentTitleSignal) {\n window.Vaadin.documentTitleSignal.value = $0;\n }\n}, {once:true}); } else { document.title = $0;\n if(window?.Vaadin?.documentTitleSignal) {\n window.Vaadin.documentTitleSignal.value = $0;\n }\n }"],[[0,53],"requestAnimationFrame(function() { // Give the browser a bit more time to finish rendering setTimeout(function() { $0.$server.scanForAnchors(); }, 500);});"],["","if(window.Vaadin.Flow.navigation) { window.addEventListener('vaadin-navigated', function(event) { document.title = $0;\n if(window?.Vaadin?.documentTitleSignal) {\n window.Vaadin.documentTitleSignal.value = $0;\n }\n}, {once:true}); } else { document.title = $0;\n if(window?.Vaadin?.documentTitleSignal) {\n window.Vaadin.documentTitleSignal.value = $0;\n }\n }"],[[0,19],"return (async function() { const banner = this;const focusableElements = banner.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])');const firstFocusableElement = focusableElements[0];const lastFocusableElement = focusableElements[focusableElements.length - 1];banner.addEventListener('keydown', function(e) { if (e.key === 'Tab') { if (e.shiftKey && document.activeElement === firstFocusableElement) { e.preventDefault(); lastFocusableElement.focus(); } else if (!e.shiftKey && document.activeElement === lastFocusableElement) { e.preventDefault(); firstFocusableElement.focus(); } }});}).apply($0)"],[[0,19],"return (async function() { const focusableElements = this.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])');if (focusableElements.length > 0) { focusableElements[0].focus();}}).apply($0)"],["ROOT",[0,126],"return (async function() { window.Vaadin.Flow.menubarConnector.initLazy(this, $0)}).apply($1)"],[[0,42],"return (async function() { const svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');svg.setAttribute('viewBox', '0 0 24 24');svg.setAttribute('width', '24');svg.setAttribute('height', '24');svg.setAttribute('fill', '#fff');const path = document.createElementNS('http://www.w3.org/2000/svg', 'path');path.setAttribute('d', 'M19,3A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3H19M18.5,18.5V13.2A3.26,3.26 0 0,0 15.24,9.94C14.39,9.94 13.4,10.46 12.92,11.24V10.13H10.13V18.5H12.92V13.57C12.92,12.8 13.54,12.17 14.31,12.17A1.4,1.4 0 0,1 15.71,13.57V18.5H18.5M6.88,8.56A1.68,1.68 0 0,0 8.56,6.88C8.56,5.95 7.81,5.19 6.88,5.19A1.69,1.69 0 0,0 5.19,6.88C5.19,7.81 5.95,8.56 6.88,8.56M8.27,18.5V10.13H5.5V18.5H8.27Z');svg.appendChild(path);this.appendChild(svg);}).apply($0)"],[[0,43],"return (async function() { this.addEventListener('mouseover', function() { this.style.backgroundColor = '#555'; });this.addEventListener('mouseout', function() { this.style.backgroundColor = '#333'; });}).apply($0)"],[[0,44],"return (async function() { const svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');svg.setAttribute('viewBox', '0 0 24 24');svg.setAttribute('width', '24');svg.setAttribute('height', '24');svg.setAttribute('fill', '#fff');const path = document.createElementNS('http://www.w3.org/2000/svg', 'path');path.setAttribute('d', 'M4.37,7.46L4.37,7.46L4.37,7.46L0,7.46L0,8.17L0,8.17L1.56,8.17C1.81,8.17 2.01,8.37 2.01,8.62L2.01,8.62L2.01,15.4C2.01,15.65 1.81,15.85 1.56,15.85L1.56,15.85L0,15.85L0,16.56L0,16.56L6.1,16.56L6.1,15.85L6.1,15.85L4.82,15.85C4.57,15.85 4.37,15.65 4.37,15.4L4.37,15.4L4.37,8.62C4.37,8.37 4.57,8.17 4.82,8.17L4.82,8.17L6.1,8.17L6.1,7.46L6.1,7.46L4.37,7.46ZM11.71,7.46L11.71,7.46L7.61,7.46L7.61,8.17L7.61,8.17L8.89,8.17C9.14,8.17 9.34,8.37 9.34,8.62L9.34,8.62L9.34,15.4C9.34,15.65 9.14,15.85 8.89,15.85L8.89,15.85L7.61,15.85L7.61,16.56L7.61,16.56L13.71,16.56L13.71,15.85L13.71,15.85L12.43,15.85C12.18,15.85 11.98,15.65 11.98,15.4L11.98,15.4L11.98,8.62C11.98,8.37 12.18,8.17 12.43,8.17L12.43,8.17L13.71,8.17L13.71,7.46L13.71,7.46L11.71,7.46ZM19.04,7.46L19.04,7.46L14.94,7.46L14.94,8.17L14.94,8.17L16.22,8.17C16.47,8.17 16.67,8.37 16.67,8.62L16.67,8.62L16.67,15.4C16.67,15.65 16.47,15.85 16.22,15.85L16.22,15.85L14.94,15.85L14.94,16.56L14.94,16.56L21.04,16.56L21.04,15.85L21.04,15.85L19.76,15.85C19.51,15.85 19.31,15.65 19.31,15.4L19.31,15.4L19.31,8.62C19.31,8.37 19.51,8.17 19.76,8.17L19.76,8.17L21.04,8.17L21.04,7.46L21.04,7.46L19.04,7.46Z');svg.appendChild(path);this.appendChild(svg);}).apply($0)"],[[0,45],"return (async function() { this.addEventListener('mouseover', function() { this.style.backgroundColor = '#555'; });this.addEventListener('mouseout', function() { this.style.backgroundColor = '#333'; });}).apply($0)"],[[0,47],"return (async function() { this.addEventListener('mouseover', function() { this.style.backgroundColor = '#555'; });this.addEventListener('mouseout', function() { this.style.backgroundColor = '#333'; });}).apply($0)"],[[0,49],"return (async function() { this.addEventListener('mouseover', function() { this.style.backgroundColor = '#555'; });this.addEventListener('mouseout', function() { this.style.backgroundColor = '#333'; });}).apply($0)"],[[0,105],"return (async function() { document.addEventListener('click', function(e) { let target = e.target; /* Traverse up the DOM to find the closest anchor element */ while (target && target !== document) { if (target.tagName === 'A') { const href = target.getAttribute('href'); /* Skip if href is empty or a fragment link */ if (!href || href === '#' || href.startsWith('javascript:')) { break; } /* Get link attributes */ const text = target.textContent.trim(); const linkId = target.getAttribute('data-analytics-link-id') || 'link-' + Math.random().toString(36).substring(2, 9); const linkIndex = target.getAttribute('data-link-index') || '0'; const pageUrl = window.location.pathname; const isNewTab = target.getAttribute('target') === '_blank'; const isExternal = href.startsWith('http') || href.startsWith('//'); /* Create and dispatch the analytics event */ const event = new CustomEvent('analytics-link-click', { detail: { linkId: linkId, linkIndex: linkIndex, url: href, text: text, pageUrl: pageUrl, isExternal: isExternal } }); window.dispatchEvent(event); /* For external links, we want to track the click before navigating */ if (isExternal) { e.preventDefault(); /* Short delay to ensure the event is processed */ setTimeout(function() { /* Escape special characters in the URL to prevent JS errors */ var safeHref = href.replace(/\"/g, '\\\"').replace(/'/g, \"\\'\"); if (isNewTab) { window.open(safeHref, '_blank'); } else { window.location.href = safeHref; } }, 100); } break; } target = target.parentNode; }});}).apply($0)"],[[0,105],"return (async function() { setTimeout(function() { console.log('Setting up special tracking for Amazon affiliate links'); document.querySelectorAll('a[href*=\"amzn.to\"]').forEach(function(link) { console.log('Found Amazon affiliate link:', link.href); link.addEventListener('click', function(e) { e.preventDefault(); const url = this.href; const text = this.textContent.trim(); const linkId = this.getAttribute('data-analytics-link-id') || 'amazon-link'; const linkIndex = this.getAttribute('data-link-index') || '0'; const pageUrl = window.location.pathname; console.log('Amazon link clicked:', url, text); const event = new CustomEvent('analytics-link-click', { detail: { linkId: linkId, linkIndex: linkIndex, url: url, text: text, pageUrl: pageUrl } }); window.dispatchEvent(event); console.log('Dispatched analytics-link-click event for Amazon link:', url); setTimeout(function() { /* Escape special characters in the URL to prevent JS errors */ var safeUrl = url.replace(/\"/g, '\\\"').replace(/'/g, \"\\'\"); window.open(safeUrl, '_blank'); }, 200); }); });}, 1000);}).apply($0)"],[[0,105],"return (async function() { document.querySelectorAll('.post-content').forEach(el => { el.querySelectorAll('img').forEach(img => { img.style.maxWidth = '100%'; img.style.height = 'auto'; });});function trackAmazonLinks() { console.log('Setting up special tracking for Amazon affiliate links'); document.querySelectorAll('a[href*=\"amzn.to\"]').forEach(link => { console.log('Found Amazon affiliate link:', link.href); link.addEventListener('click', function(e) { e.preventDefault(); const url = this.href; const text = this.textContent.trim(); const linkId = 'amazon-link-' + Math.random().toString(36).substr(2, 9); const pageUrl = window.location.pathname; console.log('Amazon link clicked:', url, text); const event = new CustomEvent('analytics-link-click', { detail: { linkId: linkId, linkIndex: '0', url: url, text: text, pageUrl: pageUrl } }); window.dispatchEvent(event); console.log('Dispatched analytics-link-click event for Amazon link:', url); setTimeout(function() { /* Escape special characters in the URL to prevent JS errors */ var safeUrl = url.replace(/\"/g, '\\\"').replace(/'/g, \"\\'\"); window.open(safeUrl, '_blank'); }, 200); }); });}setTimeout(trackAmazonLinks, 1000);document.addEventListener('DOMContentLoaded', trackAmazonLinks);}).apply($0)"],[[0,126],146,"return $0.$connector.generateItems($1)"],[[0,126],"return (async function() { this.$connector.generateItems()}).apply($0)"]],"syncId":0,"Vaadin-Security-Key":"c03494b9-bd3c-446e-85de-d3cfd8372f1b","Vaadin-Push-ID":"76d15d60-4222-46f3-a650-e93dbbbcfd28"}},"errors":null}};