Posted on Leave a comment

Challenge: Solution to “Memgraph Capture The Flag”

Flag icon on grey background

The “Memgraph Capture the Flag” challenge invites you to learn and practice memory debugging and symbolication with command line tools. If you haven’t yet attempted the challenge or otherwise don’t want to be spoiled on the necessary steps to complete it, we recommend returning to the original challenge page. Otherwise, read on!

Challenge: Memgraph Capture the Flag

The challenge begins with the following: “One of our engineers has hidden a memory easter egg in our secret app. We’re trying to track it down but all we know is that it has format flag_<unknown_string_here>@WWDC. You’ll have to use the command line tools offered by macOS to investigate the memory issue, recover missing symbols, and and capture the rogue flag.”

The following solution is one of the possible paths to capture the flag. To start, the challenge article supplies you with a memgraph file and a dSYM, along with the following hint: “Memgraph is a special binary plist. What can you find in its properties?”

To look at the properties of a Memgraph, use plutil. In the output, you’ll find more hints:

$ plutil -p secret.memgraph
... "hint" => "the flag is hiding in a memory leak"
... "one_more_hint" => "you might also want to explore the 'symbols' in the dSYM”
...

The hint invites you to investigate the memory leak, while one_more_hint directly encourages you to use the symbols CLI tool. In the WWDC21 session “Symbolication: Beyond the basics,” engineer Alejandro Lucena mentions that it’s a good idea to specify the architecture with this tool. As such, you can use the memgraph to learn the “secret” app’s architecture.

You can try heap, leaks or vmmap. When used with a memgraph, the first few lines are the same in the output of each of these tools. This is how you learn which architecture the “secret” process uses: Code Type: X86-64.

As detailed in the WWDC21 session “Detect and diagnose memory problems,” you can use the vmmap command against memgraph files in addition to targeting the running process. Running it agaisnt this memgraph provides the following information:

$ vmmap -summary secret.memgraph Process: secret [2901]
Path: /Users/*/secret
Load Address: 0x10d264000
Identifier: secret
Version: 0
Code Type: X86-64
Platform: macOS
Parent Process: zsh [1438]
...

Now you’re ready to use the symbols command. Use the -noSources option to restrict the output to symbol names so you have less output to look through. Hidden amidst the symbols in the “secret” dSYM, you’ll find another breadcrumb towards the solution:

$ symbols -arch x86_64 -noSources secret.dSYM [macOS Monterey+, Xcode 13+]
or
$ symbols -arch x86_64 -noSources secret.dSYM/Contents/Resources/DWARF/secret [macOS before Monterey, Xcode before 13]
...
hint_find_the_secret_addresses_of_the_memory_leak
...

The leaked memory in this memgraph is definitely starting to sound interesting — it’s probably a specific leaked address. Let’s see which secret addresses the hint is referring to. To determine if the “secret” app was leaking memory, you can check the memgraph for leaks with the leaks command line tool.

You’ll want to pay attention to this portion of the output:

$ leaks secret.memgraph
...
STACK OF 5 INSTANCES OF 'ROOT LEAK: <CFArray>':
6 hint 0x7fff204edf3d how would you translate secret Addresses TO Symbols? + 1
5 secret 0x10d267ee8 0x10d264000 + 16104
4 secret 0x10d267dc5 0x10d264000 + 15813
3 secret 0x10d267ccf 0x10d264000 + 15567
2 com.apple.CoreFoundation 0x7fff2059576f __CFArrayCreateInit + 190
1 com.apple.CoreFoundation 0x7fff2054df07 _CFRuntimeCreateInstance + 587
0 libsystem_malloc.dylib 0x7fff20314071 _malloc_zone_malloc + 242 ...

In this output, you’ll spot five leaks, all of which originated from the same place in code. They are united by the same call stack backtrace each time a CFArray was allocated, but never freed. You’ll find three secret addresses here — 0x10d267ee8, 0x10d267dc5 and 0x10d267ccf — along with a new hint sporting some interesting capitalization. This clue hints that you should try and use atos tool to symbolicate the secret addresses.

To call atos, you need several components: The DWARF binary in the dSYM, architecture, and addresses to symbolicate. You’re missing the load address, however, and can find it for the “secret” binary image within the call stack of the leaks next to all three secret addresses: 0x10d264000. You can also find it in the the process description and list of binary images portions of the leaks output:

$ leaks secret.memgraph
Process: secret [2901]
Path: /Users/*/secret
Load Address: 0x10d264000
...
Binary Images: 0x10d264000 - 0x10d267ff7 +secret (0) <6676D338-8C26-3019-B919-88C1CB4AA324> /Users//secret
...

Now, you can use atos to translate the secret addresses to symbols:

