If you haven't heard, or perhaps if you just don't care, Apple is holding an event for this afternoon to announce the features in their upcoming major release to the iPhone operating system.  As usual, the Internet is abuzz with speculation about what it may or may not include, but for thousands of iPhone users like myself there is only one question on our minds: how long until a jailbreak is released?

For those unfamiliar with the situation on the iPhone, the long and the short of it is that the iPhone operating system is extremely powerful and flexible, but Apple has built certain protections in place to ensure that it only works a certain way -- the way they want it to work. So, for example, any third party programs that you purchase separately from the iPhone can only run in a one-at-a-time fashion. If you want to listen to Last.fm, for example, you can only listen to Last.fm. You can't leave the Last.fm application running while you compose an email. Additionally, third party applications can't share information with any other applications To "jailbreak" your iPhone basically just means that you're running an altered version of Apple's iPhone operating system that allows developers to get around these restrictions.

So then I started to ask myself, what features would Apple have to add to iPhone OS 4.0 to make me not want to jailbreak my iPhone anymore? Here's a quick rundown of the major features that I've come to depend on in my iPhone that, up until now, I could only get by running an altered version of their operating system.

iphoneos4

Status Notification Icons

I think this may be viewed as a silly and minor detail, but the fact that the iPhone doesn't do this out-of-the-box drives me crazy. One of the first things I do after jailbreaking is to install the StatusNotifier application. This application displays little icons in the upper right corner of the phone to indicate things such as missed calls, incoming SMS messages, or unread email. It's such a simple, useful thing that I don't understand why Apple hasn't thought of it.

Background Applications

I get it: the iPhone isn't a computer and it's probably a good thing that they don't allow an unlimited number of application to run constantly. It would be a severe drain on the battery and would dramatically impact performance. But there are certain applications, and certain times, when you just need an application to keep running while you're working on something else. For iPhone users who choose to jailbreak their phones, there is the Backgrounder app which allows you to keep any application going by simply holding down the home button. The application keeps going, and the next time you open the app up it picks up right where you left it.

I think Apple needs to find some sort of middle ground here -- perhaps allowing a single app to sit in the background at a time. If you've ever used the Nike+ application or put a caller on hold while you look up a contact, you've probably noticed the colored band that can appear at the top of the iPhone to remind the user that either Nike+ is still running or that they have a call on the line; Why not use that same system to remind users that they have an application running in the background? It would make it clear to the user that they can only run one background app, and they would certainly be aware if they accidentally left it running.

Extra Dock Space

This one is definitely not a deal breaker, but another nice feature of jailbroken iPhones that I've gotten used to. Natively, the iPhone allows you to keep four applications always accessible in the dock, but jailbroken iPhone users can install the Five Icon Dock application to add one more to the list. Not a big deal, of course, but you can easily fit five icons in the dock without cramping anything, so it would be nice to have that as an option on all iPhones.

The iPhone OS has really come a long way. I used to depend on jailbroken apps for all kinds of things that Apple eventually addally added, such as copy and paste, tethering, and search. I guess we'll know for sure this afternoon, but if these few things are added into iPhone OS 4.0, I think I'll finally be content running an out-of-the-box Apple iPhone without jailbroken hacks.

Are there any jailbreak tricks that you depend on? Think Apple will be adding them into the 4.0 OS? Let me know in the comments.


Tags: apple  daily  technology 

Recent photos

Recently Listened

Search

Profile Information

Application afterLoad: 0.000 seconds, 0.44 MB
Application afterInitialise: 0.048 seconds, 4.78 MB
Application afterRoute: 0.064 seconds, 6.24 MB
Application afterDispatch: 0.208 seconds, 16.86 MB
Application afterRender: 6.884 seconds, 26.13 MB

Memory Usage

27529952

