Wednesday, March 11, 2026

MacBook Neo and developing for Apple Vision Pro (visionOS)

I ordered a MacBook Neo for my kids and set up the latest Xcode beta to try out the developer experience for visionOS on this new machine.

Here are my basic results compiling a template project for visionOS which includes an Immersive Scene:

All of these tests were using Xcode 26.4 beta 3
DeviceMac Virtual DisplayCompile Time (seconds)
MacBook M4 AirNo22.5
MacBook Pro M1 MaxNo26
MacBook NeoNo157.5
MacBook NeoYes372.5

I would say the MacBook Neo does a fine job for everything, and if this is your first Mac. At $499 for education, I'm very pleased that this can handle running the visionOS simulator and everything else.

Happy coding!

Friday, June 13, 2025

Manipulation on visionOS

Of all the great things introduced at WWDC25 this year, ManipulationComponent and the manipulable() SwiftUI modifier are really great. These provide some rather natural interactions with objects with one line very little code.

I just published an open-source sample visionOS app, Manipulatives, which demonstrates the basics of this. My approach is to group everything I want to become manipulable as a child of one Entity with a specific name. Then I can search for that parent Entity, and loop thru all of its children adding ManipulationComponent. This would, of course, be even simpler if the ManipulationComponent were available directly form within Reality Composer Pro (Feel free to file a Feedback and reference my FB17979086).

With ManipulationComponent and Entity Observables, I see this as a great combination to tracking how users are moving entities around. I’m excited to put this into action and look at ways to turn user’s manipulations of Entities into dynamic behaviors and actions in my apps’ scenes.

Friday, May 23, 2025

WWDC25 Wish List

 Since I make apps for Apple's platforms, WWDC is the main event of my whole year. The developer conference is a time where Apple announces plans for the next major versions of visionOS, iOS, macOS, tvOS, and watchOS.


Sometimes we get major new announcements, like visionOS and the Apple Vision Pro at WWDC23.


I have been making apps for visionOS ever since and I’m really excited about where this platform is heading.


My wishlist for visionOS

  • Supercharge the Shared Space
    • I want apps to be able to leverage knowledge of the users hands when they are inside a volume in the shared space. Think of making a drum set app where you can position each drum as a volume just where you want it, and then play in the shared space while you have your music up in another app, and maybe be recording in GarageBand in another window
      • FB16447897 (visionOS Hand Anchoring Component in Shared Space (Volumetric Windows))
    • As a developer, I want to offer “pinning” hints to visionOS. I want to be able to suggest that this window could be pinned to a table of minimum width/depth or to a wall or next to a TV, …
    • I want to allow ARKit sessions to run within the overlap of my volumetric windows in the shared space. Let me “see” the mesh or table or wall that the volume overlaps with. Let me see the relative position of my open windows / volumes in the shared space. With this, I could make an app where you place a volume in opposite corners of a room and get the dimensions quickly.
    • As a user, I want to make a mapping of my home and name the rooms, ideally maybe even those are picked up and/or synced with HomeKit. Then allow me to share that with developers in a privacy preserving way so that I can configure apps to work differently in different rooms as I move around.
    • I’d like to be able to pin multiple instances of an app to different rooms and have the app available to me when I am in the room, and dismissed when I leave the room
  • Native development tools on visionOS - Reality Composer Pro, Xcode, Swift Playgrounds
  • Shared in-person sessions where each visionOS device has a common anchored position for content. To interact in a mixed immersive space with others would unlock some great experiences
  • Shared in-person sessions between visionOS, iOS, macOS. With RealityView on all of these platforms, having a common coordinate space would again unlock some powerful interactions
  • Spatial Templates for any number of participants (visionOS or not). I want to be able to provide “seat” assignments to everyone whether they are sharing a Spatial Persona or not, and whether they are even on a visionOS device or not. This would allow me to place people at “tables” for a conference session, or give proper assignments for a game night
  • TabletopKit for iOS and macOS also. Extending this framework to any platform that has RealityView support seems natural to me.
    • FB13873238 (TabletopKit support for iOS, iPadOS, macOS, tvOS)


One more thing…


I’d like to give my aspirations for where I hope Apple might be headed. I’m sure that I’m wrong, but I want to put out there what I would like to see and cast my own view of the future out there.


The next big evolution I see is around Spatial Computing. I want to see Apple combine the awareness of where I am in space (Center Stage) to turn the flat displays of iPhone, iPad, Mac, AppleTV into portals into immersive spaces. If I use my iPhone with an AppleTV I should be able to use Continuity Camera to enable this same tracking on a big TV.


With a full awareness of my position relative to the display, the display now becomes a view in space that I can move my head around to explore and watch it respond in real time.


Maybe I can use an Apple Pencil Pro to poke into the space for more precise selection.


Then I want a truly Spatial Home Screen and work environment. When I open my MacBook at my office desk, my work environment is ready for me, with slack tucked away to the side. I can “look around the corner” to pull out the music mini player and manage other glanceable tasks.

Thursday, March 17, 2016

Happy Saint Patrick's Day

On this day of many things green, I'd like to offer this Xcode theme that I have been using for a few months, Mulder. It's quite green to celebrate Season 10 of The X-Files. Here's what it looks like in action:
Xcode keeps themes in a folder: ~/Library/Developer/Xcode/UserData/FontAndColorThemes so here are my recommended steps to add this theme to your Xcode:
    1) Open Xcode
    2) Choose Xcode > Preferences
    3) Choose Fonts & Colors
    4) Press the + button in the bottom left corner and make a new theme named "Mulder"
    5) Quit Xcode
    6) Copy the downloaded Mulder.dvtcolortheme file to ~/Library/Developer/Xcode/UserData/FontAndColorThemes/.
    7) Open Xcode and enjoy a greener coding experience. :-)

Tuesday, October 13, 2015

Lucky 13

On Sunday October 13, 2002, my fiancée and I were long distance. She was finishing up her college degree and I was working in Chicagoland. We had attended a wedding this particular weekend, and had driven back to college on my way back to my apartment. I was driving on a two-lane Missouri highway, listening to music and driving without cruise control for some reason. I usually would set my cruise control for a bit over the speed limit where I might manage to avoid attention from police yet this particular day I was going without it, and as a result was traveling a bit slower that I would have normally.

Suddenly, a fox appeared in front of my car on the left-hand side. I swerved the car to the right off the edge of the pavement with right-side tires onto the gravel shoulder, and turned back to return to the road. The car started skidding with the rear moving to the right. I recalled some old driving test television shows I watched in my early teenage years and knew I was supposed to take my foot off the gas and turn into the skid, and to be careful not to overcorrect. I took my foot off the gas, I turned into the skid -- too much. The car continued skidding, this time off to the right-side of the road. I saw an overpass ahead around the corner. I saw a car coming from the other direction. Then I saw grass as the car turned toward the rising hill off the side of the highway and my car skidded further off the edge of the road. I didn't really have time to even process it, but I was glad to be moving away from that car.

The next thing I knew the car was upside down. I was suspended by my seatbelt and didn't want to be like that. I put a hand on the roof of the car to brace myself as I unbuckled and rolled myself out of the car. My door opened perfectly, the window still whole in fact. The windshield had shattered. Every other window was shattered. The car was upside down, over the guardrail it had just smashed thru. It wasn't until I got the police report and saw the officer's sketch that I realized how exactly the car got to that position. The driver's side door behind me was demolished. I can't imagine any person sitting in that seat surviving the crash. I was a foot away from that. Had I been driving a bit faster, it's just as likely that I would've hit the guardrail at my door instead of the empty one behind me.


I was impressed and grateful for all of the people who stopped and helped to call 911. I'm especially thankful for the police officer who found my phone and glasses among the belongings that had flown around in the wreck.

A colleague of mine told me about a belief in China that surviving an experience like this one meant I was marked for something great. I've keep considering this. I want my life to be worthy of this gift. This borrowed time that I'm living on since that day. My family is the legacy I care most about, and I cannot be prouder of what Katie and I have grown. All of our children are so smart, kind, playful, and empathetic.

I was fortunate enough to be one of the first developers to make apps on the App Store, and my Flashlight app has been used by millions of people. That's still so surreal for me to think about, and I'm so thankful for the opportunity to share my work with so many people.

I've had 13 years since this crash, and I've thankfully been able to do longer road trips without thinking about this. Some things certainly fade with time. My wife's birthday is November 13th. My daughter's ultrasound was on Friday the 13th.

13 is my lucky number.

Sunday, September 13, 2015

PixelPop Festival 2015

I want to thank everyone involved with PixelPop Festival this year. I was delighted to have an opportunity to show my games and show an preview of my new game, Stacker. It's truly heartwarming to get to see people experiencing my creations for the first time and I got so much great feedback and so many great ideas to add. I'm putting my iOS games on sale for $0.99 this week until September 20th.

Thanks again! Now it's time to get a little rest… :-)

Wednesday, September 12, 2012

A Talk about ViewControllers

This July, I gave a short talk about some best practices with ViewControllers on iOS for the West St. Louis CocoaHeads group.

This includes my tips on where/when to do certain actions to balance resource usage and keep your UI snappy.

Here is the PDF of the presentation: CocoaHeads ViewController Talk

Thursday, April 12, 2012

CryptoQuote Daily Challenge Update

Greetings,

I'm happy to report that the new Daily Challenge Server is up and running, and my initial testing is going very well. Soon (within the next week or two), CryptoQuote for iPhone, iPod touch, and iPad will be updated to version 2.4. This version is designed to use the new server.

Once I'm happy with the iOS update running "in the wild," Android apps will be next.

So, in a few weeks, CryptoQuote for Android will be updated to version 2.0, adding the Daily Challenge feature for Android users, including Kindle Fire, NOOKcolor, and NOOKtablet.

Monday, April 2, 2012

CryptoQuote for Android 1.0

UPDATED: Reflects that the Amazon App Store page has been updated.

Greetings,

I'm very excited to share with you that CryptoQuote is now available for some Android devices (tablets with access to the Amazon App Store, including Kindle Fire). You can download CryptoQuote for Android 1.0 here.

This version is launching with many of the great features of CryptoQuote you see on OS X and iOS as well, with a few to be added in the not-so-distant future.

At this moment, CryptoQuote is available solely via the Amazon App Store. My hope is to have the app available for NOOK devices within the next few weeks (depending upon the pace of Barnes & Noble approval processes).

An Apology
The initial description on the Amazon App Store product page for CryptoQuote 1.0 includes the following line:
Features:
* 3199 carefully selected quotes, plus a new Daily Challenge Puzzle each day

This should NOT contain the second part about the daily challenge puzzle. I am very sorry for this error, and the descriptions have been corrected on the store.

About the Daily Challenge
The Daily Challenge feature is currently only available for iOS devices. Please do know that I am committed to bringing the daily challenge to Android devices and Mac OS X. Please also know that this is not without some significant steps before this can happen. I'd like to elaborate a bit on this…

The current daily challenge server needs some improvements:
1) It is currently on an older host system, which shares resources and power with other websites.
2) It does not respond quickly enough to requests.
3) It does not handle lots (and lots) of iPhone users well.
4) It gets slower as more people play the daily challenge each day.

My plan is to address these problems first for iPhone users, by doing the following:
1) Rewrite the server-side code to handle requests quickly and efficiently.
2) Restructure the database to handle requests quickly even for lots (and lots) of users.
3) Setup this new server code on my new host machine, and migrate the daily challenge users over to the new server.
4) Update CryptoQuote for iOS to add the Daily Challenge.
5) Update CryptoQuote for Android to add the Daily Challenge.

Questions or comments?

Contact me via: http://appsfromouterspace.com/contact/
or on Twitter: http://twitter.com/johnhaney

Tuesday, January 10, 2012

The Next Chapter

Today, I'm launching Apps from Outer Space, LLC. My new company is taking over all of the apps my old company (John Haney Software).

I'm calling this my online moving day. Here's what's happening:
Twitter:
@JohnHaneySW -> @Apps_OuterSpace

Facebook:
facebook.com/JohnHaneySW -> facebook.com/AppsFromOuterSpace

Website:
johnhaney.com -> appsfromouterspace.com

App Store:
Coming Soon. I'm awaiting a few finalizing details. For the moment, apps will be listed under the "John Haney Software" name.

So please update your contacts, likes, follows. 2012 is going to be a great year, starting with my next app, Puppet Stage. But I'll talk more about that very soon…

Monday, October 24, 2011

Thanks 100 million!

Flashlight has now been downloaded more than 100 million times. I'm very excited and humbled to share this with you, and many thanks to you millions of users.

Has Flashlight helped you? We'd like to hear about it at FlashlightStory@johnhaney.com

