Categories
Events News and Resources

A Roundup of WWDC24. AI Takes Center Stage, But Developers Rejoice! Apple Unleashes a Dev Powerhouse.

WWDC24

Apple’s Worldwide Developers Conference (WWDC) was a whirlwind of innovation this year. Artificial intelligence stole the show, with major upgrades announced for iOS, iPadOS, macOS, Apple Watch, and even Apple TV. But fear not developers – there’s a plethora of exciting updates waiting for you as well! Buckle up for exciting updates to Xcode and Swift, powerful new APIs, and a bunch of other goodies that will make you say, “wow!” 


NEW Developer Nation survey is live! Participate, shape the trends in software development, and win big. Start here!


Xcode 16 Boosts Developer Productivity

Xcode 16 brings a wave of improvements designed to make developers more efficient. Here’s a breakdown of the key highlights:

  • Swift Assist: This innovative feature acts as a coding companion, allowing developers to focus on complex problems. Swift Assist integrates seamlessly with Xcode, providing suggestions for the latest software development kits (SDKs) and Swift language features. It helps developers explore new frameworks and experiment with ideas effortlessly.
  • Privacy-Focused Code Completion: Xcode 16 boasts a new predictive code completion engine trained specifically for Swift and Apple SDKs. This engine runs locally on a developer’s device using Apple silicon and machine learning advancements in macOS Sequoia. This ensures privacy by keeping code completely confidential and offering relevant suggestions even offline.
  • Enhanced Xcode Previews: New dynamic linking architecture in Xcode previews leverages the same build artifacts for both previews and code execution. This translates to a smoother workflow with faster switching between the two.
  • Improved Testing Environments: Xcode 16 makes testing more realistic from the get-go. Developers can now localize and test app elements like privacy policies, license agreements, and subscription group displays. This allows for a more comprehensive testing experience right from the development phase.
WWDC24

Swift 6: A Leap Forward in Developer Productivity and Safety

Swift 6 celebrates a decade of empowering developers with a focus on enhanced productivity and code safety. Here’s a look at the key advancements:

  • Compile-Time Data-Race Safety: Recognizing the growing power of multicore processors, Swift 6 introduces a powerful new feature: compile-time data-race safety. This functionality helps identify potential errors at compile time where multiple parts of the code attempt to access the same memory location concurrently. By catching these issues early, developers can write more robust and maintainable code with minimal changes required later.
  • Expanding the Swift Ecosystem: Marking Swift’s 10th anniversary, WWDC24 highlights Apple’s dedication to the developer community. Swift is now used in nearly 1 million apps and plays a crucial role within Apple’s software stack. To further empower developers, Apple is:
    • Expanding Swift compatibility with more code editors through the Language Server Protocol.
    • Launching a dedicated GitHub organization for Swift. This new hub will host essential projects like the Swift compiler, Foundation libraries, and other key components, fostering collaboration within the Swift community.
WWDC24

Swift Testing: Streamlined and Powerful

Swift Testing simplifies creating clear and concise tests for your Swift projects. Here are its key strengths:

  • Expressive APIs: The framework provides intuitive APIs that make writing tests straightforward and efficient.
  • Cross-Platform Compatibility: This framework functions seamlessly across various platforms, allowing developers to write tests that work consistently regardless of the target environment.
  • Effortless Learning Curve: Swift Testing is designed to be easy to learn, enabling developers to quickly integrate it into their workflow.
  • Organized Testing with Tags: The framework offers a flexible tagging system, allowing developers to categorize tests and construct well-organized test plans.
  • Versatile Use Cases: Swift Testing is well-suited for testing a wide range of Swift applications, from mobile apps to server-side projects.

Game Porting Toolkit 2: Supercharge Your Game Development for Apple Devices

Game Porting Toolkit 2 empowers game developers to bring their creations to life on Apple devices with unprecedented ease. Here’s a breakdown of the exciting improvements:

  • Effortless Porting: Building upon the success of the original toolkit, Game Porting Toolkit 2 streamlines the process of bringing existing games, or those under development, to iPhone, iPad, and Mac. Developers can save valuable time and resources thanks to this enhanced toolkit.
  • Broader Windows Game Compatibility: The new toolkit boasts improved compatibility with Windows games,making it easier to adapt these titles for Apple platforms.
  • Powerful Shader Debugging Tools: Fine-tuning game visuals is now smoother than ever with the inclusion of robust new shader debugging tools.
  • Unified Game Code and Shaders: Xcode updates within the toolkit allow developers to maintain a single codebase and shader set for their games across iPhone, iPad, and Mac. This simplifies development and ensures consistency across all Apple devices. 
