<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://cdf1982.com/feed.xml" rel="self" type="application/atom+xml" /><link href="https://cdf1982.com/" rel="alternate" type="text/html" /><updated>2026-06-14T15:35:01+00:00</updated><id>https://cdf1982.com/feed.xml</id><title type="html">cdf1982.com</title><subtitle>Ciao, I’m Cesare. I&apos;m an indie Mac and iOS developer and this is the home for my apps and blog.</subtitle><author><name>Cesare Forelli</name></author><entry><title type="html">700</title><link href="https://cdf1982.com/2026/03/18/700.html" rel="alternate" type="text/html" title="700" /><published>2026-03-18T00:00:00+00:00</published><updated>2026-03-18T00:00:00+00:00</updated><id>https://cdf1982.com/2026/03/18/700</id><content type="html" xml:base="https://cdf1982.com/2026/03/18/700.html"><![CDATA[<p>Today <strong>GlanceCam reached 700 Mac App Store ratings</strong>.</p>

<p>My personal celebration has been shipping <em><a href="/glancecam/glancecam-release-notes">a few good updates</a></em> recently, plus the significant and progress I’m making with the new GlanceCam app for iPhone, iPad, Apple Watch and Apple TV that will arrive as a separate product later this year.</p>

<p>But the occasion requires to actually stop coding and for me to take a moment to thank all Users who joined me in this journey, that amazingly started over 8 years ago: you’ve provided great support, suggestions and encouragement, and GlanceCam would not exist without you!</p>

<p>To the next 100 ratings, I’ll do my best to make them all 5 stars!</p>]]></content><author><name>Cesare Forelli</name></author><category term="glancecam" /><summary type="html"><![CDATA[Today GlanceCam reached 700 Mac App Store ratings.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://cdf1982.com/assets/images/blog/2026-03-18-700/700-glancecam-ratings.png" /><media:content medium="image" url="https://cdf1982.com/assets/images/blog/2026-03-18-700/700-glancecam-ratings.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">GlanceCam 4.6 with Minimalistic GlanceGrids and more</title><link href="https://cdf1982.com/2026/02/11/glancecam_4_6.html" rel="alternate" type="text/html" title="GlanceCam 4.6 with Minimalistic GlanceGrids and more" /><published>2026-02-11T00:00:00+00:00</published><updated>2026-02-11T00:00:00+00:00</updated><id>https://cdf1982.com/2026/02/11/glancecam_4_6</id><content type="html" xml:base="https://cdf1982.com/2026/02/11/glancecam_4_6.html"><![CDATA[<p><strong><a href="https://www.glancecam.app">GlanceCam 4.6</a> is <a href="https://itunes.apple.com/us/app/glancecam-ip-webcam-viewer/id1360797896">out now</a></strong>, and this update (the 43rd free one since launch in 2018) is packed with features and improvements!</p>

<p>I’ve kept busy, and the <a href="/glancecam/glancecam-release-notes#4_6">release notes</a> include all the details. Here I’ll go over what’s new quickly.</p>

<p>This update includes one of the most requested features: <strong>GlanceGrids now support the Minimalistic user interface style</strong>. GlanceCam Pro’s “Minimalistic” UI option (in <em>Settings</em> &gt; <em>Appearance</em>) hides the titlebar and window controls, leaving just the camera feed on screen; it’s been available for single camera windows for a years and Users love it. Now it works with GlanceGrids too: move your mouse into the grid window and the titlebar and controls appear; move it out and they hide again, leaving just your camera image unobstructed. It works seamlessly with full-screen mode, InstaZoom, Roll-Up, window snapping, and dynamic resizing.</p>

<p><strong>Custom window size</strong> is another addition I’m really pleased with: you can now save your preferred window dimensions (<em>Window</em> &gt; <em>Save custom size</em>) and quickly apply them to any camera window or GlanceGrid with Cmd-4. It’s one of those small things that makes your daily setup so much smoother.</p>

<p>A few more things I want to call out:</p>

<ul>
  <li>
    <p><strong>Smarter settings reloads</strong>: saving Settings no longer reloads <em>every</em> camera when it doesn’t need to; only the cameras you actually edited get refreshed.</p>
  </li>
  <li>
    <p><strong>GlanceGrid audio button</strong>: grid tiles now show a dedicated audio button in the bottom right corner, so you no longer have to rely on the contextual menu.</p>
  </li>
  <li>
    <p><strong>Shorter Cycle mode intervals</strong>: the minimum interval has been reduced from 10 to 5 seconds (recommended only for cameras on the local network).</p>
  </li>
  <li>
    <p><strong>Prevent screensaver</strong>: a new option in Settings &gt; Behavior lets you prevent the screensaver and display sleep while GlanceCam is running. My recommendation is to leave it off for the scary (valid!) reasons explained in the alert when you try to enable it, but it’s there if you need it and understand the risks.</p>
  </li>
  <li>
    <p><strong>StoreKit 2 under the hood</strong>: this is a big change that keeps offline installations of GlanceCam Pro on Tahoe more reliably unlocked. One consequence is that GlanceCam now requires macOS 10.15 Catalina.</p>
  </li>
  <li>
    <p>A <em>long</em> list of <strong>GlanceGrid reliability improvements and bug fixes</strong>: better tile positioning, more consistent resizing, fixes for Roll-Up and InstaZoom edge cases, and more.</p>
  </li>
</ul>

<p>As you can tell, a lot of this release was shaped by your feedback and suggestions. <strong>I want to thank Keith, Mark, James, Rob, Martijn, Nicholas, Suzanne, Darren, Edo, Craig, Geraint, Jay and Eric</strong> for their feature requests, detailed reports and patience. That’s what I love about working on GlanceCam: it’s a conversation between me and the people who use the app every day.</p>

<p>Speaking of what’s next: with 4.6 out the door, my focus for the coming months will be on <strong>GlanceCam for iPhone, iPad and Apple Watch</strong>. I’ve been working on this new separate app for a long time now, and it’s shaping up really nicely. I can’t wait to get a great 1.0 on the App Store later this year.</p>

<p>Of course, GlanceCam for Mac isn’t going anywhere and will keep getting better! I already have a packed list of things I want to add in 4.7, and who knows, maybe I’ll be able to put out a quick update with a few niceties before getting back full time on the new app… so much to do, so little time!</p>

<p><strong>If you haven’t already, <a href="https://itunes.apple.com/us/app/glancecam-ip-webcam-viewer/id1360797896?l=it&amp;ls=1&amp;mt=12">download GlanceCam 4.6</a></strong> and, if you have a moment, a 5-star review would mean the world to me. Pro upgrades and tips are also very appreciated and keep development going. And please, tell a friend who might find GlanceCam useful!</p>

<p>As always, if you have suggestions or need assistance, I’m <a href="mailto:support@cdf1982.com">here</a> for you.</p>]]></content><author><name>Cesare Forelli</name></author><category term="glancecam" /><summary type="html"><![CDATA[GlanceCam 4.6 is out now, and this is one of the most feature-packed updates in a while. The 43rd free update since launch in 2018!]]></summary></entry><entry><title type="html">Best of 2025</title><link href="https://cdf1982.com/2025/12/31/best_of_2025.html" rel="alternate" type="text/html" title="Best of 2025" /><published>2025-12-31T00:00:00+00:00</published><updated>2025-12-31T00:00:00+00:00</updated><id>https://cdf1982.com/2025/12/31/best_of_2025</id><content type="html" xml:base="https://cdf1982.com/2025/12/31/best_of_2025.html"><![CDATA[<p>Quite at the last minute, I’m keeping my <em><a href="https://cdf1982.com/tag/best-of-the-year">tradition</a></em> to compile a list of some of my favorite media items I’ve enjoyed in the last 12 months.</p>

