• iSENDu

    • iSENDu Videos
  • S-Cube

    • S-Cube Project
  • Event Seeker

    • volume.at
  • q·.:World

    • q·.:LAUNCHER
    • q·.:CARD
    • q·.:Generator
    • q·.:Specs
  • Home

    • Imprint
    • GTC
    • Sitemap
  • services
  • blog
  • help
  • about

ikangai.com

  • Search Blog

  • Pages

    • A Cross-Platform Software System to Create and Deploy Mobile Mashups
    • Apps using q·.:Codes
    • Concours Worldvision de la q·.:Launcher
    • expressFLOW
    • Prototype
  • Latest Entries

    • Writing Scientific Papers
    • Code Snippet of the Week: Using Quartz to draw the background of UIButtons
    • Concours Worldvision de la q·.:Launcher
    • Concours Eurovision de la Chanson
    • We’ve got mail from Apple
  • Categories

    • Code snippet (1)
    • Design (11)
    • Development (32)
    • Events (7)
    • Hardware (2)
    • iSENDu (39)
    • iTunes App Store (20)
    • News (13)
    • Science (7)
    • Software (18)
    • Sports (1)
    • Uncategorized (48)
    • University (2)
    • Website (4)
  • Archives

    • August 2010 (2)
    • July 2010 (7)
    • June 2010 (7)
    • May 2010 (6)
    • April 2010 (13)
    • March 2010 (11)
    • February 2010 (8)
    • January 2010 (8)
    • December 2009 (9)
    • November 2009 (6)
    • October 2009 (8)
    • September 2009 (13)
    • August 2009 (14)
  • Subscribe

    • Subscribe rss feed

Writing Scientific Papers

August 27th, 2010 by Martin

We did it! We submitted our first scientific paper to a conference. Our target conference is the International Conference on Software Engineering (ICSE) which will take place at Hawaii (obviously a very nice location :-) ) between May 21st and May 28th 2011. The competition is more than tough – we expect an acceptance rate around 10 per cent. Thus, we consider our paper more or less a “stunt”: high risk, but potentially high rewards.

So what is our paper about? Well, it is about the application of SOA principles on mobile operating systems like the iPhone OS and the implications of this approach. We investigated the role of Apps and App Stores with regard to the SOA triangle and discussed how to use our Apps (q·.:Launcher and q·.:Card) for this. Interested in more? I guess then you’ll have to wait, until we receive notification of the ICSE program committee, which is due on November 19th. In the meantime we will continue working on our new project with woodapples and write another scientific paper which is a joined effort with Distributed Systems Group of Vienna Technical University. This time, the topic is centered around crowd sourcing and how we do this at ikangai solutions.

your ikangai team

Bookmark and Share

Tags: ICSE 2011, Paper, q·.:CARD, q·.:Launcher, Science, SOA
Posted in Science, Software | No Comments

Code Snippet of the Week: Using Quartz to draw the...

August 11th, 2010 by Martin

Ever wanted to use UIButtons with backgrounds that change when a UIButton is pressed? Unfortunately, this is not so straightforward as one could wish for. Typically, you have to use predefined images to do this、 and set the background image according the state of the UIButton with
[contactButton setBackgroundImage: imageHighlighted forState:UIControlStateHighlighted];
A standard solution that includes that a PNG UIImage is displayed when the button is pressed looks like this:

UIImage *imageHighlighted = [UIImage imageNamed:@"highlighted.png"];
UIButton *contactButton = [[UIButton alloc]initWithFrame:CGRectMake(0, 0, 158, 30)];
contactButton.backgroundColor = [UIColor clearColor];
[contactButton setTitleColor:[UIColor darkGrayColor] forState:UIControlStateNormal];
[contactButton setTitleColor:[UIColor lightGrayColor] forState:UIControlStateHighlighted];
[contactButton setTitle:@"Contacts" forState:UIControlStateNormal];
[contactButton setTitle:@"Contacts" forState:UIControlStateHighlighted];
[contactButton actionsForTarget:@selector(selectContacts:) forControlEvent:UIControlEventTouchUpInside];
contactButton.titleLabel.font = [UIFont fontWithName:@"Verdana" size:12];
[contactButton setBackgroundColor:[UIColor clearColor]];
[contactButton setBackgroundImage: imageHighlighted forState:UIControlStateHighlighted];
[self addSubview:contactButton];

