600

November 4, 2024

About 11 months after the previous milestone, my IP camera viewer for Mac, GlanceCam, reached 600 Mac App Store ratings today.

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.

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

To the next 100 ratings!

500

November 30, 2023

Just taking a quick moment to acknowledge a significant milestone for GlanceCam: today my beloved IP camera viewer for Mac reached 500 Mac App Store ratings.

The 4.2 average might not sound like much, but for a niche and nerdy app that requires some network knowledge and a bit of setup – therefore getting the occasional 1-star from people who didn’t really read the label – is actually pretty good, and I feel great because it’s only going up.

It took 5.5 years to get here, but I am determined to get to 1.000 – with at least 4.5 stars average – by March 29, 2025, GlanceCam’s 7th birthday. A bit ambitious, but isn’t that what goals are for?

GlanceCam 4.1 for macOS Sonoma

September 26, 2023

The launch of GlanceCam 4.0 in June was so busy and intense that I didn’t find the time to properly blog about it: I didn’t want to just copy and paste the (very detailed) release notes, and I ended up writing nothing instead 😩.
So, if you want to learn more about GlanceGrids, Roll Up and the many other features and improvements introduced with that recent major release, I recommend you take a look at GlanceCam’s website, read the aforementioned release notes and watch the updated promo video:

Today,I’m here to tell you that GlanceCam is 100% ready on day one for macOS 14 Sonoma, thanks to the free 4.1 update that is already available on the Mac App Store.

To be honest, I’ve been running macOS betas all summer on my main machine and GlanceCam 4.0 was already working great without any tweak, but there’s always space to make things better, and with version 4.1 I’ve had the chance to do that and also add multiple User-requested features and improvements:

  • It’s now possible to customise the double-click behavior for GlanceGrids: by default, double-clicking a GlanceGrid window will maximise the whole grid full-screen, but from the GlanceGrid settings panel you can now change it to send full-screen the single camera below the mouse pointer, or spun up a separate window for the camera you’re double-clicking. I want to thank Tim and Mike for suggesting this feature.

  • Opening Settings from the gear icon in the upper right corner of a camera window now pre-selects that Glance in the Settings panel, instead of always defaulting to the first one in the list; special thanks to Dirk for recommending this feature, and also the next one!

  • GlanceCam Pro can now optionally rotate a video stream by 90°, 180° or 270°; to learn more about this capability and enable it, please click on Rotate stream in the Advanced stream tweaks of a camera in Settings.

  • Thanks to Timo-Pekka’s’ suggestion, there are 3 new AppleScript commands that extend the automation capabilities of GlanceCam: reload will, ahem, reload the stream in all windows, while stop playback and resume playback will allow to manually control playback for all the cameras that are currently streaming; please be advised that stopping/resuming a large number of cameras can occasionally cause issues. To learn more about GlanceCam’s AppleScript support and for syntax examples, please refer to the FAQs available in the Support menu > Frequently Asked Questions, and specifically to the “Is it possible to automate GlanceCam in some ways?” section.

  • Connected to the previous feature, there’s now a Stop / Resume Glance menu item to manually toggle on and off playback of the streaming of a single camera; this function can also be triggered by pressing the P key without modifiers while a window is active and might be useful if you don’t need to look at a camera for a while, but don’t want to close the window.

  • A bug when switching cameras while in full-screen, kindly reported by Cody, has been fixed.

  • The app now uses a new, future-proof approach for the Launch automatically at login feature; if you already had GlanceCam configured to open automatically when your Mac starts, that setting should migrate and work without the need for you to perform any action.

  • Starting with this release, GlanceCam adopts the latest version of the VLCKit video engine, with many improvements in performance and reliability.

As always, your feedback is what keeps development going (while your Pro upgrades and very kind tips keep the lights on 😉)!

State of my Apps, hot summer 2023 edition

September 6, 2023

When it comes to the summer period that is coming to an end, the work I was able to put into my apps was much less than I would have hoped for after WWDC wrapped up. The experience Riccardo Mori eloquently described in the first part of a recent blog post reflects mine as was as painful to read as it was to live: it’s been so excruciatingly hot in Northern Italy that I have been able to tackle much less than I usually do during the summer, instead devoting most on my energy to long, fun and very instagrammable walks with Milla early in the morning, before the sun took away my drive to do stuff.

On a professional level, the limited progress I feel I made is kind of a bummer, with the feeling of having misused many potential hours of work. Taking stock of the progress of all my projects is something that therefore makes sense for me to do right now, to hopefully have a more productive sprint before Christmas, which if we’re honest is just around the corner. If you’re interested in any of my apps, or curious about the indie experience’s ups and downs (consider this a down), this post might be of some interest to you as well.

Version 4.1 of my IP camera viewer GlanceCam is coming along and will be ready for Sonoma on day one; what matters the most to me is that the most used app I work on is already 100% compatible and reliable on the upcoming version of macOS (I’ve been running the betas on my main machine all summer to be sure there were no hiccups), but the feature-set of the next update will not be vast: a few bug fixes, additional AppleScript commands, customisable double-click behavior for GlanceGrids (send the whole grid full-screen, or just the selected camera, or again spin up a separate window for the selection) and 90/180/270° rotation support.
My hope for August was to also make progress on ONVIF support, but I haven’t been able to touch this extensive and challenging protocol.
I also had a wild dream to devote the hot months to GlanceCam for visionOS and did submit a request for a developer kit, but I haven’t heard back and that’s a sign I’m willing to accept that my focus should be devoted to more commercially viable projects in the near future.

Link HUB, my URL dashboard with widgets app, is also in a reasonably good place: I’ve been testing the app, widgets, and lock-screen widgets on iOS 17, iPadOS 17 and Sonoma and everything looks good, without the need of a compatibility update: there are scenarios, like with the Desktop widgets on macOS, where the default contrast might not be perfect depending on the wallpaper, but all widgets already offer a High contrast option that is sufficient to address those scenarios.
I’ve also thought about interactive widgets – clearly, the new shiny things this autumn – but honestly Link HUB is first and foremost a launcher, so I don’t really see a use case for them. Yet.

Thorough iOS 17 and iPadOS 17 testing also confirmed that both PhotosUpload, my niche app for uploading photos to FTP servers, and my iPhone pedometer Walk More are working fine without needing specific updates for the new OSes.

MousHero, the Safari extension to trigger URLs from the browser that I shipped just a few months ago works well on Sonoma and isn’t demanding much attention right now (or ever again? It’s basically done, which is not something I’m used to with my other projects), but I still have a challenging bug to investigate as soon as I will find the time: sometimes the contextual menu item is not displayed until the MousHero icon in the Safari menu bar is activated once, which is something I’ve never seen Safari extensions require and that doesn’t really make sense to me, happening in such random fashion.

Before discussing what’s next for my other apps, I would like to address another major hindrance to my productivity (and spirit), and something I’ve meant to write about in the hope of providing some help to fellow developers googling for a similar obscure issue: in early August I started experiencing a code-signing issue when trying to submit a minor update to one of my Mac apps (TameTime), which quickly turned into a major roadblock to shipping updates for 3 of my desktop projects, including GlanceCam!
What happened: when submitting any update from Xcode (14.3.0…15b8), the binaries successfully uploaded, but a few minutes later I systematically received an ITMS-90238: Invalid Signature + ITMS-90296: App sandbox not enabled rejection email that explicitly referred to the embedded helper app I’ve been using for years to provide a Launch at login functionality, and that obviously has always been sandboxed and signed.
I am sure this rejection is caused by server-side changes on Apple’s analysis of the binaries after submission because reverting to previously approved versions of those apps and submitting them with older versions of Xcode (i.e. 14.3.0) is still to this day causing the same delayed rejection.
This issue has been pretty scary (again, I wasn’t able to submit any updates to my apps) and demotivating, but it was also too hot to fight against a black box, so I kept circling around it hoping for a breakthrough, mostly focusing on a blog post from John Brayton that referred to a strikingly similar situation (same ITMS error codes emailed after successful uploads), even though in the end it proved to be a different problem from his.
Luckily, in the last couple of days (thanks to lower temperatures and renewed energy) I have been able to work around that rejected binaries issue: I still don’t know what changed in Apple’s SPI review process, but I figured that taking out my embedded helper app from the binaries and replacing my (established and so far perfectly fine) manual approach with a well respected and widely used library from Sindre Sorhus could help, and as a matter of fact it does; clearly the LaunchAtLogin library handles the procedure better, in a more compliant way than my previously fine – but likely borderline – approach.

