Images, app size and the Splash Screen

by DeanLogic

A little while ago, Crackberry.com did a review for the Meetup for BlackBerry 10 app.  No, not my Meetup for BlackBerry 10 app, but an app by someone else.  I know I haven’t worked a lot on my app, but it was a bit annoying to see a review for the app and have the reviewer claim that an app for Meetup was finally in BlackBerry App World, when I release my app almost an entire year earlier. I informed the app developer that I already had the app name and he changed his name.  However, a couple of things happened during this duplicate app review.  The first being that someone gave my app a bad review due to the file size.  The other thing that happened is that apparently Meetup finally noticed my app and made me change my logo.  Fortunately, I guess, changing my logo for Meetup has actually solved the issue of the file size of my app.

Old Meetup Splash ScreenFor each type of device, BlackBerry has a different Splash Screen.  The Splash Screen is the image that a user sees as the app is first opened on the device.  The Splash Screen images are stored as assets in the application. Possibly, a developer could create a new build for each device and only store the appropriate logo and Splash Screen for that particular device bar file.  That would probably get a little tedious and is prone to mistakes.  Another option is to create just a minimum number of Splash Screens and let the device resize the image.  This option might not be the best idea, because if you don’t have an image that the device recognizes, then you won’t have a Splash Screen at all.  I personally figured it was best to create a screen for each device (landscape and portrait views), because there might be slight modifications to the different images and I want to make my app feel like it was made for each device, not just crammed into the appropriate size.

I had initially tried to be fancy and found a great image of black leather to use as my background for the Splash Screen. Then I added the Meetup logo, the BlackBerry logo and my DeanLogic logo.  Each of the first two logos weren’t very fancy, but my DeanLogic logo had a bit of detail.  Then I added some text and other items to complete the Splash Screen.  When I finished making the all the images and compiled my app, I ended up with a 24 MB(23,446KB) app.  I had left the app that size for few months, until that bad review.  Oops!  PNG save types

As I tried to fix this issue, I was driving myself crazy trying to figure out why it was so large, since I felt there wasn’t a lot to the app.  The images didn’t seem to be very big and I figured that when everything was zipped up into a bar file, it would reduce the overall size, but it seemed to double the size of the app. I started messing around with the image and found that I was saving the export files in PNG 32.  Well, that made the image file much larger than my final choice of PNG 8. There wasn’t anything noticeable in the image quality.   My app size was cut down to 9 MB(8,977 KB).  Yeah…. well, it was still a bit large.

Then Meetup came along with their request to change the logo.

We also want to confirm that you will not use our trademark ‘Meetup’ to refer to your app, but instead be using the full name ‘Meetup by Dean Logic’ in all of the places where you refer to your app, in both logo and text. This includes the copy in the BlackBerry World store and any other places where the app is promoted. To clarify, the ‘Meetup’ trademark can be used when referring to our platform or our API, but the use of our trademark is not permitted when our API is not being used and ‘Meetup’ can generally not be used in the name of an outside developer’s app.

Uh…okay.

I also had to change my app description to reflect that it wasn’t an official Meetup app.

Meetup Inc. does not endorse or sponsor Meetup for BlackBerry 10 by DeanLogic, and we are not affiliated with Meetup Inc. If you have any questions or issues about the app, there is a “Feedback/Support” form in the app settings menu for contacting DeanLogic support. If you have any questions or issues about Meetup site, got to Meetup.com.

Meetup helps groups of people with shared interests plan events and facilitates off line group meetings in various localities around the world. More than 9,000 groups get together in local communities each day.

The app description change was easier than the logo change and has already been implemented in BlackBerry App World.  I couldn’t make the new logo look too much like a name tag, which is what the Meetup logo is based off of.  I couldn’t make the font in the logo look like any type of magic marker, like someone wrote a name on the name tag, another Meetup touch.  And finally, I couldn’t use the Meetup red or anything that looked too similar to the red in the logo.  The orange on my DeanLogic site was apparently too close to the red, so I had to change the orange to more of a brown.  There was a bit of an email chain trying to get the logo correct for Meetup standards, which had me discussing the issue with two different Meetup contacts over a few days.  During this exchange, I also hinted that they should go after the other guy’s app as well, since he didn’t even alter the Meetup logo for his app.  At least mine had my DeanLogic logo included to show that it wasn’t an official Meetup app.

