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.

Metapho 3.0 Release Note

Video support in Action After long wait, 3.0 has new features probably make long time users shout out “finally”.

Video support

Since the beginning of Metapho, Video support is the most requested feature. This summer, I finally made the app could read and write video metadata, in a similar way photo metadata handled. Date / Location Edit, Safe Share, Batch Editing… all works with videos now.

Improved Action extension

From iOS Share Sheet, You can activate the Action extension with multiple items selected. Select photos and videos as many as you want in Photos, open Metapho Action, swipe side by side to navigate. For Live Photos, Action extension also plays short live photo preview, and 3D touch for play works, too.

Album support

3.0 adds My Album and Smart Album support. And there are location and favorite filters, too. I’ve merged albums and filters together, so that each album could be filtered by location or favorite filter.


The app performance is finely tuned for faster, smoother, and more responsive experience. It shows locally available information first when download from iCloud Photos Library is in progress. For a long running operation, the app reports more accurate progress.

JPEG Compression

A third party app which edits a photo in the Photos Library, has to normalize image orientation to 1 for in–place save. This means, even for a simple metadata editing, the app must render and compress the photo as a new jpg again. Metapho used to apply a moderate compression rate for re–rendering, which leads to reduced file size for some large photos with low rate. Metapho 3.0 does not re–render the photos that already have normal orientation, and uses higher compression rate for non-1 oriented images. Since JPEG to JPEG is lossy conversion, I think this is right way to do compress under current OS constraints although this causes not–so–ideal storage usage. For Safe Share, the constraints above does not apply, so Metapho just replaces metadata part of the JPEG file, writes it to the temporary space, then shares the file.

Removal of Edit extension

When the Metapho 1.0 was released, iOS 8’s app extension was still in the very early stage, so there was confusion among devs — and App Store review team also — where to put what extensions. Out of that chaos, Metapho started with Edit extension only, but quickly added Action extension. Edit extension is not an ideal place for Metapho because Photo Edit extension point does not allow third party apps to change the photo asset’s metadata in Photos Library database. There has been ugly and unreliable workaround for this limitation. To sort things out, Metapho 3.0 removes Edit extension. To edit metadata, use Open in Metapho button in the Action extension. Metapho can do much better job changing Date / Location data than Edit extension.

Changes, Improvements, and Bug Fixes

  • File extension for Safe Share is changed to jpg from jpeg
  • Delete current item button is available on the bottom toolbar
  • Shows more granular shutter speeds
  • Photo grid cells fit more nicely on the various adaptive sizes
  • Reverting to the original date restores sub-second precision
  • Supports Open in Google Maps…
  • Going back to photo grid is easier with screen edge swipe gesture
  • Fixes Safe Share to Messages bug, showing black preview image

Download on the App Store


English is not my first language. Unfortunately, it is the essential language for app business and tech community, and so many entertainment and learning materials are provided only in English.

When I decided to make myself a programmer, improving my English–reading skill was very important. Extending my vocabulary was one of the key things to do. I read written English contents mostly on the iOS devices and Mac. And they have excellent built–in dictionaries. I did constantly look up a new word only to find that it was not a new word, and I just forgot that I already looked it up before. I need to collect and keep track of new words I have looked up, so I made an app for that.

Whether I’m reading something on iPhone, iPad, or on the web, I can easily collect a new word using iOS app or recently created web app. CloudKit keeps everything in sync in background. Wordio complications for Apple Watch forces me to be exposed to those words whenever I glance my watch face. The app has been very helpful for me to improve my reading1.

For a casual life–long english learner like me, managing already-looked-up-words could not be overemphasized. If you’re interested and ready to pay $2.99 to see if it’s for you, you can buy Wordio on the App Store.

  1. not much for writing as you can see at this point

Metapho 2.1.2 Release Note

Version numbering could be arbitrary sometimes. Many things have been changed under the hood for this huge point update.
Download on the App Store

Memory footprint

Memory usage for an app extension is very constrained. For an app extension handling images like Metapho, it is easy to be killed by OS and fail to launch, unless the app extension manages memory usage carefully.
A JPEG file stores its metadata in the head. If Metapho Action extension gets the location of the file, there’s no reason to load entire image data into memory. Just reading head section for metadata would be sufficient. By doing this, Action extension can show a very large image like this. Similar stuff also applies to sharing. Now, Metapho exports metadata modified file in a memory efficient way so that you can Safe Share a huge image in Action extension.

Film Mode

Cameras made by Fuji Film have special custom metadata, Film Mode. It seems like that dozen of film simulation modes are valuable metadata for Fuji Film camera owners. After digging into custom note section of the photo and studying camera manuals, I could extract Film Mode and put it on the camera info section.

RAW and iCloud Photos Library

Apple says iOS and RAW are not very friendly. In the host app, Metapho tries to get RAW assets if they are available locally or on the iCloud Photos Library. In the app extension, iOS Photos app sometimes gives the app extension RAW, sometimes JPEG. If only JPEG is available in the Photos app, the app extension uses provided JPEG and will not try to retrieve underlying RAW.

DNG support

iOS 10 lets capable devices capture in RAW. The result is DNG, Adobe digital negative file format. Unfortunately, iOS does not have DNG decoder and just treat it as a small thumbnail. Metapho reads DNG metadata and at least shows original pixel size of the image. It’s not possible for now to edit or share an original size image directly from a DNG file in Metapho. If you really want to handle DNG in iOS you should convert DNG into JPEG first, using DNG develop apps like Lightroom or Camera+.

Small changes and fixes

  • Metapho ignored a photo’s orientation when it showed pixel dimension info. For a portrait photo, EXIF width is actually height. Now the app swaps height and width for rotated orientation.
  • Sometimes Map View got confused and gave us wrong compass icon. Not any more.
  • Reports 0.303030303 shutter speed as 1/33s not 1/30s.