$ atos -o secret.dSYM/Contents/Resources/DWARF/secret -arch x86_64 -l 0x10d264000 0x10d267ee8 0x10d267dc5 0x10d267ccf
main (in secret) (main.m:226)
very_nice_function (in secret) (main.m:205)
good_job_but_the_flag_is_inlined (in secret) (main.m:186)

You’re getting close: The flag is inlined, so you need to add the -i command line option while calling atos to display the inlined functions too:

$ atos -o secret.dSYM/Contents/Resources/DWARF/secret -arch x86_64 -l 0x10d264000 0x10d267ee8 0x10d267dc5 0x10d267ccf -i
main (in secret) (main.m:413) very_nice_function (in secret) (main.m:392) IGZsYWdfbWVNMHJ5VDBPTHNEZWJ1R0cxbmdQcjBAV1dEQyAg (in secret) (main.m:86)
whats_wrong_with_encoding (in secret) (main.m:204)
omg_you_found_it (in secret) (main.m:333)
good_job_but_the_flag_is_inlined (in secret) (main.m:373)

Closer still! Run this command and you’ll get a string of gibberish that looks like it might be base64-encoded. Run that decode and you get:

$ echo "IGZsYWdfbWVNMHJ5VDBPTHNEZWJ1R0cxbmdQcjBAV1dEQyAg" | base64 -d flag_meM0ryT0OLsDebuGG1ngPr0@WWDC %

As a note: Make sure you also pass the -arch flag to atos, because atos defaults to the architecture you’re actively using. For example, if you run this command from x86_64 (either on x86 hardware or in Rosetta 2), you won’t see any change. But if you run the tool from an Apple Silicon machine without the -arch flag, you’ll get strings delivered for the wrong architecture:

IOKdmuKWiOKVkOKVkOKWiOKdmiAg4p2a4paI4pWQ4pWQ4paI4p2a (in secret) (main.m:396)
IOKWhyDiloUg4paIIOKWhSDilocg4paCIOKWgyDiloEg4paB (in secret) (main.m:381)

Convert those from their base64 encoding, and you’ll get some very pretty ASCII art weights.

❚█══█❚ ❚█══█❚ ▇ ▅ █ ▅ ▇ ▂ ▃ ▁ ▁

While these might be helpful for filling the fitness rings on your Apple Watch, you need the -arch x86_64 parameter to capture this particular flag.

One last tip: The secret.memgraph was generated when the “secret” process was running with MallocStackLogging enabled; this allows you to see the call stack of the leak. Don’t forget to enable MallocStackLogging for your own app when generating memgraphs. This can be done in the scheme settings in Xcode (Run > Diagnostics > MallocStackLogging = Live Allocations Only) or with the environment variable when launching from a terminal:

`$ MallocStackLogging=lite <command>`

This is just one path you can follow to get the flag using the command line tools built into macOS for memory debugging and symbolication. Check out the full repository of Coding and Design Challenges for other fun coding and design explorations, or dive deeper into debugging with our most recent WWDC21 videos.

Resources

Symbolication: Beyond the basics

Detect and diagnose memory issues

Explore more coding & design challenges

Posted on Leave a comment

Behind the Design: Pok Pok Playroom

Beam of light coming from top right corner that reveals Pok Pok playroom toys

When the husband-and-wife team of Esther Huybreghts and Mathijs Demaeght first began dreaming up Pok Pok Playroom, they made a solemn vow: parents shouldn’t need to mute the app in a restaurant.

“We didn’t want media and jingles and jangles that get stuck in your head,” Huybreghts laughs. “We wanted a quieter experience.”

To the delight of dining parents everywhere, they got it: Their inventive children’s sandbox is a quiet feast for little senses. There are switches to flip, gears to grind, blobs to plop together, and bells to ring — and those are just a handful of the animations designed to make the app feel like a tactile, handmade toy.

A child in yellow pants plays with Pok Pok Playroom’s toy library

Huybreughts and Demaeght began their careers in the film and game design worlds before finding work with the independent Canadian studio Snowman (creators and producers of titles like Alto’s Odyssey and Alto’s Adventure as well as Where Cards Fall and Skate City for Apple Arcade). The duo began pondering developing an app for young children after they struggled to find the right kind of experience for their own kids. “We didn’t want anything loud and overstimulating,” Huybreughts says. “We wanted something quieter and educational, and we really didn’t find anything that checked all those boxes.”

Instead, they decided to try and check those boxes themselves, building Pok Pok Playroom on the side with frequent input from the duo’s own in-house play-testers before eventually joining forces with their employers at Snowman. (The Snowman team loved the spirit of the app so much that they spun out a separate company, Pok Pok, focusing solely on educational children’s entertainment.)

The Pok Pok Playroom couple in their home office

Huybreghts and Demaeght carefully designed the app’s digital toybox atmosphere to both fire up children’s minds and leave space for them to fill in details with their own imaginations. “Kids develop differently, and everyone who plays Pok Pok approaches it with a different mindset,” says Huybreghts. “That’s the wonderful quality of open-ended play. There’s something new to discover every time.”

