iPhone SDK and Business Model - only kids get too excited
10 mars 2008 - 10:23
Keywords :

I think it's a good idea to wait a bit with commenting the announement of big things. You might not be as fast as others, but at least will have a broader view to the whole picture. At least that's what I did with Steve jobs announcement about the iPhone SDK (official press release is here) and developer program. Having read lots of articles written about it (by writers faster than me:), my remarks are below.

App Store
This is the place, the only place, where people can download 3rd-party software from, let it be commercial or freeware.

  • Making it centralized is a good idea, better than having to look for something at lots of places. Especially if Apple undertakes lots of tasks, like distribution, advertising, content filtering, software update, etc. On the other hand, it will naturally result in that the control will be kept in one hand - it'll always be up to Apple to decide what is porn, illegal, etc. Is that good for us? Also, it doesn't help too much in pushing down the prices (I mean, interest rate) if there is only a single point of sell.
  • I've been already thinking about that reselling applications should be done by the device vendors themselves in order to keep costs at a more bearable level than it is at now. For example, Handango's 40-50-60% is something I call unabashed. However, it's understandable that they keep interest rate at that high level: it's their main (only?) income. Whereas for device manufacturers it would not be. Okay, I understand that they've been trying to keep themselves away from this part of the business so far, but nowadays that Internet is everything and if you don't provide a service that your competitors do, then you lose. For example, Nokia now offers Mosh and Ovi, but I can't remember if they offer App Store-like service, too. If they don't, I'm sure they will soon.
  • One more thing: I think Apple is now bargaining. They announced a 30% interest rate from the price developers will be able to sell their apps, however, that's still too high. Never mind, let's check what people say about this rate, if the opposition is too big than we can offer less. From 30% you can do that.

Development
Apple announced that developers can download the SDK free of charge, bundled with source editor, debugger, interface builder (= UI designer), project management and integrated version control software and lots of other stuff.
  • However, doing that require paying $99. It's a one off cost and in fact sounds reasonable for "standard" developers ($299 for enterprise developers) - it's mostly for signing, though freeware app developers will also have to pay this fee - for traceability purposes.
  • Only platform is Mac? Sounds like a joke, look at the figures how many people/developers use this platform compared to Windows, Linux. I read it in Paul Todd's article that the SDK offers true simulation, not only emulation, which is fantastic. I wonder how VMWare would perform in iPhone development, though: people could install a virtual Mac machine on their operating system for development. Even more, it would make sense for Apple to create freely downloadable VMWare images for developers having everything pre-installed on it.
  • Let me talk about the programming language developers are supposed to use, Objective-C. To be honest, I don't "speak" this language, but I have seen code written in it. I've been in "cross-platform business" lately and having said that I can see this language being more useful to our efforts than Java, for example (since none of the popular mobile OSes are built on non-C/C++). On the other hand, I'm afraid that Obj-C is too far away from standard C and C++ that one would need to make too big efforts to keep the codebase as common as possible.
  • As for opening up 90% of APIs: it's a nice, but a double-edged sword. First, Apple's got only one platform and one device (I mean, mobile phone). If everything goes fine with Apple's business there will be more platforms and more devices: the burden of SDK maintenance may grow to sky-high especially of you open up such a lot of APIs, taking care of source- and binary-compatibility, documentation, etc. You know, I would love to see Symbian/S60/UIQ to go open source or at least open up lots more APIs, too, but I understand why these companies decided not to do so. If Apple has the capacity to do it, then looking forward to it.
  • As to $100M VC fund for 3rd-party development: it's obvious that newcomers have to say big, like this (remember Android's Developer Challenge?), I'm just hoping that others will do the same. Even if they're not newcomers, "just" founders in this industry. Smiling
  • No multi-tasking: phew, it's really pain in the ... well, you know where. Although lots of things can be solved by storing state information when an application is forced to quit (heard that no 3rd-party app can run in the background! See Techcrunch for more details) and then retrieve that information on re-launch, this limitation causes lots of use cases not to work, like listening to incoming SMS, downloading/uploading/streaming content in the background, generally just hopping from one application to another where the soon-to-be-background app would still have things to do. I don't know why Apple has decided to introduce this limitation, but hope they will drop it soon.
