Dear Apple, a little love for developers please

Yesterday Apple announced the new version of the iPhone OS, OS 4. Ever since OS 2.0 and the ability of third party parties developing apps for the iPhone platform, the OS has been a huge success. Although OS 4 has added some nice features like multitasking, life of developers has not become easier on the whole.

So let’s have a little overview of this that interested me:

  • Multi-tasking. Finally. Yes battery life and performance is important for end users, so not offering multitasking was defensible. However, 7 services ? That a lot of work for developers to implement. I’ve been looking at it for a day now, and I am still not sure how to use some of them. And can I do everything I want with these services?
  • iAd advertisement platform. Great for developers, what about 3rd party ads platform?
  • You have to use Objective-C, C or C++ to create iPhone apps

So…

Some features were really lacking compared to Android. The multitasking is nice but difficult. Android’s services are great and simple. But the biggest news is the 3rd party software makers that Apple is running off its turf, most notably Adobe with Flash. There are other frameworks in peril, like Unity 3D. What is not clear yet is what 3rd party ad platforms like AdMob and Mads. In general Apple has been clear: they want full control of their platform.

The question is whether this is smart. One, to create a vertile platform you need to be reliable and stay out of the way of companies building on your platform. Second, for developers the Objective-C/C/C++ is not that great to work on.

To make a statement: Objective-C is 15 years old, a hybrid language invented at NeXT when Steve Jobs was heading this company before he returned to Apple.  Well, Steve is a brilliant CEO, but not a great language inventor. So killing other languages hinders developers to create new tools to have a better experience creating apps. And if it prohibits other frameworks from displaying ads on the iPhone platform, well that shows a total disinterest towards the developer ecosystem around the iPhone platform. Any willingness to contribute to the platform is completely cut off by now.

The question whether it is smart. All major inventions now have to come from Apple itself. Besides that,  the question is how much developer inventiveness is pushed towards other mobile platforms like Android. Right now it is ok, but in 2 years it is forecasted that Android overtakes Apple. There will be alternatives to the iPhone platform. The question is where developers will be in 2 years time. These strange moves show that maybe Android is much nicer to devs.

So Apple, please a little love for your developers please.

Combining multiple UITextFields and a UITableView in a nice way for an iPhone app: part 2

My last blog post was about creating a form for an iPhone application by combining multiple UITextFields in a UITableView. I outlined the problems with this kind of screens. The first problem is the destruction of data already entered when scrolling the field off screen and secondly, app crashes when the field with focus is scrolled off screen and you touch inside another textfield. The solution I proposed was to nest the UITableView inside a UIScrollview. After receiving feedback I came up with a second solution:

  1. extend a UITableViewController instead of implementing UITableviewDataSource and UITableViewDelegate yourself
  2. disable reuse of cells by using a unique cell identifier:
  3. NSString *CellIdentifier = [NSString stringWithFormat: @”Cell%i”, indexPath.row];

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    if (cell == nil) {

    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];

    ..

    }

The UITableViewController handles scrolling into view when the keyboard is shown quite nicely. Using the unique identifier will prevent a cell and it’s content to be reused. And I had to agree to some of the feedback: using a UIScrollView to nest a tableView is kind of a hack.

There is a down side to this: UITableViewControllers don’t like to be combined with other view controllers, so you have to use a NavigationController or TabBarController to offer further interaction possibilities. I tried to, but never managed nicely to have for instance a UIToolBar over the UITableView.

Try it out and let me know what you think!

Download XCode project TestTableViewWithKeyboard2 with demo using UITableView to create a form.

Iphone 3Gs announcement review – ups and downs

So last week Apple announced their new model Iphone, called the iPhone 3Gs. This phone will of course be running iPhone OS 3.0. I already covered the announcements of iPhone OS 3.0 back in march, let’s now review the whole package of the new hardware and software. iPhone 3G or even iPhone 1.0 users can upgrade their phone starting jun 17th, but will miss out on some of the features of the 3Gs that involve different hardware.

Hottest newest features of 3Gs:

  1. better camera
  2. faster CPU and more memory
  3. better battery life (both by improved hardware and software)
  4. video recording and editing
  5. voice control