The ending result, since I didn’t use an image as a background, but simply a colored path did make the app much smaller.  While it isn’t what I wanted as a Splash Screen and logo, I now have an app size reduced down to 1 MB (1,157KB), a significant improvement from 24MB.  And the app icon logo is probably a little better than my old app icon, just not the obvious Meetup logo.  I guess that after the user downloads my app, the icon will become common place for them to click as the Meetup logo.  I am leaving the inside of the app Meetup red, just to give the feel that the user is back on the Meetup site.

Meetup for BlackBerry 10 icon New Meetup Splash Screen

Now, I just need to finish adding the Group search and join feature so I can release the new app with the new images.

The DeanLogic Smart Watch

by DeanLogic Passport

Lately there has been an uptick in wearable devices. Most likely due to the introduction of the Pebble and the latest rumors and announcements of smart watches from Samsung, Apple and Google, among the big hitters. With everyone coming out with what they seem to think a smart watch should be, I figured I should share my thoughts, just in case someone decides to build one.

The first thing is to focus in just the watch. Another wearable device that has been popular is the smart band. Nike Fuel Band, Fitbit, Jawbone and others are battling it out in this area. I hope that they continue to do so, regardless of what happens in the watch arena. I think that wearable body measuring devices, whether it be a tag or a clothes, has its own place. Even if some do provide feedback to the user and crossover into the smart watch segment, there is enough differentiation to keep competition strong in each segment. I believe this so much, that I have been trying to get my hands on a developer Razer Nabu in order to make an app for BlackBerry 10, yet I still want the perfect smart watch beyond the biometric devices.

casio calculator watchSo, back to the watch. Since I was a kid, companies like Casio have attempted to make the watch smarter. While it was cool in the 1980’s to have a calculator or a game on your watch, you wouldn’t be taken seriously, unless you were a rocket scientist or something similar. The watches always looked silly. A trend in the past decade has been to make watches tell time in binary or some other fancy method that only the user could hope to understand. The commonality here is, let the watch be a watch first. Something as simple as an analog watch face has worked for over a century, because it is simple and it works. When smart watch companies forget this basic premise, then it becomes a novelty and not a trend.  Of course, part of the problem with most smart watch companies is that they are not watch companies.

The other path taken with watches was to keep the analog functionality and add to it with all sorts of sports tracking features. For me, this is the correct direction for a smart watch. It is a watch first, makes no bones about being a watch, but also proclaims that it is more than just a watch. Again, Casio put their best effort into the ring, but I always thought Timex did a better job with their IronMan watches. But neither company really provided a watch that could be multifunction and be taken to a “function”. You would wear your smart sports watch to the trail or to the game, but wear a much nicer watch for the a night out.  Not only were the watch faces crowded, but the plastic and rubber bands made it obvious what the true purpose of the watch. Again, simpler has a way of impressing more than complicated and nobody is going to think your sports watch is stylish.  This was the case until Citizen, TAG Heuer and Tissot started changing things.
Citizen Proximity Even though medium to high luxury watches have been around for a long time, it wasn’t until the 90’s that medium to high luxury sport watches started making inroads due to the popularity of some sport stars.  I probably don’t even have to name a particular sports star’s name, because you probably already associate TAG Heuer with him, which (until really bad press happens) is probably the best way to get something trending in the hands of others. Citizen was early in pioneering smart watches by making ordinary watches use kinetic energy and solar power to keep their watches ticking. The kinetic energy watch seemed a bit annoying and that’s from being worn by a friend of mine and not me. However, Citizen kept trying and even came out with a watch called the Proximity, which had Bluetooth connection to a smart phone in order to share notifications. Unfortunately, the Proximity suffered from connection issues and pretty much market obscurity. It was a good attempt, a better attempt than most of the current efforts. I hope that Citizen keeps innovating and tries to enter the smart watch segment again.

moto 360The only upcoming smart watch that I feel comes close to a half decent effort, while still being a screen watch, is the Moto 360. And the main reason that I like it above all the 90 degree angled offerings is that it is trying t0 be a watch first. A huge thick watch, but a watch. Even with it running Android Wear, it is a very tempting watch due to its round shape and their efforts to advertise it as a watch first, even though it is a screen. I just hope it doesn’t feed ad tracking relative information about me as I move around. But, that is not where I would start for a smart watch.

Martian Watches is a close second as a starting point, as they try to provide stylish watches and the connection to the phone. But, Martian has a way to go to catch up with Tissot’s quality and functionality. For one thing, it isn’t water proof and from one review of their watch, it didn’t seem very responsive. As an entry level DeanLogic Smart Watch, the Martian would be great, if they would only open their API. They are doing the main concept that I like, which is to have the phone figure out the app logic and just send the basic commands to the watch.  And even though some of their watches are rectangular, they are watches first and then smart watches. Martian has also hit a good note trying to create watches that are aimed towards women as well, which seems to be something missing from the screen watches.Martian Notifier

