Optimizing Your Tutorial – How to Introduce Currency in a Virtual Economy

You can have 20 million users download you freemium application, but if only 2 of them spend more than 30 seconds in your app you have a problem! This week we will look at the ways currency can be introduced and the best way to introduce users to your games virtual economy.

Dad to son: “Don’t spend it all in one place”

I remember as a child, although infrequently, receiving money from my parents for a number of reasons. Monetary reward would come from performing chores, good grades and birthday events. Receiving this fine coinage would always be accompanied with the phrase “Don’t spend it all in one place!”…. and while my father’s intentions really weren’t for me to spread my cash across multiple places, he did attempt to warn me against spending my money foolishly. Growing up my father was always delivering sound bites on money management regardless of how much they were ignored, but the point was eventually digested and I soon better understood how to spend my money. In the way that my father educated me, we as game developers need to educate our users on how to operate or “spend” money in the virtual game economies that we create.

Currency introduced through gameplay

The best way to teach is through action. Encourage your user to take action that requires spending virtual currency. Always reinforce the spending with a positive experience so that a user knows spending money is valuable. All successful simulation games on the mobile market today introduce currency as unique steps in their tutorial… or at least require it be used within the first few sessions of gameplay.

Quarters, Nickels and Dimes

Many games these days have multiple currency types know as premium (primary) currency and secondary currency. Primary currency typically is defined as being rare and tightly tied to real dollar value while secondary currency can be easy to earn and readily accessible. Depending on the game, you can choose to charge real dollars for both premium and secondary currencies or simply just premium. Make sure to introduce both currencies during game but do so separately. Be careful to introduce users to your currency all in one step or action. Spread out the introduction over a series of steps so that they can fully grasp how the decisions they make regarding their purchases affect gameplay.

 

Missions vs. Tutorial

Next week we will talk about the differences of missions vs. tutorials and the value each play in a mobile gaming environment.

Do you have a question about freemium gaming or a topic you’d like us to explore? Let us know in the comments or catch us on twitter @rechargestudios or @w3i.

Freemium Game Blogs are published in partnership with the series on W3i’s corporate blog.

Matt Tubergen heads Recharge Studios, a wholly owned subsidiary of W3i that invests in the development and marketing/distribution of freemium mobile games.  W3i is a market leader in distributing and monetizing apps with over 500 million apps distributed for W3i clients. Recharge Studios is actively seeking new investment opportunities, if you have a great idea for a game contact us.

Design: Creating An App with HTML/CSS And Sencha Touch

As you probably know there are many frameworks that allow you to develop native iOS apps with the interfaces designed with HTML/CSS.

The big question then is how do you create that app’s interface?  Sencha Touch is one possibility.

I’ve found a  tutorial that goes into detail on how to design a great looking mobile web app that looks like a native one using HTML/CSS using the Sencha Touch library that looks and feels just like a native app.   What I really like about the tutorial is that it goes through the design process step-by-step.

The tutorial is from Jen Gordon who’s set of beginner native iOS app design tutorials I previously mentioned.

You can find the tutorial here:
Create An HTML/CSS Mobile Web App Using Sencha Touch

You can test out an expanded version of the app built in the tutorial here (use your iPhone):
http://senchalearn.github.com/roookies/?style=demo

This information is great to know not just for web apps, but a useful guide if you plan on creating a native app using a wrapper framework like Phonegap.

©2011 iPhone, iOS 4, iPad SDK Development Tutorial and Programming Tips. All Rights Reserved.

.

DeliciousTwitterTechnoratiFacebookLinkedInEmail


Open Source: Real-Time Congress App Phonegap And Native Source Code

As you may have noticed I like to keep a list on this site of open source ios apps.

Earlier I received a submission of the url to an open source iPhone app that updates on what is happening at the US congress in real time, and provides access to data about members of the US Congress.

Politics aside, it provides an example of an app that retrieves and organizes data from an online source, and there is also a Phonegap version if you are looking for any html/javascript enthusiasts out there looking for a starting point trying to build with Phonegap.

You can find the source code for the newer native version here:
https://github.com/sunlightlabs/realtimecongress-ios

The source code for the previous Phonegap version can be found here:
https://github.com/sunlightlabs/real_time_congress-iphone_html

You can find the app on iTunes here.

I’ll be adding it to the list of open source apps soon.

©2011 iPhone, iOS 4, iPad SDK Development Tutorial and Programming Tips. All Rights Reserved.

.

DeliciousTwitterTechnoratiFacebookLinkedInEmail

