Posted by Kieran on November 16, 2009 under J2ME, Mobile |
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
Posted by Kieran on under Mobile, iPhone |
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/
Posted by Kieran on November 12, 2009 under Mobile, iPhone |
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
Posted by Kieran on November 5, 2009 under Mobile, iPhone |
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!
Posted by Kieran on under J2ME, LWUIT, Mobile, Uncategorized |
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
Posted by Kieran on November 4, 2009 under Mobile |
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
Posted by Kieran on November 3, 2009 under Mobile |
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)
Posted by Kieran on November 2, 2009 under Mobile, iPhone |
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/
Posted by Kieran on under Mobile, iPhone |
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/