Greeting Keeper 1.4.1 Updated

I’m really pleased to show off the latest version of Greeting Keeper, version 1.4.1. The design has been slightly tweaked from 1.4.0 to fix a few issues with colors and navigation..

The following video shows Greeting Keeper running on the iPhone SE (3rd generation) simulator.

When you launch the app for the first time, you are presented with a simple walk through which describes what the three tabs are for:

  • Occasions – which are simply any reason you may wish to send out a greeting card. Examples include: Birthdays, Anniversaries, etc.
  • Cards – which is where you create a gallery of cards for specific occasions.
  • Recipients – which is anyone you send a card to. You can either pick them from your contacts, or manually add their information. You can even classify the recipient as family, home, or work. I added this, for a possible future feature to print address labels for mailings.
  • Sending a card to a recipient – this is about tracking what card you sent to who. You do this by selecting a resident and pressing the + .

I think the app is now fully feature complete for all the basic functions. As you can see on many of the screens you can long press on things to edit them, and even just tap on a card to see a larger version.

I’d love to hear what you think of the latest version, so please rate it and review it on the app store, and also drop me a comment here for new features you may wish to have.

So far I have the following ideas in the backlog:

  • Add an App Intent to show a gallery of a specific event type’s card. This would be used to show a widget full of cards
  • Add ability to view all the people who received a specific card from within the Card Gallery
  • Add date range selection for the various PDF reports.
  • Add additional information on the full screen card view, i.e. manufacturer

Greeting Keeper 1.4.2 Released

There’s been a few releases over the last few weeks, but I am running into one ongoing bug on the visionOS version. The PhotoPicker causes a looping situation, that I’ve spent days trying to resolve.

The code works fine on macOS, iOS, and iPadOS, as such I am thinking that it is a SwiftUI behavioral difference on visionOS. So far, I’ve not had much uptake on the visionOS version, and as such I am thinking that it is not a big deal.

My base assumption is that visionOS users also have either a mac or iPhone, and as such they can work around the PhotoPicker bug by just using the other versions. visionOS still makes a great viewer, and instead of spending more time on it, I would like to add additional features.

What do you think?

Quick Localizer – Now available!

If you are a developer, who uses Xcode, then you need Quick Localizer! This app helps you get started on the path to support multiple languages in your app.


Check out the coming soon post I wrote a while back.


The app is really easy to use, and has a simple $4.99 one time charge.

I’d love your feedback and reviews. I am leveraging Apple’s own translation features, but packaging it up nicely for your Localizable.xcstrings file.

Coming Soon Greeting Keeper 1.3.0

It’s been a lot of fun updating Greeting Keeper, and I really appreciate the help I am getting from all my testers. This coming release will have a new “one time” getting started view. Should make it easier for new users to understand the application as a whole. You can see a demo of it here.


The other BIG change is a total rewrite of the PDF generator. While I am guessing very few people use this feature, it is a great way to get a backup of your data.

You can generate a listing of:

  • all the specific cards you’ve sent by “Occasion”
  • all the “Occasion” cards (including how many you’ve sent of a specific card – great for re-ordering your favorite “Thank You” card),
  • listing of all the cards you’ve sent to a specific “Recipient”
Detail Screen for a Recipient (in German)

Additionally, I used my new Quick Localizer to update the app for over 10 languages! Can’t wait to see what everyone thinks about this.

Coming Soon – Quick Localizer

This past weekend I attended a monthly Hacking with Swift session to build an app within two hours. Paul Hudson does these sessions as part of the paid “plus” service and usually recommends that someone clean up and/or complete the app and get it on the app store.

My Completed App

This is the first month where i decided to take him up on the challenge. Introducing “Quick Localizer”.

This app allows a developer to either start from scratch, or take an existing Xcode Localization strings catalog, and generate translations for Apple supported languages. The output can then be saved to a Localizable.xcstrings file to be included in your Xcode project.

Initial Features

The session on Saturday created a great frame work with the following features:

  • A picklist of “supported” languages, based on macOS Sequoia’s
  • Ability to create a .xcstring output file
  • Ability to translate a list of strings to export

A few additions

While this was a great starting point, it wasn’t enough to ship the app. I spent time on Sunday then adding the following features:

  • Ability to import an existing .xcstring file and display the source strings in the translation view
  • A secondary screen that allows you to look at the translations for the strings. You can select which language you’ve translated
  • A base set of instructions as the default view in the text editor
  • A cool icon