<p>This year, for the first time, I’m not awarding some categories (best song, best album, best book) as I don’t feel anything stood out particularly, or maybe I just didn’t have the time to enjoy those things enough. And as always, no affiliate links: this is mostly for myself, to look back and rediscover things in a few years, but maybe you can pick up some interesting stuff you might have missed.</p>

<p><strong>Best movie</strong>: <a href="https://www.imdb.com/it/title/tt32376165/?ref_=rt_t_7">A House of Dynamite</a>; runner up, <a href="https://www.imdb.com/it/title/tt12908150/?ref_=rt_t_17">The Life of Chuck</a>. Both are wonderful movies, and they couldn’t be more different from each other.</p>

<p><strong>Best TV show</strong>: <a href="https://www.imdb.com/it/title/tt9253284/?ref_=nv_sr_srsg_1_tt_4_nm_3_in_0_q_andor">Andor</a>; runner up <a href="https://www.imdb.com/it/title/tt3581920/?ref_=fn_t_1">The Last of Us</a>. Funny, two second seasons that in some ways surpassed the first ones; not funny how depressing both are, but again very good and recommended.</p>

<p><strong>Best podcast</strong>: <a href="https://thisiscriminal.com/episode-301-guns-grenades-and-100000-24-1-2025/">Criminal - Guns, Grenades, and $100.000</a>.</p>

<p><strong>Best article I read</strong>: <a href="https://www.theatlantic.com/family/archive/2024/11/dog-lamb-chop-toy-obsession/680691/?gift=jkTYBwPCF5hbqxWTKTI6-_JpYHU2P958ft2LeFKUfK4">Why Are Dogs So Obsessed With Lamb Chop?</a>… and no, Milla did not care one bit when I got her one.</p>

<p><strong>Best Mac app</strong>: <a href="https://www.codeweavers.com">CrossOver</a> for enabling me to play some pretty amazing games on my Mac; I thought of awarding <a href="https://windsurf.com">Windsurf</a>, which was a pretty transformative tool for me this year, but a. it’s just a VSCode fork and there’s no way I’d celebrate a non-native app, plus b. there’s nothing particularly unique about it, clearly AI-powered IDEs are here to stay, but I’m not sure this one in particular will be the winner in the long run.</p>

<p><strong>Best iOS app</strong>: Once again, Shortcuts, for unlocking amazing automations. Runner up(s): <a href="https://getdrafts.com">Drafts</a> and <a href="https://www.omnigroup.com">OmniFocus</a>, because without them I would not function.</p>

<p><strong>Best videogame</strong>: This is a hard one: in the last week I’ve been putting <em>a lot</em> of hours in <a href="https://www.expedition33.com">Clair Obscur Expedition 33</a> and it’s clearly a masterpiece, deep, challenging and with amazing (mind blowing, really) graphics, but it’s really fresh in my mind and incredibly exciting. So I’ll suspend my judgement until I’ve completed it, and will award it in 2026. Which means that 2025 goes to <a href="https://www.rockstargames.com/it/reddeadredemption2">Red Dead Redemption 2</a>, which might be a few years old, but I’ve only played this year and remains the most vast and compelling videogame world I’ve ever experienced, and I don’t even like western movies.</p>

<p><strong>Best video</strong>: What a gloomy year! I was scrolling my YouTube likes of the year and it’s so tainted by the disgrace leading America that I really struggled to find something inspiring, so I’ll finish things up by letting you have a laugh at <a href="https://www.youtube.com/watch?v=5gNT0SWf3Ls&amp;list=LL&amp;index=35">this ad from a few years ago</a> which I only discovered in 2025, because the Internet let me down.</p>

