Announcing BBSSH- a free SSH client for Blackberry devices.
by Marc on Feb.05, 2010, under Projects
I have long been a fan of Karl von Randow’s midlet SSH client, “MidpSSH“. I’ve been using it for years now on various model Blackberry devices, and overall have been satisfied with it. However, I have always wished it was a bit more tailored to Blackberry’s feature set — I even looked at the only commercial Blackberry SSH client on the market in hopes of finding something a bit more BB-specific. While it had some good ideas, the commercial client did not work very well on my device, making that a dead end.
Separately, I’ve also been toying with entering the under-served BB games market with an idea I’ve been fermenting in the back of my head. In order to pull that off, I needed to have real-world experience with BB platform development. I took a close look at my most-used app (MidpSSH) and saw again that it could become a lot more powerful if it was built in a way that allowed it to take full advantage of the blackberry-specific features.
With a recent update to BB os 4.6, my backspace key stopped working in midpSSH – and that was the proverbial back-breaking straw. I steeled myself and dove in. I decided that I would go “whole hog” — I would make a Blackberry-specific variant of midpssh, eliminating the support for non-BB phones, taking advantage of the features BB has to offer programmers – and adding new features and usability tweaks along the way. I would keep the core functionality of the original (terminal emulation and SSH*/telnet layers) but rewrite the rest using BB APIs. In keeping with the spirit of the original name, this project will be called “BBSSH”.
Because this is a pretty drastic set of changes – practically a rewrite save a subset of core classes - I have forked the original code, which is still available via Karl’s site and Sourceforge. The new code will also be released under GPLv2, and will be published once the first beta OTA download is available. I contacted Karl ahead of time, and he was friendly and supportive of the idea. While he does not have time to maintain MidpSSH any more, he has been (and continues to be) helpful in providing me with information I need to make the project go from my end.
Which brings us to the present. Over the last month or so, I’ve been working on this conversion and learning a lot about the BB platform along the way**. It has been in some ways less difficult than I expected, but in other ways more so. Information about development for the BB is scattered with little central organization. Tidbits here, chunks there. RIM is working hard to resolve this, but I think they still have a ways to go before they’re there. Much of the information I needed is in RIM KB articles – but I wasn’t able to find much in there on my own. (Frankly I think it’s because they’re using livelink – a document management solution which has been pretty horrible for the ten years I’ve been stuck using it..) Instead, I stumbled across or was directed to them from old forum postings in various places, Stackoverflow answers, and helpful replies to my inquiries on the RIM Blackberry dev forums.
Lunch is almost over, so I have to get back to work . I have time for some screenshot uploads which I’ll be posting separately in a moment. Later today, I’ll be adding a features roadmap post.
* I am also looking at the Blackberry crypto layer – it may be possible that I can replace the SSh layer with this for the most part. THat’s still up in the air though – as it may require additional licensing/code-signing fees beyond the basic $30 BB signing fee — which isn’t high on my list of things to do.
**Among other things, I”ll be posting project updates here (tag: bbssh) , but I will also be journaling my experiences as I develop my first “real world” BB application (tag: blackberry-dev). This is information that I’ve been uncovering from a dozen or more different sources, piecemeal. It would have helped me a lot to have one place to find the information, and it will help me in the future when I start my next app — and hopefully by publishing it I can also save someone else the headache I went through.