Polishing it

Putting this all together I quickly submitted the app on Sunday night, only to discover Monday morning that it did not correctly handle two key errors:

  • Loading an incomplete .xcstrings file, would silently not allow for translations
  • Saving the file should defaults to Localizable.xcstrings
  • Localized the application using the translations for all the supported languages.
  • Don’t forget my privacy policy.

I’ve also decided to charge for this app. It’s a one time charge of only $4.99 in the US, with the appropriate amount in other countries.

I will post a new blog post when Apple approves the app.

Starting off 2025

I had posted a while back that after 29 plus years, I had been “retired” by IBM. I’ve had the last two months (over the holidays) to think thru what that means to me and what I’d like to do. While I would love to still have the income that a high paying corporate job provided me, i.e. I got to buy a lot of tech toys, write apps for fun, and do a weekly podcast without any advertising or support, I didn’t like the culture of driving all activities based on a quarterly report to the stock market. What I want to do is actually spend time making things.

While I will continue to pursue a traditional job, you can’t beat the price of company supported healthcare, I am going to take this year to try and make a go of my own app development. Hopefully, I will be able to make a livable income through my work, and at the same time, improve my skills as a developer. I didn’t get to do much development work in my day job.

If you’d like to help me, I would appreciate if you pick up either of my current apps, which are minimally priced, and spend some time providing me feedback. I know a big area of improvement is needed in UI design, but having spent so much time with them over the years, I need feedback on what I can do, not just that I should improve them.

My two apps are both available on all major Apple platforms:

For feedback – send me an email at support@theapapp.com

Let me Edit your Podcast

One of the things that I enjoy is doing my weekly podcast. I’ve been podcasting since 2006, and have edited 800+ podcast episodes.

I have been using a whole set of different tools over the years. Audacity, when I first started out, GarageBand, Logic Pro/X, and now Ferrite. If you are thinking about starting a podcast, I can help you learn how to set it all up, and I can edit your show for you.

Drop me an email at michaelrowe@michaelrowerowe01.com!

The problem with US Data Privacy

Photo by Dayne Topkin on Unsplash

I podcast over at Games At Work dot Biz with my friends and co-hosts Andy Piper and Michael Martine. We have a weekly podcast where we talk about gaming, technology, innovation, and other topics that we find interesting each week. Periodically we will be talking about some new technology and reviewing their business model, which almost always seems to be how they can take your data and monetize it. We then end up talking about how the privacy laws between the US and Europe are different, and ultimately end up in a rathole on how even in the US, every state has it’s own, (read different), privacy laws.

Photo by Neon Wang on Unsplash

A Patchwork of States

The United States has long history of balancing the rights of individual states and having a consistent set of governing policies across the country. After the revolutionary war, the US started their first government with the Articles of Confederation from 1781-1789. One purpose of the Articles, was to ensure that there wasn’t a strong, centralized government. The states were given most of the powers of government. Over the 8 years that the Articles were in effect, it became apparent that the confederation model did not allow a fledgling country to effectively manage the complexity of becoming a nation.

The people who benefited the most from the confederation approach where those who did not want to have any set of centralized control, however, it quickly became apparent that not having a consistent way of treating with other countries was causing issues for commerce. Not having a strong centralized military, meant that only those organizations that were really big could successfully deal with pirates, or could negotiate with other countries.

This same level of ineffectiveness, along with other issues between each of the states, ultimately led to the creation of the current US Constitution, which not only addresses the need for a strong central government, but also tried to the balance the various states’ needs.

Constitutional Right to Privacy?

While the U.S. Constitution does not call out a specific right to privacy, there are multiple amendments which are part of basis for the what has been precedent for the right to privacy of individuals in the United States. This set of amendments are the basis for what is called penumbras, which were used by the Supreme Court in the 1965 decision of Griswold v. Connecticut.

I won’t go thru and repeat the entire section of the above Wikipedia article on the US right to privacy, but the description of what the basic law provides should be considered in light of this post.

  • The right of persons to be free from unwarranted publicity
  • Unwarranted appropriation of one’s personality
  • Publicizing one’s private affairs without a legitimate public concern
  • Wrongful intrusion into one’s private activities