Tags: iPhone, programming, open source, native source code, phonegap


Tutorial: Using And Building OpenCV (Open Computer Vision) On iOS Devices

If you have any interest in computer vision or augmented reality with marker detection then you have probably heard of OpenCV, the Open Source Computer Vision library for real time computer vision.

There are many apps, and some augmented reality libraries (even commercial ones) that use the BSD licensed OpenCV.  However, building for iOS was a real pain, and for awhile it almost seemed like some wanted to keep the entire process secret (can’t really blame them!).  I mentioned a tutorial that explained the process but definitely didn’t make things easy.

I recently came across a build script that alleviates all that pain so you can have OpenCV installed for iOS devices automatically, and it’s been updated to support OpenCV 2.2.9.  The build script is from Khvedchenya Eugene and in the second part he writes on getting started with OpenCV in Objective-C.

Update: If you don’t mind precompiled binaries Khvedchenya has a precompiled iOS binary also available of OpenCV 2.3RC (thanks for telling me Tom!).

You can find Khvedchenya’s tutorials here:
Building OpenCV For iPhone In One Click
Using OpenCV In Objective-C Code

You can find the Github for the most recent version of the build script here:
https://github.com/BloodAxe/OpenCV-iOS-build-script

 

[UPDATE] For those interested in OpenCV 2.3 pre-compiled binary:
OpenCV 2.3 Release Candidate Is Available

If you ever want to dabble in augmented reality on iOS devices this is a great help.

©2011 iPhone, iOS 4, iPad SDK Development Tutorial and Programming Tips. All Rights Reserved.

.

DeliciousTwitterTechnoratiFacebookLinkedInEmail

Tags: computer vision library, augmented reality, open computer vision, opencv, ios, iPhone


Open Source: Behavioral Driven Development Testing Framework

For those unfamiliar with the term behavioral driven development testing (BDD) frameworks are used so that you can test applications using logical English like syntax.

I have come across an open source  framework designed specifically for iOS devices.   What’s cool about this specific framework is that it can easily be attached to Objective-C methods, runs in the simulator, and let’s you store your different stories in different files so you could easily demonstrate your software’s ability to cope with different scenario’s.

Here’s an example of the types of a story used for testing:

Story: Example story showing the basic syntax.
Given Simon is working
Then I should be able to see abc and 5 in the log and say goodby at the end.

The framework is known as Simon, and was created by Derek Clarkson.

It can be found on Github here:
https://github.com/drekka/Simon

UPDATE: Got feedback about another framework known as Kiwi you may want to check out if this interests you.

I had never used one of these frameworks before, but it looks like a great way to illustrate an app does exactly what it should do. HKSAB58YGFWN

©2011 iPhone, iOS 4, iPad SDK Development Tutorial and Programming Tips. All Rights Reserved.

.

DeliciousTwitterTechnoratiFacebookLinkedInEmail

Tags: open source, ios (apple), github, objective-c, Software testing, ios, bdd, open source framework, development


Uploading Mobile Files to CloudApp with Stratus

If you’ve ever had trouble uploading and sharing files around the web you certainly wouldn’t be the first. There are so many services today which include tons of free storage space. Dropbox may be the most well-known and it also features a fantastic iOS app. However, with the release of Stratus, CloudApp is now a hot new contestant in the ring.

You can check out CloudApp on their official website where you may sign up for a free account. If you already have a login, proceed into your account settings page. You’ll need to have an account either way to access and store content onto Stratus. Once you’re all set, let’s continue and see just how accessible Stratus can be.

Getting Started

After entering in your login details Stratus app will redirect you to the home page. Here you can choose between the many types of media available for storage. Luckily, CloudApp was built with a large backend system and allows for almost any type of media you can imagine.

This includes images URL bookmarks, archives, audio and even video files. Note there is a limit of 25MB max file size for all free accounts, although it is possible to upgrade the limit to 250MB and even host them on your own domain. This does cost a bit extra, however, so for now the free version is probably enough.

Copying Shortened CloudApp Link

Copying Shortened CloudApp Link

If you press “All” at the top of your options list this brings up your Uploads folder. You probably won’t have very much saved if you’re a new user. But when viewing all of your uploads the default sorting style is chronological. Thus, your most recent uploads will be displayed near the top of the window. Next to each filename you’ll also notice an eye icon with a counter for the number of views.

This is a really great feature built directly into the app, since CloudApp automatically shortens URLs for sharing your media online and they also provide free analytics tracking. All of this can be found in your account details as well.