This lateral success finally unlocked a couple of small updates to my other Mac apps that I had put together during my August holiday and that have been successfully approved by Apple today:

  • ClipBar 1.6 allows Users to manually reset the menu bar’s pasteboard preview (the utility’s purpose is to display what you last copied in the upper right corner of your screen, with some additional bells and whistles) by right-clicking on the app in the menu bar and selecting Clear ClipBar; this does not erase the content of your Mac’s pasteboard but removes the preview from the menu bar, which in some cases can be useful for privacy reasons. Special thanks to connectionfailure’s App Store review for suggesting the feature!

  • TameTime 1.5 also includes two new features, both recommended by Kenneth, whom I thank for helping me improve my utility to fight RSI and remember to move around: it’s now possible to manually reset the timer by clicking on TameTime in the menu bar and selecting Reset timer; most importantly, Users can now set custom and independent flash-screen messages for the Minor and Major alerts, or omit them completely and only have the 3-seconds dark screen as visual clue to take a break.

It’s a secret I cannot mention in their release notes, but both these apps also work great on Sonoma.
Sadly, though, there’s also a catch to the updates above (and most likely it will be an annoying reality that will also apply to GlanceCam 4.1): due to the fact that I needed to replace the Launch at login mechanism, Users who previously set those apps to open automatically when their Mac started will need to manually re-enable that behavior. I don’t love this, and I mention it in their release notes in the hope of causing limited disruption, but at least I was able to move past that super-worrying submission block and now these apps are “in the right section” of macOS Settings, which is more professional and therefore a welcome bonus at the end of this ordeal.

Finally, there should be another project on this list: early this summer I started working on Quee, an app that has been on my mind for years and a possible playground for improving my SwiftUI experience and especially testing out SwiftData; the idea behind Quee remains interesting to me, especially with the upcoming Journaling APIs, but I must admit development quickly stalled (the fact that SwiftData surprisingly doesn’t support inheritance didn’t help) and I have so much going on already that’s impossible to also devote time to a new project in the immediate future. Maybe if it had not been so hot…

GlanceCam is 5 year old 🎂🎂🎂🎂🎂

March 29, 2023

5 years is a long time to work on an app, and yet I feel very lucky that I still love devoting my early mornings and week-ends to building new features for GlanceCam, my IP camera viewer for Mac.

I believe the most fun is actually yet to come, with the new FlexiGlanceGrid mode debuting with GlanceCam 4 later this year, and many other nerdy and fun things I already have planned both for the standard and Pro versions. So much fun work ahead!

I’m especially thankful for the Users who chose GlanceCam and provided me invaluable feedback and support. I still find it incredible that something so niche I built for myself is used daily, and loved, by thousands of like-minded enthusiasts from all over this large, small world.

I appreciate you coming along for this journey and joining me wishing Happy Birthday, GlanceCam!

P.S. I had this banner image from the first birthday and seemed like a nice throwback to simpler times, but of course these days the app sports the much more cool app icon made by Becky for GlanceCam 3, not that original clumsy attempt ad graphic design…

A busy October for GlanceCam

November 1, 2022

Per the title, October has been a busy month for GlanceCam:

  • GlanceCam 3.5 took performance to the next level with Apple silicon support;
  • GlanceCam 3.5.1 fixed a couple small things, making possible to create new windows at the center of the active display;
  • GlanceCam 3.6 perfected the app behavior on Ventura, right on the new macOS launch day and added an amazing Zoom feature you can learn more about in the FAQs:
  • GlanceCam 3.6.1 restored the beloved Out of my Way magic trick on Ventura after a regression in macOS 13 caused it to stop working (FB11723708, if you happen to know someone in the AppKit team at Apple ;)

So, time to rest? Not at all 💪!

Let’s kick off 🎃 November 🎃 with a cool update meant specifically for GlanceCam Pro Users: Cycle mode is now available in GlanceCam 3.7, which you can already download from the Mac App Store!

Before I detail what Cycle mode is, rest assured lots more is coming to all GlanceCam Users soon, but it’s been a while since the last “Pro-only” advanced feature was added, and this is a good one.

First of all, thank you to James, Steve and Shawn, who have asked for a way to cycle through different cameras in a single window.

Cycle mode makes that possible: choose one of your windows and have it rotate some or all of your Glances (cameras) according to a time interval you define. This is especially useful with a large window or while the app is full screen. While only one window can be put in Cycle mode, you can still keep as many others “single camera” windows open while this rotation is enabled.

By default, all cameras are included in Cycle mode with a 30 seconds time interval dedicated to each one, but you are free to decide which Glances you want to include and for how long they should remain on screen. Intervals can be configured in the 10 to 60 seconds range, in steps of 10 seconds, and can be different between cameras included in the cycle. Please note that longer intervals are preferable, especially for remote cameras, as the timer starts when loading the stream begins, not when the image appears; so, if a camera takes 5 seconds to show the image and the cycle is set to 10 seconds, you’d only see the image for 5 seconds before switching to the next one.

You can enable Cycle mode by selecting the Glance menu > Enable Cycle mode, or by pressing the C key without modifiers while the window you want to enable it for is active; the same menu item or keyboard shortcut disables it, as it does saving any change to Settings or quitting GlanceCam (Cycle mode is not persisted between launches of the app).

Here’s an example of how Cycle mode can be used:

Let’s say you have 3 Glances configured; you might include camera 1 in Cycle mode and keep it visible for 30 seconds, exclude camera 2 and include camera 3 for 10 seconds. When you turn on Cycle mode, camera 1 and 3 will alternate, with Glance 1 remaining visible for 30 seconds and Glance 3 only for 10, with a total duration for the cycle of 40 seconds before it starts again.

I hope you’ll love this new feature… it’s already one of my favorites! You can check if you agree with me by downloading GlanceCam 3.7 right now.

As always, your feedback at support@cdf1982.com is what keeps development going (while your Pro upgrades and tips keep the lights on 😉)

Ventura updates for GlanceCam, Link HUB, ClipBar and TameTime, plus an iOS 16 update for PhotosUpload

October 23, 2022

I’m happy to announce that all my Mac apps have just been updated for macOS 13 Ventura, which launches tomorrow:

  • GlanceCam 3.6 works great on macOS 13 Ventura and is amazing in combination with Stage Manager, behaving exactly as you’d expect: with Always on Top enabled, your cameras remain visible in all Stages, just like they did (and do) with Spaces; if you don’t use Always on Top in combination with Stage Manager, GlanceCam behaves like all other apps, moving to the side when you switch applications… but your camera preview remains live on the left sidebar even when it’s not on the main stage!
    This version also introduces an optional Zoom feature that’s been requested by some Users a while back (thank you both for the suggestion and patience, Gretar and Olof!); you can find out more about how Zoom mode works in GlanceCam in the release notes.

  • Link HUB 2.2.1 has been tweaked to be the best links manager and launcher on the latest version of macOS.

  • ClipBar 1.4.2 is a minor update – just to smooth things out for Ventura – to my utility for viewing the content of your Pasteboard from the status bar.

  • TameTime 1.4.2 perfects macOS 13 compatibility of my status bar utility built for reminding you of taking regular breaks, so you don’t spend too much time sitting at your computer and risk compromising your health.

And since pushing 2 GlanceCam versions in one week, plus Ventura updates for all three other Mac apps currently in my portfolio wasn’t enough, PhotosUpload 1.4.1, my FTP uploader for iPhone and iPad, has been updated for iOS and iPadOS 16 too!

GlanceCam 3.5 for Apple silicon

October 12, 2022

After 👏 SO 👏 MUCH 👏 WORK 👏 GlanceCam 3.5 for Apple silicon is now available in the App Store!!