To perfect the app’s handcrafted look, Huybreghts dove back into her own art and animation history. “I’ve been drawing my whole life,” she says, “but it’s always been more on the sketchy side. Give me a pencil and a napkin and I’m happy,” she laughs.

Huybreghts struggled to find Pok Pok’s look for some time, long enough that her husband stepped in to issue a nautical challenge. “Mathijs held up this toy boat that was lying around our living room among the millions of other toys and said, ‘OK, Esther, stop stressing about it. Use only these three colors: red, yellow and blue.”

Huybreghts sketches designs on iPad

As a lifelong creative, Huybreghts was duly horrified. “I was like, ‘I can’t do that!’” she laughs. “How would I even draw a tree?”

But the little boat (and its guidelines) proved inspiring. The new strategy — a mix of free play with friendly guidelines — also gave her room to experiment. “I didn’t want the artwork to be perfect, because that would mean I’d have to animate everything perfectly. The rule was that everything could jitter a little bit, which took a lot of the pressure off me. Making everything too clean and too nice would have been too much work, especially since it was often just me drawing with one hand with a baby in the other.” (Fun fact: All of Pok Pok’s designs began as iPad sketches.)

With the visuals in motion, the challenge of matching audio fell to sound designer Matt Miller, who ended up recording every sound in the playroom: all the sloshing mops, sizzling grills, and wordless dialogue. “The idea was to create calming sounds,” says Miller, “something that could be heard a number of times without becoming fatiguing.”

Miller records sounds in his backyard

Initially, Miller and Demaeght wanted to use a small number of real-world objects, but they quickly realized that the app’s thousands of animations required a broader arsenal of sounds — so Miller went on a hunt. “I got wooden blocks, pots from the kitchen, stuff I bought at a local thrift store,” Miller says, pointing to a boxes of “Foley objects” in the background of his home studio. “I’d just walk into a music store and start pinging on things.”

His biggest challenge came in the app’s “musical blobs” section, an abstract playspace of movable shapes not unlike that lava lamp you had in college. “We wanted to do something musical,” Huybreghts says, “but every kids’ app that musical has a figurative aspect, where it’s a person or animal singing or using visual recognizable instruments.”

The answer lay in the abstract. “A musical blob is a completely new idea,” Miller says. “A lot has to come together for that to work.” For instance: The color blue is always a C, while circles (the simplest of shapes) are represented by a single sine wave (the simplest of sounds). “There needs to be a consistency.”

The team behind Pok Pok Playroom sits at a conference room testing toys.

Miller also found room for a little play, however: One of his favorite effects involves a dung beetle that raises its back legs and rolls the dung away. “That rolling sound is just me rolling over the edges of a soup can,” he says with a laugh. “When we can be literal, we’re literal. But it’s fun to throw curveballs too.”

In a way, Pok Pok Playroom is a curveball of its own, something that stands out by virtue of its simplicity. “We’re people, we’re not computers building this,” says Huybreghts. “It’s not vector art. It’s all hand-drawn and hand-animated. We’re not a giant, polished company. You can really see everyone’s impression, everyone’s mark, on every single thing they make in the app.”

Learn more about Pok Pok Playroom

Download Pok Pok Playroom from the App Store

Posted on Leave a comment

Developer Spotlight: SmartGym

Photo of the developer of SmartGym on a collage.

Matt Abras kept three words in mind when creating SmartGym: simplicity, simplicity, and simplicity.

“Many workout apps have a throw-spaghetti-at-the-wall-and-see-what sticks plan,” says the Brazil-based developer. “I don’t like that approach.”

With SmartGym’s illustrated library of more than 620 exercises, you can put together your own workout routine or have the app’s Smart Trainer create one for you. When you’re at the gym, the app calls out each exercise and start timers as needed. And with the Apple Watch app, all that happens right from your wrist.

We spoke to the Brazil-based developer about what drew him to Apple Watch, his Smart Trainer, and why you need to dream big.

*SmartGym* selects the best exercises for your needs — and shows you exactly how to do them right.

*SmartGym* selects the best exercises for your needs — and shows you exactly how to do them right.

How did you start developing apps?
I went to college and studied computer science, but I never wanted to become a developer — I wanted to work at Pixar! I loved the idea of inspiring and bringing joy to people. But when Steve Jobs introduced the iPhone in 2007, I knew it would change the world — my life included. And when I first saw the Apple Watch, I knew it would be the future — just like the iPhone.

Was SmartGym always designed to be Apple Watch–first? Absolutely, from day one. Every feature in our iPhone app, including the AI Smart Trainer that creates personalized routines for you, is completely implemented on the watch. With Apple Watch, there are no distractions — it’s focused only on your training.