WWDC24

visionOS 2: Unlocking the Full Potential of Spatial Computing

VisionOS 2 unleashes a wave of new possibilities for developers creating immersive spatial experiences on Apple Vision Pro. Here’s a glimpse into the exciting advancements:

  • Enhanced Developer Tools: A suite of new APIs and frameworks empowers developers to craft intricate and groundbreaking spatial experiences.
  • Volumetric API Redefined: Developers gain finer-grained control over how 3D objects appear within their apps,allowing for the creation of even the most complex spatial applications. Additionally, these apps can now seamlessly run side-by-side for a powerful multitasking environment.
  • TabletopKit for Effortless Surface-Based Apps: Building spatial apps specifically designed for flat surfaces, like tabletops used in manufacturing or board games, is now effortless with the introduction of TabletopKit.
  • Streamlined Universal App Development: RealityKit simplifies the development process for apps that function across various Apple devices. This translates to faster development times and more efficient workflows for creating Universal apps.
  • Stunning Visuals and Simplified Development: New APIs, improved tools, and a streamlined development process empower developers to craft captivating and immersive environments within their apps.
  • Enhanced SharePlay Development: Creating remarkable spatial SharePlay experiences is now more accessible than ever. Developers can even design and preview SharePlay-based apps within the Simulator, even without Apple Vision Pro hardware.
  • HealthKit Integration: VisionOS 2 introduces support for HealthKit, allowing apps to securely access and share health data with user consent.
  • Enterprise Potential Unleashed: New enterprise APIs empower businesses and developers to revolutionize workflows in various sectors like healthcare, manufacturing, and more.

Additional Platform APIs Enhance User Experience

Beyond the core features, Xcode 16 introduces a range of new platform APIs that empower developers to create more engaging and user-friendly experiences:

  • Expanded Control Center Actions: The new Controls API allows users to perform more actions directly from the Control Center, such as unlocking their car or launching a preferred third-party camera app.
  • Secure and Streamlined Accessory Pairing: AccessorySetupKit simplifies the process of pairing Bluetooth accessories through an app. This approach ensures a secure connection while maintaining user privacy by not requiring access to all nearby Bluetooth devices.
  • Smart Stack Enhancements for Apple Watch: Developers can now leverage cues like time, location, sleep schedules, and more to trigger the display of their apps as suggested widgets within the Apple Watch’s Smart Stack.Additionally, apps supporting Live Activities will automatically appear on the Apple Watch.
  • watchOS Double Tap API: A brand new API allows developers to assign the double-tap gesture to specific functionalities within their Apple Watch apps, further streamlining user interaction.

TestFlight: Enhanced Beta Testing for Superior Apps

TestFlight empowers developers to gather valuable feedback from testers during the app development and launch process.This feedback is crucial for refining the app before it reaches the public. Here’s a breakdown of the exciting improvements in TestFlight:

  • Targeted Invitations: Enhanced invitation and enrollment processes allow developers to target testers by device and operating system. This ensures they receive more relevant feedback that directly addresses specific user experiences.
  • Informative App Listings: TestFlight invitations now include a detailed app description, category, and optional screenshots. This provides potential testers with a clearer understanding of the app’s features and content, leading to a more informed decision to participate.
  • Improved Analytics: New metrics provide developers with valuable insights into engagement with public links.They can also track invitation acceptance or decline rates to gauge tester interest and optimize their outreach strategies.

App Store: New Discoverability and Monetization Features

The App Store continues to evolve as a platform for developers to reach a global audience and grow their businesses.Here’s a look at the exciting new features designed to enhance app discovery and monetization:

  • App Store Featuring Nominations: Developers can now proactively submit their apps for consideration to be featured on the App Store. Through App Store Connect, developers can nominate upcoming content updates and enhancements, including details like release date and relevant regions. The App Store’s editorial team will then review these submissions to connect exceptional apps with users who would enjoy them.
  • Custom Product Pages with Deep Links: The App Store offers even more flexibility with custom product pages that allow developers to showcase specific app features and content. Additionally, custom product page deep links enable developers to direct users from a particular product page to a relevant section within their app. This fosters a more seamless user experience, especially when used in conjunction with Search Ads campaigns.
  • Win-Back Offers for Subscriptions: Subscription-based apps can now leverage win-back offers to incentivize former subscribers to return. These special offers can be displayed across the App Store and even within the app itself, making it easier for past users to rediscover the value proposition.
  • Subscription Offers for macOS Apps: For macOS apps, developers can design special promotions using offer codes. These offers can provide discounted or even free subscriptions for a limited time, helping to attract new users, retain existing ones, and entice former subscribers to come back.