GlanceCam is a powerful and beloved IP Camera viewer for Mac:

This new release – the 24th free update since launch in 2018 – lays the foundations for the next 10+ years of GlanceCam.

The performance difference you’ll notice on new Macs proves the effort was worth it: CPU and RAM usage decrease significantly, while everything else works as reliably as you’re used to!

Please know it wasn’t for lack of trying that this major update didn’t ship earlier: while Rosetta2 granted excellent performances in the transition period, I’ve been at work on native support since Apple’s announcement, getting a DTK on day one. After many challenges, and thanks to the kind Beta Testers who helped me make this new version work great, the future of GlanceCam is brighter than ever.

As for new features, rest assured that with this major step forward finally in Users’ hands, plenty is coming!

You can download GlanceCam 3.5! now; if you’re already a User, it would mean the world to me if you took a moment to leave a 5-star review 😉 or maybe even consider going Pro if you aren’t already (or leave a tip if you are). And, as always, please don’t hesitate to get in touch: I love feedback and feature requests!

300

November 2, 2021

I haven’t blogged in a while, but a quick celebratory post is in order: today GlanceCam reached 300 ratings in the Mac App Store 🎉:

The average ratings value has been stable for quite some time. 4.1 is not where I’d want my main app to be, but a RTSP camera viewer is necessarily a bit technical to setup and therefore bound to have a few 1-stars ratings from Users who didn’t really read the App Store description or watch the video. Still, I’m confident to keep it grow over time.

Development of GlanceCam for Apple Silicon is ongoing, moving slower than I’d want due to a still-unfixed bug in VLCKit that it’s causing issues with the initial sizing of the streams, but I’m working on it and hopefully it won’t take too long for this highly anticipated version to ship (it won’t happen in November, though, as I am attempting a different kind of personal challenge this month… ✍️).

See you at 500! 😉

🚀 Introducing GlanceCam 3

March 11, 2021

Today marks an important milestone for my IP camera viewer for Mac: GlanceCam 3 is now available in the App Store! 🎉

Launching an update you’ve worked on for two years is a peculiar experience: it’s exciting to finally share something you’re proud of, it’s a relief to have those few frustrating moments finally behind you (it’s never all smooth sailing, isn’t it?), and it is also a bit terrifying to think all those hours of designing, coding, testing, making videos, timidly attempting some marketing and writing documentation might go unnoticed.

So, let’s take a deep breath and launch 🚀 GlanceCam 3: today is a big day and, since you are reading this, someone is noticing 🥰 grazie!

First, a 30 seconds introduction 🎬 to GlanceCam 3:

The new website glancecam.app also debuts today with lots details and screenshots.
There’s a Media Kit available to the Press and quite detailed release notes for those who want to know everything about the app.

A few key points about GlanceCam and its biggest update yet:

  • GlanceCam is a native IP camera viewer for Mac compatible with most models, because it supports standard streaming protocols.
    It’s a great way to stream in realtime without dealing with browsers, abandoned plugins and apps inspired by Windows 3.1 Hot Dog stand.

  • The app launched in 2018, costs $ 3.99 in the Mac App Store, received 20 free updates to date and is well liked in its small niche, with 215 App Store ratings averaging 4.1 stars as of today.

  • My focus for version 3 was to improve the first experience and configuration process, which inevitably is a bit technical because every camera manufacturer does things in their special way 🙄, while adding advanced features Users have been asking for (cough, multi-windows, cough).

  • With this update I am introducing GlanceCam Pro, a new optional tier for Users with advanced requirements.
    GlanceCam Pro is offered either as a life-time in-app purchase (buy once, keep it forever) at $ 22.99 or as a subscription at $ 8.99 per year; some Users strongly prefer one option over the other, so I made both available, but they share exactly the same feature-set:

    • Open as many cameras as you need in separate windows and independently resize and arrange them around your screen; their position is remembered when you relaunch the app, whenever technically possible (maybe 3% of the time macOS begs to differ, and macOS always wins… ;).
      Opening multiple cameras at the same time is by far what Users requested more often since launch, so it’s the tent-pole feature of GlanceCam 3 (and getting it right is the reason it took me 2 years to ship this update 🙃);
    • An optional Minimalistic user interface that hides everything but your camera when you’re not interacting with the app;
    • Custom aspect-ratios, including non-standard manual proportions;
    • Priority human support via email in less than 24 hours, Monday through Friday;
    • 14 funny alternative icons (most drawn by me, but you’ll certainly like those designed by my friends Becky Hansmeyer and Rob Poulter more!) are available while the app is running.
  • Obviously, GlanceCam Users who do not need such advanced features were also front and center in my mind the whole time, and the free update to the regular version is also a big one:

    • A new Preferences window makes the configuration process easier; I understand Preferences are often an afterthought, but for my app they are the first thing a User sees while dealing with the not-always-straightforward process of retrieving their camera parameters, so making them look better and actually simpler to use might be as important as multi-windows.
    • There’s a new, and gorgeous if I dare say so myself, app icon designed by my friend Becky; she did an amazing job, and you should buy her apps 😃!
    • Tooltips and help are everywhere, including in a new quick onboarding video (told you, I’m a videographer now 😎) that assists Users move their first steps in the configuration process; I am especially happy to have finally written extensive documentation in the form of Frequently Asked Questions;
    • Aspect-ratios are now auto-detected;
    • Insta-zoom (right-click and hold to temporarily maximise a camera), going in and out of full-screen and resizing in general are faster and more reliable (on ultra-wide screens too, now 😬);
    • One of the most essential features of GlanceCam, Always on top – a camera optionally hovering above all other windows – now has a (way less useful, IMHO) counterpart, but Users asked… you can now send a camera Behind everything. Like, behind your Desktop icons, at the same level of the background. Why, do you ask? I really don’t know, but I am only the carpenter here, and Users are always right.
  • Finally, there are a few obligatory 🐛🔫 & 🏋️‍♀️ (bug fixes and improvements).

It’s a substantial update, and I hope with all my heart Users will love it as much as I loved building it.

If you think GlanceCam 3 looks cool, please give it a boost 😺 on Product Hunt, making this launch day even more special!

Whenever you are a reader of my blog or new here (welcome, and please celebrate with me! 🥂), a long-time GlanceCam User who’s been waiting multi-windows for a while or again you’re just curious about IP cameras, I hope you’ll download GlanceCam 3 from the Mac App Store!

Finally, feedback is more than welcome. And 5-star reviews are great too 😉, if you are so inclined!

GlanceCam 2.10 with auto-reconnection & other neat tricks

June 7, 2020

I really need to start writing my announcement posts as soon as I hit submit in App Store Connect, because App Review did it again: GlanceCam 2.10, which I finished working on Saturday night, is already available for download as a free update.

I know this is not the multi-windows upgrade many Users are waiting for (I am very sorry, GlanceCam 3.0 is not 100% ready yet), but I didn’t want to hold back on some helpful features:

  • GlanceCam now tries to detect if the connection to a camera is disrupted and, instead of leaving a deceitful frozen image on-screen, it tries to reload the video stream 3 times over the next 90-ish seconds; if the connection cannot automatically be re-established, the User will know because the window will remain grey, with a small red warning, until it is manually reloaded. I think this is much better than believing a camera il working when it is not, and in the tests that myself and a few Users have done since January, it has worked very well, so the feature is on by default.

  • There are now “expert tweaks”, all coming from Users’ feedback and requests in the past few months (as Frasier would say, “I’m listening”), available in the app’s Preferences. These are not settings most Users will need to adjust, but can be very helpful for special setups and are especially neat because they don’t affect the entire app behaviour, but only specific cameras:

  1. For mirrored images, it is now possible to flip the stream vertically or horizontally (or both).

  2. By default, GlanceCam uses the RTSP over UDP protocol, which is perfect for most cameras and Users. For few Users who regularly experience some significant delay when initiating the connection to the camera, or for those who cannot establish a connection over a VPN (working from home, anybody?) or through a particularly aggressive firewall, I have added the option to enable RTSP over TCP, which in tests that myself and some Users have conducted in the last few months, could make a remarkable difference for both issues.

  3. For 4K camera Users who notice some frames dropped while being on a good reliable connection (LAN or fast WiFi, as dropped frames at 4K via Internet could be caused by the line speed), then it’s possible that increasing the video buffer could help keep the frame rate smooth at 4K. Now this option is available, though it won’t be necessary (and it is not recommended, because it necessarily increases the memory used by the app, even though GlanceCam remains super-efficient) for Users with 1080p or lower-resolution cameras, and also for 4K cameras with already smooth playback.