<p>From me and Milla, a heartfelt wish for the <strong>Happiest and most serene 2026! 🥂</strong></p>]]></content><author><name>Cesare Forelli</name></author><category term="best-of-the-year" /><summary type="html"><![CDATA[Quite at the last minute, I’m keeping my tradition to compile a list of some of my favorite media items I’ve enjoyed in the last 12 months.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://cdf1982.com/assets/images/blog/2025-12-31-best_of_2025/Milla_sulla_neve.jpeg" /><media:content medium="image" url="https://cdf1982.com/assets/images/blog/2025-12-31-best_of_2025/Milla_sulla_neve.jpeg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">LifePace 1.1</title><link href="https://cdf1982.com/2025/09/20/lifepace_1_1.html" rel="alternate" type="text/html" title="LifePace 1.1" /><published>2025-09-20T00:00:00+00:00</published><updated>2025-09-20T00:00:00+00:00</updated><id>https://cdf1982.com/2025/09/20/lifepace_1_1</id><content type="html" xml:base="https://cdf1982.com/2025/09/20/lifepace_1_1.html"><![CDATA[<p>In case you missed my constant self-promotion on Mastodon 🙃, this week I introduced <a href="https://cdf1982.com/lifepace/lifepace.html"><strong>LifePace</strong></a>, my new habit tracker for iOS 26, iPadOS 26, macOS Tahoe and Apple Watch.<br />
LifePace is designed to give you the <strong>structure to stay consistent</strong> and build progress, one small step at a time.</p>

<p>Today I’m happy to share the first update: <strong>LifePace 1.1</strong> focuses on <strong>speed</strong> and <strong>more effective reminders</strong>, so you can keep moving forward with less effort:</p>

<ul>
  <li>
    <p><strong>Much faster performance</strong><br />
You know how they say about the best plans not resisting an encounter with reality? Turns out that Users importing a decade of data from other apps stress-test your app on a whole different level, and that’s a good thing for everyone because now scrolling through long histories, checking stats, and completing habits is smoother and more responsive for everyone.</p>
  </li>
  <li>
    <p><strong>Full-screen alarms</strong><br />
On iOS 26 and iPadOS 26, you can now enable AlarmKit-based <strong>full-screen alarms</strong> for habits you never want to miss, just like wake-up alarms.<br />
On devices that don’t support AlarmKit (like the Mac), LifePace continues to use standard notifications. By default, reminders remain gentle everywhere: you decide which habits deserve an alarm by toggling <strong>Alarms</strong> on in each habit’s configuration.</p>
  </li>
  <li>
    <p><strong>Focused Review view</strong><br />
The Review screen now shows only your <strong>active habits</strong>.</p>
  </li>
</ul>

<p>If you haven’t already, you can <a href="https://apps.apple.com/us/app/lifepace-habit-streaks-tracker/id6751773159"><strong>download LifePace today on the App Store for free</strong></a>.</p>

<p>And if you find it useful, a 5-star review really helps others discover LifePace, and <strong>LifePace Pro</strong> will let you track unlimited habits while fueling future updates.</p>

<p>Thanks for being part of this journey!<br />
–Cesare</p>]]></content><author><name>Cesare Forelli</name></author><category term="lifepace" /><summary type="html"><![CDATA[LifePace 1.1 brings major performance improvements and full-screen alarms on iOS 26 and iPadOS 26]]></summary></entry><entry><title type="html">🚀 Introducing LifePace – Build habits that last</title><link href="https://cdf1982.com/2025/09/15/lifepace_build_habits_that_last.html" rel="alternate" type="text/html" title="🚀 Introducing LifePace – Build habits that last" /><published>2025-09-15T00:00:00+00:00</published><updated>2025-09-15T00:00:00+00:00</updated><id>https://cdf1982.com/2025/09/15/lifepace_build_habits_that_last</id><content type="html" xml:base="https://cdf1982.com/2025/09/15/lifepace_build_habits_that_last.html"><![CDATA[<p>For years I wanted a <strong>habit tracker that helped build consistency without getting in the way</strong>.</p>

<p>It’s not like I strive to be a <em>quantified self guru</em>, but keeping track of some things is nice and I believe long streaks are powerful: when you have one going you think twice before breaking it!</p>

<p>The apps I tried never clicked for me: they were either slow (really long presses just to mark a habit done, distracting home screens with more marketing fluff than I can tolerate…) or unnecessarily rigid, with a limited number of habits trackable and the expectation that you never missed a day. If I forget to check off a habit one day, and you make me dig through convoluted menus to fix that, we won’t be friends for long…</p>

<p>All these annoyances lead me to build <a href="https://cdf1982.com/lifepace/lifepace.html"><strong>LifePace</strong></a>: I wanted a habit tracker that is fast to use, forgiving when life gets in the way, truly private, and always motivating. A companion designed to <strong>turn good intentions into long-lasting results</strong> by staying out of the way while being available where you need it.</p>

<h3 id="why-should-you-consider-giving-lifepace-a-try"><strong>Why should you consider giving LifePace a try?</strong></h3>

<p>You can <a href="https://apps.apple.com/us/app/lifepace-habit-streaks-tracker/id6751773159"><strong>download LifePace today on the App Store for free</strong></a>, and you really should, because <strong>consistency is the foundation of real progress</strong>.</p>

<p>Big changes don’t come from sudden leaps, but from the small steps we repeat daily; any software developer can tell you that’s very true: you show up every day and move the needle a little bit, <a href="https://www.reddit.com/r/getdisciplined/comments/1q96b5/comment/cdah4af/">no 0 days</a>.</p>

<p>LifePace is designed to make taking those daily steps easier:</p>

<ul>
  <li><strong>Human streaks</strong>: celebrate consistency without punishing the occasional skip.</li>
  <li><strong>Optional Hard Mode</strong>: for stricter goals that don’t allow slips (for instance, when fighting addiction).</li>
  <li><strong>Smart schedules &amp; reminders</strong>: customisable nudges that actually help, not overwhelm.</li>
  <li><strong>Widgets &amp; complications everywhere, plus Siri &amp; Shortcuts</strong> as first class citizens: check and complete habits everywhere, from the Lock Screen, Home Screen, Control Center, Apple Watch and embed actions into your personal automations.</li>
  <li><strong>Private by design</strong>: iCloud sync, optional Face ID unlock, no ads, no analytics.</li>
  <li><strong>Apple Intelligence</strong>: on-device summaries and habit suggestions, with a toggle to turn it off.</li>
</ul>

<p>From day one, LifePace works seamlessly on <strong>iPhone, iPad, Mac, and Apple Watch</strong>.</p>

