Last night, I was working on the most exciting feature for Meshing! And today morning, I finally got it work as I wanted! Life is complete, haha.

0:00
/0:44

But, I realised that my SwiftUI skills have become rusty over the past year. I then deep dived into TimelineView, having a locked in session with Claude to understand it in more detail, and got it to work!

My friend Yash asked me if I can write a blog post about my approach to leaning new topics, and APIs.

It got me thinking about learning in the LLMs era. Here is how I usually approach WWDC content:

  • Being a Reader: I prefer to read instead of watching videos. I start with the official documentation. Apple documentation has gotten better with visuals for some of examples and it is usually the most accurate source of information.
  • WWDC Sessions Gold Mines: Then, there are documentation for new APIs like State of Mind in HealthKit that are not there. So, I watch the WWDC sessions as they turn out to be gold mines. Sometimes, even a few slides have a handful worth of articles to write about.
  • Sample Projects: Apple has upped their sample projects game and you can find much better quality projects, especially related to visionOS.
  • AI-Assisted Understanding: Then, I use tools like Claude to make myself understand complex concepts. It can easily break down information and then I grill the poor innocent LLM with "WHYs". I feel this is the best way to have a deeper understanding of a new API or a framework.
  • Discovery Requires Experimentation: Explore. As the title of each of my blog post suggests, you have to get in the arena. Get your hands dirty with code. LLMs cannot do that for you, yet. There are edge cases that cannot be found until you experiment well.
  • Write to Learn: And to top that, write about it. When I pen down my thoughts, I usually learn more because I want the reader to completely grasp my knowledge.
  • Community Love: And finally, use communities on X, Mastodon, Facebook or LinkedIn. Whenever I am in doubt, I post it on X and if the framework is popular enough like SwiftUI, the probability of someone who experienced the same issue is high.

Learning About State of Mind APIs

Here is how I went about learning the new State of Mind APIs. I use the Health app to log the emotion data, but it is cumbersome to do it. They just have one lock screen widget, and I felt that I can do more from it.

When the HealthKit team released the new APIs to the developers, I directly went to the documentation. I know it is still in beta but unfortunately, at the time of writing this post, I only found the name of the properties and initializers.

I then went to search for a relevant WWDC session for it. I found one, and it was a fun session with a decent sample project:

Explore wellbeing APIs in HealthKit - WWDC24 - Videos - Apple Developer
Learn how to incorporate mental health and wellbeing into your app using HealthKit. There are new APIs for State of Mind, as well as for…

After having a good grasp of the APIs and the naming, I decided to dig deeper. I do not know how to scrap web pages so I copied each page of the documentation related to HKStateOfMind, put it in a doc file, added the transcript of WWDC session to it, and then gave it to Claude. I then used the following system prompt:

You are an AI assistant specialized in analyzing and teaching about software documentation and WWDC (Apple Worldwide Developers Conference) sessions. Your primary goal is to help users understand complex technical concepts, new features, and best practices in iOS development.

## Key Responsibilities:

1. Analyze and summarize documentation and WWDC session transcripts.
2. Explain technical concepts in clear, accessible language.
3. Provide context for why certain features or changes are important.
4. Offer practical examples and use cases for new APIs or technologies.
5. Answer questions about iOS development, Apple frameworks, and best practices.
6. Guide users in implementing new features or adapting to changes in their own projects.

## Approach:

1. **Comprehensive Understanding**: 
   - Thoroughly analyze all provided documentation and transcripts.
   - Identify key themes, new features, and important changes.

2. **Structured Explanation**:
   - Organize information into clear, logical sections.
   - Use numbered or bulleted lists for step-by-step explanations or multiple points.

3. **Contextual Relevance**:
   - Explain why certain features or changes are significant in the broader context of iOS development.
   - Relate new information to existing knowledge or previous iOS versions when relevant.

4. **Practical Application**:
   - Provide concrete examples of how to implement new features or APIs.
   - Suggest potential use cases or scenarios where new technologies could be beneficial.

5. **Balanced Perspective**:
   - Discuss both advantages and potential challenges of new features or changes.
   - Offer workarounds or best practices for common issues.

6. **Engaging Teaching Style**:
   - Use analogies or metaphors to explain complex concepts when appropriate.
   - Encourage critical thinking by posing thoughtful questions.
   - Break down complex topics into manageable, understandable parts.

7. **Technical Accuracy**:
   - Ensure all technical information is accurate and up-to-date.
   - If uncertain about a specific detail, acknowledge the uncertainty and suggest where to find definitive information.

8. **Adaptive Response**:
   - Tailor explanations to the user's apparent level of expertise.
   - Be prepared to dive deeper into topics if the user asks for more detailed information.

## Special Instructions:

1. When discussing new APIs or frameworks, always mention the minimum iOS version required.
2. If a WWDC session demonstrates code, summarize key points and offer to explain specific parts in more detail.
3. When explaining changes that might impact existing apps, provide guidance on migration or adaptation strategies.
4. If asked about topics not covered in the provided documentation or transcripts, clearly state that the information is based on your training knowledge and may not reflect the most current updates.
5. Encourage users to refer to official Apple documentation for the most up-to-date and authoritative information.

Remember, your goal is not just to convey information, but to foster understanding and enable practical application of new knowledge in iOS development.

When I am not in a mood to watch the sessions, I can directly use this prompt and read out a detailed analysis of new APIs! Truly grateful to learn in this new world.

Then, I create a new project on Xcode to get in the zone. I ask Claude for a sample project, but I type it myself, going through each line. This deepens my understanding further after reading the documentation, watching the session and getting a refresher course from Claude.

Finally, I now use the app for myself! 😊

Moving Forward

This approach has worked well for me this WWDC, and I will continue with it until I find something worth trying out.

Everyone's learning journey is different. What works for me might not work for you, and that is okay. Find what that keeps you engaged enough to lose track of time and excited about building.

Happy learning!

String Catalog

String Catalog - App Localization on Autopilot

Push to GitHub, and we'll automatically localize your app for 40+ languages, saving you hours of manual work.

Tagged in: