<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/wally-7-hk9p1lv0u" -->

---
title: Wally 7 | daily.dev
description: Wally, a personal iOS wallet app first built in 2012, reaches version 7.0 with a major rewrite that replaces the old Realm database with Apple's SwiftData...
canonical: https://daily.dev/posts/wally-7-hk9p1lv0u
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Wally 7 | daily.dev
og:description: Wally, a personal iOS wallet app first built in 2012, reaches version 7.0 with a major rewrite that replaces the old Realm database with Apple's SwiftData...
og:url: https://daily.dev/posts/wally-7-hk9p1lv0u
og:image: https://api.daily.dev/og/posts/Hk9P1LV0U.png
og:image:alt: Wally 7
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Wally 7

**[Daniel Saidi](https://daily.dev/sources/danielsaidi)** · 3 min read · 0 upvotes · 0 comments

## Summary

Wally, a personal iOS wallet app first built in 2012, reaches version 7.0 with a major rewrite that replaces the old Realm database with Apple's SwiftData framework. The migration simplified the app's architecture significantly, removing the need for protocol-based store abstractions since SwiftData works directly with the model context. It also brought free iCloud sync across devices. Other new features include custom item groups instead of fixed categories, pinch-to-zoom on item images (implemented via UIKit wrapping), and UI refinements aligned with Liquid Glass design. The app is available for free download.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://danielsaidi.com/blog/2026/08/20/wally-7>

## Questions this post answers

### What are the benefits of migrating from Realm to SwiftData in an iOS app?

Migrating from Realm to SwiftData removes the need for a separate store protocol with multiple implementations per item type, since SwiftData lets you interact directly through the model context. This significantly reduces code and simplifies app architecture. SwiftData also integrates well with SwiftUI and App Intents, and automatically syncs data across devices via private iCloud sync with minimal extra work.

_Weighing a Realm to SwiftData migration is easier with real experiences tracked on daily.dev._

### How can I implement pinch to zoom on an image in SwiftUI?

Pinch to zoom on images in SwiftUI can be difficult to implement natively, but wrapping UIKit views to handle the zoom gesture works well. This approach was used to let users pinch to zoom into expanded item images, such as reading tiny details on receipt photos, after years of struggling with a pure SwiftUI solution.

_Developers stuck on SwiftUI gesture limitations can find similar UIKit workarounds on daily.dev._

## Similar posts on daily.dev

- [iOS 27 lets users create custom Wallet passes from any QR code as Apple gives up waiting for developers](https://daily.dev/posts/ios-27-lets-users-create-custom-wallet-passes-from-any-qr-code-as-apple-gives-up-waiting-for-develop-talppvyms) · The Next Web · 1 upvotes · 0 comments
- [The Spend Stack Revival](https://daily.dev/posts/the-spend-stack-revival-wrlirjw8z) · Swiftjective-C · 0 upvotes · 0 comments
- [Every new iOS 27 feature that's worth knowing about](https://daily.dev/posts/every-new-ios-27-feature-that-s-worth-knowing-about-0ihj5cw9a) · TechCrunch · 0 upvotes · 0 comments
- [iOS 27 is adding a 'Create a Pass' button to Apple Wallet](https://daily.dev/posts/ios-27-is-adding-a-create-a-pass-button-to-apple-wallet-lhydhdve5) · Hacker News · 2 upvotes · 0 comments

---

Tags: [#ios](https://daily.dev/tags/ios), [#swiftui](https://daily.dev/tags/swiftui)

[View this post on daily.dev](https://daily.dev/posts/wally-7-hk9p1lv0u)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Wally 7","url":"https://daily.dev/posts/wally-7-hk9p1lv0u","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/wally-7-hk9p1lv0u"},"datePublished":"2026-08-20T14:03:37.238Z","dateModified":"2026-08-20T14:03:58.482Z","description":"Wally, a personal iOS wallet app first built in 2012, reaches version 7.0 with a major rewrite that replaces the old Realm database with Apple's SwiftData...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/0e4fe3159e98a78ae7860599c23139a4?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/0e4fe3159e98a78ae7860599c23139a4?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Daniel Saidi","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Daniel Saidi","logo":"https://media.daily.dev/image/upload/s--RRuTMOCm--/f_auto,q_auto/v1783235599/logos/danielsaidi?_a=BAMAMicg0","url":"https://daily.dev/sources/danielsaidi"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/wally-7-hk9p1lv0u","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"ios,swiftui","timeRequired":"PT3M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Daniel Saidi","item":"https://daily.dev/sources/danielsaidi"},{"@type":"ListItem","position":3,"name":"Wally 7"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/wally-7-hk9p1lv0u#faq","mainEntity":[{"@type":"Question","name":"What are the benefits of migrating from Realm to SwiftData in an iOS app?","acceptedAnswer":{"@type":"Answer","text":"Migrating from Realm to SwiftData removes the need for a separate store protocol with multiple implementations per item type, since SwiftData lets you interact directly through the model context. This significantly reduces code and simplifies app architecture. SwiftData also integrates well with SwiftUI and App Intents, and automatically syncs data across devices via private iCloud sync with minimal extra work. Weighing a Realm to SwiftData migration is easier with real experiences tracked on daily.dev."}},{"@type":"Question","name":"How can I implement pinch to zoom on an image in SwiftUI?","acceptedAnswer":{"@type":"Answer","text":"Pinch to zoom on images in SwiftUI can be difficult to implement natively, but wrapping UIKit views to handle the zoom gesture works well. This approach was used to let users pinch to zoom into expanded item images, such as reading tiny details on receipt photos, after years of struggling with a pure SwiftUI solution. Developers stuck on SwiftUI gesture limitations can find similar UIKit workarounds on daily.dev."}}]}
```