<h3 id="the-design"><strong>The design</strong></h3>

<p>I like to say LifePace has <em>the right amount</em> of <strong>Liquid Glass</strong> and local <strong>Apple Intelligence</strong>: the interface is modern and motivating without being too much, while on-device foundation models provide summaries and suggestions you can actually use.</p>

<p>You can choose between <strong>List</strong> and <strong>Grid</strong> views, enjoy clear stats and graphs, and rely on subtle haptics and sounds that make every completion satisfying. Above all, interactions are immediate and frictionless: a single tap to complete (double-tap on grids), with quick access to your full history.</p>

<h3 id="just-the-beginning"><strong>Just the beginning</strong></h3>

<p>LifePace 1.0 launches alongside iOS 26 and macOS Tahoe on <strong>Monday, September 15</strong>.</p>

<p>It’s free to try (track 1 habit) with a fair <strong>Pro upgrade</strong> for unlimited habits: you can choose your level of commitment with a yearly subscription and a lifetime unlock.</p>

<p>Today is just the start, and I’m excited to keep improving LifePace with your feedback.</p>

<p>Launching a new app is always both exciting and a little terrifying: you spend <em>so</em> many hours designing, coding, testing, polishing… and then you press “release” and hope someone notices. If you’re reading this, it means you did, and I couldn’t be more grateful.</p>

<p>I’d love to hear your thoughts about LifePace! Feedback is <a href="mailto:support@cdf1982.com">always welcome</a>, and if you enjoy the app, a 5-stars review on the App Store goes a long way in helping an indie dev like me.</p>