The coolets thing about iPhone OS3.0:

  1. Cut-copy-paste
  2. MMS (but who uses this anymore?)
  3. Push notification (no background processes though, but workable other solution)
  4. Spotlight search on your Iphone
  5. Thethering (using your phone as a modem for your computer)

So what about disappointments with the new iPhone 3Gs:

  1. Evolution not revolution: faster? better camera? video? No brainers I’d say. BTW camera is only 3 MP, in contrast the 2 year old N95 already had a 5 MP camera.
  2. In majority of countries the iPhone 3Gs  is only sold together with a rate plan from the local telco (AT&T in USA, T-mobile in the Netherlands). So you have to agree to a 2 year contract to get your hands on an 3Gs, even if you already have an iPhone. Guess I will be going down to Belgium, where by law this practice is forbidden and phones have to be available also for sale without a contract. Expect to pay 600-700 Euro for a phone. Yes, a lot of money.
  3. Tethering works on the phone, but the telco may not allow it. Why? Because they are not ready yet, network wise. And of course they sell separate 3G receivers for computers with a big fat contract.
  4. Standard apps are the same. Yes landschape keyboard message typing, but no major upgrades
  5. No development phones :(. So 1. you have to get a contract to get a phone, and 2. no special phones with you can play around with, like restoring an OS image any moment you want to. In contrast, for Android there is a special Dev phone, no lock and completely customizable. You can restore specific OS images, or even toy with the OS and it’s system’s libraries if you want to. Fear of misuse of development phones has been cited to be the reason for Apple not to put out developer phones. I’d say make them as ugly as the Android dev g1, and you don’t have a problem. And sell only a limited number to registered developers (only 50.000 world wide in March)
  6. Still missing: Flash!

Overall verdict: better than the previous model, but no big surprises. Let’s see what cool Android devices will show up, so that real competition arises.

More reading:

Iphone OS 3.0 announced

Yesterday Apple held meeting to announce the new upcoming version of their Iphone OS, version 3 (we’re now at 2.2.1), to be released somewhere this summer. Already days ahead was a buzz going on, with lot’s of people making lists of new features they thought/wished were added to the already popular platform.

Major awaited features were cut/copy-paste, Flash, background processes, MMS, tethering (using your phone as a modem to your laptop), wireless keyboards, better app organisation

Majority of new features are indeed implemented. Cut/copy-past is there in a nice fashion as is MMS and tethering. Flash is still at large, Adobe and Apple are trying their best to solve the technical issues. Background processes are not there, but instead Apple opted for Push notifications. This will allow a service to push a short message (alert, text, audio) to an application without the application being running. Wireless keyboards and better app organisation is still missing.

What is also interesting is the new payment models. Now, you could only charge per download. Added to this will be 3 new models: subscription to apps, purchase of additional content (great for media companies) and purchase of additional levels (great for gaming apps). This means you can also purchase new things from within the apps.

What is most interesting to me?  The push notification! I am working together with partners to create a messaging solution with a big focus on mobile. As third party apps, as opposed to the standard Mail.app on the Iphone, cannot run in the background with 2.0 it’s quite difficult to go head to head with Mail.app. Push notification will change that. As this services goes through Apple services, I am quite curious what they will charge though.

Other new features that were not so much anticipated are Search (through Spotlight), landscape keyboard, Google Maps libraries for third party apps.

I downloaded the beta SDK already, but unfortunately Apple doesn’t allow any disclosure of information or screenshots:( I honoustly hope they don’t make the mistake that they made with 2.0 again, to lift this NDA so late that no publisher dares to invest in publishing an Iphone 3.0 development book. Go over to Crunchgear to see some screenshots (while it lasts).

OS 3.0 will be available this summer, and downloadable for current Iphone and Ipod touch users (Ipod users have to pay 10 USD). So you don’t have to get a new phone to be able to run 3.0, which is great. Big question: at what speed will users upgrade their OS, and will any (major) problems arise. 

You can watch the full presentation here at the Apple site.

More reading about Iphone OS 3.0:

Battle of mobile platforms is taking off

After Apple launched the Iphone 3G last summer, T-mobile will begin rolling out the Android platform in The Netherlands. Within weeks the HTC G1 will be available (the phone has been out in the USA since October and in the UK since November). And now, to the surprise of the whole industry Palm made a strong comeback with the Palm Pre, running their brand new OS called webOs. It has been announced at CES just last week, but yet has to get reviews and into the market.

So, it seems that we have at least 2 strong players with an outsider (Palm) ready to bring mobile computing to the next level, and really change that thing in our pockets and hands into a computer with a small screen instead of just an apparatus to call and text with. It’s not about that anymore, it’s about all the applications that you can run on.

What will determine the success of these platforms?

  • user experience: usability, seamless integration, slick looks: Apple with having one device, one manufacturer has controls hardware, OS, store has created a complete package with eco-system around it. And of course it’s experience with good user interfaces and design for Mac and Ipod has given it a head start. Android is not a complete deal but a platform, that hardware manufactures have to run on their phones that will come in many shapes and forms.
  • good apps that can easily be purchased:
    • developer support: good language and good tooling. Apple offers Objective-C with a number of UI libraries, together with their IDE Xcode. Android is for 95 % Java, that is supported by Eclipse plugins. This means that all those Java developers out that can start creating Android apps in no time, while much less Objective-C developers are out there. Learning Objective-C and XCode will take some time for developers from other platforms.
    • easy app stores to browse, look, buy and download applications. Apple’s app store has already proved to be a success. Android’s app store has yet to kick in. Maybe multiple app stores will become available, that certainly will be more open but also more fragmented than Apple’s.
    • the creation of an ecosystem that makes it profitable for developers to create apps for a platform is crucial for turning phones into a mobile computing platform. Until now the Apple app store has been a success, offering free and paid apps. Selling an app is just submitting the app to the store, although Apple has rejected apps for unclear reasons. This means that you do not know if your investment will make any money untill you submit the app, which is definitely a bad thing. Also installation of apps should not be limited by telco settings or anything.
  • good availability of devices. For now Apple has chosen to sell the Iphone in most countries only together with a subscription plan with a mobile operator. For instance, if you are with Vodafone.nl but want an Iphone, you’re stuck. Of course the device is expensive (you can get it simlock free in Belgium for 650-700 EUR), but why not let users buy it simlock free? Android devices when on the market will soon be available in all kind of forms, and with or without subscription packages.
  • pricing: Apple is and will always be a brand that focuses on quality and less on competing on price. Android is open source and free, so let’s see if any manufacturer will create a cheap but powerful Android phone.

And oh yeah, where are the mobile manufacturers? Nokia, Motorola, Ericsson? Motorola apparently is getting ready to move over to Android.  Nokia still hangs on to Symbian, but that OS never got the leverage Iphone OS and Android seem to get. It will take a while though before Nokia admits that Symbian is dead, and that is has to switch over. So apparently it took computer companies to move over to the mobile industry to really make phones a success as a computing platform. Let’s hope they do not turn Android into a fragmented market that brings no value to end users and developers.

More reading:

T-mobile subscription plans with Iphone 3G for Netherlands

The Netherlands is one of the last countries to get (legitimate) access to Iphones. Of course, as the first generations lacked UMTS support nobody was bothered by that. But now on july 11th T-mobile will start offering Iphones in The Netherlands.

As their press announcement is in Dutch and Euro, I thought let’s translate and convert also to USD. Below are the prices in Euro and USD, assuming 1 euro = 1.48 USD, and 2 year contracts.

SMS = short message service = text message for you americans.

minutes SMS price/m () $ 8GB model () $ 16GB model ()  $
150 150 29.95 44.33 79.95 118.33 159.95 236.73
300 300 44.95 66.53 1 1.48 79.95 118.33
500 500 64.95 96.13 1 1.48 19.95 29.53

Including unlimited Internet usage (2048/384 Kbps), Visual voicemail.

It seems a good deal compared to the AT&T pricing :

“iPhone 3G will be available for $199 for the 8GB model and $299 for the 16GB model. These prices require two-year contracts”

Engadget has a better overview.

And even the subscriptions aren’t that expensive compared to normal no-phone T-Mobile NL subscripton plans:

Plan minutes Price/m Price per minute Price per SMS
Relax 100 100 € 14,50 € 0,15 € 0,25
Relax 200 200 € 24,50 € 0,12 € 0,25
Relax 300 300 € 34,50 € 0,12 € 0,25
Relax 500 500 € 49,50 € 0,10 € 0,25
Relax 1000 1000 € 94,50 € 0,09 € 0,25