Wednesday, August 3, 2011

Daily CryptoQuote problem [UPDATE: Fixed]

The Daily CryptoQuote is not working today (August 3, 2011) due to an issue on the server. Support ticket has been submitted. Hoping server gurus will fix ASAP.

In the meantime, you will see a message that you have already completed the puzzle, and then see results with a date of November 30, 2 (yes, the year is 2). This particular side effect is one I will be fixing in the next update of CryptoQuote. Sorry for any confusion this has caused.

UPDATE (Friday, August 5, 2011)
My ticket was assigned within a few hours of being submitted. Since then (now 2 days), I have not seen any other activity. I continue to update the ticket, but am working on making changes to CryptoQuote to work around this problem entirely. I am very disappointed with my web hosting provider and am expecting that my workaround will have to be the solution.

Bottom line, this means the daily challenge will likely be down until you update to a new version of CryptoQuote. A new version of CryptoQuote will take me at least 1 week to get onto the App Store. I thank you for your patience.

UPDATE (Tuesday, August 9, 2011)
My website provider is not willing to fix this issue. Fortunately, I have submitted CryptoQuote 2.1 to the App Store. Hopefully this update will be reviewed and approved within a week.

Thank you all for your patience and kind emails during this time. I am sorry that you are missing out on this regular part of your day and hope to have this back working great for you ASAP. Please know that this new app version will give me the ability to workaround the issue seen this time, as well as provide for a smooth transition to a new web hosting provider should that become necessary in the future.

Thanks again and happy puzzling!

UPDATE (Wednesday, August 10, 2011)
FIXED!!! Apple accepted my request for an expedited review and CryptoQuote 2.1 was reviewed and approved today. You should see the new update in the App Store on your iPhone, iPod touch, or iPad now or within the next few hours. My great appreciation again for your patience and happy puzzling! :-)

Monday, May 23, 2011

Another great Flashlight email

It always makes my day to hear how Flashlight is working great for people. Here's the latest example:
I arrived at our holiday house last night in pitch black. The house power was out and I needed to bash through the garden to the electrical meter and back into a pitch black house a couple of times. I discovered to my delight that I had downloaded your flashlight app onto my phone. It saved my life, without it on my iPhone 4 I wouldn't have been able to fix the fuse trip switch or avoid falling in the pond.

Thanks. It's a great app.

Thursday, April 21, 2011

CryptoQuote 2.0

After several months of work, I've completed a major update to CryptoQuote. With CryptoQuote 2.0, this app has a lot more to offer and I hope to hear from my users what they like the most about it.

Here is the official list of "what's new"…

  • Hundreds more quotes, now 3199 in total
  • Undo/Redo: Shake to undo/redo the last move on a puzzle.
  • Custom Puzzles/Quotes: Paste a puzzle from elsewhere, or scramble your own phrase to make a puzzle.
  • Printing: With an AirPrint capable printer, you can print out a puzzle.
  • NEW TOOL: Word Search - choose a word and see dictionary matches for that letter pattern
  • NEW TOOL: Letter Frequency - compare the frequency of the scrambled letters to the frequency of letters in English.
  • Share quotes you solve (copy/email/SMS/Facebook/Twitter)
  • Improved Daily Challenge with no "sign-up" required, and improved download performance.
  • Physical keyboard support - works with a bluetooth or USB keyboard for solving puzzles more quickly.


Now to catch up on email and continue on my next project… :-)

Monday, November 29, 2010

My Big News

I teased about this over the weekend and it seems most of my friends think that my wife and I are pregnant.

The big news IS about a life-changing event, but not about bringing a new life into this world. Today marks my first full-time day working on my own. I'm phasing out of my day-job and into my own business as an Independent App Developer.

I've been incredibly fortunate to be in this situation and want to thank my wife who has endured the late-night coding sessions and my steering our conversations back to apps and app ideas.

I'm humbled and delighted to know that there are literally millions of people using Flashlight, and I intend to continue to improve Flashlight and release new apps VERY SOON. My plan is to release two new apps this year, with many more apps and updates coming soon too.

I will work from my cloffice (closet office) in my house. My daughter plans to come greet me whenever she wakes up in the morning, and I'll have lunch with my family. I'm thrilled about this new flexibility and freedom and very excited about being able to actually create more of my list of 60+ app ideas!