As always, feedback is more than welcome at support@cdf1982.com. Oh, 5 star reviews are great too 😃, if you are so inclined!

100

November 9, 2019

I feel like celebrating! 🎉

Today my IP camera viewer for macOS, GlanceCam, received its 100th rating in the App Store, a 5-star review:

For such a nerdy app, that requires Users to have some knowledge of their network and to customize URL strings in order to connect to almost every brand and model of IP camera out there, I think it’s a great average (and it the US App Store it’s even better at 4.2 stars with 45 ratings).

The 1-star reviews sting a lot, to be honest, but are to be expected because the app is not really plug and play, as I try to make clear before the purchase, in the App Store description.

To help make the camera manual configuration process easier, I reply to all reviews and support requests, usually in less 24 hours, volunteering to research the proper string for the specific camera a User owns; sometimes I can’t find it because the camera does not support standard protocols, other times people don’t get in touch at all, and in a few cases they didn’t read the app description in the first place and expected a different product, but hey, that not only happens in the App Store, but with every kind of product sale everywhere. In all these situations where I can’t help, I immediately point discontent Users towards Apple refund procedure, but the return rate for GlanceCam is very low, again a great result for this kind of application.

Overall I think GlanceCam has the most generous and supportive customers possible: having had a 100 people take the time to rate the app, and 36 of them to actually write a review, is such a privilege for an indie app developer, and I wanted to take the time to acknowledge that.

P.S. Today’s 5-star review renews GlanceCam’s most frequent feature request: “Really hoping the ability to view multiple cameras at the same time comes soon”. I’m not really ready to give a timeline for it (I’m trying to learn a page or two from this blog post from Brent Simmons), because work on this feature has proven time and again to be a lot longer and difficult than I expected, but I have a decent prototype working on my Mac, and GlanceCam 3.0 will certainly include multi-windows support when it ships, hopefully not too far in the future. Sorry I can only promise that it will come, but not how soon!

GlanceCam 2.9

October 28, 2019

GlanceCam 2.9 is now available in the App Store, less than a week after that version 2.8 shipped.

This release adds the ability to export your list of cameras and actions (Glances, in GlanceCam’s parlance) for backup and also for deploying the same set of cameras on multiple machines quickly and easily.

Obviously, since you can export, you can also import those files later or on different machines running GlanceCam; please, store your backups files safely, as they will include your devices IP addresses and credentials in human-readable format.

You can find Import Glances and Export Glances in the File menu and inside the app Preferences.

Under the hood this version also adopts a newer version of Swift, to future proof things even more.

A lot of work is going into GlanceCam’s development: this is the 16th free update in around a year and a half!

This week I also updated the app’s mini-site to streamline the description a bit and make it clear that DVR/NVRs are not supported; finally, I began writing a FAQs to help clarify some doubts perspective customers might have.

If GlanceCam provides you value, please consider leaving a 5 star review and, maybe, sending a tip (you can do so from the app Preferences). Thanks!

GlanceCam 2.8

October 24, 2019

GlanceCam 2.8 is now available in the App Store and brings improvements to the app’s automation capabilities:

  • The already existent URL scheme (glancecam://?camera=01, where 01 is the camera number as ordered in the app Preferences) now also works when the app is not running: it launches GlanceCam and then selects the camera you specified in the URL scheme.
  • There’s also a new action available via URL scheme: glancecam://?fullscreen=true (or false) sets the fullscreen mode of GlanceCam on and off; please be advised that this is not a toggle: if GlanceCam is already fullscreen and you ask it to enter it again, by design nothing will happen.
  • You can also combine multiple URL scheme actions in a single string: glancecam://?camera=02&fullscreen=true selects the second camera AND enters fullscreen… how convenient!
  • GlanceCam now supports AppleScript too, both for switching cameras and setting the fullscreen mode:
    tell application "GlanceCam"
      select camera 2
      set fullscreen true
    end tell
    

Shipping this update took longer than usual due to some hiccups in my code related to tips… a warm thank you goes to the very patient person (or persons) of Apple’s App Review who very gracefully waited for a bug to be squashed and to Matt, who once again helped me when I found myself out of my depth. Go take a sneak peak at his amazing Go editor for macOS, Chime! As much as you’ll want to, you can’t lay your hands on it yet, because it’s still in closed beta, but it looks amazing and it will be worth the wait.

GlanceCam compatibility issues with beta 8 of Catalina

September 14, 2019

Update 3 - Tuesday, September 24
Great news! macOS 10.15 Catalina beta 9, launched yesterday, completely fixed the compatibility issue that affected GlanceCam and other apps relying on OpenGL since with the previous beta 8.

Everything is fine as the currently shipping version of GlanceCam, 2.7, is already 100% compatible with macOS 10.15 Catalina; I’m so happy that the post below is now obsolete… 🥳

The past two weeks were a bit of a rollecoaster 🎢, but thanks to Apple fixing that scary beta 8 bug in no time, and also the help of friends old and new (a special thanks to Steve 🙏, he knows why), not only my app is now back to the usual reliability and compatibility (and I am proud that GlanceCam is compatible not only with the latest - even future - OSes, but that it also keeps support back to OS X 10.11), but it is in a much better position to leave behind OpenGL in a future release.

Just this morning, before knowing that beta 9 resolved the crash at its root, I had a breakthrough in the implementation of an alternative, Metal-based, engine for GlanceCam. I will keep working on this major migration, thankfully without the pressure of an upcoming crisis, but keeping it at high priority: I still see great value in leaving OpenGL behind before Apple decides that it really is time to let it go.

The fact that my app is 100% ready for Catalina is what I am here to write about, but there are a couple more thoughts I’d like to share:

  • Friends, file radars Bug Reports! I wasn’t very hopeful that a 🐛 appeared in beta 8 was going to be resolved before the official launch of Catalina, and obviously the fact that Apple applications were crashing helped a lot, but I’m sure that my report, together with the many others I’ve seen filed in the last ten days or so, helped significantly in escalating the priority of this crash.

  • Since in my previous update I mentioned an emergency app update I submitted to Apple to warn users before the launch of Catalina, I think it’s only fair to let you know that it did not pass App Review, as I honestly expected even before submitting it: you can’t mention a future release of macOS, no exceptions; you also can’t wait for the new OS to ship, because an app would not be approved if it crashes with the shipping version of macOS. Quite a catch 22, uh? But the App Review person I interacted with was very kind (dare I say he or she felt my pain? I dare, because they clearly did!) during the whole process, and it sparked an extended and helpful conversation 💯.

I’m leaving the original post and update 1 and 2 “for archive purposes”, but below this line, everything is now obsolete.


Update 2 - Wednesday, September 18
I have updates on multiple fronts about the crash described in the original post below:

First, I am aware of multiple Bug Reports filed to Apple in addition of mine (FB7276584): FB7253859, FB7283002, FB7265136, FB7281945. One of these reports yesterday received the following, somewhat encouraging, comment in Feedback Assistant:

Recent Similar Reports:More than 10
Resolution:Potential fix identified - For a future OS update

From that feedback we can think that Apple is aware of the issue and it is possible that a fix is coming, though it is unclear when (next beta? later?). It’s an encouraging development, but I still need to figure out something myself (VLCKit team, on their forum, also seemed “in stand-by” for a solution from Apple) in case the “future OS update” is too much in the future for my Users.

So, tonight I submitted GlanceCam 2.7.1 to App Review, which contains an explicit alert to users in the app description, the release notes and, most important, inside an in-app warning that will appear the first time users will launch GlanceCam after updating:

I am not sure App Review will approve an app that a) acknowledges the existence a future version of macOS and b) mentions the fact that it is currently incompatible with it. But I had to try, at least to start the conversation with the always kind and open to communication, in my experience, App Review Team and will let you know how it goes.