In general, I'm happy that Apple has joined the mobile industry. As well as Google has or rather it just will. I always say that we can learn from anything, let it be good or bad. Life will prove that an idea or in particular an implementation of an idea is viable or not. The point is that we can all benefit from it: either by copying and making an idea better or avoid a mistake that has already been done once.

From mobile-thoughts.blogspot.com.

Tote

News posted mars 10th, 2008 by tote

Soumis par Leviathan2040 le ven, 2008-03-14 13:54.

Just a few months ago I would never imagined that I could write something positive about the iPhone and/or its SDK, BUT.....

I come from 7 years of experience with Symbian SDK, I went thru every possible pain with them and never really got something back or meaningful. The iPhone SDK is not just a nice cherry on top of the cake, it is a whole new cake.

I honestly don't agree with some of the points you list:

1) Distribution: you know this would have helped us enormously if Nokia would have embedded some software to allow distribution and download on handset. After you have been fighting with the Symbian SDK, signing and whatever, for distribution you are on your own again or with Handhango (with no Symbian download AND purchase client) with 60% of profit going to them.

2) Tools and SDK: we don’t have yet an emulator on Symbian rather a simulator that is just ‘remotely’ related to the code, 99.99% of the times the code that works on the simulator do not work on the actual device. The quality of documentation simply cannot be compared: even if young, the iPhone has an incredible good quality examples database, info and API documentation. The Symbian docs are rubbish, they always have been: help files intermixed with OEM stuff; incredible ‘HOW TOs’ that should explain how to do basic things but they never show actually how to. Examples that don’t even compile or require manufactures capabilities. And let’s not even start with the whole capabilities thing, right?

3) Objective-C: I had (and still have) more problems in dealing with Symbian C++ descriptors (and let's not forget the cleanup stack....) rather than Obj-C. A couple of hours let’s you master it completely, as it is a superset of C. Also, Obj-C is required only for the outer shell of the application (the one that communicates with the OS/Hardware), but you can intermix Obj-C, C and C++ even in the same file without any problem, so you don’t have to convert your code base at all; I compiled my C++ applications (thank God, kept platform neutral) in about a couple of hours

4) You can multitask, there are restrictions on processes that run on the background, I don’t have an issue with that. Should we talk about multithreading instead and the damn Active Objects?

Over the years I have been supportive and followed Nokia/Symbian in everything they did, they never ever listened to developers, release after release SDKs have been getting worse. They never had clear directions on tools, finally landed on a thing built around Eclipse that requires a mainframe just to run. With the price I have to pay for Carbide Pro (because the personal one is unusable) I can buy a Mac Book and download the excellent XCode for free.

I still distinctively remember the first time I tried to open a socket on Symbian, 4 weeks spent on studying docs, classes, examples and so on and the everlasting sensation of unfinished/incomplete code blob. On the iPhone? About one hour and I should not worry about handling access points, connections, signing and shit like that…

Goodbye Symbian….


Soumis par tote le ven, 2008-03-14 14:27.

Dear Leviathan,

Thanks for sharing your view, I really appriciate it. Honestly.

I also welcome the new SDK (i.e. iPhone) and believe that eventually everybody will benefit from it. I'm not here to say bad things about it, however, let me comment a couple of things you mentioned in your response:
- I'm not saying that sw distribution (bundled with signing, etc.) is perfect in Symbian. This is definitely a question that has to be worked out well. Maybe Apple's approach will prove to be better than the current solution Symbian/Nokia/UIQ, etc. offer, but that I'm sure will result in further improvement in the Symbian world, too. Please note that there really IS a central application on Nokia devices for downloading content. It's not centralized, Nokia Software Market, Handango, etc. are available among the distributors from where you can buy content.

- We all know that the Symbian emulator has difficulties in some cases to truly emulate the hw environment so that we could check our code to see how it works. However, let me disagree with you saying that in 99.99% the emulator simply does not work as expected. This is simply untrue. Most, I mean most of the things can be tested on emulator, too, in some cases (definitely in minority) can be tested with some tricks and only small fraction of your code cannot be at all. I tell you this having 8 years mobile sw dev experience behind me.

- Documentation: I agree with you that it could be improved further, lots of people are crying about that. I wonder, though, how Apple's documentation can be better with such a young SDK.

- Thanks for your comments regarding Obj-C. I really don't know how it works, though, have had a look at some Obj-C code a few days ago. It looked very ugly to me with lots of annotations, etc. I didn't like it.

