Tag Archives: adobe

Apple lifts restrictions on app development tools, publishes review guidelines

Apple has lifted its restrictions on the development tools used to create iOS (iPhone and iPad) apps, in a statement published today:

We have listened to our developers and taken much of their feedback to heart. Based on their input, today we are making some important changes to our iOS Developer Program license in sections 3.3.1, 3.3.2 and 3.3.9 to relax some restrictions we put in place earlier this year. In particular, we are relaxing all restrictions on the development tools used to create iOS apps, as long as the resulting apps do not download any code. This should give developers the flexibility they want, while preserving the security we need.

In addition, Apple says it is publishing the App Store Review Guidelines in the hope that this will make the approval process more transparent.

Good news I guess; but why? Maybe in part because the restrictions made little sense and were possibly unenforceable; and in part because Android’s popularity is putting pressure on Apple to be more developer-friendly. In practice, some apps that you would have thought breached the requirements apparently made it through the approval process; and those publishers of cross-platform tools which kept their nerve have their patience rewarded.

But what about Adobe? Apple’s development restrictions seems to trigger a significant change of direction, with work on the Packager for iPhone stopped, Android devices issued to employees, and evangelism for Android in Adobe blogs and tweets.

Since Apple is not changing its mind about runtimes, but only about development tools, this change of mind does not enable Flash on the iPhone; but I guess Adobe could now revive its cross-compilation work. On the other hand, Apple’s pronouncements have caused disruption for Adobe and perhaps served more as a wake-up call: this is a closed platform with one owner and therefore a risky target for investment.

Getting started with Android – a few hassles

I’m setting myself up for Android development, and my HTC Desire arrived today. It is a lot of fun, though I have had a few hassles, partly because my device is locked to Orange and of course I wanted to upgrade to Android 2.2 “Froyo” right away. There are also a few issues with the Orange branding on a Desire, including the absence of Google Talk and applications like Orange Maps that you probably will not use. I went through a series of steps to unbrand the phone and install Android 2.2.

It is an odd situation, where mobile operators work hard at adding their branding and applications to the device, only for canny users to work out how to remove them. Branding also delays updates. If Android is updated, the operator has to receive the updated operating system image from the phone manufacturer, HTC in this case, add its customizations, and then apparently sent it back to HTC for packaging.

My guess is that if an operator decided to ship the standard Android image it would be a selling point and attract more customers. I even have a catchy name to offer: “Naked Desire”. How about it?

Still, all went well with my hacks; and eventually I was up and running with Android 2.2 and of course Flash 10.0:

image

That said, I had an annoying issue with Android Market. I selected an application, it would appear to start installing, but stuck on “Starting download” or “Downloading” with no actual progress.

It turns out this is a common problem – see here for one of many discussions. A popular fix is to change your account from someone@gmail.com to someone@googlemail.com, but this did not apply to me. I discovered the reason, which is that my wifi is behind Microsoft’s ISA Server. Android Market requires TCP outbound connections on port 5228. I configured ISA accordingly, and after cancelling and restarting the downloads they succeeded.

Finally, I wanted a screen grab or two to decorate this post. I used the method described here, fine for developers but not ideal for casual users.

image

I’ll report more impressions shortly, including no doubt the inevitable iPhone comparison.

Develop for Adobe Flash/Flex in Amethyst for Visual Studio

SapphireSteel Software is poised to release Amethyst, which lets you develop Flash and Flex applications with Microsoft’s Visual Studio 2008 or 2010.

Why bother? There’s two aspects to this. One is simply the comfort factor: if you are a .NET developer used to Visual Studio, but now working on Flash or Flex, this could be an easier way in than the Eclipse-based Flash Builder. There is a visual designer, a full-featured debugger, a property inspector with sections for properties, events, effects and styles, for example, and double-clicking an event generates an event handler as you would expect.

The other factor is areas where Amethyst can improve on what Flash Builder offers. One example is ActionScript refactoring, disappointing in Adobe’s product. Amethyst is not brilliant, but does have a few extras including Extract Method, Encapsulate Field and Extract Interface.

image

Another useful feature is that Amethyst can share projects with Flash or Flash Builder. Before you get excited, it does not do the magic you might want, Visual Studio editing of .fla files with embedded ActionScript. It does work reasonably seamlessly though: you can open .fla file in the Flash IDE by clicking within Amethyst.

This would have been even more interesting if Adobe had not added a measure of Flash Builder integration in Flash Professional CS5; and that is the challenge facing SapphireSteel – how to keep up with Adobe’s official development tools.