What inspired you to create SmartGym?
People can be intimidated to go to the gym. Others might have no idea which exercises to do. I wanted to give users the confidence they need to start going. That’s why SmartGym begins with questions everyone knows how to answer: Which muscles do you want to target? What’s your experience level? It will create a workout for you, and then Smart Trainer will continually suggest changes as you progress.

What’s your design philosophy?
The app needs to be simple. It needs to be transparent. I have users who are 70. I’ve heard from army veterans and people deployed in Afghanistan. There’s a huge range of people in different scenarios in different cultures.

What advice would you give to developers just starting out? I received advice a long time ago that really shaped me: Dream really big, because God is huge. Always do everything with excellence. Pay attention to the smallest details, because everything matters. Persevere. Do what you love with passion. And always create things that will change the world for the better.


Download SmartGym from the App Store

Learn more about the App Store Small Business Program

Posted on Leave a comment

Get ready for a new Game Center authentication certificate

Starting August 4, 2021, a new certificate for server-based Game Center verification will be available via the publicKeyUrl. The previous certificate will no longer be available after this date. As a reminder, make sure your app always retrieves and uses the current publicKeyUrl value so it automatically uses the new certificate. If your app caches the certificate or hardcodes the certificate URL, it will require an update.

Please note, this root certificate issuer has been updated from Symantec Corporation to DigiCert, Inc. Make sure to check that the new root certificate issuer is on your list of trusted CAs. You can download the trusted root CA (DigiCert trusted G4) here.

Learn more

Posted on Leave a comment

Behind the Design: Carrot Weather

Image of app turning into sun with carrot weather-themed clouds and graphics on a black background

Generally speaking, weather apps don’t threaten your life.

They don’t insult your life choices. They don’t tell you that the sun makes your skin look, and we’re quoting here, “like curdled oatmeal.” And they rarely, if ever, try to conquer the world.

Carrot Weather does all three — pretty much on a daily basis. But that’s not the most interesting thing about the meteorological marvel created by mild-mannered Philadelphia native Brian Mueller. Prior to launch, Mueller had no background in development, less background in meteorology, and frankly seems way too nice to have won an Apple Design Award with an app that routinely calls those who use it “meatbags.”

No, the most interesting thing is this: Underneath his humble (and objectively non-murderous) exterior, Mueller knew that meme-worthy jokes wouldn’t be enough — Carrot had to be a best-in-class weather app, too.

iPhone images of Carrot Weather’s light and dark modes

“There are basically two apps here,” says Mueller, who codes, designs, illustrates, and writes the (often real-time) gags himself. “One is an entertainment app — something you want to open apart from learning about temperatures and conditions. The other is a professional weather app. I wanted both.”

He got them. Carrot Weather presents its meteorological metrics — humidity, UV index, and sunrise and sunset — in splashy, colorful screens that match its acerbic voice. (“Does the sun really think he can hide? We see you behind those clouds, stupid star.”) The app is available on for iPhone, iPad, Apple Watch, and Apple TV. And earlier in 2021, Mueller released an update that lets users customize Carrot however they please, creating, in essence, a “Choose Your Own Weather App“ experience (albeit one that occasionally threatens you with scary clowns).

*Carrot Weather*’s creator, Brian Mueller

*Carrot Weather*’s creator, Brian Mueller

It’s a long way to go for a guy who started developing on the side seven years ago while pursuing a full-time career as — not entirely surprisingly — a screenwriter. “I’m an English major with a creative writing minor,” Mueller says. “I love to write and create characters and tell stories, but I had no real idea of what I would do with my life.” He found the idea of apps intriguing, but had no experience to draw from. “I figured if I was going to build an app, I’d just hire someone to do it for me,” he says. “I got a book on iOS development, mostly so I could flip through the vocabulary and not sound like a complete idiot. But it wasn’t anywhere near as over my head as I thought, so I just started building.”

In a matter of months, Mueller had his first title, a to-do list app called Grailr whose mascots were an Indiana Jones-type character and his cartoon dog sidekick. “The dog’s name was Sir Waffles, and he had a top hat and monocle,” Mueller laughs. “I liked him. But it was way too hard for me to animate a cartoon dog.”

Instead, he popped into Photoshop, drew a simple pattern of three circles, and then began playing around with animation, eventually landing on a nefarious-looking pulsing red light drawn straight from the HAL and GLaDOS school of evil sentient robots. “There was no genius idea,” he says. “That was basically the extent of what I could do in Core Animation in iOS at the time.”

Vector image of stick figure holding computerized umbrella in rain

This necessity became Carrot’s look. Her dark, devious personality, however, comes from those closest to Mueller: his mom, sister, and wife — all of whom tease one another relentlessly. (Sister Beth, for instance, commemorated Carrot’s Apple Design Award win by emailing him the following: “You’re probably getting lots of congratulatory messages, so I just wanted to remind you that you are the worst.”)