Wouldn’t it be nice to do this without PNG images you have to draw upfront? Fortunately, there is Quartz to help you with that. The main benefit of Quartz is its flexibility: you can apply all kind of effects on the UIButtons without needing to draw PNG images before. The Code for creating Quartz background images for UIButtons is straightforward: you have to define a context with UIGraphicsBeginImageContext from which you retrieve a UIImage with UIGraphicsGetImageFromCurrentImageContext. This image is later used in the button when it is highlighted: [contactButton setBackgroundImage: imageView.image forState:UIControlStateHighlighted];

// 1. create UIImageView container that contains a "nil" UIImage and assign variable for later use
UIImageView *imageView = [[UIImageView alloc] initWithImage:nil];
UIImage *image = imageView.image;
// 2. set size of the UIImageView -> the same as the UIButton
imageView.frame = CGRectMake(0, 0, 158, 30);
// 3. start image context
UIGraphicsBeginImageContext(CGSizeMake(158, 30));
// 4. define fill color of rectangle
CGContextSetFillColor(UIGraphicsGetCurrentContext(), CGColorGetComponents([UIColor colorWithRed:1 green:1 blue:1 alpha:1].CGColor));
// 5. draw rectangle
[image drawInRect:CGRectMake(0, 0, 158, 30)];
// 6. create context path
CGContextBeginPath(UIGraphicsGetCurrentContext());
// 7. set origin
CGContextMoveToPoint(UIGraphicsGetCurrentContext(), 0, 0);
// 8. add rectanlge to path
CGContextAddRect(UIGraphicsGetCurrentContext(), CGRectMake(0, 0, 158, 30));
// 9. fill rectangle
CGContextFillPath(UIGraphicsGetCurrentContext());
// 10. get image from current context
image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

The trick is to use a UIImageView with an empty image: [[UIImageView alloc] initWithImage:nil]; This allows us later to access the UIImage from the UIImageView. The reason for this is that you cannot create an empty UIImage (at least, I’m not aware of this). The use is simple: you create a UIButton as you are used to and set the image for the state: [contactButton setBackgroundImage: image forState:UIControlStateHighlighted];

// 11. create UIButton
UIButton *contactButton = [[UIButton alloc]initWithFrame:CGRectMake(84, 225, 158, 30)];
contactButton.backgroundColor = [UIColor greenColor];
[contactButton setTitleColor:[UIColor darkGrayColor] forState:UIControlStateNormal];
[contactButton setTitleColor:[UIColor lightGrayColor] forState:UIControlStateHighlighted];
[contactButton setTitle:@"Press Me" forState:UIControlStateNormal];
[contactButton setTitle:@"Color Change" forState:UIControlStateHighlighted];
contactButton.titleLabel.font = [UIFont fontWithName:@"Verdana" size:12];
// 12. set background image for highlighted state
[contactButton setBackgroundImage:image forState:UIControlStateHighlighted];
[self.view addSubview:contactButton];
[imageView release];
[contactButton release];

You can download the demo project from here.

Your coding ikangai team

PS: The code snippet uses portions of this code.

Bookmark and Share

Tags: Background, Code Snippet of the Week, Quartz, UIButton
Posted in Code snippet, Development, Software | No Comments

Concours Worldvision de la q·.:Launcher

July 29th, 2010 by Martin

The Concours Worldvision de la q·.:Launcher is already entering it’s second week. The United States of America are still in lead with 54 points by a comfortable margin, followed by Austria with 16 points (a big thank you goes to the Austrian voters) and the UK who is slowly loosing ground on Austria with 13 points.
While the top 5 remain stable, there were some spectacular changes in the midfield: in an unprecedented chain of events, South Korea gained 13 positions and now holds on to the 10th place. Brazil closes in on Germany with 6 points. And with Malaysia and Romania two new contestants entered, which brings the number of contestants to 32.
Your country is not listed ? Or not happy with your countries performance? Well, then help your county collecting points by downloading q·.:Launcher or q·.:CARD from the iTunes Store.