The DeanLogic Smart Watch still needs to be classy when worn. So, no plastic band and video screen will do. I applaud Pebble for coming out with metal version of their watch, it is an improvement. However, money not being an object, the Tissot Touch is where I would start with a smart watch. First, it is already a smart watch with a barometer, altimeter and a face that is touch sensitive  (hence the name) among some of the features offered. Tissot has even taken a page from Citizen’s book and made it solar chargeable. The watch already comes in a metal wrapping, built for activity (sailing and racing have their own versions) and the battery lasts for months, not hours. Tissot Touch Expert Also, it looks good enough to wear all day at any event and then change into a suit or tux and not have to worry about pulling out another watch.  Sometimes you have to pack a little lighter.

From there, it needs low power connection to a smart phone that controls all the functions.  Bluetooth has improved its low power connections and their are other options.  What the watch doesn’t need is a connection to the Internet, let your phone do that. Tissot’s hands move with each function, so if your smart phone detects a timezone change, it could change the time on the watch. While it doesn’t sound important, being able to move any of the mechanical feature of the watch from the app is important. Other needed features would be light and vibration notification, which could use the Touch’s already built-in features. A few LED rings around the face to change the color based on the notification level and a half arch for the LCD screen for text notifications and a separate screen for default and developer made icons, are the only obvious changes.

DeanLogic Smart WatchNo need to build an app to live on the watch. BlackBerry 10 has Cards for interaction from one app to another. The DeanLogic Smart Watch app would only be a headless app with a Card that can be accessed by any app that a developer wants to make connect to the watch. No need to download a SDK to get your app connected.  The watch should have NFC tag on the back for synching to the phone and the headless app. This would help with making a quick and secure connection between the phone and the watch.  Any apps loaded on the phone that use the watch Card would trigger a notification the first time it invoked the Card.  At that point, the user could see what features the app would access and decide to allow or not allow.  If your smart phone doesn’t have NFC, well, you might be wonder about how smart your phone really is.   The Card would have basic features of text, LED, vibrate and the advanced features like being able to set the face hands. The watch would send back information when requested as well, including screen touch to acknowledge notifications. Since the phone app does all the thinking, developers could have an app that tracks body monitors while you do repetitions and then send the count to the watch as a counter using the face hands.

The most important part of the control of the watch, it should be “open”.  When I read that Android Gear won’t be compatible with iPhone, Windows or BlackBerry, that just angers me.  There is no reason to limit an accessory to one phone OS.  If you make the watch well enough, you might have imitators, but you will always win over those who don’t want cheap knock-offs.  And if you open it up to any phone (or, what I would call the master controller) connection, then you don’t have to worry about one phone falling out of favor and then losing all of your possible customers.  If the connection from the phone to the watch is secure and simple, then the commands should be readily accessible without the need for SDKs.

It probably would have been better for one of the phone companies to purchase one of the watch companies.  This would have helped keep things in perspective.  For now it is up to the body sensor people to keep pushing out their gadgets so that people don’t feel that the smart watches are the be all in wearable smart devices.

Full disclosure: I typed up to 1000 words of this article on my Z30 before opening it up on my PC. I added the majority of links and photos but, at that point, I couldn’t resize the inserted photos properly and I needed a bigger screen to see the entire story. I did created the final image on my PC as there isn’t an app to do it on my Z30 and I doubt it would have been much fun trying.  I love my Z30, but sometimes you need a PC.

Painter – My First App

by JoeQXS

BlackBerry World App - Painter

BlackBerry World App – Painter

Painter was my first project that got me into application development and is currently available in Blackberry World for all BB10 devices (as of the latest release). The application lets users load a picture onto a canvas and then draw on it with any color they wish (basically it’s like MSPaint). Conceptually, Painter is very simple – You load a picture and layered on top of that picture is a webpage with a transparent background. However, I did face several challenges and I wouldn’t have even released the application if it wasn’t for the support I received from another developer.
Prior to playing with mobile application development, I had worked with webpages for many years – they were essentially my introduction to programming (if you want to call it that). In 2010, HTML5 went mainstream and I was amazed at the new concepts it introduced and their potential. . One thing in particular stood out: the canvas element which allows you to create images in your browser. It reminded me of an Intro to Programming course I took in high school where we learned how to make UI elements in Java. I thought it was very boring at the time, but now that I look back, I wish I had paid more attention.