Digging Through your Uploads

Now let’s start to delve a bit deeper into working with your files. If at any time you are looking to return back to the main menu, simply tap the top left menu button. But for now, we’ll begin by simply uploading a photo from anywhere on your phone.

To begin, tap the plus icon in the top right. A menu will appear to choose between how you want to select your file. You may add a link or text from your clipboard, take a live photo or upload media from your library. After you’ve mad your choice, Stratus app will display a small loading bar and pause for a moment to upload. After completion, you’ll see a new row added into your uploads area.

Stratus Uploads and Media Folder

Stratus Uploads and Media Folder

On some iPhone 4 devices I tested, the app crashed shortly after this stage. However, strangely enough the uploaded media was still added to the server. If this happens to you don’t worry, I’m sure the developers are patching up any loose bugs. And this wasn’t often enough to warrant any concern, or even negatively effect user experience.

Sharing Links and Downloads

Tap on the bar area for your new media. This will bring up a view page with some further options. If your media content is an image, text, or video file you’ll likely be able to see a preview shot. Links will open up as if in a browser window when possible.

Down below you’ll recognize some simple icons. Each is tied to a specific action command, similar to the top menu bar icons. To delete any item the trash can icon is located on the bottom left. If you are viewing a public upload you’ll also see a chain link icon. Click this to copy your shortened URL from CloudApp to share on Twitter or Facebook. This feature should work for all types of media, including Zip archives.

Stratus Bookmarks & Context Menu

Stratus Bookmarks & Context Menu

On some files (especially images), you’ll notice a cloud icon with a down arrow affixed beneath it. Simply press here and you’ll automatically download the current file you’re viewing directly to your device. This is a very handy feature when moving between many computers or mobile systems to keep all of your files in sync.

Image File - More Details

Image File – More Details

If you look in the upper-right hand corner you’ll similarly notice a small information button. Tapping here brings up a brief Information page with some more details on your media. Dimension sizes for images and videos, as well as the total file size and initial upload date for nearly everything. Stratus neatly organizes the information into a table directly center in your window.

Personal Preferences

Ultimately, I would argue your choice of application is based on your preferences. I enjoy using CloudApp since it’s extremely functional and simple. I also don’t need to host large files, so it’s easy to upload and re-download anything I need in just a few moments.

If you find DropBox or an alternative app easier to use, Stratus may not be worth switching. Definitely give it a shot if you’re curious; The app is free to download, anyways. The user interface is just as simple as any other storage app, so you should become accustomed quickly. And Stratus works great as a failsafe method if your core files get taken down or go offline.

Conclusion

I would highly recommend giving Stratus a shot. If you frequently have files you’re looking to move between your phone and computer CloudApp is perfect. And Stratus App is the perfect mobile companion. It features a beautiful icon design and elegant user interface features. Also signup is a breeze and only takes a few minutes.

You’ll be able to sort through all of your uploads very quickly and share on any social networks. All of these features are directly open to all iPhone 4 and 3GS users. Have you used anything similar for online storage? What are some of your favorite mobile apps in the cloud? Let us know your thoughts in the discussion area below.

Quick Look: ClickDesire

Quick Look posts are paid submissions offering only a brief overview of an app. Vote in the polls below if you think this app is worth an in-depth AppStorm review!

In this Quick Look, we’re highlighting ClickDesire. The developer describes ClickDesire as a fun game. You have invited a company of friends, folks and colleagues, or there are two of you and you’d like to have fun. This is simple. Just play this game!

A loser fulfills other player’s desire. The application includes 200 desires. Moreover, you can add your own desires, delete or edit them. If you need just a list of desires, note the application “Desires For Games.”

Read on for more information and screenshots!

Screenshots

ClickDesire

ClickDesire

About the App

Here are the top five features you can expect to see in the latest version:

  • 200 desires and the ability to add your own
  • A large number of players (from 1 to 100)
  • Opportunity to play together on one screen
  • Two types of game with lots of options
  • You are guaranteed fun!

Requirements: iOS 3.0+

Price: $0.99

Developer: Evgeniy Gemba

Vote for a Review

Would you like to see us write a full review of ClickDesire? Have your say in our poll:

Would you like to see ClickDesire reviewed in-depth on AppStorm?online surveys

Quick Look posts are paid submissions offering only a brief overview of an app. Vote in the poll if you think this app is worth an in-depth AppStorm review! If you’re a developer and would like to have your app profiled, you can submit it here.

Weekly Poll: How Often Do You Watch Video on Your iPhone?

