Tinyline GZIP implementation for JavaME

Posted by Kieran on November 16, 2009 under J2ME, Mobile | Be the First to Comment

One of the parts of JavaME development that always pains me is that for such a resource limited device, in particular when accessing radio networks, is the fact that the zip api is not exposed as standard (despite the fact that the files contained in the JAR itself are zipped)

Andrew Girow has kindly made his lightweight implementation freely available http://tinyline.com/utils/index.html

iPhone 2d game engine Cocos2D

Posted by Kieran on under Mobile, iPhone | Be the First to Comment

Cocos2D is a tremendous opensource resource for the iPhone that is going from strength to strength

http://www.cocos2d-iphone.org/about

Features include

  • Scene management (workflow)
  • Transitions between scenes
  • Sprites and Sprite Sheets
  • Effects: Lens, Ripple, Waves, Liquid, Twirl, etc.
  • Actions (behaviors):
    • Trasformation Actions: Move, Rotate, Scale, Jump, etc.
    • Composable actions: Sequence, Spawn, Repeat, Reverse
    • Ease Actions: Exp, Sin, Cubic, etc.
    • Misc actions: CallFunc, OrbitCamera
  • Basic menus and buttons
  • Integrated physics engine (both Box2d and Chipmunk)
  • Particle system
  • Text rendering support (variable and fixed width fonts)
  • Texture Atlas support
  • Tile Map support
  • Parallax scrolling support
  • Sound support
  • Streak Motion support
  • High Score server (Cocos Live)
  • Touch/Accelerometer support
  • Portrait and Landscape mode
  • Integrated Pause/Resume
  • Fast Textures:Supports PVRTC textures, 16-bit textures and 32-bit textures
  • Language: objective-c
  • Open Source: Compatible with open and closed source projects
  • OpenGL ES 1.1 based

Once you have checked out the latest version from here like so

svn checkout http://cocos2d-iphone.googlecode.com/svn/trunk/ cocos2d-iphone-read-only

navigate to the directory cocos2d-iphone and run the following

. ./install_template.sh

This will install the cocos2d template into xcode for you, which makes setting up and using this framework even easier!
Great demos are available from within the project itself to learn from as well as the wiki documentation which can be found here

Some full open source examples are available from the following links

The greatest part for me personally is the heavy lifting that chipmunk can do for you regarding collisions and physics for your game, the best tutorial I have found for using it is available here

http://www.alexandre-gomes.com/articles/chipmunk/

Adding community features to iPhone apps

Posted by Kieran on November 12, 2009 under Mobile, iPhone | Be the First to Comment

With particular note for free applications that need to increase their “stickyness” to achieve reasonable revenues via in application advertisements such as those provided by Admob, adding community features such as a high score boards and messaging between users.

http://corporate.scoreloop.com/

Provides location aware global high score boards

Ability to post to notifications to Facebook

Issue player challenges

Cross promotion of other games in the score loop system

Example game Wild Solitaire http://linktoapp.com/wild+solitaire

http://www.openfeint.com/

Compare games with friends

Location based scoreboards

game profiles

Achievements

Example game: http://linktoapp.com/alex+the+fox

http://plusplus.com/

Plus Plus is NGMocos private version of the above tools, they do intend to make it open in the future however

Example game: http://linktoapp.com/eliminate

Making the iPhone simulator behave in landscape for the 1st view

Posted by Kieran on November 5, 2009 under Mobile, iPhone | Be the First to Comment

Discovered some fairly interesting behaviour of the iPhone simulator that had me stumped for a little while

When you want to have an application that starts up in Landscape without a status bar
the following code snippit placed into your applicationDidFinishLaunching method of the app delegate will allow you to test in the emulator!

//For your normal application execution on the iPhone, this can also be done in the info.plist
[[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationLandscapeRight];

//How to make the simulator behave itself preprocess for just the simulator
#if (TARGET_IPHONE_SIMULATOR)
UIScreen *screen = [UIScreen mainScreen];
tabBarController.view.bounds = CGRectMake(0, 0, screen.bounds.size.height, screen.bounds.size.width);
tabBarController.view.transform = CGAffineTransformConcat(tabBarController.view.transform, CGAffineTransformMakeRotation((M_PI * 90 / 180.0)));
tabBarController.view.center = window.center;
#endif

tabBarController in this case is the first view controller given to the window

Hope this helps someone else!

LWUIT blog highlights pain with deviation from stds

Posted by Kieran on under J2ME, LWUIT, Mobile, Uncategorized | Be the First to Comment

One of the great aspects of frameworks such as LWUIT and freely available information with regards to device groupings, is the promise of finally achieving the nirvana of “write one run anywhere” or the new idiom which seems to be “write once deploy anywhere”

Thankfully we do seem to be leaving the dark days of fragmentation in the Java mobile world behind us, it is fairly easy to get lulled into a false sense of security.

Shai’s closing comment on the article highlights the sort of “discovery” that device specific information, when not in the public domain, may cause many developers to burn time.

To quote Shai:

Applications are expected to explicitly declare their support for touch to utilize the full screen of the device. This is done using the following Jad flags:

Navi-Key-Hidden: true
Nokia-MIDlet-On-Screen-Keypad: no
MIDlet-Touch-Support: true

Notice that the last entry (MIDlet-Touch-Support) is required by current/older Samsung/LG devices but is illegal by the MIDP specification hence fails on Nokia etc. so for support on these devices you would need a copy of your JAD (only the jad) with this attribute added.

Read Shai’s full article, which includes some good tips on using LWUIT on touch devices http://lwuit.blogspot.com/2009/11/optimized-for-touch.html#ixzz0VvlYKZXm

Mobile Costs

Posted by Kieran on November 4, 2009 under Mobile | Be the First to Comment

A really useful website which monitors the cost of a mobile meg in the UK for those not on flat rate data plans

http://www.mobilemeg.com/compare_all_mobile_data_plans.php

and a great infographic on service costs and penetration rates from around the world courtesy of billshrink

Evolution of Cell Phones

Posted by Kieran on November 3, 2009 under Mobile | Be the First to Comment

A couple of posts that really show how far mobile has come in such a short space of time

http://www.webdesignerdepot.com/2009/05/the-evolution-of-cell-phone-design-between-1983-2009/

Nokia graphic showing  them leading innovation,though sometimes maybe a little too early!

http://www.geekstir.com/wp-content/uploads/2009/10/evophones2.jpg

Seems a long time ago that I was developing on the Nokia 7210, for the simple reason, that although it was not the best phone available at the time, it was excellent to code for because Nokias emulator actually realistically emulated heap memory usage, which was the achilles heel at the time (along with 64kb Jar limits)

Appviz cross country sale and review analysis for iPhone

Posted by Kieran on November 2, 2009 under Mobile, iPhone | Be the First to Comment

One of the pains of getting the feedback from reviews on iTunes is that you would have to login into each country individually AppViz for $30 solves this problem, it also collates or your sales information (daily, weekly, monthly) into one place, far faster than you could possibly achieve using the iTunes connect interface

pretty indispensable in my opinion

http://www.ideaswarm.com/products/appviz/

Appirator, countering negative review bias on iTunes

Posted by Kieran on under Mobile, iPhone | Be the First to Comment

It has to be said that the current iTunes system for rating apps has a certain element of bias – the current methods  means that probably the majority of  people who are leaving a rating are doing so when they delete an application. However the code on the following page allows you to remind users from your application at set time intervals to leave you  a review. Hopefully encouraging a more positive review bias.

Thanks to Arash for making this available in a simple package for integrating with your project

http://arashpayan.com/blog/index.php/2009/09/07/presenting-appirater/