Posted on Leave a comment

Details for app privacy questions now available

At Apple, we believe that privacy is a fundamental human right. As announced at WWDC20, App Store product pages will feature a new privacy information section to help users understand an app’s privacy practices. Today we are publishing more details for developers on what will be covered in this new privacy section. By the end of next month, you will be able to submit your information via App Store Connect to prepare for this feature rolling out to users by the end of the year.

Learn more about providing app privacy information

In addition, on iOS 14, iPadOS 14, and tvOS 14, apps will be required to receive user permission to track users across apps or websites owned by other companies, or to access the device’s advertising identifier. We are committed to ensuring users can choose whether or not they allow an app to track them. To give developers time to make necessary changes, apps will be required to obtain permission to track users starting early next year. More information, including an update to the App Store Review Guidelines, will follow this fall.

Learn more about asking permission to track

Posted on Leave a comment

Get ready for subscription offer codes

Later this year, you’ll be able to acquire, retain, and win back subscribers with subscription offer codes: unique, alphanumeric codes that provide free or discounted prices for auto-renewable subscriptions. Provide your one-time use codes digitally or offline at physical events, alongside products, and more. Customers on iOS 14 and iPadOS 14 and later can redeem offer codes on the App Store, through a one-time code redemption URL, or within your app if you’ve implemented the presentCodeRedemptionSheet API.

Learn more about subscription offer codes

Posted on Leave a comment

Upcoming tax and price changes for apps and in-app purchases

When taxes or foreign exchange rates change, we sometimes need to update prices on the App Store. In the next few days, prices of apps and in-app purchases (excluding auto-renewable subscriptions) on the App Store will increase in response to tax changes in Chile, Mexico, Saudi Arabia, and Turkey. Your proceeds will be adjusted accordingly and will be calculated based on the tax-exclusive price.

  • Chile: New value-added tax of 19%
  • Mexico: New value-added tax of 16%
  • Saudi Arabia: Increase in value-added tax from 5% to 15%
  • Turkey: New digital services tax of 7.5% (in addition to the existing value-added tax of 18%)

In addition, your proceeds will also be adjusted in Germany, France, Italy, and the United Kingdom, and will be calculated based on the tax-exclusive price. However, prices on the App Store will not change.

  • Germany: Reduced value-added tax rate from 19% to 16% (effective July 2020)
  • France: New digital services tax of 3% (in addition to the existing value-added tax of 20%)
  • Italy: New digital services tax of 3% (in addition to the existing value-added tax of 22%)
  • United Kingdom: New digital services tax of 2% (in addition to the existing value-added tax of 20%)

Note that Apple will automatically issue refunds on a monthly basis to customers in Germany (effective July 2020) with auto-renewable subscriptions to account for the tax reduction. These refunds will not affect your proceeds.

You can download the updated price tier charts now. Once these changes go into effect, the Pricing and Availability section of My Apps will be updated. You can change the price of your apps and in-app purchases (including auto-renewable subscriptions) at any time in App Store Connect. If you offer subscriptions, you can choose to preserve prices for existing subscribers.

Posted on Leave a comment

App Review process updates

The App Store is dedicated to providing a great experience for everyone. To continue offering a safe place for users to download apps and helping you successfully develop apps that are secure, high-quality, reliable, and respectful of user privacy, we’ve updated the app review process as announced at WWDC20. For apps that are already on the App Store, bug fixes will no longer be delayed over guideline violations except for those related to legal issues. You’ll instead be able to address guideline violations in your next submission. And now, in addition to appealing decisions about whether an app violates guidelines, you can suggest changes to the guidelines. We also encourage you to submit your App Store and Apple development platform suggestions so we can continue to improve experiences for the developer community.

Submit an App Store or platform suggestion

Posted on Leave a comment

Behind the Design: Song of Bloom

When designing games, Philipp Stollenmayer has a confession to make. “I’m easily bored,” he says. “And I just don’t want the player to be bored when I am.”

The German developer’s aversion to monotony has fueled a prolific number of creative and off-kilter titles over the years, including Sometimes You Die, Sticky Terms, and Bacon — The Game. 2019’s Song of Bloom goes further still. The Apple Design Award-winning puzzle game is enigmatic and ever-shifting, with a series of layered and intertwined levels that invite people to tap, shake, draw, and explore their device.