App Store Connect Gets a Makeover

The App Store Connect app for iOS and iPadOS receives a welcome refresh with a brand new user interface. But that’s not all! Here’s a key addition that streamlines app promotion:

  • Effortless Social Media Marketing Assets: Developers can now generate marketing materials directly within App Store Connect. This functionality simplifies promoting their apps’ special moments, such as new app launches or exciting updates. They can then seamlessly share these assets across their social media channels to generate buzz.
  • Commemorative App of the Day Assets: If an app is fortunate enough to be selected as App of the Day,developers will receive a special notification within App Store Connect. This notification prompts them to create a commemorative marketing asset to celebrate the achievement.

Conclusion:

This is just a glimpse of the exciting new tools waiting to be explored. Whether you’re a seasoned developer or just starting your coding journey, WWDC24 has something for everyone. Get ready to unleash your creativity and push the boundaries of what’s possible on Apple devices. The future of app development is intelligent, immersive, and brimming with potential. Dive in and be a part of it!

NEW Developer Nation survey is live! Participate, shape the trends in software development, and win big. Start here!

Categories
Community

From Interpreted Basic to Swift UI – Part 2

Developer Nation Community Stories

Part 2

Check out Deborah’s story as it started out here

Week of WWDC 2022 

Monday – Mapping down the journey

Apple’s WorldWide Developers Conference (WWDC) for 2022 kicked off with the Keynote (1 hour and 48 minutes) where I sat and enjoyed the presentation and did not take any notes. The Platforms State of the Union sessions (1 hour 10 minutes) was next, after an hour for lunch on the West Coast. This also is a session I watch and do not take notes. They also had the Apple Design Awards (18 minutes) and a Day 1 recap (3 minutes).

During the week, I looked over the list of sessions available each day and jotted down the ones that I was most interested in, listed by the days the videos would be available. I figured I would start with those and potentially watch others based on what I learned from the first set and how much energy I had left from the day.

Tuesday – The Swift Cookbook of Navigation 

On June 7, I was ambitiously planning on watching the following sessions, once they because available that day:

  • Build Your First App in Swift Playgrounds
  • Dive into App Intents
  • Get to Know Developer Mode
  • Implement App Shortcuts with App Intents
  • The SwiftUI Cookbook for Navigation
  • What’s New in SwiftUI

I opened a Word document and copied the transcript of each session and any code that was attached and pasted it into the document. I figured it might come in handy to look for terms, ideas, or code snippets someday. 

The first session, Build Your First App in Swift Playgrounds, was interesting, and I do not have a lot of hand-written notes about it, as it did not directly apply to my goal, to learn how to use SwiftUI to update my way-out-of-date-app. 

The second one, Dive into App Intents sounded promising and yet…it was about how to make it easier for a user to RUN your app, not how to describe what I intended it to do for me. I took lots of notes from Implement App Shortcuts with App Intents because I was determined to make them work for me somehow. 

Now, the SwiftUI Cookbook for Navigation was exactly what I needed. It talked about three-column navigation split view, and showed Recipe Categories, Recipe List, and Recipe Detail. This would work fine for me. I need to implement this! Yippee! I found what I came for! 

Now, I just needed to dig deeper and find out how to implement what they were cooking up! It talked about new container types: NavigationStack and NavigationSplitView. 

I did not watch the last session I had planned for Monday. I saved that for Tuesday morning, as the new sessions were not available when I get up early (I live on the East Coast of the United States and Apple and their timeline is based on their West Coast location) and I wanted to have something to do so I wasn’t tempted to log into my full-time job and check on some things. This was my “vacation” week after all. 

Wednesday- Design App Shortcuts & Privacy Nutrition Label

On June 8, I added to the one left-over session with the following choices:

  • Create Your Privacy Nutrition Label
  • Design App Shortcuts