“A lot of the dialogue for Carrot is drawn out of stuff that we’ve actually said to each other,” he says. “Every time my wife says something funny, I write it down. Sometimes she gets annoyed by that, but she’s a lot funnier than I am.”

With his robot ready, Mueller began releasing a series of apps — Carrot To-Do, Carrot Fit — all with the same distinct approach to motivation. His to-do list yells when you fail to complete a task. His alarm clock mocks you for sleeping in. His fitness app shames you for slacking off.

Weather was a logical next step. Carrot Weather began strictly as an entertainment app — one that leaned in entirely on Mueller’s digital doppelganger. “It was a cool, gimmicky kind of thing, and people liked it,” he says. But over time, people started asking for more metrics: cloud cover, wind speed, pressure. Data, data, and more data. “I’d spend an hour or so sketching and figuring out how to fit things in,” he says. “That’s how I started learning how to solve design challenges.”

Early sketches of Carrot Weather’s ocular sensor and weather readouts

The inaugural version of Carrot Weather focused almost entirely on the current temperature; the second version began to dig in on forecast, radar, and notifications. But its next redesign was a big one: The 2017 model brought Carrot to Apple Watch, which Mueller says was the “turning point” in transitioning the app into something more than a repository of jokes.

“I couldn’t really have long jokes on the Watch, so I had to focus on making a really good weather app,” he says. “I started over from scratch. I tried to use all of the hardware features built into the Watch as much as possible to abstract away a lot of what would normally be visual in the interface on the iPhone.”

Mueller focused the experience on a few key data points and used color to communicate weather conditions so that people could quickly get a sense of their forecast. From there, he worked in reverse, bringing his favorite features back into the iPhone and iPad app.

Vector image of a cow caught in a tornado

Today, the Carrot universe comprises seven iOS apps and an iOS sticker pack, as well as Apple Watch, Apple TV, and Mac versions of Carrot Weather. The app now offers a fully customizable interface for those who want to craft their perfect weather app. You can record customizable weather reports replete with sassy teleprompter dialogue, or have Carrot taunt you in augmented reality. (She turns red if you annoy her. You’ll probably annoy her.)

There have been upgrades on the sarcastic side too: Mueller regularly updates the app’s text to reflect current events, which means he can respond to current events — everything from political headlines to console releases — within minutes. “People are tweeting me all the time how they get their news from a weather app,” he laughs.

And yes, if so moved, you can even mitigate the darker sides of Carrot’s personality. “I wanted an option for people who were more interested in the cool professional features — or maybe for the people who don’t want the ‘Oh, Carrot wants to kill you,’ kind of thing” he laughs. “Even if you turn off the personality completely, you’ll still get the fun animations and features.”

Carrot weather’s main screen on Mac

For all his success, Mueller remains humble (even a little bemused) by all this attention. His design process, he jokes, isn’t as formal as many of his Apple Design Award-winning peers — it’s “basically throwing a bunch of stuff on a screen until I don’t think it’s hideous.”

Even so, it’s that singular focus and care (and dash of self-deprecation) that makes Carrot stand out. Mueller’s constant iteration and exploration — whether he’s iterating on interface designs, supporting new API, or crafting a late-breaking joke — keep the app fresh and entertaining long after you’ve checked the day’s weather.


Learn more about Carrot Weather

Download CARROT Weather from the App Store

Bringing CARROT Weather to Apple Watch

Posted on Leave a comment

Developer Spotlight: Ladder

Photo of the developers of Ladder on a collage.

Ladder is a self-care and mindfulness app built for the Black, Indigenous, and people of color (BIPOC) community — or, as founder Don Le puts it, “people like us.”

The app helps you establish positive, productive daily routines to reduce anxiety, improve your sleep, amp up your physical activity, and more. The Ladder difference: Its trainers, coaches, and experts are all from the BIPOC community. “It’s not often that most — or in our case, all — of the voices in an app are people of color,” says Le, who founded Ladder with Thuc Tran.

Build better habits by keeping track of your streaks and filling in that pleasingly color-coded chart.

Build better habits by keeping track of your streaks and filling in that pleasingly color-coded chart.

We caught up with Le to discuss the benefits of bugs, the virtues of journaling, and diversity in the self-care space.

Were you into mindfulness and self-care before launching Ladder? My background was in investing — I used to work at a growth equity firm. But the idea for Ladder came from my own journey. I was getting burned out, so I started looking for tools to get out of the rut I was in. I began meditating and journaling, then realized I could find ways to not just share what I’d learned but also make it more accessible.

What were your first steps?
I started going to mental health conferences and local support groups. There I saw how people often didn’t have access to — or couldn’t afford — traditional mental health care tools. Or they went through the process and felt it just didn’t work for them.