Third, I’m moving my first, timid steps with SGPlayer, the ffmpeg and Metal library that was recommended to me and seems very promising; a couple of days ago I did build a small prototype working with local videos, but not with RTSP yet, so there’s still a lot of work to do before I can know if this is a viable replacement of VLC, and honestly I wanted to get 2.7.1 out of the door first.

Last thing, I’m extracting the FAQs at the bottom of the original post below and move them, updated accordingly to the new informations that became available in the last few days, to a specific FAQs page, which is now also explicitly mentioned inside GlanceCam’s product page, so that prospective customers are informed in advance of the pending issue, before making a purchase.

The next update to this post will probably be published after Apple reviews version 2.7.1. As always, please don’t hesitate getting in touch at support@cdf1982.com.


Update 1 - Sunday, September 15
A slightly better day, thanks first and foremost to the warm support of nice people on Twitter! Steve Troughton-Smith in particular brought me hope with something actionable to try, pointing me to SGPlayer, a ffmpeg and Metal library that on paper seems a good candidate for replacing VLCKit.
Also important, given how soon Catalina will be in the hands of end-users, I’ve filed radar Feedback FB7276584 to Apple, with attached crash reports and a sample project that “reliably” crashes on Catalina beta 8, but is stable on previous versions of macOS. I really, really hope someone at Apple has time to look at it.


TLDR: Yesterday I found out that, in the latest beta 8 of macOS 10.15, my app GlanceCam crashes when switching camera stream. My tests show that this is caused by Catalina’s OpenGL support; I read online that the same crash is happening to other apps using OpenGL.
Below I try to describe all details of this complex situation in the most transparent way I’m capable of, and at the bottom of the post there’s a FAQ that every GlanceCam user or prospective customer should read.
This post and the FAQ will be updated whenever new details are available.
Hopefully I’ll be able to find a solution soon. In the meantime, I deeply apologize to all GlanceCam users. Please know that I am trying my best to resolve the issue, but it’s not clear to me how and when (days? weeks? worse?) I’ll be able to if Apple did actually intentionally disrupt OpenGL support and won’t fix it in the next release.
For any questions you might still have after reading this post, please get in touch at support@cdf1982.com.


This is not an easy post to write.

Soon after Apple introduced the first beta of macOS 10.15 Catalina, I installed it and thoroughly tested GlanceCam, my app that makes possible to monitor IP webcams directly from your Mac and works with almost every camera model without using their (often horrible) web interfaces. With much relief, after those tests I could confidently report that GlanceCam was compatible with the next release of macOS.

This remained true at least up to Catalina beta 5, in the early days of August: with each beta release, I kept testing GlanceCam and everything kept working properly.

Why test with every new beta? A new release of macOS was a bit stressful for me because:

  1. Just one year ago another app I introduced six months earlier, ContactsAMI, was basically put out of its misery by the fact that macOS 10.14 Mojave removed support for Contacts.app plugins, which were the way the app was providing most of its functionality.
  2. With Mojave, Apple announced that OpenGL support was deprecated in favor of their own framework Metal; under the hood, GlanceCam relies on VLCKit for the video playback, which in turn uses OpenGL, so I was on the lookout for possible problems. I was cautious, but wasn’t necessarily expecting any issue in this update cycle, since in most cases a deprecation does not mean that some functionality is immediately taken away: usually deprecated code keeps working for many years, and I was confident that in the meantime the amazing team behind VLCKit could figure out a transition to Metal (and I still am).

So, when I saw that 5 betas in a row did not break my beloved app, I relaxed a bit and got back to work on my long-term project for GlanceCam, multi-windows support, that I felt could come in version 3.0 as soon as mid October, after many months of development (I’m a self-taught programmer with a day job in a completely different field, so most coding for me happens very early in the mornings, in brief stretches).
Inspired by ATP’s episode 340 talk about RSI, a few weeks ago I also started a new project, TameTime: Mac awareness timer, that as of yesterday was planned to launch this month; it’s a tiny menu bar app that alerts you with multiple configurable visual and acustic clues when you sit at your computer for too long.

And sitting at my computer for a very long time is indeed something I now see in my future, because Friday I got a very kind email from a GlanceCam user reporting that, with macOS Catalina beta 8 introduced on September 10, GlanceCam was launching properly, but crashing as soon as he switched to a different camera.

Friday night I immediately installed Catalina beta 8 and was able to reproduce the crash when switching cameras. Every single time. And always with the same error in the crash report:

assertion failure: “((void *)0) == tsd->NSCurrentOpenGLContext” -> %lld

Test on Mojave? Everything’s fine.

I did not despair, though. I downloaded and compiled the newest release of VLCKit and built GlanceCam with it, using the latest Xcode beta, which is actually the Golden Master, just to be safe.

Same crash.

And it’s a bad one, because Xcode’s debugger does not point anywhere in my code, it just logs that the app was killed with one of the most generic and obscure error messages: “terminated due to signal 9”. Sometimes this error refers to memory leaks, but I’m 100% sure it’s not the case here, and actually the error 9 seems to just be a generic feedback that the app was terminated by the OS.

At this point I started feeling really uneasy; first I digged through the console for clues about the crash (something you do with signal 9 errors), finding none, and then I Googled that crash report error message, landing on a unique result for my search: a 4 days old post on Apple forums where users complain about the same crash in many other apps, starting with Apple’s own Final Cut Pro, and in general confirming my suspicion that the issue is with OpenGL compatibility in the latest beta 8 of Catalina.

I am now at the end of an exhausting Saturday and I have tried what follows:

  • Placed breakpoints everywhere in GlanceCam’s code to at least narrow down where the issue is; it’s now certain that it is triggered by a VLCKit method that handles playback, not by my own code.
  • Posted my experience in the same Apple forum mentioned above, asking for suggestions from other developers who also wrote there (no replies so far, everyone is just bummed because the latest beta broke their work tools);
  • Asked for help in the VLCKit forum, where I met the usual kindness, but at least for now had only a sad confirmation: since OpenGL is deprecated and they’re not sure things will improve without a Metal port that is not currently ready, there’s no immediate fix. Since we’re on a week-end, I still hope that the conversation on that forum will lead me to a solution or a temporary fix, especially given the fact that I was also able to regurarly crash VLC video player itself getting the same crash report error, so this will be a priority for them too.
  • Built the smallest video player app possible, a true VLCKit MVP just to test where the crash occurs without all the overhead that a complex project like GlanceCam obviously has; this actually helped narrow the crash at exactly one VLCKit-related command: when you stop the playback, the app immediately crashes. Thing is, you can’t have playback run forever, you need to stop when you switch to a different camera, the screensaver starts or you close the app, so I did indeed narrow down on the issue, but I’m not closer to an actual solution. If you’re a programmer, you can download the Xcode 11 MVP project here, complete with a sample video and the VLCKit library already compiled and linked, and have it crash on your instance of Catalina beta 8 as soon as you press the stop button after starting the playback; and, fellow programmer, if you have any idea, I can really use your help.

More important, I started drafting a Radar for Apple that will also include the sample project mentioned above sent Bug Report FB7276584 to Apple with attached crash reports and the sample project mentioned above: if the first betas did not present this crash, maybe they’re not planning to actually kill OpenGL off so soon; on the other hand, we’re so close to Catalina’s launch that I feel like a fix ready for the next beta or even day one is a bit unlikely.

A personal note: it is possible that I am overreacting – I’ve only been aware of this issue for less than 48 hours and I am now quite tired, so maybe I’ll figure something out soon and we’ll laught at this post – but at the time of this writing the problem appears to be quite complex: it touches the basic architecture of the operating system, not only of my app, and it seems caused by technical decisions / bugs mostly out of my control, so I feel the right thing to do is to publish this post right away, and maybe have soon good news to follow up with.