your voting ikangai team

Bookmark and Share

Tags: Concours Worldvision de la q·.:Launcher, contest, q·.:CARD, q·.:Launcher
Posted in Uncategorized | No Comments

Concours Eurovision de la Chanson

July 24th, 2010 by Martin
The Concours Eurovision de la Chanson (Eurovision Song Contest) is an annual competition where Europe’s talented musicians compete for worldwide stardom.
The actual thrill of the show is the voting: all participating countries cast their vote (1 up to 12 points) and at the end the winner is the one with the most points.
Especially the exclamation of douze points when the host repeats the top score in French is a part of TV history.
Today, we proudly announce our own contest. It’s the Concours Worldvision de la q·.:Launcher.
After we collected an initial round of cotes, we publish the votes on a daily base. And here is the result of today’s vote:

CountryPoints
Austria2
United States2
Brazil2
France2
United Kingdom1
Russian Federation1
Australia1
Canada1

The current top 5 are:

CountyPoints
United States39
Austria12
United Kingdom10
Japan8
France8

Your country is not listed? Well, then help your county collecting points by downloading q·.:Launcher or q·.:CARD from the iTunes Store.

your voting ikangai team

Bookmark and Share

Tags: Concours Eurovision de la Chanson, Eurovision Song Contest, q·.:Launcher
Posted in Uncategorized | No Comments

We’ve got mail from Apple

July 23rd, 2010 by Martin

We got an interesting mail from Apple today. We are using Apple’s private UIGetScreenImage API which was opened to the public in late 2009. Now, this is obviously not permitted any more and Apple sent us this mail:

Hello ikangai solutions,

We noticed that your app, q·.:CARD with Apple ID 365095972, is using the private UIGetScreenImage API. As you know, the use of private APIs is not permitted in apps. However, in late 2009, Apple announced it would begin to allow iOS apps to use the private UIGetScreenImage() function, but as noted in the announcement https://devforums.apple.com/thread/34908:

“A future release of iPhone OS may provide a public API equivalent of this functionality. At such time, all applications using UIGetScreenImage() will be required to adopt the public API.”

With the availability of the AV Foundation framework in iOS 4, public API equivalents are now available. Applications using UIGetScreenImage() to capture images from the camera should instead use the AV Foundation AVCaptureSession and related classes. Note that use of AVCaptureSession is only supported in iOS4 and above, so make sure your min OS is appropriately set. More details on how to capture video frames from the camera as images using AV Foundation can be found in Technical Q&A 1702:

http://developer.apple.com/iphone/library/qa/qa2010/qa1702.html

For applications using UIGetScreenImage() to capture the contents of interface views and layers, the -renderInContext: method of CALayer in the QuartzCore framework should used instead. For more information, see Technical Q&A 1703, “Screen capture in UIKit applications”:

If these APIs do not provide the functionality you want, we recommending filing an enhancement request using the Apple Bug Reporter at to let us know what you need.

As always, should you need code-level technical assistance implementing these APIs, you may with consult Apple Developer Technical Support here: . To ensure that Developer Technical Support can best help you, please be sure to include any crash logs, screenshots, or steps to reproduce any issues you’ve encountered.

We ask that you move to these new APIs in your next update.

If you have any questions about this response, or would like to discuss it further, please feel free to reply to this email. We look forward to reviewing your revised app.

Best Regards,
App Review Team

We believe that’s really good practice and keeps developers happy and in the loop. After some “not so nice” encounters with the Apple during the approval process we think that this is exactly what Apple needs to do: Tell the developers what is going on and how they can avoid problems.

your ikangai team

Bookmark and Share

Tags: AV Foundation framework, iOS 4, q·.:CARD, UIGetScreenImage API
Posted in Uncategorized | No Comments

Older Entries
Copyright © 2010 IKANGAI Solutions. Design by creativesyntax.at
IKANGAI Blog is powered by Wordpress | Login
Facebook It! Digg It! Stumble It! del.icio.us