Did you design Ladder for a BIPOC audience from the outset? We did. As I started digging more into the research, I came across some pretty crazy stats: Over 85 percent of psychologists working in the U.S. are white, and the remaining 10 percent are split between Black, Hispanic, Indigenous, and others. You look at the mindfulness and mental health apps out there and they are predominantly white too. When we reached out to wellness experts and content producers, they’d tell us they felt the lack of diversity — that the audience they were reaching wasn’t as diverse as they’d have liked. So the next step for us was expanding that library of trainers even more.

Which of the features you’ve built were you most surprised to see resonate with customers?
Early on, our users were tracking their habits and building healthier ones. But as the app progressed, we saw people really caring more about the daily check-in. Being able to log emotions and journal their thoughts became the most important feature for many people. We don’t know if that’s COVID-related or a natural progression, but it’s become our most winning feature.

What advice do you have for developers just starting out?
Direct-to-consumer apps are notoriously brutal; it can be really hard to find a market fit. So talk to users. Talk to them more than you think you need to. Get in a feedback loop as soon as you can. You’ll really come to understand how people are using your app. They might see things that you might not see as very important.


Download Ladder from the App Store

Learn more about the App Store Small Business Program

Posted on Leave a comment

Developer Spotlight: Noted

Photo of the developers of Noted on a collage.

Four years ago, Noted cofounders Terenze Yuen and Fai Tung came out of an hours-long client meeting with two things: a very lengthy recording and a total lack of enthusiasm for transcribing it. “You can imagine the pain,” Yuen says.

Happily, that pain inspired the pair to create Noted, a recording app that lets you add text annotations and hashtags to your recordings as you’re making them. After you tap the big red button, anything you type — “launch update,” “convoluted calculus formula,” “funniest quote of the interview” — is automatically time-stamped.

With its mix of audio and text, *Noted* is one of the most powerful note-taking apps in the galaxy.

With its mix of audio and text, Noted is one of the most powerful note-taking apps in the galaxy.

We caught up with Yuen to talk about his app’s growth, Michelle Obama’s inspiring words at the Apple Worldwide Developers Conference (WWDC), and the challenge of getting artificial intelligence to understand with silence.

You’ve said you and your cofounder were inspired by a very long meeting…
We were! When we came out, he said, “Do you remember the time they mentioned this and that?” I sent him the recording, but neither of us could remember the timeline. We thought, “Why can’t we marry note-taking and audio recording, so when someone asks for that time, you can tap back to a hashtag? That was the core of the idea.

After you launched, where did you see Noted used most?
Classes and meetings. We got a lot of images from users in lecture halls and conferences, including WWDC. Journalists use it all the time; songwriters use it to write lyrics and play them back.

Add time stamps and hashtags to key moments in your recordings.

Add time stamps and hashtags to key moments in your recordings.

What surprised you about how people were using Noted?
One thing was hearing from users who are blind. Then, in 2017, we heard Michelle Obama talk at WWDC about imagining someone, somewhere, whom you could lift up with your work. I asked myself, “Are we really building for everyone? Are we doing all that we can?” I realized we had room to improve. We started integrating VoiceOver, then worked with blind people to improve that. A teacher at a school in New Zealand reached out to help her kids take notes during class. This is something that touches our hearts.

Noted can automatically skip over long silences in your recordings. How did you create that feature?
We got a lot of suggestions from people who were in lectures all day. Their recordings were three or four hours long because they forgot to stop recording when there was a break, and they’d have to scrub through those 30 minutes or whatever it was. So we put our thinking caps on and looked into machine learning. We struggled with that! But when Core ML released, one of our guys sat down and went through thousands of hours of audio to train it. We knew it was doable.

What advice would you give to developers who are just starting out?
You can’t do everything yourself. One person isn’t a symphony — you need everyone to play. When your app gets out the door, that’s the start of the whole thing, not the end. You need people in customer support. You need people in design. You need marketing people, you need engineers. You need different types of people to do distinct things.


Download Noted from the App Store

Learn more about the App Store Small Business Program

Posted on Leave a comment

Tax Category Setting Now Available in App Store Connect

The App Store makes it easy for you to manage transactions in 175 territories, and Apple administers tax on behalf of developers in 64 of those territories. Now App Store Connect provides the ability to assign tax categories to your apps and in-app purchases. These categories are based on your app’s content (for example, videos, books, or news publications) and determine which tax regulations apply in each territory, allowing Apple to administer tax for you at specific rates.

To assign categories, visit the Pricing and Availability section for your app in App Store Connect. If a category applies to your app, select it at the app level to apply it to the app and its associated in-app purchases. You can also manage each in-app purchase individually. Your selections will be applied to future transactions. If you choose not to make any changes, your apps and in-app purchases will be assigned the App Store software category at the same tax rate used today. Adjust these settings at any time as the characterization of your apps or in-app purchases evolve or as tax legislation changes.