<p><a href="https://apps.apple.com/us/app/lifepace-habit-streaks-tracker/id6751773159"><strong>Download LifePace today on the App Store</strong></a> and start building habits that last!</p>]]></content><author><name>Cesare Forelli</name></author><category term="lifepace" /><summary type="html"><![CDATA[LifePace is my new habit tracker for iOS 26, iPadOS 26, macOS Tahoe and Apple Watch]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://cdf1982.com/assets/images/lifepace/LifePace.png" /><media:content medium="image" url="https://cdf1982.com/assets/images/lifepace/LifePace.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">GlanceCam’s 7th birthday, a big announcement and version 4.5 with Alternate Glances</title><link href="https://cdf1982.com/2025/03/29/glancecam_is_7_years_old_and_ios_is_coming.html" rel="alternate" type="text/html" title="GlanceCam’s 7th birthday, a big announcement and version 4.5 with Alternate Glances" /><published>2025-03-29T00:00:00+00:00</published><updated>2025-03-29T00:00:00+00:00</updated><id>https://cdf1982.com/2025/03/29/glancecam_is_7_years_old_and_ios_is_coming</id><content type="html" xml:base="https://cdf1982.com/2025/03/29/glancecam_is_7_years_old_and_ios_is_coming.html"><![CDATA[<p><b>7 years ago today, an <a href="https://www.glancecam.app">IP camera viewer</a> <em>you might know</em> debuted in the <a href="https://itunes.apple.com/us/app/glancecam-ip-webcam-viewer/id1360797896?l=it&amp;ls=1&amp;mt=12">Mac App Store</a></b>.</p>

<p>Back then, I would have never imagined many were looking for a native, privacy-focused app like the one I had built, and I want to take a moment today to <b>thank you all for your support</b>: your initial purchase, nice App Store reviews, upgrades to GlanceCam Pro, tips and great suggestions made it possible for me to keep working on GlanceCam and make it better, update after update <i>(this is the 42nd, and it brings a much-requested feature, as you’ll see below)</i>.</p>

<p>Rest assured that, with your support, <b>my plan is to keep GlanceCam as the best IP camera viewer for Mac for many years to come</b>: I have so many ideas, the limit is just time!</p>

<p>And what better day for an official announcement?</p>

<p>Many of you asked for it, so in the last year I started building from scratch a <b>new GlanceCam for iPhone, iPad and Apple Watch</b> (and possibly Apple TV, we’ll see ;).</p>

<p>This new project doesn’t share a single line of code with GlanceCam for Mac: much like the GlanceCam you know is made to be an unobtrusive presence on your Desktop throughout the day, the mobile versions are designed to take advantage of their platforms, which mostly means getting in and out of them as quickly as possible.</p>

<p>I’m very proud of the work done so far, but the new app is not ready to ship yet: GlanceCam for iPhone, iPad and Apple Watch will be <b>available later this year as a single separate subscription</b>, distinct from the Mac version of GlanceCam given the independent code-bases and very different feature sets, and I think you’ll love it.</p>

<p>I also don’t want to leave a trace of doubt: <b>GlanceCam for Mac is not going anywhere and is still my main focus<b>, being the app I personally use all day, every day, to look at my cameras; there’s a lot of improvements planned for the coming months, starting today with version 4.5:</b></b></p>

<p>1 - <b>Glances can now have a designated “Alternate”.</b></p>

<p>A frequent feature request is to have a way to toggle between the SD and HD streams of the same camera.
I think what ships today is more versatile: each camera can have an optional “Alternate” - another Glance with a different configuration (like stream quality or type of network access) for the same camera. And Alternates are none other than other Glances already in your list.</p>

<p>You can quickly switch between a Glance and its Alternate by pressing the A key, or the button that appears next to the list of cameras inside the window when an Alternate has been set.</p>

<p>As mentioned, a common use case is having two Glances for the same camera: one configured for SD streaming and another for HD; by setting the HD Glance as the Alternate of the SD one, you can easily toggle between quality levels. But you get to keep two separate entries, allowing quick switching with keyboard shortcuts, use in GlanceGrids, Applescript automations, and so on.</p>

<p>This feature is also useful when you need both LAN and Internet access configurations for a camera, allowing quick switching between connection types depending on where you are.</p>

<p>Alternates are completely optional and work only in single-camera windows (they’re not available in GlanceGrids).</p>

<p>If you think they can fit your workflow, you can configure them in Settings, by clicking the Set Alternate button next to the camera name and following the simple instructions on screen.</p>

<p>When you set an Alternate relationship, it works both ways automatically - if Glance 2 is set as the Alternate for Glance 1, you can toggle between them in either direction.</p>

<p>You even have the option to switch to the Alternate automatically when entering full screen, which is kind of neat if you want to keep the low-resolution stream when the window is small, and get the maximum resolution when you double-click the window to send that camera full-screen. And I know what you’re going to ask, what about Insta-zoom? I tried, and the result wasn’t good enough: when switching to an Alternate, the camera must reload, and that takes time, so this feature doesn’t really fit that use case well.</p>

<p>2 - GlanceCam’s 1…9 single-key shortcuts are the quickest way to switch between your Glances, but are inherently limited to the first nine cameras. Now you can quickly switch to the cameras between 10 and 19 with the Shift key + the Glance number MINUS 10 (Shift-0 for camera 10, Shift-1 for camera 11, and so on); and why stop there? Control+Shift lets you access cameras 20 (Control-Shift-0) through 29 (Control-Shift-9). Hat tip to John, one of the first GlanceCam Users, for asking for a way to quickly access a large number of cameras!</p>

<p>3 - Roll-up, the niche feature of GlanceCam that resembles WindowShade on classic Mac OS, letting you, ahem, “roll-up” a window with the R key, leaving only the title bar visible until the mouse pointer enters its area, had a couple bugs in Sequoia that have now been evicted.</p>

<p><b>If you want to celebrate GlanceCam’s birthday, a 5-star review, the upgrade to GlanceCam Pro if you haven’t yet unlocked the most advanced features or a generous tip would mean the world to me and help keep development going</b>… and as always, if you have any suggestions or need assistance, I’m <a href="mailto:support@cdf1982.com">here</a> for you!</p>]]></content><author><name>Cesare Forelli</name></author><category term="glancecam" /><summary type="html"><![CDATA[GlanceCam is still the best IP camera viewer for Mac, and soon will expand to iOS, iPadOS and Apple Watch]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://cdf1982.com/assets/images/blog/2019-03-29-glancecam_is_one_year_old/glancecam_birthday.png" /><media:content medium="image" url="https://cdf1982.com/assets/images/blog/2019-03-29-glancecam_is_one_year_old/glancecam_birthday.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Your in-app purchase has been returned</title><link href="https://cdf1982.com/2025/02/27/your_in_app_purchase_has_been_returned.html" rel="alternate" type="text/html" title="Your in-app purchase has been returned" /><published>2025-02-27T00:00:00+00:00</published><updated>2025-02-27T00:00:00+00:00</updated><id>https://cdf1982.com/2025/02/27/your_in_app_purchase_has_been_returned</id><content type="html" xml:base="https://cdf1982.com/2025/02/27/your_in_app_purchase_has_been_returned.html"><![CDATA[<p>I’m re-posting here a reply I sent to a Stack Overflow <a href="https://stackoverflow.com/questions/47908871/unable-to-resubmit-in-app-purchase-for-review/">question</a> from 2017, recounting my journey after receiving <em>the most confusing</em> email from App Review:</p>

<blockquote>
  <p>Your in-app purchase has been returned. Fix the marked items and submit it again. For more information, see the Notes from App Review.</p>
</blockquote>

<p>The confusing part was the bold, wrong part below:</p>

<blockquote>
  <p>We have returned your in-app purchase products to you <strong>as the required binary was not submitted</strong>. When you are ready to submit the binary, please resubmit the in-app purchase products with the binary.</p>
</blockquote>

<p>This ordeal happened during the submission process of the 1.0 version of my new app <strong><a href="https://cdf1982.com/sussurro-whisper-ai-transcription.html">Sussurro - Speech to Yext AI</a></strong>.
I’ve yet to blog about it, but for now just know that it is useful if you want to use <strong>Whisper text transcription in the most private way possible on iPhone, iPad and Mac</strong>, and that you can already <strong><a href="https://apps.apple.com/us/app/sussurro-speech-to-text-ai/id6742109110">get it</a> for free</strong> <em>(with a very inexpensive one-time unlock in the sea of weekly subscriptions that is this category)</em> from the App Store!</p>

<p>Here’s how to resolve this rejection, copied-and-pasted from my <a href="https://stackoverflow.com/a/79471937/3765705">SO reply</a>:</p>

<hr />

<p>This question from 2017 was <strong>very much still relevant for me in 2025</strong> and I thought I’d recap what happened to my app and how I finally got to approval.</p>

<p><strong>TLDR</strong>: 7 years old @l-l suggestion to <strong>leave a note to the app reviewer</strong> still does the trick.</p>

<p><strong>Long version</strong> with every step taken, including those that are very specific to my SwiftUI multiplatform app <em>(for which, much like Catalyst, you have to send two separate submissions)</em> that will hardly be relevant to most, but can be ignored:</p>

<ul>
  <li>1.0 app submitted for review, both for iOS and macOS;</li>
  <li>New <em>(duh, can’t submit the first IAP without a new app version)</em> one-time purchase also submitted at the same time, <strong>specifically toggling its submission together with Mac app’s binary in App Store Connect</strong> <em>(on the page where you add all the metadata, screenshots, select the binary)</em>.</li>
  <li>Mac app enters review and is rejected <em>(dumb metadata mistake on my part, shocker)</em>; iOS not in review yet.</li>
  <li>At this point, I had the rejected app, so I took a chance to fix a bug and submit a new binary together with the metadata fix.</li>
  <li>Interestingly, <strong>in the same Connect page where previously I could select to <em>embed</em> the IAP with the app submission, that section was now <em>(and will be for the rest of this journey)</em> missing</strong>; I assumed the in-app purchase would be still in the reviewer’s queue and I submit the new build.</li>
  <li>The Mac app is rejected because the reviewer cannot load the IAP.</li>
  <li>I check my IAP code long and hard <em>(detour: test with both the .storekit file and, essential, in what they call “sandbox” production, i.e. a specific sandbox account you can add in App Store Connect and specify in the Developer settings of the device)</em> and all seems good.</li>
  <li>I change the IAP metadata <em>(you’ll find suggested online to edit the localisation and revert to re-enable the submission button for the IAP; that seems to work)</em> and reply to the app reviewer with a message, so the review can resume.</li>
  <li>The Mac app is rejected for a valid technical reason <em>(forgot a menu item to reopen the main window when closed)</em>, and I am not told if the IAP was there or not.</li>
  <li>I try to ask about that, but I don’t get a reply in the following hours and this is taking too long.</li>
  <li>I fix the bug and submit the third build; again, no way to specify anything about the IAP.</li>
  <li>Mac app enters review again.</li>
  <li>A couple hours later I get the same “helpful” email @gerbil got (<em>“Your in-app purchase has been returned”</em>).</li>
  <li>I check Connect and the Mac app is still in review, while the IAP section shows the most confusing error message of my life: <em>“We have returned your in-app purchase products to you as the required binary was not submitted. When you are ready to submit the binary, please resubmit the in-app purchase products with the binary.”</em>
[My confusion obviously comes from the fact that, without submitting an app binary (which indeed was in review), with a 1.0 app you cannot submit an IAP without attaching it to a new app submission, so what I was supposed to do?]</li>
  <li>Most importantly, at this stage I cannot communicate with the app reviewer because, while the app is in review, the “messages” section is not available.</li>
  <li>I looked online and found little help, apart from this SO post.</li>
  <li>So, after a few hours with the Mac app still in review, I decided to reject it myself.</li>
  <li>To avoid confusion, I also removed from review the separate iOS submission, which still had to start the review process; this <em>won’t be relevant to most people</em>, but in hindsight dealing with one app review at a time seems wise, though inefficient in terms of time.</li>
  <li>Then, I submitted the same build again, again without the ability to add the IAP from where I originally could.</li>
  <li>Most importantly, in the app review notes I wrote this: <strong>Thank you for reviewing my app and the com.xxx.xxx.ProForever in-app purchase that is ALSO currently waiting for review.</strong></li>
  <li>A few hours pass and the app enters review; minutes later, Mac app is approved, along the IAP.</li>
  <li>At this point, I re-submit the iOS app with a note for the reviewer saying the Mac app was just approved with the (shared) IAP.</li>
  <li>iOS app enters and passes review.</li>
  <li>Success.</li>
</ul>

<p>To be clear, <strong>there were mistakes on my part</strong> that lead to two appropriate rejections from app review (the metadata and menu item one).</p>

<p>Nevertheless, <strong>communication from app review is still barebones to say the least</strong>, some automated messages are downright wrong on top of confusing (I’m thinking about the one which started this SO post 8 years ago), the fact that there are moments in which you need to ask them something and can’t because the app is not rejected is downright frustrating, and the App Store Connect UI for attaching IAPs to builds is a ghost you only get to see once.</p>

<p>So, <strong>if you find yourself in a similar scenario, reject your app yourself, put the IAP back in the yellow state, and resubmit with a love letter to the app reviewer asking to also look at the IAP that is sitting in their queue</strong>.</p>

<p>Hope that knowing this is still relevant in 2025 saves a few hours to others. <em>[hence this repost on my blog]</em></p>]]></content><author><name>Cesare Forelli</name></author><category term="dev" /><category term="sussurro" /><summary type="html"><![CDATA[How I resolved an app review rejection for Sussurro Whisper speech to text AI transcription]]></summary></entry><entry><title type="html">Best of 2024</title><link href="https://cdf1982.com/2025/01/01/best_of_2024.html" rel="alternate" type="text/html" title="Best of 2024" /><published>2025-01-01T00:00:00+00:00</published><updated>2025-01-01T00:00:00+00:00</updated><id>https://cdf1982.com/2025/01/01/best_of_2024</id><content type="html" xml:base="https://cdf1982.com/2025/01/01/best_of_2024.html"><![CDATA[<p>A bit later than <em><a href="https://cdf1982.com/tag/best-of-the-year">usual</a></em> here’s my best-of-the-year post.</p>

