iPad 3G and iPad Wi-Fi

In a surprise update, Apple has made significant changes to its developer agreement, coinciding with the release of OS 4.1. It would seem that Apple is in fact responding to widespread criticism of vague language and specific restrictions. I expect much will be made of what this means for Flash, but I think what’s more significant is that the agreement represents a step toward what many developers wanted. Apple’s app ecosystem is, by design, not as flexible as traditional desktop operating systems, and it falls short of some of what is possible on some competitors (Android, MeeGo). But it’s also a platform that continues to evolve and change, and given some of the platform’s unique strengths, those changes come as good news.

The other flipside – something really only relevant to music developers – is greater freedom in regards to Library access, which should continue to unlock DJ software possibilities.

A More Sensible Contract

Daring Fireball has an excellent run-down of the changes in the developer agreement:
License Agreement and New Review Guidelines

Summary:

  • Language bigotry is more or less gone. The widely-despised “Section 3.3.1″ has been slashed, so that mention of specific programming languages or the vague “intermediary translation or compatibility layers” is gone. That should open up Flash’s cross-compiler, yes, but more important is that a vague reference that could mean practically anything has been removed, and that Apple has responded to feedback.
  • Interpreter language (3.3.2) is clarified. If you really want script interpreters, platforms like Android remain a better choice; interpreted code is allowed (thanks to the editing of 3.3.1) but must be installed with the app. But better language here means less developer confusion, and – as the agreement now explicitly says – there’s always WebKit.
  • Analytics are more open. Language apparently written to ban AdMob (which in turn prompted legal and regulatory pressure on Apple) is gone. You can collect analytics with user consent.

I actually strongly recommend reading Daring Fireball’s whole post; I don’t always agree with him, but I think author John Gruber is spot-on on this one.

Okay, so you’re reading the above news all over the Web. Here’s news exclusive to our audience.

New Library Access API in iOS 4.1

While not significant to as many developers, OS 4.1 is a big leap forward in terms of access to the music library. That’s going to be helpful to DJ apps, but also any music creation app that wants to store its audio assets on the device.

Gordon Childs, author of the DJ app Flare, writes with an update:

So your readers know their stuff and pretty quickly figured out that Flare on iOS 4.0 didn’t have “direct” access to the iPod Library samples and that in fact Flare was doing a lengthy and slightly clunky import.

iOS 4.1 finally resolves this situation with a new API class called AVAssetReader. Flare Scratch is the first DJ app (maybe the first overall app) on the AppStore to use this API.

So that means that local library files and iPod tracks are on a
fairly equal footing and that when the other apps catch up
you won’t have to waste space uploading the same tracks
over and over, nor deal with lame ad hoc WiFi upload schemes.

The only reason I haven’t yet pulled the built-in library in Flare Scratch is that some meta-data is not yet reliably reported via the new API, against which I have several bugs logged, so for example you can’t seamlessly loop an mp3 yet.

http://async-games.com/flare.html
http://itunes.com/apps/flarescratch

So, 4.0 was an improvement for music apps, 4.1 is way better and all we need now is multiple audio channels (i.e. via bluetooth) and you’ll have the perfect digital music device.

Below: a video demonstrates why this is cool.

And major kudos to Flare: they appear to be the first app to take advantage of this feature, shipping before even Apple’s own iMovie.

Good Times Ahead?

I’m personally gratified by this news. But part of what makes me and many developers excited is what’s happening in the larger landscape. I think some of the biggest advancements won’t come from any one platform – iOS or Android, to name the two most active for developers.

Competition and criticism is keeping platform vendors (Apple, Google and their partners) on their toes. Cross-platform development technologies continue to get more robust, so that some of the best work will be done between platforms. (I hope to talk more about that soon, as there are some technologies of specific interest to both Create Digital Music and Create Digital Motion.)

Nor are we just talking phones: bigger tablets, alongside or in place of laptops for performance, are part of the picture, too.