Swift UI & Swift Charts 

I started with What’s New in Swift UI from Monday’s list. It was a list of sessions that talk about the details of new items in SwiftUI, such as The SwiftUI Cookbook for Navigation, which was the last session I watched the previous day, so I congratulated myself on that choice. 

The session also mentioned Swift Charts, and this was not of interest to me because I had no immediate plans to add charts to my app. It then talked about sharing, and since this is broken in my app currently, it peaked my interest until they talked about Mail, Messages, Air Drop, Notes, Add to Photos etc and  not  Facebook or Twitter, that are not not considered sharing now. The session ended with a peek at layout and how a mixed layout can be achieved with Grid, GridRow and GridColumn. 

Create your Privacy Nutrition Label

Next up was Create Your Privacy Nutrition Label. I went into this thinking there was an actual label that would need to be filled out to submit an app to the store. The areas are Data Used to Track You, Data Linked to You, Data Not Linked to You, and Data Not Collected. If the developer selects the last one, the label reads, “This developer does not collect any data from this app” and that applies to my app. So, that was all I really needed from this session.

Thursday – What’s new in Xcode

On June 9, I added just two more to my original list:

  • What’s New in AppStore Connect
  • Writing for Interfaces

I still have not watched either of those sessions. I started the day with What’s New in Xcode which gave me a list of other sessions to take a look at when I have time. Some new code was introduced and hints and tricks were shared to make coding faster by using code completion and using simple icons in a single size instead of needing all the sizes for all the different versions of pixel count now available. 

The new sessions I added to the watch list are:

  • Use XCode to Build a Multiplatform App
  • Meet Swift Package Plans
  • Create Swift Package Plugins
  • Building Global Apps: Localization by Example

Localization do or don’t?

I decided to watch the last one on that list first, Building Global Apps: Localization by Example. This sounded promising, and I was interested in how well the translation would work for my app. I thought it was  too much AI and not enough about how you will need to hire translators who would take the text you send them and return it in different languages, which you reference in code to use the localized version of the text. 

My small little app is not going to be translated. Not for this next version. 

Custom Layouts and Swift Playground 

Next, I watched the session Compose Custom Layouts with SwiftUI and learned about grids and geometry reader and the layout engine. It was way over my head, and not really relevant to what I was hoping I needed to do. I thought  starting in Swift Playgrounds is where I should turn my attention. I watched Create Engaging Content for Swift Playground only to find out that this was not relevant either since it was about how to write an app for learners.It was interesting though!

Friday  – Having a Design Lab appointment 

I had signed up for a Design Lab appointment so someone from the Apple Design department would take a look at my app currently available and make suggestions on how to improve it and bring it up-to-date. I took lots of notes on what he found when he used the app, and I have a few things to think about when re-designing the app that I hope to incorporate into the final product. Then, as I was looking around for sessions to watch, I noticed that my all-time favorite SwiftUI online instructor, Paul Hudson (@twostraws) had recorded a session at Apple Headquarters in their new developer lab podcast space so I just had to watch it. It was What’s New in SwiftUI for iOS16 and this is the session I took the most notes from and, as usual, after watching his session, I wanted to jump right in and start coding. 

Well, WWDC is over for the year. There are still sessions I would like to watch…you know, that magical time we all have called “someday”. It is time to get the app updated and into the app store before the time runs out and Apple pulls it from the App Store. That story was in part 1 and documents now I spent most of my Saturday after WWDC, all psyched up to get going with this new-found knowledge and enthusiasm for a redesigned version of my personality test app (Which 1 Are You). 

Sunday

After spending way too much time on Saturday downloading the Beta version of Xcode, making sure the app works, and then finding out I can’t submit to the App Store from Beta, and all the other pitfalls I tripped over, I was not too enthusiastic about redesigning the app. So, I reread some of my notes, and remembered that I had had a dream over night about how exactly I could do this.

 I started a new project in XCode, called TestingCode. To use as a proof of concept It has three structs, some state variables, and the body consists of a NavigationSplitView from the Cookbook session and Paul’s podcast. I thought I had understood it, and yet I cannot get it to work. And it’s back to my full-time job, too!

Coming up next : Debugging, NagivationSplitView and more