When I worked at a local office, I used to walk to a nearby restaurant for lunch and watch a movie on my iPhone while eating. But now, I eat more at home or with a buddy, so the opportunity doesn’t really present itself to watch anything with the iPhone. What about you? Do you prefer to use the iPhone as one of your main video sources or would you rather watch video on something bigger like an iPad or regular television? Let us know in the poll.

Adding block callbacks to the Facebook iOS SDK

If you are like me and love using blocks over delegates, then these code snippets will come in handy. After learning about blocks I have come to love to use them, especially using them for callbacks rather than using the old protocol/delegate methodology. These code snippets will allow you to use blocks as callbacks over delegates.

In a previous post Facebook SDK – Posting to User News Feed I showed how to post various types of status’s to the logged in users news feed. These code snippets have been added to a forked version of the official Facebook for iOS SDK. A sample of how to use the new block callbacks can be found within the sample project from the last post.

For more information on blocks, you can refer to the Apple document discussing blocks in more detail.

Step 1: Modifying FBRequest Class for new callbacks
First we will modify the FBRequest class. There are a few simple modifications that we need to create. Within the FBRequest.h file add the following:

@property (copy) void (^FBRequestCallback)(FBRequest*, id, NSError*);
@property (nonatomic, assign)  BOOL usesBlockCallback;
 
+ (FBRequest*) getRequestWithParams:(NSMutableDictionary *)params
                         httpMethod:(NSString *)httpMethod
                           callback:(void(^)(FBRequest *request, id result, NSError *error)) _block
                         requestURL:(NSString *)url;

In the FBRequest.m file add the following code:

@synthesize FBRequestCallback = _FBRequestCallback;
@synthesize usesBlockCallback;
 
+ (FBRequest*) getRequestWithParams:(NSMutableDictionary *)params
                         httpMethod:(NSString *)httpMethod
                           callback:(void(^)(FBRequest *request, id result, NSError *error)) _block
                         requestURL:(NSString *)url
{
    FBRequest* request = [[[FBRequest alloc] init] autorelease];
    request.delegate = nil;
    request.url = url;
    request.httpMethod = httpMethod;
    request.params = params;
    request.connection = nil;
    request.responseText = nil;
    request.FBRequestCallback = _block;
 
    return request;
}

In the FBRequest class we are duplicating what they already have in the provided method but swapping out the delegate with a block. Out of personal preference I went with a single callback versus having an error and result callback. If there is no error we will be returning nil for the error parameter.

I also added a boolean property that will be used to determine which callback to use when processing the data when it has been returned from the Facebook servers.

Moving onto the – (void)handleResponseData:(NSData *)data; Method we need to add logic to pass the result request data onto the block callback.

- (void)handleResponseData:(NSData *)data {
  if ([_delegate respondsToSelector:
      @selector(request:didLoadRawResponse:)]) {
    [_delegate request:self didLoadRawResponse:data];
  }
 
    if (usesBlockCallback) {
        NSError* error = nil;
        id result = [self parseJsonResponse:data error:&error];
        _FBRequestCallback(self, result, error);
    }
    else if ([_delegate respondsToSelector:@selector(request:didLoad:)] ||
             [_delegate respondsToSelector:@selector(request:didFailWithError:)])
    {
        NSError* error = nil;
        id result = [self parseJsonResponse:data error:&error];
 
        if (error) {
            [self failWithError:error];
        }
        else if ([_delegate respondsToSelector:@selector(request:didLoad:)]) {
            [_delegate request:self didLoad:(result == nil ? data : result)];
        }
 
    }
}

We are using the same logic as the standard delegate methodology, except we do not need to make a separate delegate call if there is an error. Within the block we have included result and an NSError parameter. That way you can handle the error logic within the same callback.

Finally within the dealloc method we need to release the block. Since we are using the block in objective-c we can simply use [_FBRequestCallback release]; You can also use Block_release(_FBRequestCallback); but since we are using it within Objective-C we can use the standard way of releasing an object.

- (void)dealloc {
    [_FBRequestCallback release];
    [_connection cancel];
    [_connection release];
    [_responseText release];
    [_url release];
    [_httpMethod release];
    [_params release];
    [super dealloc];
}

Step 2: Adding request methods with block callbacks

We want to include two new methods to the Facebook.h class. One method is for graph API requests, and one is for the the old REST API.

In the Facebook.h add the following two methods:

- (void) requestWithGraphPath:(NSString *) _graphPath
                       params:(NSMutableDictionary*) _params
                       method:(NSString*) _method
                     callback:(void(^)(FBRequest *request, id result, NSError *error)) _block;
 
