We love learning about the work that goes into making the apps we love. We got a chance to talk to Marcelo, the developer behind Should I Sleep, an app that we’d reviewed and ran a giveaway of recently. He provided some insight into their development process, and how they get the ideas for their apps.
Join us after the break to learn more!
Could you tell us a bit about yourself and your development work so far?
I started developing software in 1982, for the largest Brazilian printer and disk manufacturer. From mail merge to supply chain management it was incredible what we could achieve with an Apple IIe, its 64Kbytes RAM and lots of 5,25″ floppy disks. From there, I moved to CP/M, DOS and Windows. In 1990, I joined Symantec (publisher of Think C and Norton products) to manage their local technical operations. It was the golden age of utilities and antivirus software. In 1995 I founded my own company, AnySoft, and have been working with Open Source CRM software. Recently, I moved back to developing for Apple devices and started to analyze opportunities for development.
Why do you choose to develop for the Mac?
Apple has been all about innovation and design. I was used to a world where the top priority was the number of features. An app should do everything possible, no matter how complex it would become. I was immediately attracted by the simplicity of the Apple’s environment: solve a single problem, in the most innovative way. One step at a time.
Your app Should I Sleep was pretty popular with our readers so far. Could you tell us what inspired you originally to create the app?
I always found myself forgetting to enable, disable or adjust energy settings, and was caught in the middle of a presentation with the display shut-off on my audience. Computers should solve problems, not create them. If a computer can do so many wonderful things, how can it not manage itself better in such a basic task? So, I started wondering, how can the computer “sense” me?
I find it neat how many sensors you managed to create for the app to detect if one’s using their Mac. How did develop those ideas?
So, now I had a single problem and a innovative way of solving it: mapping all daily situations where the display dims, check what I was doing, and analyze technically if there was some way for the computer to be aware of that. The first and most common case was when I was reading something on the screen. By staring at the screen for a while, I could finally see it… the camera!
From then on, I’ve been mapping situations and possible sensors. The second one I thought of was the external display sensor, which would solve the annoying presentation problem. Then naturally I found situations that could be covered by sound, motion, network traffic, processor usage, and more.
How difficult was it to make each of the sensors, especially with the limitations of sandboxing in the App Store?
Sandboxing does bring protection by not allowing apps to automatically do unsafe operations without the user wanting it. But it does impose lots of restrictions for developers. My apps can’t, for example, read information from another app or track their internet connections to prevent sleep depending on what is being done with the app. We had a hard time creating the Download Monitor, and are still deciding on the best way to create an Application Sensor that will prevent sleep depending on the open/active applications or windows.
But we don’t do workarounds. It must work flawlessly and according to the rules, otherwise we won’t do it.
We try to avoid apps that use in-app purchases that can be used up (i.e. coins in games) by default, since we find them to be not very honest to users. However, you seem like you’ve hit a nice balance by selling app features with in-app purchases. How has that worked out for you so far, versus just selling the app for one price?
That was a hard decision. Do we create lite and pro versions? A single version with everything included, or go the in-app purchase way? And what would be free and what would be paid? I swear that, at first, it broke my heart to think about going with Face Detection for free. It is definitely the most effective sensor and I thought no one would buy the additions.
But then I thought “this is all about reputation”. I’ll only sell anything if the user has a good first experience. As for the sale model, it’s kind of clear to me that the new in-app purchases is the Apple way. It is more future-proof and easier to manage since it’s a single product release, marketing, support, etc. The only thing that upsets me a little is that some users do think apps with in-app are scams just trying to lure the user for the paid functionality.
iOS apps can already seem very “smart” thanks to the many sensors in mobile devices. Macs aren’t endowed with quite as many sensors, but do you think there’s still a big potential for Macs to be more “aware” of their surroundings and seem smarter?
Yes. Instead of thinking about software features, we need to think about daily user situations. It is like filming each and every user action and environment, playing it slow-motion and checking how the computer can “sense” that.
Macs do have lots of sensors, for example, motion, ambient light, location. Why isn’t there an app that changes its UI or functionality based on ambient light, for example? We have them all in our Should I Sleep roadmap. Of course, we still need in-depth analysis, especially regarding sandboxing.
What Mac do you use for development, and what Mac apps do you use in your daily workflow?
As a small company, we currently have 2 MacBook Air, 1 White MacBook, and 1 iMac. We also have 4 iPhones, 2 iPads and 1 iPad Mini, since we also have plans to enter the iOS market.
If you could pick one thing that the next version of OS X would include, what would it be?
I’m not sure if this should be part of OS X or the App Store system. But certainly I’d like to see a more effective way for users to contact developers (and the other way around). The current system almost invites users to post reviews that are, in fact, support requests. Developers cannot answer those reviews and do not have access to users email addresses. But I think users do not know that.
We do not have a single unanswered email and, after 7 releases in 90 days, all known bugs were fixed and all feature requests were either implemented or are on the way. We feel sad every time there is a review with not enough information for us to implement. We spent hours and hours trying to track down reviewers (by their nicknames) on forums and social networks just to try to help them. We were successful in several cases, but some nicknames are so common that make impossible for us to take any further action.
Can you share any upcoming features you’re planning for Should I Sleep, or any new apps you’re planning on releasing in the near future?
As I have suggested, there will be more sensors. The most important one would be a Profile Manager, which will be location and/or time based. The idea is that if you only use a group of sensors at home and another at the office, for example, you’ll be able to completely customize all settings and sensors, save it and Should I Sleep will automatically do the switch. At university it may activate “External Display” and “Sound Activity”, at home “Face Detection”, “Camera Motion” and “Download Monitor”.
We also have plans for Calendar Events (such as meetings), the Application Filter (mentioned on a previous answer) and even a Script Runner, that will run an Applescript/shell script and prevent sleep based on its result. As for a new app, yes, we have plans to create a revolutionary benchmark app as well.
We’d like to say a special Thank You! to Marcelo for taking the time to talk with us about Should I Sleep and his work at making Macs know more about what’s going on. If you haven’t tried out Should I Sleep, we’d recommend giving it a try; it’s pretty neat how nicely it works.
Oh, and if you haven’t seen it yet, check out our roundup of apps that use your Mac’s hardware in unique ways. Should I Sleep is an impressive example, but there’s a ton more out there, too!