I’ve decided to move the majority of my content over to my Programming Thomas blog instead of this one because it fits better with my other projects. Please go over there for any updates to my apps and general programming information.
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.
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.