Metapho 3.5 Release Note

Metapho shows keyboard shortcuts

Metapho 3.5 improves quality of life using the app on the iPad.

I’ve waited for a long time, silently, that Apple someday adds system level keyboard support to UICollectionView, which Metapho uses for its Photos Library grid. Since there was no sign my patience — lazyness, honestly — would be rewarded soon, I bite the bullet and added it by myself.

The hardware keyboard makes it more easy and ergonomic to navigate and select items, and gives you quick access to the metadata editing actions. The shortcuts help page is accessible by pressing cmd + shift + ? in the app.

iPad’s trackpad gestures and cursor are better supported in this update, too.

Bug fixes and improvements

  • Fixes an issue that Share Sheet did not work correctly after cancelling initial sharing activity
  • Fixes a bug that made the app unresponsive for a moment when you tap cancel while a Live Photo sharing is in progress
  • Fixes editing of raw image with edited version
  • Improves performance for large batch sharing work
  • Shows Author metadata for video if available

Metapho is available on the App Store

Deep Fusion or Not?

iOS 13.2 introduced exciting new camera feature, Deep Fusion, and I’ve been enjoying enhanced details — mostly in the photos of my dog. So far, you have kind of control to turn on or off Deep Fusion with Capture Outside the Frame setting, but there’s no way to tell a photo is deeply fused or not by Photos app’s display alone. Well, confusion is over.

Metapho 3.4.2 indicates Deep Fusion and Night Mode under the Image Information section. How?

For Deep Fusion, it’s flash EXIF metadata field. Ever since iPhone 4 introduced that tiny camera flash, normal photo taken with back camera without flash firing has integer value 16 in the field. A deeply fused photo has 32 — means no flash function, so Metahpo can read this field and compare iPhone model number to determine it’s Deep Fusion or not. I hope that Deep Fusion writes 32 to the flash field, is well intended thing and remains consistent.

Night Mode is more straightforward. It has couple of dedicated EXIF tags indicating the number of composite image used, and min/max/sum of multiple exposure times. Since a single Shutter Speed time loses its meaning for Night Mode’s compositing of multiple images, I’ve replaced Shutter Speed field under the Camera Information section for these fields.

And there’s Capture Outside the Frame. Additional images with wider field of view are well hidden to the third party app before a user makes edits explicitly in Photos. It is accessible by Metapho once the additional assets become permanent after cropping or straightening within Photos. Then you can find it in the list of assets.

Metapho 3.4 release note

Metapho 3.4 adds Shortcuts Actions, Dark Mode, Location Copy Paste, and multiwindow support.

Shortcuts Actions

iOS 13 Shortcuts now supports parameters, which enables third-party app to provide image handling Actions without clipboard workaround or base64 texts. The new Metapho Shortcuts Actions — Get Metadata, Set Date / Location to Metadata, and Apply Metadata — use parameters for the target image file and metadata dictionary. An action takes and outputs a metadata dictionary as a text file compatible with JSON.

These four new actions could run quite deep, since you can edit and apply any metadata field with JSON editor like Jayson, in your Shortcuts shortcut.

Location Copy and Paste

Metapho now detects location metadata in the clipboard and suggests Paste from Clipboard button on the map view when you edit location. It also supports Drag and Drop. You can drop any item contains latitude and longitude like a pin from Maps, a video from Photos, or an image file from Files to the map view. And you can copy or drag the location section in Metapho, too.

Hygiene Features for iOS 13

  • Dark Mode
  • Multiwindow: On iPadOS you can create a new window by dragging a photo from the grid. Checking metadata side by side is pretty useful.
  • Context Menus for quick access
  • Refined user interface symbols

Thank you for using Metapho. If you’ve been enjoying the app for a long time and feeling guilty for those free updates, well, no more! You can buy me a coffee.

More Save Options for Metapho