- As to multi-threading, don't tell me that keeping shared resources protected with mutexes, semaphores, doing synchronization, etc. is easier than getting to know how active objects and related framework work.

- I know that there are newcomers who have problems with learning descriptors, active objects, sockets, etc., but after a few weeks (2-3 months?) everybody should have spent enough time to deal with these paradigms with good confidence. And it's not that different compared to other development environments. For example, it took me a few days to be familiar to active objects and sockets. Including Symbian client-server architecture. Smiling

Again, thanks for your comments,

Tote


Soumis par eric le mer, 2008-03-19 11:09.

Thanks for your comments regarding Obj-C. I really don't know how it works, though, have had a look at some Obj-C code a few days ago. It looked very ugly to me with lots of annotations, etc. I didn't like it.

Regarding Objective-C, I agree, it also looks ugly to me - kind of lisp with [ ] instead of ( ) ! ) but it is very simple to learn. We however have multi-year experience of Objective-C / Cocoa environment and it is rather easy to learn. At least compared to Symbian !


Soumis par Genesis P le ven, 2008-03-14 22:21.

I don't know. I did some MIDP 2.0 programming then I did some Symbian programming. MIDP was nice. However, Symbian was nice too. I don't think Symbian demands something impossible from the developer. On the contrary, an experienced developer will very quickly familiriaze herself with Symbian concepts.
Symbian-specific concepts mostly come from understandable restrictions and their realization is quite similar to what we have in other frameworks (like CActive is similar to event map we have in MFC). So, it's not that difficult.
Rather, maybe even useful - an experienced programmer would quickly get on track as he knew the principles already. An unexperienced programmer would think MIDP is easy etc etc and then not knowing the science behind all this would end up with a messy and unmaintainable application. Successful software development requires knowing some theory, not only practice.


Soumis par svdwal le lun, 2008-03-17 21:44.

Hi Tote

I am a bit mystified by your defence of Handango. Handango is a business, and will (as every other business) go for the highest price it thinks the market can afford while maximising their profits. It has nothing to do with the fact that revenue stream of selling apps is their only source of income. Lots of people, businesses and governments have a single source of income, and that in itself has never been the sole reason for being able to increase that revenue stream at will.

The problem that you need a Mac to develop for the iPhone might be a problem for freeware developers, but not for commercial ones. While you are not allowed to run Mac OS in a virtual machine on a PC, you are allowed to run WinXP on an Intel Mac in a virtual machine.

The news that C++ can be done for the iPhone too is very good news for Symbian developers, as they can now leverage their development investment on a new platform.

Finally, for commercial developers the problem boils down to a single question: will iPhone buyers be software buyers? If they are not, who cares. If they are, then an additional investment in iPhone dev tools might well be worth it.


Soumis par alh le lun, 2009-03-16 16:55.

One year later, we can conclude that the apple store and iphone dev model totally kicked symbians a** all over the place.
In one year, we have more quality apps on appstore then there is for all symbian phones combined, and they do sell... a lot.

None of these apps would have been impossible to make on symbian, some would even run better on symbian phones.
(Well ok multitouch might be a problem, but the other phone manufacturers practicly gave that one to Apple by being so slow and having so low expectations on mobile UIs...)

But still, most symbian phone owners doesn't even know its possible to install apps on their phone.

The key was a good distribution system IN THE PHONE, with easy payment build in, just click and get it.
Downloaded apps equal to any built in app.
Combined with excellent developer support with clear and complete documentation, and a very easy "Click and buy to get everything including distribution" model for SDK.

Just as I've always said it should be...

No extremely complicated "security" schemes.
Easy testing.
Well thought through Mature APIs (tested in desktop MacOS X environment) that actually do what they say they do.
non-fragmented easy-to-understand APIs (compare reading accelerometer in symbian to in iPhone)
Easy integration with legacy code.
Well working development environment, with a quick-to-start emulator and well working device testing, to not stall the developers creativity.

Still, symbian has a definite edge on "business type" applications, since you have a lot more freedom when making symbian apps (also freedom to make bad apps).
In Apple OS you can often feel stuck in the frame Steve Jobs defined for you.

But for the consumer... well AppStore won so much that everyone else is now copying them.

Except ofcourse... they just look at the AppStore, and forget that half the reason (at least) is in the "other end", making it easy for developers big and small, to bring quality apps to the platform.



copyright 2003-2009 NewLC SARL