Learn more about setting tax categories

Updated on June 17, 2022

Posted on Leave a comment

Behind the Design: Loóna

Illustration of books, birds, and lanterns shining out from an app icon

Andrew Yanchurevich’s inspiration for Loóna came, appropriately enough, at night-night time.

As a father of a 3-year-old son, Yanchurevich was well in the habit of reading bedtime stories nearly every night. One evening, he realized his son wasn’t the only one getting drowsy. “What worked well for him was also working for me,” says Yanchurevich. “As I read, I forgot about my thoughts and my plans. My mind came down.”

While that night brought Yanchurevich pleasant drowsiness, it also sparked the beginnings of an idea: an app that paired the beauty of a great bedtime story with soothing interactive experiences to help you drift off to dreamland. Together with co-founder and former product designer Eugene Nevgen, they dreamt up a product as gorgeous as it is effective: Loóna.

Drawing of child playing in playroom

The app winds you down with “sleepscapes,” interactive episodes designed to soothe your mind at the end of your day. “People use their phones at bedtimes, so we wanted to give them a more meaningful way to do it,” Yanchurevich says. “You can spend 20 or 30 minutes with Loóna and be ready to fall asleep.”

The idea, as Yanchurevich says, is to “recreate this safe bubble from your childhood,” just as he was doing for his son. In the introductory sleepscape “The Dragon’s Shrine,” you’ll explore a beautifully rendered marble pagoda while an appropriately mellifluous voice guides you through calming tasks. As you progress through sleepscapes, you’ll lose yourself in a fairytale kingdom, explore a dark forest, or simply cozy up to a crackling fire.

Co-founder Nevgen says his goal with Loóna wasn’t just to build a great mindfulness app, but to create “the most beautiful in the category.” That’s turned out to be a big job: There are more than 55 sleepscapes in the app, each of which took some 500 hours to build.

People use their phones at bedtimes, so we wanted to give them a more meaningful way to do it.

Luckily, the minds behind Loóna had a unique blend of skill sets. Nevgen and Yanchurevich are former product designers; co-founder Sergey Gonchar is a veteran engineer (along with Nevgen, he launched the now-defunct face-filter app MSQRD); co-founder Dmitri Doryn has a background in 3D graphics and training as an architect; and sound designer Ivan Senkevich has a long history in audio.

Sleepscape ideas range from esoteric notions like “the light of hope” or “the luminous realm” to something more concrete, like a Parisian park or a throwback Brooklyn. A bustling New York city may not be exactly the first thing that comes to mind when you think of a relaxing place. “Generally, people expect to see rainbows or forests in an app that promotes relaxation and sleep,” says Loóna CPO Mike Chernetsov, who leads the writing team. “Here you’ve got an old city building in the late evening.”

But part of the team’s goal is expanding the idea of what a relaxing place can be. “We don’t want to just do stereotypical places,” Chernetsov says. “Sometimes, we want to show places from a totally different perspective. If you look (at ‘Heartwarming Brooklyn’), it refers to a feeling that resonates with everyone: nostalgia. When we’re not feeling good, we all want a place to escape to, a moment where we can feel safe and secure. And from a visual standpoint, Brooklyn is really very soothing.”

Conference room containing the minds behind loona

Yanchurevich says the Brooklyn sleepscape is also easily one of the app’s most popular. “People have messaged us wanting the address to the building,” he says. “They want to grab a pizza in that cafe.”

Every soundscape the team creates involves this level of exploration and storytelling. While co-founder Doryn gets to work drafting a 3D model of the potential world, Chernetsov and the writing team are focused on exploring the narrative: What would bring you to this place? What would you do there? What sort of meditative activities would keep you the right level of engaged? It’s not storytelling in the traditional sense, but the writers so have an advantage: they can plunge into Doryn’s early sketches themselves to, as he says, “fly around the scene to finish the story.”

We want to show places from a totally different perspective. If you look (at ‘Heartwarming Brooklyn’), it refers to a feeling that resonates with everyone: nostalgia. When we’re not feeling good, we all want a place to escape to, a moment where we can feel safe and secure.

While the story is coming together, the app’s team of musicians and sound designers also get to work laying the sleepy sonic groundwork, much of which is recorded live in the team’s hometown of Minsk, Belarus. “I often come into my village to record,” says Senkevich. “The region has a great natural sound.”

To create the appropriately somnolent aural environment, Senkevich often hits the road in search of animal noises, breezy forests, babbling rivers, and the buzz of insect life. “Some of the sleepscapes are more cartoonish and some more realistic. But we always try to show that natural-ness of the sound.” (Some sounds, he notes, did come from libraries. “You can’t record the sea in Minsk,” Senkevich says with a laugh.)