Photos manages edited versions as one bundle. It’s a simple and safe way to handle photo editing. However, sometimes you want more control over how edited version is exported. Now, you can choose between multiple options when you change date / location metadata. Here’s how it works.

  • Save as New Copy
    Save as New Copy brings a efficient, destructive, no-re-rendering workflow to the table. It creates a new copy with edited metadata — or metadata removed copy and adds the copy to your Photos Library. The original file will be moved to the Recently Deleted album if Delete Original after Save option is turned on; after the system delete confirmation alert, of course.
    When copies are made, Save as New Copy applies metadata changes to every assets in the item. This includes all image and video files of the previous version, even MOV part of the Live Photo.

  • Share with Edited Metadata
    Metapho has SafeShare feature that removes all metadata when you export your photo or video. Now the app introduces sharing with edited date / location. For temporary sharing or opening in another app, Share with Edited Metadata gives you metadata modified item just in time, without cluttering your Photos Library.

  • Edit Original
    Of course, the good old way of saving changes is still there. While it feels slightly wasteful to re-render the whole image as JPEG and store it to change some GPS tags, this fast and revertable option is suitable for many cases.

All options are available for batch editing, too. For example, you can export bunch of photos and videos without location metadata to your folder in Files.

And there’s a new option for handling multiple dates in Date Edit. Instead of shifting each dates relatively, Pin All to Same Date changes multiple dates to the same point at once.

Metapho 3.3 is available on the App Store

Metapho and Photos Asset

Safety over efficiency

The stock Photos app for iOS lets third party apps modify photos in its library since iOS 8. Metapho uses this PhotoKit API and the first rule of modifying asset is No one is messing with the original asset. The original file itself is untouchable for a third party app. Even Photos does not change it when you edit an item in Edit menu.

Instead of overwriting original files, PhotoKit asks an app for edited version of the file and saves it in addition to the original as one bundle. This takes more storage space than editing original directly, but helps users to revert to the original state even after numerous edits are committed by Photos or third party apps.

Under this constraint, it is not possible to just modify metadata part of an image file in your library. Metapho has to make a whole new image with modified metadata and give it to PhotoKit. In this process, PhotoKit only accepts image file in specific format. It is very picky on saving edited version. It has to be JPEG with baked-in orientation. For this reason, when you edit metadata with Metapho, the app rotates and re-renders image, if it does not have top-left orientation.

PhotoKit and metadata

When you take a photo or import one, Photos adds creation date and location metadata of the photo to its own metadata database. While this makes it easy to access and modify these metadata, it also makes it possible to have two different set of metadata in Photos database and the image file.

For example, when some app—including Photos for macOS—removes location of a photo, it edits the PhotoKit’s own metadata only, and creates location removed image file on the fly when you export it within the app. If you share the photo with other app like Photos for iOS, it will provide unmodified original image that has location data in it.

Metapho can detect location metadata conflict and show a warning like this.

⚠️ This location is marked as removed. To remove location from metadata, tap Edit > “Remove Location” button.

If you’ve removed location with Metapho, it’s hard to accidentally share location tagged image, via Metapho or other apps. Since the app changes PhotoKit’s database and makes an edited version of the image without location metadata.

Rewrite Date Tags option

I thought that the creation date is less sensitive metadata than location, so I added “Rewrite Date Tags” option. If the option in Date Edit screen is turned off, Metapho behaves like Photos for mac, does not create a new image with edited date tag, and just adjusts metadata managed by PhotoKit.

update: Metapho 3.3 brings more options for exporting.

Why No Apple News

When you open a link to this blog’s RSS feed in Safari for iOS, it opens Apple News and spits out some error like "Content Unavailable". I’ve been trying to fix this by applying Apple News publisher as a channel. But here’s reply from Apple News.

Thank you for your interest in Apple News. Unfortunately, Zininworks doesn't comply with our Apple News guidelines:
The channel contains content that promotes a service, or is focused on product sales, sweepstakes, or contests.

Apparently, a company blog cannot be on Apple News. Now I know why MartianCraft suddenly disappeared from Apple News.

Wordio 1.1

My humble word learning app, Wordio is just updated to 1.1 version. What made it worth the .1 update? Definition look up in Apple Watch app.

Before I received a feature request email and experimented with the feature for a day by myself, I thought handoff to iPhone for definition was enough for a watch wearing word learner. Turns out… I was wrong. It feels great to bring up definition of the words directly on the Apple Watch, especially on the Series 4’s larger screen.