Basically you draw shapes (polygons, circles, lines, whatever) based on a coordinate system. So in a canvas you can draw lines that follow your mouse’s movements. Something like: grab the coordinates of the mouse then draw lines between the coordinates. Depending on how fast this is processed, you can get some very smooth lines.
Now this HTML5 stuff was cool when it was introduced, but for a long time, it wasn’t supported. Fast forward a couple years, to 2013 and BlackBerry finally released their BB10 series. I preordered my Z10 so I would get the device as soon as it was avaliable in the US. These devices boasted superior web browsing capabilities, and I could hardly believe the things that it could do. The devices ran a webkit browser, the same engine under the hood of Google Chrome, Chromium, and Safari. Not only that, BlackBerry had signed a deal with Adobe to include Flash baked into the browser. This sucker was FAST and its specifications blew away modern desktop browsers! And it’s only gets better.

This amazing web support wasn’t just limited to web browsing, it also allowed developers to use HTML5 as a platform for coding – BlackBerry had also tied it into their QT platform, Cascades. Cascades uses a fusion of C++ and Javascript, and contains a handy little thing called a webview which acts like an iframe. So what this boils down to is an amazingly versatile platform that lets you do just about anything you can imagine while making it easy to get things looking good.

This information was the only developing knowledge I had when I started working on Painter. Painter started as an example I made for a developer on Crackberry, Nemory. He was diligently working on setting up a native Snap2Chat app for BlackBerry users. I’ve seen a couple friends using the app on their non-BlackBerry phones and thought that it had some pretty cool features, one of which was the ability to draw on the images they took prior to sending them.

Nemory had posted his packaged app for people to test and provide feedback. I got hold of a copy and was curious how it worked. I opened it up and saw that he had a pretty basic HTML file tucked away in it that would let you draw on a canvas. I assumed he started on a different approach in implementing the drawing feature as he had some weird thing that would draw squares in a line that followed your finger (imagine lining up a deck of cards in a diagonally). I thought that an alternative method using a canvas to draw on top of a picture would be smoother. Follow that by taking a screen shot and saving it and the idea should work fine. Turns out I was right.

I started building an example to send to Nemory. What I ended up with was a picture with a canvas on top of it, the program had a basic color-picker and would let you save the drawing. Excitedly, I sent Nemory an email of my discovery. He responded quickly with gratitude and encouraged me to start making apps.

I thought to myself that it would be cool to have something like the Snap2Chat coloring thing for editing pictures. I added a file picker and spruced things up a bit, tossed in some optimized code Nemory helped me write and submitted it to BlackBerry World. One of the more complicated things I included was some C++ code I found in the examples BlackBerry provides to its developers and another chunk of C++ Nemory sent me to help with rotated images.

The complicated C++ code I included allowed Painter be invoked contextually by images and to rotate images when they were loaded. This introduction to C++ was very difficult for me. Don’t get me wrong, I’ve played with C++ before, but nothing on this level. My only experience with C++ was some basic math and printing strings. Applying C++ to something functional is completely different. I was so confused at the errors I kept getting, but I finally discovered the issue. I needed to tell the program beforehand what I was going to be doing in something called a ‘header’. I know what you’re thinking, computers aren’t supposed to question programs, right? Wrong! If I didn’t tell the compiler what I was going to do it would complain and spit an error in my face, C++ is bratty that way. Eventually I got it pinned down after hours of researching Google on how I can get C++ to obey me in Cascades.

Working with C++ code was the most challenging part for me in developing Painter. Luckily, BlackBerry has great reference materials and a great community full of supportive developers to help out the new guys (and girls).

BlackBerry shifts towards Android

by DeanLogic

The day before the quarterly financial results were announced, BlackBerry announced that they would be pre-loading Amazon Store on their BlackBerry 10 devices when the OS version 10.3 is released in the fall.  Amazon Store is a branch of Android apps and by providing the store automatically, BlackBerry has made available a large amount (200,000+) of apps for their customers. While this is not the same as having Google Play loaded on the phones, it is probably as close as BlackBerry wants to be to offering an Android phone that is not an Android phone. For Native developers of BlackBerry 10, it is probably too comfy of a deal.