Introducing Free Trial For Atelier

Free Trial on the iOS App Store

Atelier is updated to 1.2, and the app is changed to free (to download). Upon the first launch, you can choose between paying full price upfront, or making $0 In–App Purchase for 7 day free trial. With free trial, you can try all the features of Atelier for a week without paying regular price—currently $4.99.

After years of underwhelming sales, I found out that paid app model is not the best way to sell a simple and focused drawing app like Atelier. Or is there any good way to sell an app like this? We’ll see. You can try it on the App Store.

Bug Fixes

  • Fixed brush width slider percent bubble misalignment
  • Fixed visual glitch sometimes created by closing main menu
  • Fixed a color composition bug caused by layer opacity

Atelier 1.1

This is a big update. Atelier: Draw, Sketch, Paint is updated for iOS 10.

Apple Pencil

I know I’m late to the game, but I finally managed to buy  Pencil and iPad Pro last summer. With real hardware for development, I could make Atelier support Apple Pencil natively. I’m happy to find out that Pencil is much more precise than I thought and it is better than any other stylus on iPad by far margin. Atelier has been faking brush pressure with touch velocity. It is necessary feature to make a smooth line with crude touch samples — hardware limit for old devices. However, thanks to Pencil’s superb sampling rate and pressure sensitivity, the app translates your intent quite well into painted lines with less “magic” behind the scene. With Apple Pencil, painting in Atelier is more accurate, faster, and smoother than ever.

Bug Fixes and Improvements

  • Keyboard Shortcuts: ⌘+z for undo, ⌘+⇧+z for redo, hold down ⌘ on a hardware keyboard to learn more
  • True Tone Display loses power over Atelier’s precise color reproduction
  • Slightly smoother Atelier thumbnail image scrolling
  • Fixes an issue that caused incorrect color after merging layers with very low alpha
  • Fixes one pixel misalignment of iPhone 6 size canvas on 100% zoom level

When you’re using Atelier, you don’t need to fiddle with brush flow rate, pressure curve, or other complicated things. Just draw, sketch, paint and create something beautiful. Atelier 1.1 requires iOS 10 and now available on the App Store.

Metapho for iOS 10

Metapho 2.1 is mostly for editing of Live Photos.
Download on the App Store

Live Photo Edit

iOS 10 lets you crop, filter, enhance, and rotate Live Photos without turning them into stills. Thankfully, Apple opens up this feature to third party app like Metapho. Now you can change or remove metadata of Live Photos and they remains live after editing.
And Safe Share feature is completely rebuilt to support these Live Photos. It gives you more control. For example, you can Share without Metadata a Live Photo, select Save Live Photo to get a new metadata stripped live photo, then delete original for destructive but storage saving workflow.

Bug Fixes

  • Fixes an issue that showed incorrect file size just after downloading a photo from iCloud Photos Library
  • Better handling of metadata edited by Photos for Mac, for sharing with metadata
  • Fixes map issue in Metapho extension, caused by Photos for Mac assigned location

Requiring Latest iOS

Metapho requires iOS 10. Live Photo Editing and Sharing was non–trivial features to implement and I wanted to keep the codes as tidy as possible for future updates, so I bumped up minimum requirement iOS version. I highly recommend all users to update to the latest iOS. For older devices, Metapho 2.0.1 will continue to work for iOS 9 and available for download on the App Store’s purchased section.

Metapho 2.0 release note

Metapho 2.0 is a substantial update with new features, improvements, and bug fixes.

Download on the App Store

Date Edit

The stock Photos app on iOS and macOS shows pictures sorted by creation date. Some photos from a dumb camera without GPS clock, or old scanned images often have incorrect timestamps and falls into inappropriate places on the Photos grid. Fear no more. Using Date Edit, you can modify creation date of the photo and “move” it to the right place.

The biggest hurdle for date editing feature was time zone. Here’s how Metapho handles it. EXIF infamously does not have concept of time zone. By default, Metapho uses system time zone for location–less photos. When a photo has location metadata, the app could obtain time zone info using reverse geocoding, then use it to calculate date offset for editing. Metapho also uses time zone info when it is writing date related tags with “Rewrite Date Tags” options turned on.

A digital photo typically has multiple date related metadata. Date original, date digitized, TIFF creation date, GPS timestamp, and so on. In addition, the stock Photos app keeps its own database for metadata. When date is modified, Metapho just changes date metadata in the Photos app’s database. However, if “Rewrite Date Tags” is turned on, Metapho changes all date related tags, makes re–rendered photo with modified metadata and saves it in addition to the original photo.

Batch Operation

I’ve always wanted to implement selection gesture handling just like that of Photos. Tap–and–side–drag gesture lets you select multiple photos easily without breaking your thumb. After selection, you can edit or delete multiple metadata of selected photos at once.

Other New Features

  • Photo file name. In Metapho and action extension.
  • Quickly find a photo by filtering Photos Library with location, favorite, and photo type.


  • GPS accuracy tag sets Map zoom level if available.
  • Pixel dimension reports actual image size, instead of value in metadata.
  • Metapho Action extension is more stable and faster.
  • Metapho Action extension: Open in Metapho, now works for Metapho–edited–photos.


  • Some images were not showing for 3D Touch Peek.
  • The first–ever app launching via action extension inappropriately asked for Photos Library permission. Well… I did not think of that it is possible to launch app extension before main app.
  • One could produce an image contains image direction without location.
  • Accessibility escape gesture did not work for going back to photo grid.

Hello, Zininworks blog

This is Zininworks company blog. Stories about new apps and app updates will be posted here.