And because creative music apps push the envelopes of almost every aspect of these platforms – yes, far more than those fart apps – I think we stand to benefit the most from an innovative climate.

  • Peepo

    So can I now develop IOS apps again with Flash CS5? Any limitations?

    Peepo

  • http://www.createdigitalmusic.com Peter Kirn

    Note – this does not necessarily mean the ability to run Flash per se.

    More likely, it means that the Adobe cross-compilation tool will be okay. That tool originally created what was, for all intents and purposes, a "native" application. Apple specifically disallowed it anyway, targeting the cross-compiler. Because that's not an uncommon solution to development tools, that caused the ruckus with developers – even those who weren't necessarily Flash fans.

    But there's been no clear update on what this means beyond the text of the agreement itself.

  • Gary Gore

    nice for dj apps. Now we only need to hope someone can figure out how to build a multiple output sound device for the dock connector, so we can cue the music and output the master mix. Does anyone know of one?

  • http://www.createdigitalmusic.com Peter Kirn

    @Gary: I don't see that happening. You could build the device, but you'd have no way to address it within software, not given the way things are currently set up.

  • HEXnibble

    @Gary: There are several iOS dj apps that have implemented separate cue output ability:

    http://forum.ableton.com/viewtopic.php?p=1174816#

  • http://www.createdigitalmusic.com Peter Kirn

    Sorry, I mean true multichannel out…

    I'm hoping with all these operating systems (Android, Chrome, iOS) that we renew the discussion of standards that power hardware interfaces… even on desktop, I feel like forward progress has badly lapsed.

  • Theo den Brinker

    <cite>"Cross-platform development technologies continue to get more robust, so that some of the best work will be done between platforms."</cite>

    Cross platform has its place but this will miss out on good platform specific features. This happens on consoles, PC/Mac and on mobile.

  • Amin Pride

    Touch DJ Allows You To Output Split Channels. You Do Need A Mini Stereo To Female RCA Plus Two Male RCA To Mini Stereo Input Adapters To Make It Work. But It Does Work And Since The Recent Update Touch DJ Imports From Your Ipod Library. I'm Using A 3G Running 4.0.1 Jailbroken.

  • http://www.createdigitalmusic.com Peter Kirn

    @Theo: Well, that's true only if we're talking about making every last line of code cross-platform compatible. Viewed more generally, I'd say if you are able to reuse portions that make sense, you may be freed up to spend more time on the things that genuinely unique on different platforms rather than reinventing the wheel all the time.

  • http://www.createdigitalmusic.com Peter Kirn

    …oh, and even then, it's not always true; for many libraries, etc., there sometimes isn't any meaningful difference between platforms. I'm speaking in generalities, of course…

  • leslo

    Peter Kirn:

    "Note – this does not necessarily mean the ability to run Flash per se."

    Well, it look like it does (statement by Adobe):

    "Apple's announcement today that it has lifted restrictions on its third-party developer guidelines has direct implications for Adobe's Packager for iPhone, a feature in the Flash Professional CS5 authoring tool. This feature was created to enable Flash developers to quickly and easily deliver applications for iOS devices. The feature is available for developers to use today in Flash Professional CS5, and we will now resume development work on this feature for future releases."

  • http://www.createdigitalmusic.com Peter Kirn

    @leslo: Read the whole comment — that's a reference to the Flash cross-compiler, which is a tool that translates Flash apps to iOS code using Apple's APIs. This is different than what happens on Android, etc., which features a port of Flash/Flex to that platform.

  • Kennedy

    Anyone know what is in the metadata that's used for seamless MP3 looping? Is it simply the encoder that was used or is there something else? I've tried digging arround a bit on the web to figure this out but have had no luck so far.

  • RichardL

    @Peter Just some clarifications because most of the press has gotten this muddled.

    Flash Packager for iPhone is a tool that's part of Adobe's Flash Profession CS5 that allows programs written in Flash and ActionScript (Flash's programming language) to be compiled to native apps for iPhone, iPod touch and iPad devices. Apple stopped approving apps created with that tool earlier this spring. Prior to that had approved a few hundred apps on the App Store created with the pre-release version of the Flash Packager tool.

    Working in a very analogous manner to the Flash Packager for iPhone, AIR for Android is currently in beta and allows apps written in Flash/ActionScript to be compiled to run as standalone Android 2.2 apps. A developer may choose to make these AIR apps available through the Android Market just like other Android 2.2 apps.

    As of yesterday Apple started once again approving iOS apps created with Adobe's Flash Packager for iPhone. Many of these apps had been sitting in the App Store review queue since this spring when Apple stopped allowing them.

    Although it's largely the same API, AIR standalone apps shouldn't be confused with Flash content delivered through the browser. The code is often the same, but the deliverable is distributed through different mechanisms.

    To that end there is also a Flash 10.1 Player plugin for Android 2.2 that allows Flash content embedded in webpages, streamed or downloaded from the web to be run in your Android browser.

    Flex is a programming framework written in ActionScript designed for developing rich internet applications for the desktop — either standalone AIR apps or delivered through the Flash Player in the browser. Flex is currently not very useful for creating mobile-optimized Flash content. Adobe is working on a mobile-optimized version of the Flex framework called Slider, but it's not yet available.

  • yawn

    Honestly, if I wanted to know about Apple operating system upgrades, I would subscribe to an Apple operating system RSS. This is only related to creating digital music in the sense that the DAWs many of us use requires an OS, and even then it is only tangentially related. Why not write articles about new types of RAM or HDDs, as we all use those? Why not write articles about power plants and energy, as we all use these too.

    tl;dr – stop riding the Apple hype train!

  • holotropik

    yawn :O sick of the Apple hate…

  • griotspeak

    @yawn

    seriously? the API update for dj apps is DEFINITELY relevant. the developer agreement being more public is relevant to the discussions we have had around 'why was app-x not approved.' more languages takes away some of the apprehension about many of the languages championed on this site.

    i can understnad not feeling as if Apple news is exciting, but it IS to some of us.