<p>Same categories from previous years and no affiliate links; I’m in a bit of a rush, so just the list of things I really liked this year, without comments:</p>

<p><strong>Best song</strong>: <a href="https://music.apple.com/it/album/full-of-life/1675341859?i=1675342966">Full of Life</a> from Christine and the Queens</p>

<p><strong>Best album</strong>: <a href="https://music.apple.com/it/album/the-tortured-poets-department/1736268193">The Tortured Poets Department</a> from Taylor Swift</p>

<p><strong>Best book</strong>: Lots of Micheal Connelly, Patterson and Grisham for me this year, and really no “best” award to give out…</p>

<p><strong>Best movie</strong>: <a href="https://www.imdb.com/it/title/tt15398776/?ref_=fn_all_ttl_1">Oppenheimer</a></p>

<p><strong>Best TV show</strong>: <a href="https://www.imdb.com/it/title/tt2805096/?ref_=rt_t_2">Chicago P.D.</a></p>

<p><strong>Best podcast</strong>: <a href="https://thisislovepodcast.com/episode-81-tau-10-8">This is Love episode 81 - Tau = 10.8</a></p>

<p><strong>Best article I read</strong>: <a href="https://www.theatlantic.com/family/archive/2022/09/what-dogs-know-about-people/671454/">What Do Dogs Know About Us</a></p>

<p><strong>Best Mac app</strong>: <a href="https://goodlinks.app">GoodLinks</a></p>

<p><strong>Best iOS app</strong>: <a href="https://github.com/fer0n/Unwatched">Unwatched</a></p>

<p><strong>Best videogame</strong>: <a href="https://store.steampowered.com/app/1954200/Kena_Bridge_of_Spirits/">Kena: Bridge of Spirits</a></p>

<p><strong>Best video</strong>: <a href="https://www.youtube.com/watch?v=w4FB9Omjn94&amp;list=LL&amp;index=85">This Beaver Dam is So Huge, You Can See It from Space</a></p>