Song of Bloom’s puzzles range in style, design, and execution.

“It’s an abstract game [that develops] into something more understandable with time,” says Stollenmayer. “The more you get in the story, the more you discover and the more the interaction changes.”

This concept is a core part of his philosophy around game design: create an instantly graspable idea, then keep thinking, pushing, and inviting players go further. There’s no true ‘goal’ beyond the exploration of the narrative and the puzzles — in Stollenmayer’s words, the game is “user experience in its truest form.”

Song of Bloom grew from one of Stollenmayer’s vacation experiments. Having taken a looping video of waves on the beach while in Italy, he decided to try and add a new aspect to it with device rotation: when the video flipped, the water would fall out of frame. From there, “it just became a process of triggering new ideas and new experiments,” he says.

The milk carton from Song of Bloom, made real.

Unlike Stollenmayer’s other games, nothing is constant in Song of Bloom. “Not the elements, not the interaction, and not even remotely the style,” he says. One puzzle might look like a rough sketch, while others include hyper-realistic popcorn kernels. His favorite puzzle of the series? A stop-motion risograph-inspired milk carton.

There is always this doubt in the back of the mind if what you are seeing is real. This contributes a lot to the mood I am trying to convey.

Philipp Stollenmayer

Every image in Song of Bloom is computer-generated, the result of experimenting with code — sometimes with unintended results. “As a designer who isn’t the greatest programmer, my code usually creates visual errors,” says Stollenmayer. “On the way, I would let myself [be inspired] by my own faults.”

That included manipulating items to make them look more like how they might in a real-world setting. For example, one puzzle, which requires someone to virtually knit an item, includes the sort of stray holes and tiny offshoots that you might expect from a newer knitter. “Making digital versions without these faults is much easier,” Stollenmayer says. “But copying the faults creates moments where you ask yourself: Could this be real?”

He drew inspiration from immersive installations and puzzle games alike, including multimedia artists Laure Prouvost and Franz West and games like Blackbox, Device6, and Prune. “I look at a lot of art to get a sense for color, composition — but also how to control and transform surroundings,” he says.

I am interested in the between, where it all comes together, because in our world, nothing exists without context.

Philipp Stollenmayer

Each visual, haptic, motion, and verbal cue within the game is designed to get the player to explore that space and interact with its imagery. Because the puzzles are often highly abstracted, Stollenmayer used haptics to help guide people through the game — using them to signify mood in higher- or lower-stakes scenes or aid someone in evaluating potential solves. “Like in the real world, the player expects a reaction from every action,” Stollenmayer says.

One of his earliest concepts for transitioning between puzzles in Song of Bloom was that of someone blinking their eyes: Solve the puzzle or move to the main screen, and the entire screen blinks in and out.

Stollenmayer experimented with several multitouch gestures around that concept, including a pinch gesture, before settling on a button — a single curved line — in the corner. “I had to get it into the player’s mind,” he says. That meant creating something easily findable and understandable, and not adding gestures that might get triggered by chance during the exploration of a puzzle.

That thin curved line is one of the only pieces of consistent, persistent interface amidst Song of Bloom’s many artistic changes. “Like the home bar on full screen iPhones, it’s just there to remind you that [it] exists, without disturbing the running scene with any content or contrasting style,” Stollenmayer says.

Stollenmayer with an early version of the Song of Bloom tree.

On tap, it allows people to return to the game’s main screen and view the branching tree of puzzles they’ve helped grow. This tree also serves as the game’s sole hint mechanism, letting people use long presses to peek at possible areas to focus on within the game. The more you play around with it, the more the story (and tree) grows and the more hints you discover. Along with original music, it’s this fertile combination of forces that earns the game its name.

With so many different art styles and creative influences, it’s amazing how effortlessly they all blend together in Song of Bloom. The story is important, of course, but for Philipp design is really about how it feels. Call Song of Bloom what you will — a game of personal discovery, a provocative tale of art and clues — for Philipp Stollenmayer, the goal is simply to play; to make people feel at once captivated and liberated all in the same hour-long session.

In Song of Bloom, you just play for the sake of playing. And this is what I was trying to achieve — to help the player get lost in his own interpretation.