Still, at the end of the day (well, the night), Loóna’s goal is to get you to turn the app off. The key is to strike an artful balance between meditative activity and relaxation; if a sleepscape is working, you’ll shut it down well before you’re finished (which is OK, you can pick it tomorrow night). Doryn says that finding that tightrope-sized balance is not always easy.

In progress sketches

“It’s an iterative process,” Doryn says,“ and sometimes we do go too far. Our animation team always wants to do more. Something more beautiful, something more glowy and shiny and with lots of jiggling wiggling stuff in the scene,” he laughs.

To find that balance, Loóna trusts their team of testers, who interact, color, unpack, and play with each soundscape to make sure the worlds help lull their participants without distracting them. A sleepscape called The Rusty Rooster Inn, for example, initially featured dozens of roof tiles that needed to be individually lit; their testers found it too much, however, so the Loóna team went back to grouping tiles together.

Illustrator sketching a soundscape of Loona

Finding that balance, Doryn says, is a constant job. “There’s no simple recipe, no silver bullet.” he says. “It’s all responding to user feedback. We’re constantly running tiny surveys, and always improving things from a technical and performance standpoint.”

With nearly 100 more sleepscapes in the works, Loóna is growing fast. From a creative standpoint, the team is working to craft an interconnected “Loóna universe,” where elements, themes, and even Easter eggs pop up across the app’s bank of sleepscapes. “We want to offer a journey to a whole universe of interconnected worlds,” says Chernetsov. “We want you to find a place where you’ll feel safe and secure, every night.”

Learn more about Loona

Download Loona from the App Store

Posted on Leave a comment

Developer Spotlight: CHANI

Collage of CHANI developers on a pink background.

In the universe of astrology, Chani Nicholas is a shining star — she has a New York Times best-seller (You Were Born for This: Astrology for Radical Self-Acceptance), a massive and devoted podcast audience, and a huge social media following.

With Chani, Nicholas says, she wanted to provide an experience only an app could, by “creating a personalized guide through life’s ups and downs.”

If you’re accustomed to reading astrology in short blurbs, Chani will be a revelation: Extensive horoscopes and birth charts deliver insights based on your birth date and time, and the current position of every planet (and Pluto).

There’s more to *Chani* than (really comprehensive) horoscopes. Guided meditations, journal prompts, and more are core to the experience.

There’s more to Chani than (really comprehensive) horoscopes. Guided meditations, journal prompts, and more are core to the experience.

Equally important to Nicholas are the app’s social justice initiatives: Chani was built by AnnieCannons, a queer-led development group whose engineers are predominantly survivors of human trafficking or gender-based violence. And 5 percent of the app’s revenue goes to survivors of gender-based violence through FreeFrom.org, an organization run by Nicholas’ wife, Sonya Passi, who also serves as CEO of Chani Nicholas Inc.

We caught up with Nicholas and Passi to discuss the importance of creating a dialogue with your chart, and how all Geminis aren’t the same.

Why did you decide to develop an app?

Nicholas: I’ve taught workshops online for the past six years; they were really successful, but they were delivered in a fairly archaic way. Building an app seemed like the most organic thing to do next.

Passi: It was important for us to make this system of knowledge extremely accessible. We talk about the app being the blueprint of your life in the palm of your hand. But we don’t want to just give your horoscope in tidbits; we want to give you the tools to be in a constant dialogue with your own chart.

The app is full of very specific, personalized information. Who provides all the content?

Nicholas: Every single word is written by me and a team of astrologers who have years, if not decades, of experience. And the planets never stop moving! Whatever you write is gone by the end of the week.

The app includes workshops designed to bring you into a closer relationship with your chart.

The app includes workshops designed to bring you into a closer relationship with your chart.

What has the response been like?

Nicholas: What I note from people is how it’s become a ritual: listening to the podcast, doing the workshops, checking in. It’s evolving in a way where people are making it part of their self-care; there’s such community participation. On Sundays and Mondays, people post a lot of weekend pictures of themselves in the bath to social media. I hope their devices are OK!

What were the early days like after you launched the app?

Passi: I must have answered about 1,200 customer service emails! We’ll look back on that time with turned stomachs and tremendous fondness, because that’s the beauty of it, right? The struggle and the success, seeing it all come together and remembering what you did to get it there. Now — and I’m certain a lot of app developers feel the same way — the ideas are coming faster than we can build.

What can astrology mean to the world today?

Nicholas: It really can feel empowering to know things about yourself, but it’s also about having a relationship with the story. People whose sign is, say, Gemini — the world tells them what they are, based on that. But obviously, everybody with the Gemini sign is very, very different. I wanted to subvert things and have you be more on the inside of your chart.

Passi: I didn’t know a lot about astrology before Chani and I met. Once I did learn, it felt like my life began. My healing journey began. My acceptance of who I am and what I’m here to do began. It’s important to me that everyone can have that.


Learn more about CHANI on the App Store

Learn more about the App Store Small Business Program