<p>Hopefully I linked to something interesting for you to explore… <strong>Happy 2025! 🥂</strong></p>]]></content><author><name>Cesare Forelli</name></author><category term="best-of-the-year" /><summary type="html"><![CDATA[A bit later than usual here’s my best-of-the-year post.]]></summary></entry><entry><title type="html">600</title><link href="https://cdf1982.com/2024/11/04/600.html" rel="alternate" type="text/html" title="600" /><published>2024-11-04T00:00:00+00:00</published><updated>2024-11-04T00:00:00+00:00</updated><id>https://cdf1982.com/2024/11/04/600</id><content type="html" xml:base="https://cdf1982.com/2024/11/04/600.html"><![CDATA[<p>About 11 months after the <a href="https://cdf1982.com/2023/11/30/500.html">previous milestone</a>, my IP camera viewer for Mac, <a href="https://www.glancecam.app">GlanceCam</a>, <strong>reached 600 Mac App Store ratings today</strong>.</p>

<p>While the average rating in that period has been 4.47, numbers are “sticky”, so the overall average hasn’t really moved: it was and still is 4.2 stars. Which is honestly pretty good considering the niche the app is in and the technical barrier configuring cameras sometimes poses.</p>

<p>I want to thank all Users coming along for this journey, taking the time to leave such nice and encouraging reviews, and often provide great suggestions for new features</p>