Having taken stock of the situation without sugarcoating things, the very last thing I’m doing today is to write an exhaustive disclaimer / FAQs document (that I am now posting only here on the blog, but in a few days will go on the GlanceCam product page as well if the situation does not improve) that is available and kept updated here.


Again, I am deeply sorry for any disruption this might cause to your workflow, if you were planning to install Catalina at launch or you are already using the betas. I’ll do anything I can to restore GlanceCam functionality for all users and to keep you posted.

GlanceCam and macOS 10.15 Catalina

June 6, 2019

I am happy to report that, after an extensive batch of tests on Beta 1, the current version of GlanceCam is already 100% compatible with the just announced new release of macOS, 10.15 Catalina.

🎂 GlanceCam is one year old! 🎂

March 29, 2019

One year ago today GlanceCam debuted in the Mac App Store, after just 3 weeks of very intense development at the most improbable hours (I have a day job, so most of my coding has to happen very, very early in the morning).

As I wrote back then, my second Mac app saw the light out of laziness:

…one day I found myself alone at the office and I had to get up from my chair a bazillion times, like an animal, to open the front gate. So, the most “straightforward” thing to do was to get ourselves a nice IP camera and an ethernet relay, and make them work together in a well made macOS app, so that we can keep a small window showing the gate video stream on our desktops, and open to visitors with just one clic.

I honestly did not expect many people to be interested in such a niche app, and by all means GlanceCam’s audience has not been large, but surprisingly (at least to me), there are Users out there who are looking for a well made, native Mac camera viewer: since the beginning and with no marketing on my part (I know, I know… more on this later), a few people have been buying the app almost every day and, from the feedback I receive via email, the occasional in-app tip and the reviews, they are very happy to have found an app that really solves a problem they had:

“The perfect app for keeping an eye on a webcam”

“Very nice app, works flawlessly and exelent and very quick support if needed!!”

“Finally, A Cam Viewer that Works!”

“no more stupid web interface”

“Great app and great support!”

That enthusiasm translates into a 4.0 stars overall average from 45 ratings in the App Store, and 4.2 stars in the US store. Not bad 😜 for an app that, in order to be useful, requires you to know the specific custom string and credentials to access the video stream of your camera!

I think Users particurarly appreciate that, with 16 updates so far, GlanceCam has steadily became more capable: soon after launch it got extended support for keyboard shortcuts and for audio playback, added the ability to save snapshot images and introduced multi-cameras and multi-actions in version 2.0; it then gained support for full screen, including side-by-side with other apps, and insta-zoom. Recently I added compatibility to RTMP in addition to the original HTTP(s) and RTSP protocols and implemented touch gestures to navigate between cameras. Just a couple of days ago version 2.7 added TouchBar support and an URL scheme, and in the meantime I have also implemented native Apple Script support, which will come soon in the next release.

All this while improving stability and performances… the usual “bug fixes and improvements” you read in every release note. My favourite is from version 2.1 🙃:

GlanceCam took the “always on top” preference a little too literally, and stayed actually on top of everything, including the screensaver…

One year later, I am more excited than ever to be working on GlanceCam and I have an extensive list of features I want to add. The main priority going forward, both for my direct use of the app and from Users’ requests, is my personal Moby Dick 🐳: concurrent multi-camera support (either in a single window with grid/list or with multiple windows… currently you can view one camera at a time, which is fine but not what I envisioned when I started developing the app); I think I spent at least 150 hours on multi-cameras so far, and still haven’t found a way to keep the app perfectly stable because of an OpenGL bug that seems to be outside of my control (in Mojave Apple deprecated OpenGL) and that causes a lock when more than one video stream is overlayed with buttons. Nevertheless, this will be the landmark feature of GlanceCam 3.0 and I will get it to work, I simply can’t announce a launch date yet… After that, there are other nice things I’d like to add: if possible, Onvif support for camera discovery, maybe PTZ control, certainly the ability to loop through cameras, and someday the option to coalesce the HTTP GET commands from different computers (so that, when 2 people on the same network clic to open a gate, only the first command is sent).

For this to happen, the development needs to become a bit more sustainable (i.e. more Users, or a price higher that $ 2.99 before the Apple cut… I think the app would really deserve a more “niche, pro app with personalized human support” price, but I am afraid to kill growth and then become disenchanted by a lower number of downloads), and some marketing will be needed. I know I should have done something on that front already, but unlike iOS, there aren’t that many Mac software review sites I can contact for an app that serves an oddly specific need.

I guess we will see what the future holds for GlanceCam, in the meantime happy birthday 🎂 little app always sitting in a corner of my screen!

GlanceCam 2.7 coming soon

March 27, 2019

I am very excited about the new features in GlanceCam 2.7:

  • The toolbar in the upper-right corner now includes a couple of additional buttons: the first to toggle audio on and off (if the camera supports it) and the other to reload the video stream if, for any reason like a lost network connection, the playback would freeze.

  • The lucky owners of a MacBook with TouchBar can now change cameras and control the app directly from their 2170x60 magic strip.

  • GlanceCam now has an URL scheme that allows to switch camera from outside the app! Any custom application or AppleScript can call the glancecam://?camera=17 URL and switch to that video stream; just replace “17” in the example URL with the camera number you want to switch to (as listed, counting from 1, in the app Preferences). A couple of additional informations for nerds: if the camera number is out of range or the URL string is incorrect, the switch operation fails “silently” to avoid interrupting the video stream and, for now and pending additional improvements, you can only switch to a different camera if GlanceCam was already running.

GlanceCam 2.7 is currently in review by Apple and will be available as a free update in the next couple of days (or so).

GlanceCam compatibility with OC835-ADT cameras

March 25, 2019

So, there’s only little chance that this post will be seen by the person requesting informations about it, but since I have no email to reply to it’s worth a try…

mindy_support_request.jpg

Mindy, I believe there is a good chance your OC835-ADT camera will be compatible with GlanceCam using a string like the following: http://USER:PASSWORD@IP_ADDRESS/img/video.mjpeg

If, by any chance, it would prove not be compatible, then I will be able to point you in the right direction to get a refund from Apple. I am sorry I can’t give you 100% confirmation, but every camera model and manufacturer does things a little different, and the only certain way to know is to try.

I’m here if you need any further informations… thank you for your interest in GlanceCam!

GlanceCam 2.6.1

March 5, 2019

GlanceCam 2.6.1 automatically stops playback just before your Mac goes to sleep, and resumes it immediately after the system wakes up.

This helps stabilize the behavior of some camera models with the new continuous playback (an option to never pause the stream when the app is minimized or the screen is locked) introduced in GlanceCam 2.6: occasionally I did experience an issue after the Mac woke from sleep and the video stream stayed frozen for a few seconds (or, in rare cases, did not resume at all). Now the system’s sleep/wake cycle determines the stream to be properly stopped and resumed, avoiding freezes of any kind.

GlanceCam 2.6.1 is now available as a free update.

GlanceCam 2.6

February 28, 2019

GlanceCam 2.6 is now available as a free update.

This version introduces a couple of features requested by Users; being special behaviors, both are off by default and can be manually enabled in the app Preferences.

  • Swipe left/right (with 2 fingers on trackpads or 1 finger on a Magic Mouse) to switch to the previous / next camera.

  • By default, GlanceCam pauses playback when the screen is locked (i.e. the screensaver is running) or the app is minimized, but you can now enable continuous playback and never pause video/audio playback; if you enable this feature, on some camera models it might take a while before playback resumes when you wake your Mac from sleep (if you experience delays longer than 15 seconds after waking up your computer, would you please let me know?).

If you need help with anything, please get in touch at support@cdf1982.com and, if you have time, I would be incredibly grateful if you’d leave a review.

App updates and a freebie!

January 23, 2019

I like that this January I am being able to spend a little more time in Xcode than my usual, but I should probably apologize because all my posts are product announcements… I promise the next time you’ll read me I will cover more entertaining topics!

First, an announcement: starting tomorrow and for a week only, one of my first apps, Always There, will be completely free to download. The app allows you to put a special photo in Notification Center, both on iPhone and iPad, and is perfectly useful even with the latest Apple devices. Always There usually costs $ 1.99 (it’s my only iOS app paid upfront), but I’m trying to understand if there’s potentially a wider market with a different business model: I have ideas for new features, but I need to understand if spending a significant amount of time on them makes at least some sense. If you’re curious, tomorrow check Always There out and tell your friends about it!