- (void) requestWithMethodName:(NSString *) _methodName
                     andParams:(NSMutableDictionary *) _params
                 andHttpMethod:(NSString *) _method
                      callback:(void(^)(FBRequest *request, id result, NSError *error)) _block;

In the Facebook.m file add the following two method implementations:

- (void) requestWithGraphPath:(NSString *) _graphPath
                       params:(NSMutableDictionary*) _params
                       method:(NSString*) _method
                     callback:(void(^)(FBRequest *request, id result, NSError *error)) _block
{
    NSString * fullURL = [kGraphBaseURL stringByAppendingString:_graphPath];
    [_params setValue:@"json" forKey:@"format"];
    [_params setValue:kSDK forKey:@"sdk"];
    [_params setValue:kSDKVersion forKey:@"sdk_version"];
    if ([self isSessionValid]) {
        [_params setValue:self.accessToken forKey:@"access_token"];
    }
 
    [_request release];
    //modify request to have block
    _request = [[FBRequest getRequestWithParams:_params
                                     httpMethod:_method
                                       callback:_block
                                     requestURL:fullURL] retain];
    [_request connect];
}
 
- (void) requestWithMethodName:(NSString *) _methodName
                     andParams:(NSMutableDictionary *) _params
                 andHttpMethod:(NSString *) _method
                      callback:(void(^)(FBRequest *request, id result, NSError *error)) _block
{
    NSString * fullURL = [kRestserverBaseURL stringByAppendingString:_methodName];
    [_params setValue:@"json" forKey:@"format"];
    [_params setValue:kSDK forKey:@"sdk"];
    [_params setValue:kSDKVersion forKey:@"sdk_version"];
    if ([self isSessionValid]) {
        [_params setValue:self.accessToken forKey:@"access_token"];
    }
 
    [_request release];
    //modify request to have block
    _request = [[FBRequest getRequestWithParams:_params
                                     httpMethod:_method
                                       callback:_block
                                     requestURL:fullURL] retain];
    [_request connect];
 
}

Once again we are duplicating the previously implemented methods by Facebook. The only difference is changing the request method. As you notice we are now using the methods we implemented in the FBRequest class.

Now that we have everything implemented that we need in the Facebook SDK we can use our awesome new block callbacks! The following snippet will return the logged in users friends!

    NSMutableDictionary *params = [[[NSMutableDictionary alloc] init] autorelease];
    [facebook requestWithGraphPath:@"me/friends"
                                    params:params
                                    method:@"GET"
                                  callback:^(FBRequest *request, id result, NSError *error)
    {
        NSLog(@"friends %@", result);
        if ([result isKindOfClass:[NSDictionary class]]) {
            friendsList = [[result objectForKey:@"data"] retain];
            [table reloadData];
        }
 
    }];

Back To Basics – Getting Set Up For iOS Development

For this tutorial, we are going to discuss the basics of getting set up for developing on the iOS platform. While there are many 3rd party tools that allow you to develop a number of ways, I am only going to discuss the officially supported ones from Apple. That being said, let’s get started.

The Hardware

The first thing you are going to need is an Intel Based Apple Computer running OSX 10.6.6 or better. Hackintosh computers have been know to allow you to develop on them however, they are not recommended as they require quite a bit of configuration. So, your best best is to develop on the real thing.

Besides that, who wants to use a Windowz box anyway?

The Account

To become a bonafide iOS developer, you must sign up for Apple’s iOS Developer program. It’s free until you are ready to submit your applications to the App Store. So, if you are just tinkering with iOS development and want to give it a shot, there is no risk.

Once you sign up, you will have access to the latest SDK, developer articles, sample code, documentation, XCode, and more! What are you waiting for? Sign Up Now!

Once you are ready to deploy your first application, you will need to upgrade your account for the low low price of $99.  Also, you must pay this fee when you are ready to test on your own device.  The free account limits you to using only the simulator for testing.

One cool thing this gets you (besides the ability to submit applications to the App Store) is you get to download all of the early iOS releases. As I write this post, I’m running iOS 5 beta on my device which isn’t slated to come out for another couple months.

The Software

In order to develop for the iOS platform, you must have the iOS SDK installed. Apple has nicely bundled their SDK up along with some other great tools such as XCode in order to make it super easy for you to install and get coding.

With the download your get quite a bit (from Apple’s site)