And that is where this blog ends, for now. Tune in for part 3, where I debug the issue, and learn more about this intriguing NavigationSplitView and how it actually should work. This is where the transcripts and code samples from the sessions I copied should come in handy to see what the pieces of the NavigationSplitView actually should be and how they work together.

Any comments? Suggestions? Email me at FromInterpretedBasicToSwiftUI@gmail.com.

Categories
Community

From Interpreted Basic to SwiftUI – Part 1

Developer Nation Community Stories

Part 1

It is with great excitement that we are now kicking off our new section of stories coming right from our Developer Nation community members.

Our first piece comes from Deborah Graham who recently attended Apple’s WWDC and decided to put her learnings from that experience into immediate action. 

This is the first part of Deborah’s story, recorded in her own vivid style.

Taking 250 pages of notes at Apple’s WWDC

Well, another WWDC (Apple’s WorldWide Developers Conference) has come and gone (week of June 6-10, 2022). I took a week off my regular, full-time job as a Finance BI Specialist (yeah, doesn’t really explain what I do, let’s say I work with Access, VBA, and SQL a lot and some source systems to get data into reports and SQL tables so others can create Tableau reports for employees to consume) to “attend” the conference and I watched 12 sessions(so far)  and a surprise video from my favorite Swift online teacher, Paul Hudson (@twostraws).

I took a lot of notes, and then created a Word document with the transcripts and code segments attached to the sessions. This Word document is over 250 pages already (and I have sessions I haven’t seen yet that will be added to the document). Why did I do that? It’s actually already come in handy…but let’s not get ahead of ourselves.

Rewriting my app to Swift

For starters: Using Xcode and Figma

Over the weekend, after the WorldWide Developers Conference concluded, I started working on getting my current, old app (written in Objective-C and hard to maintain and update) updated to reset the clock so the app would stay available in the App Store. It’s “Which 1 Are You”, if you are inclined to download it and see the “before” version as I work though re-writing it into Swift and using updated standards and design expectations. 

I downloaded the latest Beta version of Xcode to make sure the app would actually still run (if not, I had a LOT of work ahead of me to get this app updated before the deadline Apple set before they yanked it off the App Store due to not having updated it since June of 2017…yikes, it IS old!). 

I found out that I needed an App Store Icon (1024 by 1024). I wanted to find a free program to create an icon. A quick search found a video which suggested some paid programs and a free one called Figma. I figured that would work for me. I created the simplest icon I could. Luckily, it built and ran without changes. 

I figured I needed something different before I could submit to the App Store, so I marked it as working Upside down, too. I ran into a long list of issues during Archive and they were all small items.

Submitting to the App store

Then I ran into issues when submitting to the App Store. I found out that I could not submit an app from a Beta version of Xcode. So, it was back to the other version I had and tried again.

It seems, since I said I don’t collect data on users, the frameworks I used originally for ads, which no longer work, do collect (or might collect) data, so I either needed to revamp my statement or remove the frameworks. So, I removed the frameworks and tested it again. All was good. Back to submitting to the App Store. 

Then, I needed screenshots in all sorts of different sizes. Luckily, another search showed me that the Simulator Tool allows for screenshots. I spent an hour running the program in different device simulators to take screenshots and upload them to the App Store Connect page to get all the images I needed. 

It was late Sunday night when I finally got the green light that the app was in for review. I went to sleep wondering if the review would find anything else I needed to do. Woke up Monday and checked my email. My updated app was available on the App Store! Version 1.6.3 was a go! 

This means, I have some time to work on getting the app into Swift and taking the knowledge and advice I received at WWDC 2022 and re-vamping the app.

This blog will document the progress, insights, inspirations, and setbacks as I encounter them. Hope you enjoy the journey!

About the Author – Deborah Graham