<p>To the next 100 ratings!</p>]]></content><author><name>Cesare Forelli</name></author><category term="glancecam" /><summary type="html"><![CDATA[About 11 months after the previous milestone, my IP camera viewer for Mac, GlanceCam, reached 600 Mac App Store ratings today.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://cdf1982.com/assets/images/blog/2024-11-04-600/600-glancecam-ratings.png" /><media:content medium="image" url="https://cdf1982.com/assets/images/blog/2024-11-04-600/600-glancecam-ratings.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">FB15451383 - Feedback about the Feedback system</title><link href="https://cdf1982.com/2024/10/10/FB15451383_feedback_about_feedbacks.html" rel="alternate" type="text/html" title="FB15451383 - Feedback about the Feedback system" /><published>2024-10-10T00:00:00+00:00</published><updated>2024-10-10T00:00:00+00:00</updated><id>https://cdf1982.com/2024/10/10/FB15451383_feedback_about_feedbacks</id><content type="html" xml:base="https://cdf1982.com/2024/10/10/FB15451383_feedback_about_feedbacks.html"><![CDATA[<p>On September 14, I turned an idea I’ve cultivated for a while into <a href="https://iosdev.space/@cdf1982/113145956930957925">this post</a> on Mastodon:</p>

<blockquote>
  <p>📣 Developers in the Apple community, please help me!</p>

  <p>I want to file a constructive Feedback to Apple about the developer experience with the Feedback process itself (very meta, I know), and I need yours!</p>

  <p>5 quick &amp; unbiased questions, please 🙏 answer them now: https://it.surveymonkey.com/r/V8FS7KR</p>

  <p>Boosts are <em>very much</em> appreciated; the survey will collect answers for 2 weeks, then I’ll write the FB and share it here as well, so you can dupe it if you want.</p>
</blockquote>

<p>Thanks to some boosts to that post and mostly to Micheal Tsai <a href="https://mjtsai.com/blog/2024/09/18/feedback-feedback/">linking to the survey</a> on his invaluable blog, I was able to collect 129 answers over the two weeks it was open for submissions.</p>

<p>Then things went a bit crazy (<em><a href="https://iosdev.space/@cdf1982/113164866859627559">thanks, Sequoia Local Network access</a></em>) and it took me longer than I originally expected to actually analyse the data and file the Feedback to Apple… but today I finally did (<a href="/assets/images/blog/2024-10-10-FB15451383/FB15451383.png">screenshot</a>), and below you can find the whole submission and attachments.</p>

<p>I hope to have been able to honor the collective effort it took - <strong>I cannot thank the participants enough</strong> – in the synthesis below, and please, if you agree with the sentiment and intention, <strong>feel free to dupe it</strong>!</p>

<hr />

<h2 id="fb15451383--feedback-about-the-feedback-system">FB15451383 – Feedback about the Feedback system</h2>

<p>TLDR: Feedbacks are essential for software quality, but developers often express varying levels of dissatisfaction with the process, with some opting out from ever filing reports.
My purpose here is to share with you the perceived experience and suggestions that 129 fellow developers provided by answering a 5-question survey I prepared focusing on the recent beta season. While the number of participants is small compared to the size of the Apple development community, their answers provide valuable insights and suggestions, for your evaluation and hopefully adoption when deemed useful.
Attached you’ll find the survey results and at the end I’ll include a summary of the most common and actionable recommendations emerged from this crowdsourced effort.</p>

<hr />

<p>Hi and thank you for reading this “Feedback about the Feedback system”; I am submitting it hoping to provide an indie developers’ point of view and some actionable improvement suggestions.</p>

<p>In every interaction I have ever had with Apple Engineers online, it’s clear they strongly believe in, and actively support, the Feedback system, encouraging developers to submit issues and suggestions.
Indeed, a healthy Feedback flow is a key element to ensure ever-increasing software quality, to the benefit of all parties involved: Users, Apple, and third-party developers like myself.</p>

<p>On the other hand, inside my online developer community is not uncommon to read or hear that filing feedbacks “is not worth the time” anymore; I especially had the impression of this sentiment spreading during this summer’s beta cycle (just <a href="https://mastodon.social/@bazscott/112934360869002900">one example</a>).</p>

<p>With time being the scarcest resource, I think it’s reasonable for an indie developer to evaluate if the time invested in filing Feedbacks produces some return, so that kind of sentiment can damage the number of Feedbacks filed, to the detriment of overall software quality.</p>

<p>To try objectively measuring the level of satisfaction with the Feedback process and collect suggestions, I prepared and shared online – initially <a href="https://iosdev.space/@cdf1982/113145956930957925">on Mastodon</a>, then a boost of visibility came from  Micheal Tsai’s <a href="https://mjtsai.com/blog/2024/09/18/feedback-feedback/">blog</a> sharing it – a 5-question survey which focused in particular on the summer beta period, after WWDC 2024.</p>

<p>The survey was hosted on SurveyMonkey, to ensure unique answers, and accepted submissions for two weeks (between September 16 and September 30, 2024); it was completed by 129 people, all anonymous. The questions were the following:</p>

<ol>
  <li>Since WWDC began on June 10, how many Feedbacks have you filed to Apple?   <em>[possible answers: 0; 1…4; 5…9; 10…19; 20+]</em></li>
  <li>What percentage of the Feedbacks you have filed has received some form of acknowledgment* from Apple? (*acknowledgment: follow-up questions, requests for sysdumps, being closed, marked as duplicate, etc; anything besides leaving the Feedback open without any reaction)   <em>[possible answers: None; Less than 20%; 20÷39%; 40÷59%; 60÷79%; 80÷100%]</em></li>
  <li>How would you rate your experience with Feedbacks filed this Summer?   <em>[possible answers: 5 to 1 star]</em></li>
  <li>How would you rate your overall experience with the Feedback process in 2023 and 2024?   <em>[possible answers: 5 to 1 star]</em></li>
  <li>Which of the following things could improve your experience with the Feedback process, based on your experience this summer? Select all that apply, or none if you’re satisfied with the process. You can also provide additional suggestions (please do!).   <em>[possible answers: Apple acknowledging my Feedbacks with follow-up questions; Knowing that my Feedback has been read by a human; If my Feedback is marked as duplicate, how many duplicates are there?; Other (please specify)]</em></li>
</ol>

<p>Attached you can find the screenshots from Survey Monkey displaying the answers to each question; the images named <a href="/assets/images/blog/2024-10-10-FB15451383/Question1.png">Question1</a>, <a href="/assets/images/blog/2024-10-10-FB15451383/Question2.png">Question2</a>, <a href="/assets/images/blog/2024-10-10-FB15451383/Question3.png">Question3</a> and <a href="/assets/images/blog/2024-10-10-FB15451383/Question4.png">Question4</a> contain the “raw data”, while <a href="/assets/images/blog/2024-10-10-FB15451383/Question5.pdf">Question5</a>’s PDF also includes the 36 “open answer” suggestions for improving the Feedback system.</p>

<p>The answers are self-explanatory and it doesn’t make sense for me to summarise each question’s results: the perception among the participants is “not great”.</p>

<p>I will point out that while analysing the data, I found more value in excluding the 22 surveys submitted by people who declared they didn’t file a single Feedback during the last beta period: this leaves a sample of 107 developers who actively filed Feedbacks (69 between 1 and 4, 38 at least 5) and among them, 63% said they haven’t received any form of acknowledgment from Apple; it didn’t then surprise me that, in this subset of 107 “active filers”, 69% rated their recent experience 1 star and only 14 people gave it a sufficient rating (3 or 4).
Indeed, the average star rating (1.49 for the recent experience, 1,47 for the last two years) seems to confirm the overall perception of at least a small (but not insignificantly small) part of the developer community is that the process is not working at its best.
The attached files named <a href="/assets/images/blog/2024-10-10-FB15451383/Question1_active.png">Question1_active</a>, <a href="/assets/images/blog/2024-10-10-FB15451383/Question2_active.png">Question2_active</a>, <a href="/assets/images/blog/2024-10-10-FB15451383/Question3_active.png">Question3_active</a>, <a href="/assets/images/blog/2024-10-10-FB15451383/Question4_active.png">Question4_active</a> and <a href="/assets/images/blog/2024-10-10-FB15451383/Question5_active.pdf">Question5_active</a> include the data of the aforementioned segment of 107 Users who filed at least one Feedback this summer.</p>

<p>Finally, I think the most useful thing for me to do is to focus on the answers to question 5, which was a “what can improve the feedback process for me as a developer” question; it offered a few choice answers I thought could make a difference in developers’ perception of the process, plus open answers; indeed, the possible answers I provided seemed popular, with “Knowing that my Feedback has been read by a human” being selected by 90% of respondents, “Apple acknowledging my Feedbacks with follow-up questions” by 82% and “If my Feedback is marked as duplicate, how many duplicates are there?” by 77%. These are certainly things the sample would like to see implemented.</p>

<p>In the file named “<a href="/assets/images/blog/2024-10-10-FB15451383/open-answers.txt">open-answers</a>”, you’ll find all 36 suggestions in text format; I asked ChatGPT to summarise the most common themes among them, and it did a good job:</p>
<ul>
  <li>Users feel frustrated with the lack of updates or information when their feedback is marked as a duplicate, especially without access to the original report. Respondents want a clear reference to the master feedback and the ability to track it: they dislike being told their feedback is a duplicate without further information and feel it wastes their time if they can’t see the original report or follow up on it.</li>
  <li>Many users expressed frustration about reporting bugs that go unfixed for extended periods, even years. There’s a perception that some serious bugs are ignored and explicit frustration with responses that feel unhelpful, such as requests to retest issues that haven’t been fixed.</li>
</ul>

<p>I’ll close this with a personal consideration: it is not unreasonable for developers who file Feedbacks to desire at least an acknowledgment that what they invested time into has been read by another human being and to have some kind of visibility in the Duplicates queue. Please consider this.</p>

<p>Nothing in the survey results was really surprising to me, and I suspect it won’t be to you either, but possibly some changes like adding a “read status” to Feedback assistant and linking duplicates for progress tracking are changes that Apple can adopt with tangible effects in terms of developers satisfaction, which in turn can generate more commitment to bug reporting.</p>

<p>Thanks for reading and considering this, I hope you’ll find this somewhat useful!</p>

<p>–Cesare</p>]]></content><author><name>Cesare Forelli</name></author><summary type="html"><![CDATA[On September 14, I turned an idea I’ve cultivated for a while into this post on Mastodon:]]></summary></entry></feed>