And now, the app updates…

A few days ago Apple approved GlanceCam 2.5, with support for the RTMP protocol. I can hear you scream “booooring”, but it’s a useful compatibility update if your camera didn’t support RTSP or HTTP for streaming.

Tonight I also submitted an update for Walk More, my free iOS pedometer. I wasn’t expecting to update it so soon, but a few bugs emerged and I had to fix them right away:

  • Steps, distance and floors are again centered vertically near each bar.
  • If you ever saw days’ labels duplicated on the Y axis of the graph, rejoice: everything is back to normal.
  • Sometimes the widget crashed and showed no progress in Notification Center; now it works perfectly.

Hopefully the approval process will go smoothly and in a couple of days tops version 1.4 will be available for download.

Thanks for reading!

GlanceCam 2.4.4

January 12, 2019

Apple just approved a new update of GlanceCam; here’s what is improved in version 2.4.4:

  • Insta-zoom (the feature introduced in version 2.4 that allows you to clic and hold the right mouse button to temporarily zoom the view) works better with high-resolution streams because now the zoomed window can never resize more than the actual screen size.
  • When GlanceCam was not active, the “Save snapshot” floppy and the always on top “Eye” icons were a bit pale; now they are more defined and look better.

App updates: Walk More 1.3 and GlanceCam 2.4.2

January 7, 2019

Apple has approved a couple of app updates to help me kick off the new year in a good way.

Walk More, my iOS pedometer, got some developer love and now supports iPhone XS / XS Max screen resolutions; I also fixed a couple of bugs that sometimes affected the charts’ labels.
Walk More is now even more polished and pleasant to use and, while I’d still like to add an Apple Watch component sometimes in 2019, for the time being this update makes the app really solid for most users, who only carry their iPhone with them and don’t wear a Watch.
Walk More is still free, and is great if you’ve never used a pedometer or know someone who made a new year’s resolution to be more active, so check it out!

GlanceCam has been updated with a few minor bug fixes and the addition of its Privacy Policy to the Support menu.

I am so thankful for some of the reviews GlanceCam is getting and I found them very motivating to keep improving it:

  • “Finally, A Cam Viewer that Works!”
  • “I use GlanceCam pretty much all day”
  • “This app makes viewing all of my cameras possible from one interface and I LOVE THAT”
  • “Remarkable and instant support”

Hopefully, in January I’ll be able to ship something more, but don’t want to jinx it.

GlanceCam 2.4.1

December 11, 2018

No matter how much you test a feature, bugs find a way to sail off and keep company to your code when you ship…

GlanceCam 2.4.1 has just been approved and fixes a bug that occasionally prevented the app to enter fullscreen mode and to appear in Exposè; it happened only when visibility in all Spaces was enabled, and it turns out I didn’t test those cases well enough. Sorry!

This is a good occasion to remind you that GlanceCam has a lot of convenience features and shortcuts:

  • You can double-clic anywhere inside the camera view to enter and exit fullscreen mode (and GlanceCam is a good Mac citizen at that, properly supporting split view);
  • Holding the right mouse button down zooms the window temporarly;
  • Pressing + o - changes camera, as does the Space key… and if you already know the camera number, you can access it directly with the number keys 1 through 9;
  • CMD + 0 resizes the window at 50%, CMD + 1 at 100% and, guess what, CMD + 2 at 200%;
  • CMD + S saves a snapshot to your Pictures folder and CMD + Y toggles the “Always on top” option that keeps the app floating above all others and visible in every Space.

GlanceCam 2.4 with insta-zoom + Privacy Policy

November 30, 2018

I finally got around adding a small but very useful GlanceCam feature that I always wanted for myself 😃.

Version 2.4, currently waiting for review from Apple, is great if you usually keep a small GlanceCam window in a corner of your screen to keep an eye on a camera: you can now right-click and hold down the mouse button anywhere inside the window to temporarily zoom the camera at 2x of the natural size; when you release the mouse key, the window will return to its original size and position.

No animations, no manual resizing or keyboard shortcuts necessary: just an additional, quick way to get the most out of your cameras directly from your mouse and without interrupting your workflow.

Keep an eye to the App Store to download GlanceCam 2.4 while it’s fresh out of the oven!

I also formalized GlanceCam’s Privacy Policy, so you can have absolute peace of mind about your data.

GlanceCam 2.3 coming soon

October 3, 2018

GlanceCam 2.3, submitted today to the Mac App Store for review and hopefully available for download in the next few days, will contain some features requested by its Users:

  • GlanceCam now supports full screen mode (including side-by-side full screen with other apps); you can enter this mode by double clicking anywhere inside the app window, or with the usual green button in the upper left corner of the title bar. If you just want to maximize GlanceCam without going full screen (the previous behavior), press the ALT key while clicking the green button.

  • The Next and Previous camera actions introduced in the last update are now available also by right-clicking GlanceCam’s icon in the Dock.

  • GlanceCam pop-up list of cameras (present only when multiple webcams are configured) can now be moved to the upper left corner or at the top center of the window; that’s useful if your camera places informations like time or its name in the upper right corner, where the pop-up list used to be (and, by default, still is). You can choose your favorite position from the app Preferences.

I always appreciate Users’ feedback, and I think the features suggested recently and implemented with this update really helped improve GlanceCam in everyday use. If you agree and the app is useful to you too, please consider leaving a 5 star review and, maybe, sending a tip (you can do so from the app Preferences). Thanks!

GlanceCam 2.2 launched today

September 29, 2018

GlanceCam 2.2 has just been released!

This is a minor update that:

  • Fixes little visual glitches with Mojave: now GlanceCam, which has always had a cool dark interface, looks and works great with the latest macOS.

  • Introduces useful keyboard shortcuts to switch between cameras: just press + or the spacebar to show the next camera and, you won’t believe it, the - key to return to the previous one.

Multi-camera support (meaning, multiple cameras shown at the same time in a single window) is proving a harder task than expected, and lately I haven’t been able to work on that as much as I would have liked to, but it’s still coming…

GlanceCam 2.1

May 17, 2018

GlanceCam just introduced multi-cameras and multi-actions support in version 2.0, but there’s already something new and improved for you in the 2.1 release already available in the App Store:

  • Tooltips everywhere! If you’re not sure about a button or a field, just hover your mouse and a helpful suggestion will appear.
  • When you resize the window with a keyboard shortcut (CMD + 0, CMD +1 or CMD + 2) and the new size extends outside the screen, the resized window will bounce back to be fully visible.
  • Sometimes, GlanceCam took the “always on top” preference a little too literally, and stayed actually on top of everything, including the screensaver; now that bug has been fixed.
  • Another bug fix: in Preferences, when you added a new camera, the tabulation between textfields didn’t behave properly; now everything works as expected. I’m trying to make GlanceCam the best IP camera viewer possible, and Users’ support helps a lot; if you can, please show your love with a review on the App Store or by leaving a nice tip inside GlanceCam’s Preferences. Thank you!

🚀 GlanceCam 2.0 - the multi-cameras edition

May 8, 2018

About a month ago, I shared the plan for the future of GlanceCam, my macOS app that lets you keep an eye on a webcam and optionally perform custom actions via HTTP(s) requests.

The most significant step towards that future is here today: GlanceCam 2.0, available today on the Mac App Store as a free update for existing Users (and still very low priced for new Customers at only $ 2.99), introduces multi-cameras and multi-actions support!

I’m very excited for this feature-rich release:

You can now add as many webcams as you like (Settings > Add camera). The amount of actions you can perform for every camera is doubled: you can add up to 2 buttons with separate custom actions to every webcam. You can view one webcam at a time and switch between them with a popup button, by pressing the number keys (1, 2, etc…), and by selecting the camera name from the Dock icon or the Glance menu. From the menu bar and the Dock icon, you are also able to invoke actions for a camera that’s currently not displayed. On top of that, a few bugs have been squashed. I’m trying to make GlanceCam the best IP camera viewer possible, and Users’ support helps a lot; if you can, please tell your techie friends download it, and if you’re already a User, show your love with a review on the App Store or by leaving a nice tip inside GlanceCam’s Settings (also new in version 2.0! 🤑). Thank you!