If we use that list, I believe we have a strong case for constraining the runaway invasion of privacy perpetrated by various business and social networks. Which will require a nation wide approach to privacy, not the current state by state patchwork of laws and state constitutions.

Privacy in the news

In the last month, I’ve started collecting a set of stories and blogposts that have all talked about privacy. I highly recommend click thru on each of them and reading up.

  1. The Global Surveillance Free-for-All in Mobile Ad Data by Brian Krebs: This article discusses the lawsuit against a company called Babel Street, which sells location data. This data is easily able to take other data and pull together a detailed movement map of individuals. In this case, the data was used to violate New Jersey law enforcement officer’s privacy, but this same data can and is used to track individuals.
  2. Verizon, AT&T tell courts: FCC can’t punish us for selling user location data – by Jon Brodkin: In this article the carriers claim that location data isn’t protected, i.e. not private, and as such they should be allowed to collect and sell that data. Of course, that is the data that companies like Babel Street aggregate to create the portal tracking individuals and law enforcement. Their argument is that the FCC can’t tell them to stop, they should have a jury trial, and a recent Supreme Court case stated that a jury trial is required when the SEC seeks civil penalties. While this is a FCC decision they are fighting they will try to get the court to apply the same logic.
  3. Supreme Court Helps AT&T, Verizon Avoid Accountability For Spying On Your Every Movement – Karl Bode: This is another story on the Verizon and AT&T item from above.
  4. The Open Source Project DeFlock is Mapping License Plate Surveillance Cameras All Over the World by Jason Koehler: With the massive deployment of traffic cameras by a company called Flock, the author indicates that in the U.S. it is impossible to drive in some cities without being captured by these cameras. Again, the data that companies like Flock collect can be used, with other meta data, to build detailed maps of where people travel. (This was also covered by Bruce Schneier with the post Mapping License Plate Scanners in the US.)
  5. Threatened With A Ban In India, Wikimedia Agrees To Hand Over Personal Information About Wikipedians To Delhi High Court by Glyn Moody: while this story is not about U.S. Privacy law, it shows how a company can is trying to compel a US based foundation to provide information about editors of various public pages. While I am not clear on how the Wikipedia Foundation is structured within other countries, this attempt to silence information created by various individuals, is in my opinion another attack on privacy.
  6. Security Now Episode 998: The Endless Journey to IPv6 – Steve Gibson and Leo Laporte: In this episode there is a discussion about the privacy focused messenger called Telegram, and how they are moving their company from Australia to Switzerland, due to privacy laws.
  7. New iOS Security Feature Makes it Harder for Police to Unlock Seized Phones – Many sites had this story. Bruce Schneier’s article is a good jumping off point for some of the articles. Net-Net, this is a somewhat good news story in that the latest version of iOS 18, has enabled a mode that if a phone is not unlocked every 72 hours it will reboot and go into “Before First Unlock” state, which makes it much more difficult tools to break into the phone.

Now the above set of stories are a small set of stories from the last 4 weeks, but the illustrate an on-going drum beat about how data is being gathered, sold, aggregated, and used for purposes way beyond the “public” expectation. To that end, we should go back and review how we can address the possibility of privacy in an age of surveillance capitalism.

What is Surveillance Capitalism?

According to Wikipedia: Surveillance capitalism is a concept in political economics which denotes the widespread collection and commodification of personal data by corporations. The reason I bring this up is, even if we have strong laws for data privacy, e.g. the E.U.s GDPR, unless the fines are large enough, many businesses considering violation of privacy for profit will factor in the fines as a cost of doing business.

We’ve seen in the U.S. that many states have to have their own privacy laws, and this patchwork causes issues for any real privacy. I have experienced this first hand, as I’ve tried to use tools to automate opting out of data collection from various websites. About half of the websites have responded back with a no indicating that North Carolina laws do not require that they disable that collection.

If I were living in California, the data privacy laws of the state require that companies actually remove the data in a timely manner. So even thought many of these companies are located in California, the fact that I am in North Carolina means they do not have to react to my request. If we had a single, common law across the country, modeled after California both consumers and companies would have clarity. And on smaller companies, would be able to compete with the larger enterprises who use regulatory capture to keep them from entering the market.

Black Friday Sale

Wasted Time app logo!