I’ve only played briefly with Amethyst but although I’ve been impressed with it in some ways, I also found myself missing features in Flash Builder, such as the Connect to Data wizards, and the view state management.

It is early days though; and I would be interested to hear from others who have tried Amethyst on what they do or do not like about it.

Price is not yet stated, but SapphireSteel also offer a Ruby product which is priced at $49 for a basic edition, or $199 for a professional version. Amethyst also comes in two editions so perhaps we will see something similar.

Render SWF in JavaScript – a solution for Flash on iPhone/iPad?

Looking at the blazing-fast JavaScript in IE9 Preview 4 made me wonder if anyone had tried to write a SWF renderer in JavaScript. SWF is the Adobe Flash file format and a published specification.

Of course someone has. Tobias Schneider has been working on Gordon and built his first full release in June.

image

Gordon is a little behind in terms of version support:

In this build, Gordon can read and parse all valid SWF’s, even if they are compressed with ZLIB, but plays only SWF1 files completely, as well as the most of the SWF2 features.

The Adobe SWF specification is now up to version 10.

It is still an interesting exercise. Consider Google Web Toolkit, which compiles Java to JavaScript. What if Adobe did something similar for Flash? In fact, if you look at the Smart Paste “sneak peak” from Adobe Max 09 something like this was demonstrated.

The Flash player includes some proprietary codecs that could not easily be replicated in JavaScript. Still, given such limitations, “Export to HTML 5” would be a nice option to find on some future version of Flash Professional, and would help Adobe’s tools business even if it also dented its ambitions for Flash as the universal runtime.

SOA, REST and Flash/Flex – why Flash does not PUT

Adobe’s Duane Nickull has an illuminating post on how the Flash player handles REST. Nickull is responding to a post by Malcolm Box in which he complains how hard it is to use Flash with a REST web service. Box observes that Flash cannot send POST, PUT and DELETE requests when running in the browser, and does not send cookies.

Nickull defends the Flash behaviour:

Flash’s HTTP libraries currently support GET and POST. My architectural view of this is that the HTTP libraries only should really support these and not worry about the others.

He also notes that cookies are a poor way to manage state:

Cookies are for the browser and belong in the browser. Having Flash Player able to access cookies would be a mistake in my own opinion. Any logic that is facilitated by a browser should probably be dealt with at the browser layer before Flash Player is used.

Now, I think the comments on REST are important to read if you are engaged in designing a web service, as many of us in these days of cloud+device. There is a kind-of “word on the street” approach to web services which says that REST is good, SOA/SOAP is bad; but in reality it is not so simple, and these distinctions are muddled. REST is arguably a form of SOA, you can do SOAP with REST, and so on.

One factor is that reading data in a web client is far more common than writing data. It is easy to be an advocate of the simplicity of REST if all you are doing is GET.

The question Nickull asks is whether the transport protocol has any business dictating how the data it transports should be processed, for example whether it is an operation to retrieve or to write data:

In an SOA world, the transport functionality (usually implemented using SOAP) should focus on just delivering the message and it’s associated payload(s) to the destination(s), optionally enforcing rules of reliability and security rather than declaring to the application layer processing instructions to the service endpoint.

Read the post for more of the rationale behind this. Maybe, even if you are doing REST, restricting your web service to GET and POST is not such a bad idea after all.

That said, whatever you think about the architectural principles, you may find yourself having to write a browser-hosted Flash client for a service that requires an HTTP verb other than GET or POST. There are ways round it: see this discussion of Amazon S3 (which uses PUT) and Flash for an example.

Day Software: another strategic acquisition for Adobe

Adobe has acquired Day Software, a company which specialises in web content management. Its products include the CRX Java Content Repository and the CQ5 Web Content Management Platform. One of its distinctive features is an emphasis on interaction and collaboration. Day’s chief scientist is Roy Fielding, co-founder of the Apache Software Foundation and well-known for his work on REST (Representational State Transfer).

The acquisition gives Adobe a stronger presence in the open source community, and it will be interesting to see if it influences controversial issues like the fact that the Flash Player is closed source, or that some of Adobe’s open source projects are not as collaborative as they could be.

I suspect though that Adobe is mainly aiming to broaden its technology to encompass web content management and to tie it together with its rich client platform, Flash and AIR. It is a good fit, since it is Java based and should work nicely with the existing LiveCycle pieces. We might also expect integration with Omniture web analytics as well as with the content authoring tools in Creative Suite.

Looks like a sane acquisition to me.

Why is there so much junk in Apple’s App Store?

After 4 weeks with Apple’s iPhone 4 I’m mainly impressed with everything other than the call quality (I am in a poor signal area for O2). I’ve been exploring the App Store though, and while there are many great apps there, there is also a huge amount of junk. Here’s a review for an app I was looking at:

This app is such a con. The adverts are deliberately put in the most awkward places so they get pressed accidentally; there is no “would you like to make a call” dialog box, nothing, it goes straight to an 090 number and even if you cancel the call instantly you are still charged … Apple should be ashamed for letting this little con artist on to the app store!

Other users report frequent crashes, lost data and so on.

With over 200,000 apps available, it’s not surprising that some are duds. However, given Apple’s insistence on checking every one, I’d expected the overall standard to be higher. Apple cannot easily judge how useful an app is, particularly in a niche area, but things like instability or unfair advertising practices should be caught.

Another odd thing: if you browse the store on the device, you cannot sort by rating, as far as I can tell, making it hard to find the better apps quickly. I guess this could be designed to mitigate the “winner takes all” factor: if one or two apps in a common search category achieve high ratings, it is difficult for newcomers to get noticed sufficiently to drive up their own ratings. Still, give the amount of dross in there, it would help to have this as an option, even if it were not allowed to be the default sort.

The existence of so many poor apps also puts into context the Thoughts on Flash posted by Steve Jobs. I kind-of understand why Apple wants to exclude the Flash runtime from its device platform; but that does not explain the ban on Adobe’s Packager for iPhone, which compiles a Flash application to an iPhone binary. That might make sense if Jobs could point to the consistent high technical standard of iPhone Apps; but that is simply not the case.

Big browser and RIA news: Canvas comes to Internet Explorer 9

I’ve just installed the third Internet Explorer Platform Preview (on a virtual machine just in case) and run through a few of the demos. One of the most impressive is Canvas Pad, which demonstrates the HTML 5 Canvas element.

image

Canvas is particularly interesting, since it provides a surface to which you can draw anything you like. Canvas support was not announced at Mix earlier this year, when IE9 was unveiled, and some of us speculated that Microsoft would omit it in order to preserve the value of its Silverlight plugin – though in doing so it would also help Adobe Flash. Well, apparently the IE9 team decided to risk it. Not only is canvas supported; it is also hardware-accelerated:

Like all of the graphics in IE9, canvas is hardware accelerated through Windows and the GPU. Hardware accelerated canvas support in IE9 illustrates the power of native HTML5 in a browser.

Is there still value in Silverlight and Flash? There is, for several reasons. A plug-in presents a predictable runtime, insulating the application from browser variations. A plugin will work on browsers that do not yet support Canvas. Further, Silverlight includes the .NET Framework with its rich library, and supports the .NET languages, whereas for HTML5 you have to use JavaScript – though don’t forget Google Web Toolkit, which compiles Java to JavaScript, and other similar projects.

Even so, once you have hardware-accelerated Canvas there will be few occasions when you absolutely have to use Flash, Silverlight or Java.

Microsoft is doing the right thing. Crippling IE for the sake of Silverlight would only push users to other browsers, so it would not achieve its goal.

A full list of what is new in IE9 is here. It is shaping up to be the most interesting new IE since version 4.0 back in 1997.

Adobe financials: strong Creative Suite 5 and Flash, claims company undervalued

Adobe has released its financial results for its second quarter, reporting $227.3 million net income (GAAP) compared to $161.4 million in the same quarter last year; and revenue of $943 million which it says is 34% year on year growth.

Much of this is thanks to a successful launch for Creative Suite 5, which accounts for 56% of Adobe’s revenue. However, Adobe has also reported 12% year-on-year growth for LiveCycle, its enterprise server products about which I learned last week in Amsterdam. The “platform” segment, which includes the Flex development tools, Cold Fusion, and Flash media services, is also growing, from $36.8 million in Q2 2009 to $45.4 million in Q2 2010.

CEO Shantanu Narayen is upbeat, saying “we believe Adobe is significantly undervalued today” and backing his judgement with a share buyback program.

I was particularly interested in the focus on Flash in Adobe’s statements and conference call:

Approximately 3.5 million Flash designers and developers are working with Flash-based solutions today, and their ranks grew by 59 percent in 2009

said Narayen; while Executive VP Mark Garrett noted:

CS5 products containing Flash authoring and output as a product component achieved revenue growth of 22% version-over-version to date

making the point that this exceeded the growth of CS5 overall.

Any clouds on the horizon? Two that I can think of. One is that Apple wants to kill Flash. CEO Steve Jobs says:

Flash was created during the PC era – for PCs and mice. Flash is a successful business for Adobe, and we can understand why they want to push it beyond PCs. But the mobile era is about low power devices, touch interfaces and open web standards – all areas where Flash falls short.