“This is the complete Xcode developer toolset for Mac, iPhone, and iPad. It includes the Xcode IDE, iOS Simulator, and all required tools and frameworks for building Mac OS X and iOS apps.”

So even if you don’t have an iOS device (I didn’t when I first started developing AND BLOGGING on iCodeBlog), you can still develop and test your applications. One note on this however is, always test on a real device before submitting an application to the store. The simulator is a great tool to use while testing but is very misleading in terms of performance abd behavior.

Conclusion

Well, I hope that this post has found you well and you are now on your way to creating your first iPhone application. In the next tutorial in this series, I will be discussing the basics of XCode and setting up your iOS projects.

If you have any comments, questions, or things to add, feel free to post them in the comments section of this post.

Happy iCoding!

??This post is part of an iOS development series called Back To Basics.  You can keep up with this series through the table of contents, RSS feed, or Twitter.

iOS 5 Will Finally Bring Custom Text Message Alert Sounds

While iOS has always supported the use of various ringtones for different callers, it has not supported ability to use a tone of your choosing to notify you of a text message – until now, that is! Data found in iOS 5 Beta 3 shows that iOS 5 might finally bring us this ability.

According to a new report, not only will iOS 5 support the use of text message alert sounds, it will also allow you to set custom alerts for emails, new voicemail, sent email, tweets, calendar and reminder alerts, and possibly more. This is great news for those of you that, like me, have grown tired of Apple’s boring default tones for these things.

It actually seems a bit odd to describe this as news, as cell phones have had this functionality for a very long time, starting with the “dumb phones” of years past. Nevertheless, it’s better to come late to the party than not come at all, right Apple?

In their defense, I’m really much more interested in Apple creating a revolutionary and amazing user interface and app infrastructure than I am in them supporting all the tiny little features some people might expect, such as custom notification tones.

Accessing and setting custom tones is easy – just fire up Settings.app, click the Sounds menu, and you’ll see the options for changing the text tone, voicemail tone, and others. Clicking one of these sub-menu’s brings up a list of all of your iPhone’s ringtones, including the one’s you’ve made yourself, and also includes a button that directs you to a ringtones store on iTunes.

Of course, one might argue that Apple’s limiting of tone options on the iPhone has assisted, to some extent, in the cult status of the iPhone – its default ringtone, text tones, etc have become easily recognizable symbols of the iPhone, and have made for some interesting experiences while standing in line at the Apple Store!

I’ve already got a good idea of what I’m going to be changing my tones to – what about you?

FaceTime On Your HDTV Is Now Possible, Could It Come To The Apple TV?

According to a discovery found in iOS 5 Beta 3, FaceTime now supports AirPlay streaming to an HDTV, so if you’ve ever wanted to see your contacts’ faces in that much detail, now is your chance!

The report comes to us from TiPb, who provided the above image, and raises an intriguing tone – I sense a possibility that Apple could add FaceTime to a future Apple TV. Apple TV HD, anyone? One step closer to the smart house of yesteryear!

How To Create Multiple Profiles On Your iPad – Cydia Hack

One of the things that really grinds my gears about my iPad 2 is the lack of user accounts. If the iPad 2 is meant to be a laptop replacement then why doesn’t it cater for multiple accounts in the same way that “normal” computers can?

It doesn’t make sense to me that I can only have one profile on my iPad and everyone must share this profile. I was really hoping that Apple would introduce profiles in iOS 5 but it doesn’t look like it’s on the cards.

Cydia hack to the rescue!

iUser is a Cydia hack that lets you create multiple profiles on your iPad so that you and your family / friends / loved ones / dog can have their own unique profile to run amuck on.

 

Your iPad needs to be Jailbreaked in order to run iUser. Grab it from the Cydia repository.

iOS 4.3.4 Already Jailbroken

Even though Apple just issued their 4.3.4 update for iOS on Friday, which patched the PDF exploit (disabling JailbreakMe 3.0), it has already been jailbroken, and the latest PwnageTool release can already install Cydia on the new firmware.

In addition to the PwnageTool release, it appears that popular jailbreak tool Redsn0w has also been updated with the ability to jailbreak the latest firmware. Unfortunately, the jailbreak is currently tethered (meaning you have to hook your iDevice up to your computer and use software to boot it every time it restarts), nevertheless, those of you excited to maintain your jailbroken status on the new firmware now have the ability to do so.

The jailbreak does not work with the iPad 2, and currently, the iPhone Dev Team continues to recommend that users do not yet update to 4.3.4, but remain on version 4.3.3, as the jailbreak work better on that version, and is untethered.