19 queries logged

  1. SELECT *
      FROM v2_session
      WHERE session_id = 'caba908eba5b9f80ed5427d32dd4af4f'
  2. DELETE
      FROM v2_session
      WHERE ( time < '1328545282' )
  3. SELECT *
      FROM v2_session
      WHERE session_id = 'caba908eba5b9f80ed5427d32dd4af4f'
  4. UPDATE `v2_session`
      SET `time`='1328546182',`userid`='0',`usertype`='',`username`='',`gid`='0',`guest`='1',`client_id`='0',`data`='__default|a:9:{s:15:\"session.counter\";i:105;s:19:\"session.timer.start\";i:1328539142;s:18:\"session.timer.last\";i:1328546119;s:17:\"session.timer.now\";i:1328546157;s:22:\"session.client.browser\";s:48:\"CCBot/1.0 (+http://www.commoncrawl.org/bot.html)\";s:8:\"registry\";O:9:\"JRegistry\":3:{s:17:\"_defaultNameSpace\";s:7:\"session\";s:9:\"_registry\";a:1:{s:7:\"session\";a:1:{s:4:\"data\";O:8:\"stdClass\":0:{}}}s:7:\"_errors\";a:0:{}}s:4:\"user\";O:5:\"JUser\":19:{s:2:\"id\";i:0;s:4:\"name\";N;s:8:\"username\";N;s:5:\"email\";N;s:8:\"password\";N;s:14:\"password_clear\";s:0:\"\";s:8:\"usertype\";N;s:5:\"block\";N;s:9:\"sendEmail\";i:0;s:3:\"gid\";i:0;s:12:\"registerDate\";N;s:13:\"lastvisitDate\";N;s:10:\"activation\";N;s:6:\"params\";N;s:3:\"aid\";i:0;s:5:\"guest\";i:1;s:7:\"_params\";O:10:\"JParameter\":7:{s:4:\"_raw\";s:0:\"\";s:4:\"_xml\";N;s:9:\"_elements\";a:0:{}s:12:\"_elementPath\";a:1:{i:0;s:69:\"/var/sites/teamsoell.com/root/libraries/joomla/html/parameter/element\";}s:17:\"_defaultNameSpace\";s:8:\"_default\";s:9:\"_registry\";a:1:{s:8:\"_default\";a:1:{s:4:\"data\";O:8:\"stdClass\":0:{}}}s:7:\"_errors\";a:0:{}}s:9:\"_errorMsg\";N;s:7:\"_errors\";a:0:{}}s:13:\"session.token\";s:32:\"48d5bcedf3f53d6c32e1bfb80346fe41\";s:23:\"gantry-current-template\";s:12:\"rt_juxta_j15\";}BF________com_tag|a:1:{s:7:\"default\";a:14:{s:4:\"page\";s:1:\"1\";s:5:\"limit\";i:10;s:6:\"filter\";s:0:\"\";s:10:\"boxchecked\";s:0:\"\";s:12:\"hidemainmenu\";s:0:\"\";s:4:\"task\";s:0:\"\";s:5:\"total\";s:0:\"\";s:4:\"view\";s:0:\"\";s:8:\"returnto\";s:0:\"\";s:32:\"4922f8d610dcf1a2bd203ec6f0f4578e\";s:32:\"caba908eba5b9f80ed5427d32dd4af4f\";s:6:\"option\";s:7:\"com_tag\";s:6:\"Itemid\";N;s:3:\"tag\";s:4:\"emma\";s:9:\"lastModel\";s:7:\"tag_map\";}}'
      WHERE session_id='caba908eba5b9f80ed5427d32dd4af4f'
  5. SELECT *
      FROM v2_components
      WHERE parent = 0
  6. SELECT folder AS type, element AS name, params
      FROM v2_plugins
      WHERE published >= 1
      AND access <= 0
      ORDER BY ordering
  7. SELECT *
      FROM v2_redj
      WHERE ('/andy/239-iphoneos4' REGEXP BINARY fromurl)>0
      AND published='1'
      ORDER BY ordering
  8. SELECT m.*, c.`option` AS component
      FROM v2_menu AS m
      LEFT JOIN v2_components AS c
      ON m.componentid = c.id
      WHERE m.published = 1
      ORDER BY m.sublevel, m.parent, m.ordering
  9. SELECT *
      FROM v2_rokcandy
      WHERE published=1
  10. SELECT template
      FROM v2_templates_menu
      WHERE client_id = 0
      AND (menuid = 0 OR menuid = 56)
      ORDER BY menuid DESC
      LIMIT 0, 1
  11. SELECT `option`
      FROM v2_components
      WHERE parent=0
      AND iscore=0
  12. INSERT INTO `v2_rokuserstats` ( `user_id`,`ip`,`session_id`,`page`,`referrer` )
      VALUES ( '0','38.107.179.210','caba908eba5b9f80ed5427d32dd4af4f','/andy/239-iphoneos4','' )
  13. SELECT a.*, u.name AS author, u.usertype, cc.title AS category, s.title AS section, CASE WHEN CHAR_LENGTH(a.alias) THEN CONCAT_WS(":", a.id, a.alias) ELSE a.id END AS slug, CASE WHEN CHAR_LENGTH(cc.alias) THEN CONCAT_WS(":", cc.id, cc.alias) ELSE cc.id END AS catslug, g.name AS groups, s.published AS sec_pub, cc.published AS cat_pub, s.access AS sec_access, cc.access AS cat_access 
      FROM v2_content AS a
      LEFT JOIN v2_categories AS cc
      ON cc.id = a.catid
      LEFT JOIN v2_sections AS s
      ON s.id = cc.section
      AND s.scope = "content"
      LEFT JOIN v2_users AS u
      ON u.id = a.created_by
      LEFT JOIN v2_groups AS g
      ON a.access = g.id
      WHERE a.id = 239
      AND (  ( a.created_by = 0 )    OR  ( a.state = 1
      AND ( a.publish_up = '0000-00-00 00:00:00' OR a.publish_up <= '2012-02-06 16:36:22' )
      AND ( a.publish_down = '0000-00-00 00:00:00' OR a.publish_down >= '2012-02-06 16:36:22' )   )    OR  ( a.state = -1 )  )
  14. UPDATE v2_content
      SET hits = ( hits + 1 )
      WHERE id='239'
  15. SELECT *
      FROM v2_tag_layouts
  16. SELECT count(id)
      FROM v2_tag_hideshow
      WHERE scope = "com_content"
      AND idnumber = "239:iphoneos4"
  17. SHOW FIELDS
      FROM v2_tag_category_map
  18. SELECT m.tagid AS id, tag_tags.tagname AS tagname
                   
      FROM v2_tag_category_map AS m
                   
      LEFT JOIN v2_tag_tags AS tag_tags
      ON m.tagid = tag_tags.id
                   
      WHERE m.contentid='239'   
      AND tag_tags.published='1'
                   
      AND access <= 0
      ORDER BY tagname
  19. SELECT id, title, module, position, content, showtitle, control, params
      FROM v2_modules AS m
      LEFT JOIN v2_modules_menu AS mm
      ON mm.moduleid = m.id
      WHERE m.published = 1
      AND m.access <= 0
      AND m.client_id = 0
      AND ( mm.menuid = 56 OR mm.menuid = 0 )
      ORDER BY position, ordering

Language Files Loaded

Untranslated Strings Diagnostic

None

Untranslated Strings Designer

None