<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Vincent Tantardini</title>
    <description>The latest articles on DEV Community by Vincent Tantardini (@vnn).</description>
    <link>https://dev.to/vnn</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3064455%2Fed564ab9-635b-45e8-81ee-94ea7de8c4f4.png</url>
      <title>DEV Community: Vincent Tantardini</title>
      <link>https://dev.to/vnn</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/vnn"/>
    <language>en</language>
    <item>
      <title>Rebuilding My First iOS App: From Datafilm to Frames</title>
      <dc:creator>Vincent Tantardini</dc:creator>
      <pubDate>Sat, 19 Apr 2025 02:56:26 +0000</pubDate>
      <link>https://dev.to/vnn/rebuilding-my-first-ios-app-from-datafilm-to-frames-2epl</link>
      <guid>https://dev.to/vnn/rebuilding-my-first-ios-app-from-datafilm-to-frames-2epl</guid>
      <description>&lt;h3&gt;
  
  
  Bringing an old SwiftUI side project back to life — with a fresh design, modern tech, and a lot more purpose.
&lt;/h3&gt;

&lt;p&gt;A few years back, I built my first solo app: &lt;strong&gt;Datafilm&lt;/strong&gt;. It was a simple (and free) digital notebook for film photographers. You could log aperture, shutter speed, film stock, and other settings frame by frame. Nothing fancy — but it solved a real problem for anyone shooting analog: once a film roll is developed, all that shot info is lost unless you wrote it down.&lt;/p&gt;

&lt;p&gt;That project taught me a lot. I had to learn Swift from scratch, figure out SwiftUI (in its early days), ship to the App Store, and deal with real-world user feedback. I was a designer by background — not a developer — so building and launching it was already a win.&lt;/p&gt;

&lt;p&gt;But I parked it for a while. Life moved on, Swift evolved, and so did my thinking about the app.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why I Picked It Back Up
&lt;/h2&gt;

&lt;p&gt;Over time, I kept getting one question from users:&lt;br&gt;&lt;br&gt;
&lt;strong&gt;“Can I get this metadata back into my scans?”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That request stuck with me. While some photographers used ExifTool scripts or Lightroom workarounds, most didn’t want to touch CLI tools or batch presets. It was clear there was a gap: photographers wanted to &lt;strong&gt;record shot settings in the field&lt;/strong&gt;, then &lt;strong&gt;embed them into their scans later&lt;/strong&gt; — just like EXIF data from a digital camera.&lt;/p&gt;

&lt;p&gt;So, in early 2025, I came back to the project — with fresh ideas, better skills, and modern SwiftUI tools.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F16m9lwwj7uc0i1stjoxj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F16m9lwwj7uc0i1stjoxj.png" alt="Frames iOS - Frames listing" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Frames: A Full Rebuild
&lt;/h2&gt;

&lt;p&gt;Instead of patching up Datafilm, I rewrote everything from scratch and rebranded it as &lt;a href="https://withframes.com/" rel="noopener noreferrer"&gt;Frames&lt;/a&gt;  . It’s now a &lt;strong&gt;two-part toolset&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Frames for iOS&lt;/strong&gt; → A sleek, focused notebook for analog photographers to log settings on the go.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Frames for macOS&lt;/strong&gt; → A companion desktop app to embed that data into your scanned images.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Along the way, I also migrated the database from &lt;strong&gt;Core Data to SwiftData&lt;/strong&gt;, which made a huge difference in terms of structure and maintainability. And honestly, after working with SwiftUI 1.0 years ago, it felt amazing to take advantage of how far things have come — cleaner code, better animations, native performance.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foaznp04wkzkqjq3h8q5d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foaznp04wkzkqjq3h8q5d.png" alt="Frames iOS - Logo" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Key Features
&lt;/h2&gt;

&lt;p&gt;Frames for iOS lets you log detailed info for each frame:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Frame number, date, time
&lt;/li&gt;
&lt;li&gt;Camera, lens, film stock
&lt;/li&gt;
&lt;li&gt;Shutter speed, aperture, exposure compensation, flash
&lt;/li&gt;
&lt;li&gt;Focal length
&lt;/li&gt;
&lt;li&gt;Geolocation
&lt;/li&gt;
&lt;li&gt;Optional reference image for visual context
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Everything is timestamped and organized. You can group your shots into folders by film roll, camera, trip, or however you like. There’s full-text search, and even an interactive map showing exactly where each photo was taken.&lt;/p&gt;

&lt;p&gt;And the kicker: that metadata can now be &lt;strong&gt;exported and embedded&lt;/strong&gt; into your final scans.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsvtb3scmygmgr9ma7qo5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsvtb3scmygmgr9ma7qo5.png" alt="Frames iOS - Controls" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Desktop Integration: Frames for macOS
&lt;/h2&gt;

&lt;p&gt;The macOS app is where the magic happens.&lt;/p&gt;

&lt;p&gt;Just drag in your &lt;code&gt;.frames&lt;/code&gt; file from iOS, drop in your scans, and the app automatically matches the metadata with the right images. It writes the EXIF data directly into the JPEGs — fully compatible with Lightroom, Capture One, and Apple Photos.&lt;/p&gt;

&lt;p&gt;No more spreadsheets. No manual copying. Just clean, organized data in your archive.&lt;/p&gt;

&lt;p&gt;The macOS version is a paid app — to help fund continued development — while the iOS app remains free to download.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F236j5vmj2unm568my5rn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F236j5vmj2unm568my5rn.png" alt="Frames macOS" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  What’s Next
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://withframes.com/" rel="noopener noreferrer"&gt;Frames&lt;/a&gt; is now available in &lt;strong&gt;7 languages&lt;/strong&gt;, and built 100% natively with Apple technologies — no accounts, no trackers, no cloud dependency.&lt;/p&gt;

&lt;p&gt;I’m already working on future additions: maybe an Apple Watch companion, maybe a home screen widget for faster access, and definitely more automation for backup and sync.&lt;/p&gt;




&lt;h2&gt;
  
  
  Try It Out
&lt;/h2&gt;

&lt;p&gt;If you shoot film and want to keep track of your camera settings roll-by-roll — and actually &lt;em&gt;do something&lt;/em&gt; with that data later — Frames might be what you’ve been looking for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://apps.apple.com/us/app/frames-film-notes/id6744057317" rel="noopener noreferrer"&gt;Frames for iOS&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://apps.apple.com/us/app/frames-film-metadata/id6744063354" rel="noopener noreferrer"&gt;Frames for macOS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://withframes.com/" rel="noopener noreferrer"&gt;Frames: Film Notes &amp;amp; Metadata for Photographers&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Thanks for reading — and if you’re building your own indie tools or care about photography workflows, I’d love to hear from you.&lt;/p&gt;

</description>
      <category>swiftui</category>
      <category>indiehackers</category>
      <category>ios</category>
      <category>showdev</category>
    </item>
  </channel>
</rss>