P.S. On a personal note, GlanceCam is now my most important app and, as it deserves, it is now displayed on the home page… I’m very happy to see a new product grow, but also a little sad for the apparent “demotion” of Tasktic, my first complex and somewhat successful iOS app. I still love all my children equally, though! 😉

Mac development is (not) hard

April 26, 2018

Brent Simmons perfectly described a belief I’ve had since I started Cocoa development:

“Assuming there’s a data model, maybe a database, some networking code, that kind of thing, then you can use that exact same code in your Mac app, quite likely without any changes whatsoever.

That leaves the 20% or whatever that’s user interface. AppKit is not the same as UIKit, but it’s recognizable. Same patterns and concepts, and often similar names (UITableView/NSTableView).

Given that you’ve done the hard thing — learning UIKit, Xcode, and Swift and/or Objective-C — taking the next step and learning AppKit seems like a very small thing. You’ve climbed the mountain already, after all.”
This has been exactly my experience: moving from iOS to Mac development has been absolutely painless, with most of the knowledge I acquired on iOS being useful and relevant, and with the “platform-specific stuff” absolutely learnable in the same way you understand how to use a new mobile framework. I don’t know if I’ve climbed the mountain already, but sure I am having fun climbing.

I expect to find harder topics along the way, but what I have encountered so far are myths and misconceptions that actually made me delay the transition to Mac development for reasons that, in hindsight, were simply bad.
So, here’s what I learned in my spare time (while mantaining a day job in a completely unrelated field, an information I provide just to prove that this is not something that will consume all your waking hours) since I started developing for Mac six months ago:

  • You will find tutorials and Stack Overflow answers to your Cocoa questions. Yes, there might be more resources available online for iOS development, but I find plenty of quality help every time I need it.
  • Window controllers and menus are not hard; check out any tutorial out there and, if you’ve got this far, there’s no way you won’t learn how to use them; same thing for menus, open at login capabilities, menu bar utilities and so on.
  • UICollectionView/NSCollectionView are not the same, nor are UITableViews/NSTableViews, but I never need to look up the documentation for standard implementations, and when I need something peculiar, Apple provides pretty great docs.
  • Sandboxing is not painful per se, but (big surprise) can be annoying when you’re trying to do some things. That’s the reason you can disable it: in ContactsAMI, I needed to share some files between a Contacts.app plugin and the main app and, since the plugin must be sandboxed, the only solution I found was to disable sandboxing for the app and write into the plugin sandbox. Clean? Probably not. Am I distributing the app via the App Store? Nope. The app is available for download nonetheless? Absolutely, because one of the great things about the Mac is that you can get software wherever you want.
  • I’m convinced that bindings can drastically reduce the amount of lines written, but since they looked hardly debuggable to me, I chose to avoid them completely; I’m probably writing more “iOS style” code for that reason, and I’m confident it’s fine and that you can do that too, if you feel so inclined.
  • UI is hard on every platform, it’s not just a Mac thing. This is certainly the area I’m struggling the most with, but there is a pretty good reason I feel the design of my apps is somewhat inadequate: that’s because Mac apps are so well designed, the bar is up there. Your mileage may vary, I will always feel more confident writing code than designing interfaces, but the important thing is that an iOS developer already knows the tools and has familiarity with the platform, so great native UI/UXs can be achieved.

So, if you are an iOS developer who has ever considered developing for the Mac, think about this: we may never reach the mountaintop, but we already know how to walk, we’ve trained a little in the woods nearby and already bought good shoes… we might as well continue climbing!

GlanceCam 1.3 and the road ahead

April 7, 2018

GlanceCam launch went so much better than I expected, confirming that an app I built out of lazyness is actually proving useful to others (which is simply the best thing for an app developer).

So, it’s time to take stock and plan for the future.

First and foremost,** I want to thank you for the support and kind words**. Users’ feedback, word of mouth and App Store reviews (reviews that, with the new version, you can leave directly from the Support menu inside the app) are essential, and you’re helping on all fronts! Please, don’t stop…

Starting today, GlanceCam 1.3 is available in the App Store with the following changes:

  • Some IP cameras offer both audio and video in their stream; you can now enable/disable the audio from Preferences.
  • Improved reliability of window resizing.
  • Minor user interface tweaks.

With this update, the basics of a single-camera, single-action app are mostly covered. So it’s time to start thinking, and building, GlanceCam 2.0.

The next logical step, and I have already heard some feedback confirming this, is to go from one camera to multiple webcams. Doing so requires some deep rewriting, which I started yesterday, but expect this change to take a while before showing up in the App Store app.

Since I’m in the starting phase of the redesign process, there are a few decision to make, and I’ll really appreciate your opinion about 3 possible approaches to multi-camera:

  1. Would you like GlanceCam to remain a single-window application, showing one camera at a time, and switch between cameras with buttons / keyboard shortcuts?
  2. Do you prefer to be able to open a separate GlanceCam window for each camera, rearranging and resizing them separately?
  3. You’d rather have a single window showing multiple cameras (i.e., a 2x2 layout, or 5 cameras stacked one above the other in a tall window)?

At least initially, I am probably going with #1, unless your feedback points me in a different direction: approach #2 seems nice on paper, but it can get really messy on your desktop if you have 4 cameras open in separate windows, and #3 poses some hard design challenges… a 2 camera layout should be very different from a 5, and some arrangements like the vertical stack are good for taking a glance with relatively small videos, but not great for resizing to a large view.

If you have an opinion on this, even if you’re not currently a GlanceCam user, please let me know on Twitter or via email!

I’ll do my best to build a great 2.0, wish me luck!

GlanceCam 1.2

April 4, 2018

I’m very thankful for how well the launch of GlanceCam is going: being another niche product, I wasn’t sure there would be a market for it, and instead the number of sales has so far exceeded my (modest) expectations. Thank you!

Here’s what’s new in GlanceCam 1.2, already available on the Mac App Store:

  • You can now save a PNG snapshot of the video to the your Pictures folder by hitting CMD+S, clicking the Save icon, or selecting “Save snapshot” in the File menu.
  • GlanceCam didn’t restore the window size and position between sessions; now that bug has been fixed, and it will stay just where you want it on your screen every time you launch the app.

Thank you for using GlanceCam! If you know someone who might find it useful, I’ll really appreciate the word of mouth!

🐣 GlanceCam 1.1

April 1, 2018

A quick update to GlanceCam… Version 1.1 introduces:

  • New keyboard shortcuts for resizing the window to 50% (CMD+0), 100% (CMD+1) or 200% (CMD+2) of the original stream video size.
  • A bug fix: GlanceCam 1.0 prevented the screensaver from starting; now the screensaver works as expected, and the video stream is paused not only when the app is minimized in the Dock, but also whenever the screen is locked.

You can find GlanceCam 1.1 on the Mac App Store.

Happy Easter! 🐣

GlanceCam is here

March 29, 2018

I’m glad to introduce another nerdy and niche Mac app: starting today, GlanceCam - IP webcam viewer is available on the Mac App Store.

GlanceCamIcon256.png

GlanceCam is a highly configurable app that lets you keep an eye on an IP camera (webcam) and optionally perform custom actions via HTTP(s) requests, all without a browser.

GlanceCam is a product of lazyness: one day I found myself alone at the office and I had to get up from my chair a bazillion times, like an animal, to open the front gate. So, the most “straightforward” thing to do was to get ourselves a nice IP camera and an ethernet relay, and make them work together in a well made macOS app, so that we can keep a small window showing the gate video stream on our desktops, and open to visitors with just one clic.

You can read more about what GlanceCam can do for your Internet of Things setup, and learn about its hardware requirements, here; if you’re intrigued, you can already purchase GlanceCam for only $ 2.99 on the Mac App Store.

Where am I?

In sunny Italy ☀️ 🇮🇹