It made me jump through many technical hoops and it’s not rational in financial sense, but well… Wordio has always been a product of love. I use it everyday. If you’re like me and want to collect new words and recite them like crazy person, you should, too.

Metapho 3.2 Release Note

Metapho 3.2 is a major update, with some nice new features and lots of bug fixes and small improvements.

New Features

  • Asset Manager
    Photos manages multiple resources of an item as a bundle for edited item, Live Photo, Portrait photo, and RAW+JPEG. Asset Manager reveals underlying files if multiple assets are available for the item. It makes easy to check and export assets. It just takes few taps to extract MOV file from a Live Photo, or to check original photo’s metadata with Metapho App Extension in Metapho. (Insert Inception OST here)
  • Raw Metadata See All
    In Camera section > See All, raw dictionary representation of metadata as keys and values without formatting, is available. Now it’s possible to copy each value, section, or entire metadata dictionary.
  • Save As…
    Since the default file naming is’t very meaningful in the Apple Photos, file renaming is one of the most popular feature requests. However, it is not possible to rename already-saved photo in the photos library. Now, 3.2 offers Save As… feature, which lets you save a copy with a new name you enter. Life sometimes gives you renaming in the form of Save As + delete original combo.

Bug Fixes and Improvements

  • Live Photo is supported for iCloud Shared Album in the app extension
  • Exports HEIC as HEIC, in Share without Metadata > Save to Files and similar sharing actions
  • Improves VoiceOver supports for accessibility
  • Fixes some crashes caused by exporting a large HEIC image in Action app extension
  • Fixes color profile bug where editing sRGB image converted it to Display P3 in some devices
  • Adds User Comment field under Camera section
  • Displays "/" instead of ":" for file name

Buy Me a Coffee

If you’ve made it this far and want to express your love for the app even more, you can buy me a coffee.

Metapho 3.1 Release Note

It has been long and cold winter here. So I don’t have anymore willpower to write a dedicated blog post. I’d just copy paste App Store update note for Metapho 3.1.

New Features

  • Pinch to zoom just like it’s 2007
  • Shows bit per component and color profile info
  • Supports Loop and Bounce Live Photo
  • Safe Share exports a looping video from Loop and Bounce Live Photo
  • Safe Share exports HEIC for supported actions such as Metapho, Gladys…
  • Animated GIF is animated by tapping the play button
  • Shows count of the Location and Favorite filtered results


  • A Live Photo, edited by Metapho, then shared to Messages by Photos, appears normally on Messages
  • Fixes sharing for edited videos
  • Fixes an issue that prevented re-editing of edited videos
  • Fixes an issue that hid the bottom toolbar when navigation back gesture was cancelled
  • Share without Metadata preserves Display P3 color profile
  • Fixes a crash caused by using Action extension’s save image action before granting Photos permission to the main app
  • Faster filtering by location
  • Location filtered result is refreshed after assigning or removing location of an item
  • Batch Editing does not deselect selected items if possible, after an edit is finished

Introducing Mehssages

Today, I’m feeling extreme meh to announce Mehssages. It is a brand new app enables SMS filter for unknown senders.

I have very low tolerance for unsolicited incoming things on my iPhone. My default choice for notification permission for a new app is Don’t Allow. For emails, I’m a long time happy customer of MailRoute.
For SMS, I had to use a carrier-provided slow and ugly spam filter app. But not anymore. Thanks to the iOS 11’s new Messages filter extension, I made an app that filters SMS and MMS from unknown senders into a separate, muted list in the Messages. These unsolicited meh-ssages (did you get it?) do not make notifications and land in the SMS Junk list silently. A filtered message does add badge count of the Messages, so I can check them when I need.

By default, Mehssages filters every SMS and MMS from numbers not saved in the Contacts. What about important messages from unknown senders, like bank statement or credit card usage or verification code for 2 step authentication? There’s Whitelist for that. You can whitelist certain phone number or message body text. An iMessages app is also included for convenient whitelisting without leaving Messages.


Mehssages works completely offline. Since its filtering rule is quite simple, the app does not need to send incoming messages to a server to get deferred filtering results. For more, see our privacy policy.

Attention is precious and fragile resource. You’ve already wasted fair amount of it by reading this. Do not add spam messages to the mix. Mehssages is available on the App Store.