Category: 'iPhone'
iPhone 2, MobileMe launch
July 11th, 2008Apple’s much anticipated iPhone 2 was released in the US today. As previously reported, the phone is on a 3G network and is half the price of the original iPhone. The iPhone 2 firmware is also available to download from Apple to install on the original iPhone for via the Apps Store. The firmware will.
In related news, Apple’s new MobileMe service went live on July 10th. MobileMe, which replaces .Mac offers email, calendar, and other services.
WWDC Keynote Update
June 9th, 2008Today is the first day of the World Wide Developers Conference in San Francisco, California. With over 5,000 people in attendance, this is one of the largest WWDC’s yet.
The House That Steve Built has some exciting announcements that have been coming seemingly every minute. Among the highlights are for the first half of the day are:
- Not only is iPhone 2.0 in beta with over 4,000 people in the beta program, but that there will be three parts to the SDK: Enterprise, SDK, as well as new features for the end users.
- Several demos from SEGA, Apple, eBay, Pangea Software, MIMVista, among others.
- SEGA shows off a video of Super Monkey Ball, which will be a launch title in the new App Store for $9.99 USD.
- MIMVista shows off a program designed to help medical students study and learn various parts of the body with almost realistic images.
- Steve anounces new iPhone 2.0 features, including contact search, support for Microsoft Office documents, and support for Asian languages. The iPhone is set to be released July 11th.
- Mobile.Me is the replacement for .mac, current .mac subscribers will be automatically updated to the new service. A 60-day trial of Mobile.Me will be included with the iPhone 2.0.
- The new iPhone will be thiner, sexier, include support for a 3G network, Enterprise support, more affordable, available in more countries, and have advanced GPS support.
- Target price for an 8GB iPhone 2.0 will be $199, a savings of $200 over the current price of the iPhone.
- Later in the day, Mac OS X 10.6, Snow Leopard was announced, but would feature no new features, only improvements over older ones.
First Preview of the Android Plattform
May 29th, 2008Google’s Android, the imho only real competitor to the iPhone SDK, if it comes to the future of mobile computing, has so far been lacking information regarding usability and its interface. However yesterday, on the Google IO Keynote, lots of details were revealed. They demonstrated the Android touchscreen prototype and explained how the main interface, webbrowser and more works. You can find demonstration videos and pictures on slashgear. Out of all “so called” iPhone Competitors, this is in my opinion the first serious solution. The interface seems to be thoughtfuly designed and easily navigable by hand / touch. The Browser has interesting options to ease the information overload on such a small device.
The iPhone has obviously stirred the mobile marked in a big way (judge for example how suddenly every new phone is being compared to the iPhone, sometimes even by the manufacturer himself), competitors haven’t currently been able to offer a serious competitor though. The reason for this is rather simple: The lack of software. A quickly hacked and enhanced interface based on Symbian or Windows Mobile can’t compete with a Plattform like OS X iPhone, which is on the one hand based on years of Mac OS X experience, and on the other hand has been thoughtfully designed over years.
Android however seems to adress these issues. Google has the manpower, will and backing to develop a serious plattform, and smart decisions, like building on Linux, stress the future significance of this plattform. If Apple and Google play their moves right, there might be two major mobile plattforms in the future: OS X iPhone and Android - Symbian, Windows Mobile et al moving more and more out of significance.
iPhone SDK Update
May 29th, 2008Following on the fresh release of Mac OS X 10.5.3, version 6 of the iPhone SDK just arrived. Details regarding changes and additions can be found in TUAW’s liveblog. As we already speculated, there seems to be a strong correlation between the new SDK and 10.5.3, as it is a prequisite for installing.
First examination of the iPhone SDK
March 10th, 2008This weekend I dove deep into the iPhone SDK and tried (after some initial tests) to develop a full-scale realworld application from scratch. Since I’m sorta good at Cocoa and Objective-C, it wasn’t too difficult to grasp the concept behind it and build a simple application in little to no time. I spend my friday evening reading the documentation and playing around with some code, and I spend about 4 hours on Saturday to actually write the application I had in mind.
So far my verdict is, that this is an absolutely awesome API for mobile devices. It’s far far ahead of any of the other Development Kits for mobile usage out there (save Android, but that’s actually not really out yet). I really like the concepts behind it, and it allows to do create magnificient applications really quickly. Apart from that, the (free!) development environment with XCode, Debugger and Instruments is superb, too. My main criticism is currently, that I can’t test my application on my real iPhone, since the 2.0 Beta isn’t only available to select developers. However, the Aspen simulator is a valid substitute.
Users who are new to Cocoa and Objective-C could have some problems though, since the current documentation is, let’s call it, “quite buggy”. There were many small difficulties in there which could really hinder a non-experienced user from coming to the oh-so-necessary “success-experience”. I’ll try to adress those that I stumbled upon here:
Play a Sound File:
In order to simply play a sound, one needs to call AudioServicesCreateSystemSoundID (fileURL, soundID). The Documentation notes, that fileURL is a CFURLRef, and soundID is UInt32. There’re two caveats here though: In order to get a CFURL one can use the NSURL class, which is toll-free bridged with CFURLRef, however: In order for the compiler to not warn, one has to cast NSURL to CFURLRef. The other, and far more annoying, problem here is, that this function doesn’t expect UInt32 (as mentioned in the documentation) for the second parameter, but *a pointer* to UInt32. So a real call would look like this:
UInt32 soundId = 1024;
AudioServicesCreateSystemSoundID((CFURLRef)[NSURL fileURLWithPath: @"kick.wav"], &soundId);
Get a value from a UI Element:
The UISlider class for example is really nice and simple to use, as it allows (just like all the other objects) to set a method which will be called, every time someone changes the slider. In this method, one gets the actual Slider-Object as an argument, so one can for example retrieve the current value, or modify the slider.
In order to get the current value of the slider, there exists a so-called “value” property. The difficulty is now to retrieve this value. Since it is a property, retrieving the value cannot be not done via a “getValue” method (as one might expect) but via key/value coding:
[Slider valueForKey:@"value"]
Now, the documentation lists the return value of UISlider.value as float. That’s actually not correct. The value is float, however not a c-float type but a Cocoa NSNumber object with a float value. Once again, this is something which is common in Cocoa, but I guess many new users will still wonder about this.
Set frame for a UI Element:
In order to define, where in your view an UI Element can be placed, one needs to define a “frame” which sets the position and width/height. Most Elements offer a init method, which let the user define such a frame: i.E. [[UILabel alloc] initWithFrame:labelFrame];
However, there’re situations, when one can’t use the initWithFrame method. How do you set the frame then? Quite simple: the frame is a property and can be set with the new . operator:
UILabel *label = [[UILabel alloc] init];
label.frame = CGRectMake(0,0, 60, 24);
I hope I could help some of the early adopters, and will write more soon.