While I have been developing apps for some time, I’ve not been very good at promotion and/or pricing. I am hoping to get more users so that I can get better feedback on my various apps. To that end, I have just scheduled a blowout sale of the following apps:

I have created the apps over time, and have tried to charge very little for them in the past. Wasted Time is $0.99, in all its variations. Greeting Tracker is my newest app, that I spent years fiddling around with, and it originally charged $3.99 for it, but dropped its price to $1.99 earlier this year.

For just a few days, Friday, Nov. 29th to Sunday, Dec. 1st, all of the above apps will be free.

I’d love to hear what you think of them, and if you have any suggestions for app improvements, or UX improvements, I would greatly appreciate it!

Why I like the Vision Pro

My Persona

Recently there have been multiple articles published suggesting that Apple’s Vision Pro is a failed product:

The funny thing is if you search on the title Vision Pro is dead, you will find articles and Reddit stories saying this since April 2024. Which is ludicrous since the Vision Pro only started shipping to customers in February of 2024.

Regardless of the doom and gloom stories, I am going to discuss the two primary use cases for my Vision Pro, and where I see the future of the Vision Pro is going.

How I use the Vision Pro

Let me begin by saying I use the Vision Pro every day. I know, that is not what you will hear from most people who bought the device on launch day. So many of the early buyers, bought it because they wanted the latest and newest Apple device. I think they are also the people who bought the first HomePod on launch day.

Working on coursework from Udemy

The above screen shot represents a pretty normal day for me lately. I recently retired from IBM after 29 years, and am doing some re-skilling by taking classes on Amazon AWS thru the Udemy platform. I have the class work running in a video window on the Vision Pro, while mirroring my Mac to actually perform the various exercises. This is a simple example of a use case. And while, yes I could just use two monitors on my Mac (either via Side car with my iPad and my MacBook Pro, or via my Mac Studio and a secondary display), but that only solves one issue.

What the Vision Pro allows me to do is, turn the digital crown and slowly block out all the distractions that are around me. I also have background sounds turned of for the environment, which helps in removing the ringing that I have in my ears at all times. Some people achieve this same result by working in an open space or coffee shop. For me, that type of sensory input causes me to focus on what people are saying around me. It makes it much harder for me to focus.

Gaming

I love games. All kind of games. Games ranging from solo games, all the way to MMORPGs. While I’ve not found a good MMORPG that runs in the VisionPro, I do find that running World of Warcraft on a giant monitor does help me get me immersed. However, there are social games like Demeo, which give you the old school Dungeons and Dragons like experience.

You get to sit in the basement, around a table, and pic an adventure to run.

And you can run the adventure in a turn based mode, with magic spells, cool weapons, and wonderful treasure. I’ve played solo, with a friend 1000s of miles away, and a group of 3 other random strangers. Each experience was fun and fulfilling. The other thing for this game is, that it is not only available for the Vision Pro, but you can play it on the Meta Quest, on the Mac, and on iPadOS. So if you have a group of friends who’d like to get together but can’t, this is a great way to play together.

Content consumption

When paired with a set of AirPods Pro 2, you can really get immersed in all kinds of media consumption. Music surrounds you, TV and Movie shows, allow you to watch 2D and 3D content like you are in your own private theater, and while I’ve not found a willing partner to try it, you should be able to use Apple’s SharePlay feature to sit in the same space and watch a movie.

My wife and I still do not go to the theatre since the pandemic, and I would love to watch a movie with friends in the Vision Pro.

Watching various media that Apple has slowly dipped out for the Vision Pro, shows that we still have a ways to go before all the directors and editors are comfortable making true Spatial content, but I for one am happy to watch well made 3D movies.

The promise of a future

There is so much more that I wish that the Vision Pro would do, and given the hardware that Apple put together I am sure it could do it all. The question will be, does Apple continue to iterate the software and provide more content, so that more developers can see the possibility.

We need developers to build for the Vision Pro, and we need consumers to buy the promise. Perhaps a cheaper headset will make it more likely that some to buy it just for media consumption, but I wouldn’t count on it. Not when a cheap Apple device will probably be 3-5x more expensive than the Meta Quest. And most people still don’t want a heavy device on their face.

Ultimately I do believe that glasses or contacts will be the platform for AR, but for VR or mixed reality devices, glasses will not do it for me. I think a device like the Vision Pro will be required, and I am glad I don’t have to wait for it.