Philipp Stollenmayer

Learn more about Song of Bloom

Learn more about Song of Bloom on the App Store

Download Song of Bloom

Posted on Leave a comment

Behind the Design: Sayonara Wild Hearts

Art can reflect emotions we can’t process in spoken word alone: Paintings capture these feelings in color and scale, films reflect our world back to us through new light, and music puts melody to the words we don’t know how to — or cannot — say.

The road of relationships is particularly well-traveled where art is concerned. Sayonara Wild Hearts, however, uses the approachability of the topic and transforms it into an exploration on lost love, finding independence, and moving on. Ever-shifting gameplay and an electrifying beat capture the stages of reflecting on a broken relationship, illuminated by a psychedelic canvas of bright rainbow colors and geometric shapes.

“This is a game that is very much about the music,” says Simon Flesser, who along with his co-founder Gordon Gardebäck makes up the game company Simogo. While the two have often created playlists of brainstorm music and scoring for their games, the conceit for Sayonara was unique: What if you could take the ubiquity of the breakup album and make it interactive through the best tropes of 80s and 90s arcade games?

“We wanted everything in the game to echo that sense of approachability,” Flesser says. “[And] we naturally fell into the idea of wanting to make something that felt like the arcade games we great up with and played when we were young.” Games like Star Fox provided inspiration for the team, as did the musical integration through titles like Rez. “We [also] often try to find inspiration in things we don’t necessarily like, but see the potential in,” Flesser says. “We looked at games that use video a lot… where those game fail in interactivity, they really succeed in spectacle. So we wanted to try and capture that feeling, while not losing the feeling of being in constant control of the game.”

To capture the musical foundation for the game, Simogo began with a large playlist of music that represented the essence of the project. “It started very differently, with a much more sinister tone,” Flesser tells us. The game’s prototype reflected this darker style — until, one day, an overly energetic pop song from the playlist came into rotation during a playtest.

Early concept art for Sayonara Wild Hearts.

“It just clicked,” Flesser says. “I literally said [to the team], ‘This is it.’” They began writing original pop songs around this new tone the very next day. And as the new songs came into focus, the prototype’s color scheme began to shift as well. “[The songs] were in hues of purple and pink and blue,” Flesser says. “It painted the game for us, the music.”

Go with what your heart tells you and what your gut tells you… Because I think that’s the only way that you will get something that feels like it has something to say or that it’s an honest piece of work… once you start thinking too much about what you’re making and what you’re trying to say with it, then there’s some kind of intangible magic lost because the project needs to tell you what it is instead of you telling the project what it is.

Simon Flesser, Simogo

Simogo continued playing with recognizable themes and objects as the team refined characters for Sayonara. “[Characters] are all based on cards from the Major Arcana deck,” Flesser says. The tarot cards also influenced some of the broader conceptual designs and bigger items like the vehicles driven by various game characters.

Within the tarot card frame, Sayonara’s distinctive colors and geometric shapes create contrast between characters and the background, providing crisp views as people play through the game’s chapters with taps and swipes. “We needed to work with very simple shapes and distinctive colors because it’s just swooshing by… you can’t have much detail,” says Flesser. “We worked a lot with the contrast between dangerous stuff, positive stuff, characters, vehicles.” Each of these items was both differently colored and shaped to provide the maximum best possible contrast.

Because the game moves so fast, it was imperative to create controls both easy to follow and intuitive to use. As such, the team intentionally kept the controls platform agnostic. This also helps the game live equally at home on a touchscreen, third-party game controller, or Apple TV remote. “We opted for a more swiped base input for gameplay so that the player avatar moves when the player actually moves their finger,” Flesser says.

Swipe controls continued to evolve as the team tested prototypes, with the game’s constant camera movements and zooms being a particular challenge. “We definitely learned a lot about feedback in 3D space versus 2D space,” Flesser says. “The same type of movement will feel radically different depending on how far away the camera is [and] how much the camera moves versus how much it rotates around its own axis or around the player avatar axis.”

To smooth the experience, Simogo adjusted swipe responsivity and feedback to the camera’s active perspective and zoom level, while keeping the character in the same relative space.

Together, this kind of care and design work in harmony to make Sayonara Wild Hearts a standout game on Apple platforms. Flesser had this to say about the game’s journey to Apple Design Award-winner:

We always just want to make something that you enjoy yourself. And if you do something you enjoy yourself, then chances are that there might be one or two other people that will enjoy it as well.

Sayonara Wild Hearts

Download Sayonara Wild Hearts

Learn more about Sayonara Wild Hearts on the App Store

Posted on Leave a comment

Enhance SMS-delivered code security with domain-bound codes

Many websites and apps offer additional login security in the form of SMS-delivered codes. On iPhone, Security Code AutoFill makes it easy for people to quickly supply these codes by offering them in the QuickType bar. On a Mac running macOS Big Sur, Mac Catalyst and AppKit apps can take advantage of this feature as well.

Additionally, starting with iOS 14 and macOS Big Sur, we’re adding an extra layer of security to SMS-delivered codes by allowing you to associate codes with a specific web domain.

How domain-bound codes work

When you use a domain-bound code, AutoFill will suggest the code if — and only if — the domain is a match for the website or one of your app’s associated domains. For example, if you receive an SMS message that ends with @example.com #123456, AutoFill will offer to fill that code when they interact with example.com, any of its subdomains, or an app associated with example.com. If instead you receive an SMS message that ends with @example.net #123456, AutoFill will not offer the code on example.com or in example.com’s associated app. This makes it harder for an attacker to trick someone into entering one-time codes into a phishing site.

While iOS and macOS will also display regular SMS-delivered codes in addition to domain-bound codes, we encourage everyone employing this authentication method to adopt this standard to provide a more secure experience for people on your website or app. If a message contains no domain information, it will continue to be offered in all relevant fields through AutoFill.

How to set up SMS domain-bound codes

You can take advantage of domain-bound codes on both websites and apps with associated domains.

Set up domain-bound codes for your website
In most cases, AutoFill should work automatically on Safari for iOS and macOS Big Sur, and requires no additional information from you. In cases where it does not, you can add the autocomplete=one-time-code attribute to your web page’s text field. This cues Safari to offer applicable codes in that field.

Set up domain-bound codes for your app
You can support domain-bound codes by providing an associated domain for your app. If you support Universal Links for your domain, or if AutoFill is currently suggesting saved passwords for your domain in your app’s login screens, your app is already associated with your domain.

Learn more about supporting associated domains

Note: If you’re running into issues when testing your app’s login flows, you may need to provide an additional hint about which fields in your app are one-time code fields. For iOS and Mac Catalyst apps, set the field’s textContentType property to UITextContentType.oneTimeCode. For AppKit apps on macOS, NSTextField has a contentType property that you should set to NSTextContentTypeOneTimeCode.


How to format SMS domain-bound codes

Once your app or website is set up to receive domain-bound codes, you’ll need to provide a simple addition to the SMS messages you send through your backend service to include both the domain and code. Here’s what the text you’ll send looks like:

123456 is your Example code. @example.com #123456

Everything above the last line of the message is freeform. You’re free to customize this part however you like, but it should be something that makes sense to people receiving the code.

The last line of this message gives AutoFill on iPhone, iPad, or Mac the information it needs to bind the domain and code together and suggest the code for the appropriate website or app.

In order for domain-bound codes to work properly, you must include this information in the last line of the message, and it must contain the domain and code in the correct order.

@example.com

This is the first part of that last line, and contains the domain of the app or website where you want the code to fill in. Make sure to put a single space after your domain before you begin the segment with your one-time code.

#123456 (represents the code 123456)

The second part of the last line begins with # and contains the string with your app or website’s one-time code.

Improve your SMS-delivered codes

Domain-bound codes are straightforward for developers to implement, easy for people using your apps and websites to understand, and add more security to the SMS-delivered codes. You can also learn more about domain-bound codes and the development of the message format in the W3C’s Web Platform Incubator Community Group.

Resources

Learn more about domain-bound codes

Allowing Apps and Websites to Link to Your Content

Posted on Leave a comment

Verify your app’s integrity with the new App Attest API

Part of the DeviceCheck services, the new App Attest API helps protect against security threats to your apps on iOS 14 or later, reducing fraudulent use of your services. With App Attest, you can generate a special cryptographic key on a device and use it to validate the integrity of your app before your server provides access to sensitive data.

Learn more