I'll be blogging a bit more, tweeting a bit more, and coding a LOT more. :-)

Friday, November 5, 2010

Halloween and Flashlight

I have not mentioned yet, but I really really love Apple's iAd web portal. It's really great to be able to see hourly charts and it's fun to be able to see when people begin using Flashlight more during the evenings:

Top iAd countries so far

With the recent addition of iAds internationally, I took a look at my stats and thought it might be interesting to share with you what countries are getting the most impressions right now. All of my iAd impressions right now are from Flashlight

United States
UK/GB
Unknown
Korea, Republic of
France
Saudi Arabia
(Empty)
Israel
China
Mexico
Australia
Japan
Norway
Canada
Malaysia

The UK/GB was about 3% of the US in terms of numbers of impressions, with the other countries trailing off quickly after… Still, this list of the top 15 adds up to around 5.4% of the US impressions

Here are the next 15 countries:

Brazil
Malaysia
Reunion
South Africa
Singapore
Taiwan
Argentina
Finland
Greece
Kuwait
Netherlands
Hong Kong
India
Brunei Darussalam
Serbia

Monday, July 19, 2010

Flashlight top countries

Now that Flashlight is using iAds, I have access to a lot more interesting data, including overall countries of where users are using Flashlight. Flashlight appears to be used far more in the evenings (obviously), and also far more on the weekends.

Top Flashlight countries from last weekend (July 17 and July 18) are:

United States
UK/GB
Australia
Canada
France
Unknown
Germany
Sweden
Korea, Republic of
Brazil
Spain
Denmark
Switzerland
New Zealand
Italy
Chile
Russian Federation
Japan

By the way, I have to say that I continue to be humbled that my app is used by so many people around the world.

Friday, July 16, 2010

Flashlight 3.0 (and the pending 3.0.1)

UPDATE (July 20, 1:55PM CST): Flashlight 3.0.1 is approved and you should see it on the App Store within a few hours. My thanks to everyone for your support and patience during this time.

UPDATE (July 19, 8:30AM CST): Flashlight 3.0.1 is in review by Apple. I'm thrilled that they have responded to my urgent plea and expect to see Flashlight 3.0.1 on the App Store a bit later today!

Greetings,

Friday, July 16, Flashlight 3.0 went live on the App Store. I'm very excited about this update because I added the biggest requested feature, using the iPhone 4's LED light. The iPhone 4 LED is incredibly bright (don't look directly at it!) and it's great to be able to use this for navigating around when you need the brightest light possible.

Unfortunately, this update is causing problems. I have reports from iPad and iPod touch users that the app won't open. I'm very sorry. This is of course the last thing I wanted to have happen and I'm working on fixing this problem. As part of this, I am now the new owner of an iPod touch so I can do proper testing on iPhones, iPads, and iPod touches.

I will update this blog as I learn more. Thank you for your support and patience.

UPDATE (July 16, 11PM CST): I have submitted Flashlight 3.0.1 and requested that Apple give this update an expedited review. In the typical case, this update would appear in about a week (around July 23rd).

The issue is that any device running a version of iOS (aka iPhone OS) before 4.0 will have this crash bug. This means all iPads, some iPod touches and some iPhones.

For the programmers who might be reading this, the specific issue was that I linked to a framework which was new in iOS 4.0 (AVFoundation.framework) to add the LED functionality, but I did not set that framework to be "weak linked". Thus, when the user attempts to launch the app on an iPad with iOS 3.2, the app crashes immediately because it thinks that it MUST have AVFoundation and cannot find it on that device.

Thursday, January 21, 2010

Flashlight is useful

I got this email yesterday about Flashlight and it really made my day:

Just wanted to send you a thank you for your flashlight app for the iphone.
Recently, myself and 2 others climbed San Gorgonio Mountain in southern California.
To make a long story short; it took longer than expected and the last 2 hours were in total darkness, on a moonless night.
We had all neglected to bring our headlamps and the trail could not be negotiated in the dark. Then I remembered I had this app on my phone.
It worked amazingly well and saved us from spending a very cold night on the mountain.


I'm happy to have the privilege of being able to make software that you can take with you and that is helpful and useful. Flashlight has helped people find keys, check on their kids at night, do some late night reading, even track footprints.

I just wanted to say thank you to everyone that uses my apps. I'm humbled and honored by your download.