Post

Frameworks Behind the Apps: Exploring ChatGPT’s iOS Dependencies (Part 1)

In this new series, we will uncover the dependencies powering some of the most popular apps on the market. Our first focus? ChatGPT’s iOS app.

Frameworks Behind the Apps: Exploring ChatGPT’s iOS Dependencies (Part 1)

In this new series, we will uncover the dependencies powering some of the most popular apps on the market. Our first focus? ChatGPT’s iOS app.

As a big fan of OpenAI, I have been closely following their 12 Days of OpenAI event. Yesterday, OpenAI rolled out improvements to ChatGPT’s search functionality—well-timed, considering competitors like Perplexity AI are making big strides in search innovation.

One of the standout features I discovered is the preview of updates, which includes information about places, their ratings, articles, news, and more. As shown in the image below, the new UI provides a clean and visually appealing way to preview the results of the searched prompt.

Prompt: List the top places to visit in San Diego on a map during December, highlighting popular seasonal attractions, holiday markets, festive light displays, and special winter events.

This raised a question: How are these previews implemented after searching for the entered prompt online?

To dig deeper, I began tracking their use of third-party SDKs and noticed a new addition in the Licenses section of ChatGPT’s iOS app settings.


Discovery: ReadabilityKit Integration

Here’s what I found: The new library, Readability, was added between December 12 and December 17. To demonstrate the change, see the comparison images below:

  • Left: Screenshot of ChatGPT’s iOS app settings on December 12 (before the update).
  • Right: Screenshot of the same settings on December 17 (after the update, showing the new library).
Before Update - December 12 After Update - December 17

What is ReadabilityKit?

After a quick investigation, I discovered that the library is ReadabilityKit, an open-source tool for Swift. As the description states:

“A preview extractor for news, articles, and full-texts in Swift.”

Key Features

ReadabilityKit can extract the following from a given URL:

  • Title
  • Description
  • Top image
  • Top video
  • Keywords
  • Date published

Here’s an example of how simple it is to use:

1
2
3
4
5
6
7
8
9
let articleUrl = URL(string: "https://someurl.com/")!
Readability.parse(url: articleUrl, completion: { data in
    let title = data?.title
    let description = data?.description
    let keywords = data?.keywords
    let imageUrl = data?.topImage
    let videoUrl = data?.topVideo
    let datePublished = data?.datePublished
})

To test this, clone the repo and run pod install from the Example directory. That is all it takes for you to try out the new library that openai uses


OpenAI’s Continuous Improvements

It’s worth noting that OpenAI has been consistently improving their iOS app—almost every two days, new updates and features are rolled out. This rapid pace highlights OpenAI’s commitment to enhancing user experience and staying ahead of competitors.


Final Thoughts

That’s all for this post! I hope you found this discovery interesting. If you enjoyed the content, don’t forget to give it a like and share your thoughts in the comments below. Suggestions for future app analyses are always welcome!

Stay tuned for Part 2, where we’ll explore another popular app and its dependencies.


☕ Support My Work

If you found this post helpful and want to support more content like this, you can buy me a coffee!

Your support helps me continue creating useful articles and tips for fellow developers. Thank you! 🙏

This post is licensed under CC BY 4.0 by the author.