Deborah Graham is a professional developer. She has over 20 years of experience with various programming languages. It all started while attending Community College to get an Associate degree in Electronics technology (hardware). One day, they delivered some Apple IIe computers to the computer room to keep the PDP-11s company. There was a pong-like game written in Interpreted Basic where the source code was available. She quickly figured out that by increasing her paddle to 99% of the goal area and the opponent’s to 1% and turning up the speed of the ball, it was a fun way to a win. One small change, one big difference. And a love of programming was born. When not in class, she could usually be found sitting at that Apple IIe and tweaking the program a little to see the changes. After graduating, she held several hardware-related jobs to match the degrees (two Associates: Electronics Technology and Computer Maintenance Technology, both hardware-based degrees), including Test Technician, Manager of the Test Department, Customer Support (where she created the Customer Support Newsletter that would collect errors in the hardware or documentation and send it out to the local sales and support reps to cut down on support calls to the home office) and then she went to the documentation department to correct all the errors and to create technical documentation with the hardware engineers. She was a Technical Writer for an automated testing machine manufacturer. The documentation software (this was WAY before Word) used LISP (now just Lisp) as the extension tool. The writing team found they needed/wanted to extend the documentation software to do things like index across all documents and spell-check all documents. Luckily, there was a class happening and she flew up to Montreal to attend the week-long class and the love of programming continued! When she got back, all sorts of extensions were created and shared with other users of the software. 

One day, during the yearly performance review and plan for next year, her manager said to get a promotion, she would need to get a bachelor’s degree. Didn’t matter in what, it was one of the requirements to move up in the company. So, she called the local state school and asked what degrees they offered. And BSCS (Bachelor of Science, Computer Science) was one of the choices. It was either that, or Nursing or Teaching. Easy choice!

Right before graduating (and being eligible for a promotion), she was laid off! But now, with a degree to go with her love of programming, she was hired by the documentation software provider as a technical writer. After that, she worked for an early browser-based distance learning provider as a technical writer. One Friday, the boss asked her if the online help she was writing in HTML could pop up when links where clicked instead of completing replacing the main help. Granted, that’s a no-brainer now…but this just wasn’t available in HTML at the time. On the way home, she went to the local bookstore, went to the Computer Science section, and checked the index on all the books to find one that would be of help. She bought the book, read it on Saturday and Sunday (yes, she reads programming books for fun!) and on Monday, she got into the office before the boss, coded up come JavaScript and when he walked in, she said, “like this?” and he was amazed. The thrill of writing some code and seeing the result is very motivating. She went on to teach a class called “JavaScript for Technical Writers” at various places. As she was creating the class and with a vacation scheduled, she emailed the author of her JavaScript book asking his permission to use the book and the sample code in her class, promising to give him credit for the code. When she received his okay, that started her habit of bringing a programming book to take on vacation with her to learn a new language. Some people may take a romance novel to read at the beach…she falls in love with a new programming language!

That leads to the list of the programming languages that she was used to professionally write code:

  • M/MUMPS/Caché ObjectScript
  • HTML
  • XML
  • ASP
  • Lisp
  • Pascal
  • Certified AES
  • Visual Basic/VBA
  • JavaScript
  • Postscript
  • PCL
  • Python
  • SQL

And some that she uses for her hobby

  • Objective-C
  • Swift

Which brings us to the hobby. One team she was on had a meeting habit of taking personality tests before the meeting and then declaring which one of something each team member was. Which flower are you? Which Major city? Which cartoon character? Each week, someone on the team would find an online test, and they would all take the test and report the results for the icebreaker at the start of the meeting. One week, she was looking for a test on which character from Scorpion (a television show about geniuses that solved problems for the US government each week and learned a little more about how to function in society with a help of their “normal” assistant and her genius son). Anyway, she could find tests on which genius, but not specifically about that show. When she mentioned this difficulty to the team manager, she was told to write one herself. Apple had just opened the AppStore to developers, so here was another opportunity to learn a new language. It took a few years of reading books, finding online classes on Objective-C, and finally getting an app into the AppStore. The CIO of her company mentioned it at a few All-Hands meetings, and he shared his test results. There are 15 tests available for a variety of TV, movies, cartoons, and general interest. If you are at all inclined, it is called “Which 1 Are You” and it has her name as the developer. 

As an Apple Developer, she is invited to attend Apple’s WWDC (World Wide Developers Conference). Before the pandemic, it was almost impossible to get tickets. Since the last few years have been online, it opened the gates and allowed anyone to participate. She has “attended” WWDC for two years in a row now and looks forward to attending them each year. She takes a week off from her full-time job as a SQL and VBA Programmer and soaks in the new information and the enthusiasm from the presenters and other attendees.

She was asked by Developer Nation to document her journey from WWDC 2022 to an updated version of the app, totally re-written in SwiftUI, into the AppStore. Follow along and see what works, what doesn’t work, and let’s see if she can get the app ready for version 2.0! You can email the author at  FromInterpretedBasicToSwiftUI@gmail.com