Currently, if an Android developer wished to have their app in BlackBerry World, they would port their app using a tool provided by BlackBerry to create a bar file, which could be uploaded to BlackBerry World.  For the most part, porting an app would work without any issues.  However, there are many apps that don’t work completely and others that work, but don’t utilize the BlackBerry 10 UI very well.  This short coming of ported app left an opening for the developer or another developer to create the app using the BlackBerry 10 Native development tools.  BlackBerry would also help the Native apps stand out by offering a Built for BlackBerry sticker for those apps that met the criteria.  Getting the Built for BlackBerry certification has been a bit daunting for some developers.  But, having the sticker does give the app a benefit when listed in BlackBerry World, for the most part.  Even with a small, compared to Apple and Android, app store, apps can still be hidden by the many duplicate apps.  Even just having too many apps on a store can cause problems, as the majority of apps are never downloaded.  Needless to say, getting your app seen and downloaded is a tough road for developers and BlackBerry’s deal with Amazon, might not be as helpful as they think.

The first issue is; where does the customer go now that there are two stores on their device. According to BlackBerry, the apps on BlackBerry World that are not games or fun or not helpful in productivity, will not be promoted.  This is part of BlackBerry’s strategy to win back the enterprise user.  My guess is, by making BlackBerry World look as if it only has productivity apps and not a bunch of fart apps, it will give it more of a professional appearance. Which means, if you want games, go to the Amazon Store.

While this is helpful for the Android developer, the Native game developer now has to make sure their game can be ported to Android, less it never get any sort of promotion in BlackBerry World.

The second issue is; what is done with all the Android apps left on BlackBerry World.  I sent a tweet to BlackBerry Development asking if they were going to remove the Android apps from BlackBerry World.  The reason behind this is simple, the developer no longer has to take the extra step to publish their app for BlackBerry and once the developer does move their app to the Amazon Store, they have no reason to keep up the app on BlackBerry World.

It is unknown how this addition will affect Native apps. But, if BlackBerry wants to encourage developers to continue using their Native tools, it would be helpful if they showed some sort of support by making BlackBerry World for Native apps exclusively. BlackBerry just recently announced to the developers that they were ending support for AIR based apps and that when 10.3 is launched, the apps would simply disappear from user’s devices.  If BlackBerry can eliminated one of their first development tools for BlackBerry 10, then doing a complete split between Native and Android shouldn’t be an issue. While some might claim it would alienate Android developers, I contend that they have already alienated those developers who took the time to learn the Native tools.  And they have also given the Android developers a step up by basically stating that it is more important to have access to the Android apps than to spend time and money getting them made as Native apps.

I don’t have to spend money on the consumer side. Chen

I believe that Chen should figure out what he can do to make Native developers happy in the next few months.  He can start with a clarification of what is an enterprise app and what the future of BlackBerry World will look like.  He might also consider that if BlackBerry just became another Android phone company, that they would lose the loyal customers that have stuck with them through this transition and also lose those who switch due to taking a chance on a BlackBerry 10 phone and loving it.

Meetup for BlackBerry 10 release 1.2.0

by DeanLogic

I have done a minor/mid release (1.2.0 / 4.2.0) for the Meetup app. I updated the build OS to 10.2. I figured at this point, everyone should have updated their device to 10.2.1. Another push for updating to 10.2, is that BlackBerry has already announced 10.3 and provided beta simulators, so that developers could get started updating their apps or building new apps with the new features. I don’t plan on pushing out a 10.3 version until I feel that the majority of my users have upgrade.

One of the reasons I wanted to go to 10.2 is the addition of minimum and maximum fonts. I’m not one to modify my font sizes, but I know there are plenty of people who do. The problem with modifying the font size is that text areas that were created to work with a certain sized font, get really messed up when someone has their default font set to 20 or something. Having the minimum and maximum allows for some control of the look, while giving some flexibility to users who need to adjust their font size.

While chatting with another developer on the BBM Group Baby Steps:BB Dev about keeping the category headers in view while scrolling up the list. Something that was obviously working in the Hub, but not on our listviews. After a little bit of searching, the developer found a way to make them “sticky”.

ListView {
	id: myListView
	objectName: "myListView"
	topPadding: -6
	layout: StackListLayout {
		headerMode: ListHeaderMode.Sticky
	}
}

Simply adding a headerMode to the layout with they type of Sticky is all that’s needed. But, since I had no reason to add layout information to the ListView, I never noticed this option. Just another one of those things you stumble upon when trying to code and application.

Hopefully I will have the time to make some more needed changes to the base application. I know there are people wanting more edit features with the Meetup application and I plan to provide them.