The other issue is that Adobe is dependent on Creative Suite, desktop software that arguably will be a business hard to sustain in the cloud and device era.

Still, these are good figures, the best we have seen from Adobe for a while, and despite the efforts of Steve Jobs both Adobe and Flash are prospering right now. A side-effect of Apple’s Flash downer is that competitors have hastened to support it, with Google building Flash support deeply into its Chrome browser.

Detailed figures from Adobe are here.

Adobe LiveCycle and the Apple problem

Earlier this week I attended Adobe’s partner conference in Amsterdam, or at least part of it. The sessions were closed, but I was among the judges for the second day, where partners presented solutions they had created; the ones we judged best will likely be presented at the Max conference in October.

Seeing the showcased solutions gave insight into how and why LiveCycle is being used. LiveCycle is actually a suite of products – the official site lists 14 modules – which are essentially a bunch of server applications to process and generate PDF forms and documents, combined with data services that optimise data delivery and synchronisation with Flash clients, typically built with Flex and running either in-browser or on the desktop using AIR. These two strands got twisted together when Adobe took over Macromedia.

LiveCycle applications are Java applications, and run on top of Java Enterprise Edition application servers such as Oracle’s WebLogic or IBM’s WebSphere. This does mean that support for Microsoft’s .NET platform is weak; Adobe argues that that Microsoft’s platform has its own self-contained stack and development tool (Visual Studio) which makes it not worth supporting, though of course there are ways to integrate using web services and we saw examples of this. Many of the partners whispered to me that they also build SharePoint solutions for their Microsoft platform customers, and that SharePoint 2010 is a big improvement on earlier versions for what they do. Still, Java is the more important platform in this particular area.

Why would you want to base an Enterprise application on PDF? The answer is that many business processes involve forms and workflows, and for these LiveCycle is a strong solution. PDF is widely accepted as a suitable format for publishing and archiving. One thing that cropped up in many of the solutions is digital signatures: the ability to verify that a document was produced at a certain time and date and has not been tampered with plays well with many organisations.

Here’s a quick flavour of some of the solutions we saw. Ajila AG showed an application which handles planning permission in parts of Switzerland; everything is handled using PDF form submissions and email, and apparently a process which used to take 45 days is now accomplished in 3 days. Another Ajila AG solution handles the electronic paperwork for complex financial instruments at the Swiss stock exchange. Ensemble Systems showed an e-invoicing system which includes a portal where both a company and its suppliers can log in to view and track the progress of an invoice. Impuls Systems GmbH used PDF forms combined with Adobe Connect Pro conferencing to create online consultation rooms and guided form completion for clients purchasing health insurance. Aktive Reply built a system to replace printed letterheads for an insurance company with 10,000 agents; not only does the system save paper, but it also synchronises any address changes with a central database. Another Aktive Reply application lets lawyers assemble contracts from a database of fragments, enforcing rules that reduce the chance of errors; we were told that this one replaced a complex and error-prone Word macro.

OK, so why would you not want to use LiveCycle for your forms or document-based workflow or business process management application? Well, these solutions tend to be costly so smaller organisations need not apply; and I did worry on occasion about over-complexity. More important, the whole platform depends on PDF, often making use of smart features like Adobe Reader Extensions and scripting. After all, this is why Adobe added all these abilities to PDF, despite security concerns and the desire some of us have for simple, fast rendering of PDF documents rather than yet another application platform.

PDF is well supported of course, but once you move away from Windows and Mac desktops, it is often not the official Adobe Reader that you use, but some other utility that does not support all these extra features. In many cases it is not just PDF, but Flash/Flex applications which form part of these LiveCycle solutions. Adobe understands the importance of mobile devices and I was told that more effort will be put into Adobe Reader for mobile devices, to broaden its support and extend its features. Reader for Android is also available, as an app in the Android Market.

That’s fair enough, but what about Apple? Curiously (or not) PDF is not well supported on the iPad, though you can read PDF in Safari and in mail attachments. This is not Adobe Reader though; and given that PDF now supports Flash as well as scripting there seems little chance of Adobe getting it onto the App Store. Flash itself is completely absent of course.

Lack of compatibility with Apple devices did not seem to be a big concern among the partners I spoke to at the conference. Many of the solutions are internal or work within controlled environments where client compatibility can be enforced. Nevertheless, I can see this becoming an increasing problem if Apple’s success with iPhone and iPad continues, especially in cases where applications are public-facing. My suggestion to Adobe is that it now needs to work on making LiveCycle work better with plain HTML clients, in order to future-proof its platform to some extent.