I updated Keep Calm on Google Play today to version 2.2.5. This new update fixes a couple of bugs and makes poster generation a lot more efficient which should, in theory, mean that the app is a lot less likely to crash – an error reported due to a memory error.
The reason that the app had been crashing for some users (especially those with older phones with less RAM and older versions of Android) was because the background of the poster was being regenerated every time something was changed on the poster. This was a necessary because Keep Calm Pro allows for a greater variety in the backgrounds (solid color, linear gradient, radial gradient and an image) however was completely unnecessary for Keep Calm and therefore lead to an unnecessary Bitmap object hogging up memory.
The two apps share the same class to generate the poster (its called Dunkirk and the majority of variables, functions and classes in the app get their namesake from various WWII battles to keep me entertained whilst coding) so an extra function has been added to this that generates higher quality posters. I also adjusted the resolution the preview as rendered at – by default it is 600 by 900 (this is the export resolution) however if the screen resolution is lower than that it will be rendered at the lower resolution.
Hopefully this update has fixed any bugs that were in Keep Calm which is now within in three/four days of 50,000 downloads :).
Earlier today I launched the third update to Keep Calm Pro since its initial release which brings the app up to version 1.2. This new update officially introduces 100 icons (which brings the total up to 150 icons). Whilst these were technically introduced in version 1.1.5 there were a number of bugs in this version that I hadn’t considered so therefore this new version fixes these bugs.
The most peculiar bug that I had to fix was that on some devices the app was not correctly loading images from the phone’s Gallery app. Thankfully I was able to fix this bug (if anyone is interested it was a threading issue) and I have therefore improved the the way that images are loaded better so that the look great heading the poster.
I have made a few improvements to Keep Calm and Keep Calm Pro for Android. The key improvement that has been made is that the app is now fully multi-threaded which means it is a lot less likely to crash (I am ashamed to say that, yes, everything had been running in the UI thread before – oops).
Both apps now include PT Sans as the default font and Keep Calm Pro now allows you to choose between Open Sans, Open Sans Light (which used to be the default), PT Sans and the standard system font. I chose PT Sans because it matches the original font quite well. A less major modification that has been made to both apps is the change of the background color :).
In response to comments I have also added a new option to Keep Calm that allows you to use the old designer. This feature has not been added to Keep Calm Pro as it would have made it far too complex and I believe the menu/sub-menu system that it currently uses is far more efficient.
Android is a good platform – not a great platform, but a good one. I’ve been doing a lot of Android development recently and it certainly has many good features and it is easy (and cheap) to make an app for the system. There are, however, a great number of problems with Android from a developer’s point of view. This is a rough list of things I would like to see from the Android project. I don’t think that it necessarily needs them, but I think it would be a good thing for the platform if it had a few of them:
- SVG support everywhere: A major problem with Android at the moment is that you have to create at least three different copies of the same icon for use in app because Android apps can run on many different devices at different resolutions. If all icons were changed to SVG it would be possible to just include one copy of the icon and know that it would be shown at maximum quality on all screens. This would also be useful when Android displays eventually get to a higher pixel density (as in the iPhone and iPad) as icons would never appear pixelated. SVG font support would also be handy but not a requirement.
- Better font support: Android currently comes with three fonts whereas Windows Phone and iOS come with over fifty. You can include fonts in your app however if you wish to do this you have to change the font of each View pragmatically rather than via styling or XML which can increase the size of the app and also make it slower. Again, SVG font support would be useful.
- Higher PPI displays: When the iPhone got a Retina Display the only way that Android devices could get a similar resolution was to get bigger screens because Android wouldn’t run as well on higher density displays. There should be some big system changes to get this support.
- One Android: It amazes me how phone manufacturers have fragmented Android by adding new UIs and alternative apps. Whilst some of these are really great it often means that some devices won’t receive a major update for months after it has been released because the UI is being developed. If Android could go back to being pure Android it would make it a lot easier for developers and require less testing of apps.
- Google Play gift cards: This seems like a painfully simple thing to do but it is one of many reasons why iOS developers make a lot more than Android developers. It is a well known fact Android users ‘don’t like buying apps’ however the problem is that most of them can’t. When you set up an iTunes account you either have to type in your bank details or set it so that you will use gift cards however this is not required for Google Play registration. As most Android users have not created a Google Wallet account they can’t buy Android apps. By selling gift cards everywhere (as iTunes does) more people are likely to start buying apps.
- Better integration between Eclipse and Google Play: Currently you can create an app in Eclipse, export it and then upload it to Google Play. It makes a lot more sense, however, to integrate the two so that developers sign into Eclipse and then press one button to upload an app to Google Play. This would also simplify the process of creating in-app purchases.
- OTA updates: Most iOS devices are now running iOS 5.x and many are already running iOS 5.1, which came out in the last month. On Android most devices are still stuck with a two year old version of Android because phone manufacturers (who are responsible for updates) have not chosen to update to Ice Cream Sandwich. If Google were to take over the updating of Android devices it would probably mean that more people were using the latest version of the software.
- Better emulator: The Android emulator is very good however it can be incredibly slow when trying to emulate Android 3.x and Android 4.x devices.
I have updated Keep Calm for Android to version 2 so that it now uses them same UI as Keep Calm Pro.
It’s been just over two months since I originally published Keep Calm on Google Play and the time has come to upgrade it to introduce new exciting features. Keep Calm Pro is now officially available and introduces the following new exclusive features:
- Updated rendering engine so that text always appears on the poster and so that it appears at the maximum size possible
- New menu that makes the app easier to use and reduces time between loading the app and saving/sharing the finished poster
- The option to use the standard sans-serif font or Open Sans Light
- Change the text color
- Change the icon to one of 50 included icons or any image from the your Gallery which is automatically resized, cropped and recolored so that it looks great at the top of the poster
- Change the background color and choose whether it is a solid color, linear gradient or radial gradient
- Change the background to an image of your choice from your Gallery
- Improved wallpaper rendering for higher quality
Unfortunately camera integration didn’t work too well initially so in version 1.0 you will need to select the ‘Gallery’ option before pressing ‘Menu’ which then gives you the option to take a new photo. Please note the image of the teacup used in the screenshots is licensed under Creative Commons license from Wikimedia Commons. All other images used by the app are in the public domain.
Keep Calm Pro is by far the best Keep Calm and Carry On app available for Android at just 50p/99c.
I first released Keep Calm for Android over a month ago and it remains the best Keep Calm and Carry On app available on Google Play with over 30,000 downloads and over 200 ratings. Recently I’ve had a number of comments suggesting that the ‘app freezes on the loading screen’ and other basic problems so I thought that I would write up a quick guide for basic usage. Please note that I am launching an awesome update to the app within the next week which gives it a completely new UI with loads of new options.
1) The home screen
This home screen (its not a loading screen!) is pretty simple and you can just press ‘Design’ to get going. There isn’t much interesting stuff on the ‘About’ screen.
2) The design screen
This screen is also pretty easy to use. When typing the text you do not have to have it on separate lines and if you do have it all on one line it gets split by word. Capitalization isn’t important because this happens automatically, staying true with the original poster. If you don’t type in anything the default text of ‘KEEP CALM AND CARRY ON’ is used. The icon button probably doesn’t need any explaining – just tap it to be presented with a choice of 50 icons and then tap the one that you want to use. Tap the color button to pick a new color.
The color system used by version 1.x isn’t great, sadly (although it uses a color wheel in version 2). The sliders use the RGB color system where each color is represented by its red content from 0 to 255, green content from 0 to 255 and blue content from 0 to 255. To put it in perspective the color black is R0, G0 and B0 (because it doesn’t have any red, green or blue) and white is 255, 255, 255. The sliders therefore give you a choice of 16.7 million colors. You can the tap ‘Use Color’ once you are happy. Unfortunately version 1.x doesn’t allow you to change the text color so I have to recommend that you use darker colors.
3) The final poster
Once you’ve tapped ‘Design’ you’ll be able to see a preview of your final poster. The poster is rendered at 600 pixels wide by 900 pixels high. You can either tap the poster itself or press the Menu button on your phone to display the menu. As of version 1.2.2 tapping Save will save the image to the SD card and then display it in the Gallery app. In earlier versions it seemed that a user had to reboot their phone or wait a significant amount of time for the image to appear in the Gallery however a bug with Android stops the Gallery app refreshing by itself so I added one line of code to force it to refresh. Sharing will display a menu of different options for saving, dependent on which social networks’ apps you already have installed (so you’ll need the Twitter app to share on Twitter, the Facebook app to post on Facebook, etc).
Setting as wallpaper works exactly like saving except that a new image has to be generated because Android handles wallpapers in peculiar ways and requires a landscape image so it occasionally takes a while to set the wallpaper on older devices, but on new devices it is pretty much instant.
Hopefully this guide will have helped some of the users that are having issues with version 1.x. If you have an older version than the most recent 1.2.2 update I highly recommend that you update although in a week there will be an awesome new update that will give loads of new features, such watch this space!