Jack Wallen puts an Android developer on the hot seat and receives some very enlightening responses. If you've ever considered developing for Android, this is a must-read.
I recently connected with Catalina Group Ltd, the developers responsible for the B1 Free Archiver for Android, to grill them about developing for Android and their take on what's in store for the future of the most widespread platform on the planet.
B1 Free Archiver is a free file archiver and file manager for Android. It also works on Windows, Linux, Mac, and as a web application. B1 Free Archiver handles over 40 archive formats, including zip, rar, 7z, tar, iso, etc, plus it has its own open-source file format called b1. B1 Free Archiver opens and creates password-protected archives, split archives, and works perfectly as a file manager. The app is translated into most popular languages.
I asked B1 Free Archiver project manager Adam Buyer 10 questions, and his answers were enlightening on a number of levels.
1. Did you see a need in the Android Play Store for an archival app? Or was there another reason you choose to develop B1?
"The development of B1 Free Archiver didn't start from the idea of an archival app. The initial idea was to create a new archive format with an optimized compression algorithm. We did create such a format -- it is an open-source format called b1. Our algorithm allows to select archiving parameters depending on the type of content. It helps to reduce compression time and improve the overall quality of compression.
"As we developed the archive format, we noticed a big number of drawbacks and problems in existing packing tools, starting from encoding issues, problems with split, password-protected files, partial extraction issues, and so on. Zip files turned out to be particularly problematic because of zip format being rather old and thus containing a lot of encoding issues. So, we thought why not create an archiver that would solve all the issues that we've discovered and thus make a good deal of users happier. That's how an archival app - B1 Free Archiver - was born."
2. What are the biggest hurdles to overcome when developing for Android?
"Developing for Android is actually a challenging task. First, it's obvious the Android ecosystem is heavily fragmented. There are tons of devices with different screen sizes, Android versions, and specifications. Moreover, each manufacturer includes his own tweaks, which change the way Android interacts with a device. You have to consider and keep in mind all these things while developing. Such a diversity requires a lot of testing. We have a big collection of Android devices and thoroughly check our app on all of them to ensure that no matter what device you use, the app will function properly.
"Second, to cover all the cases, we had to develop an effective system of analytics and feedback. Building such a system wasn't easy, but thanks to it, we receive plenty of valuable feedback from our users in the form of Google Play comments, bug reports, messages on our support box, reviews, etc. This information allows us to shape our own understanding of what to fix, what to change, and what to leave as-is. We can see what really matters to our users and in which direction we should move next.
"Unfortunately, due to the recent changes with apps assessment, Google Play rating process has become not as helpful as it used to be before. Actually, the flawless system that we have worked out for the last 2 years has been broken. Before the change, the rating system was so sensitive that the points we got from the users clearly indicated whether the direction in which we are moving is right or not. Now, when the rating points are more randomly given, it has become almost impossible to say whether we've done right or wrong by the reaction of our users.
"The most recent trap from Android is the v4.4 with restriction for third-party apps to write on external SD cards. Such a change may mean nothing for simple apps, but system utilities like an archiver or file manager suffer a lot from such a restriction. If earlier users could unpack an archive they had on their external SD, now they get confused every time they can't do a thing that has always worked. We are still looking for ways to improve the situation."
3. Do you think the Google Play Store vetting process is good enough, or does it need more to prevent malware from getting to the devices of consumers?
"Google Play vetting process itself is not as strict as, for example, the one in the Apple App Store. On one hand, it seems to compromise the average quality level of the apps presented on Google Play. Actually, most Android apps have an opportunity to shine on the market. But whether people will download it or not still depends on the quality of the app. On Google Play, the users are the ones who decide whether an app is nice or not: they make ratings, downloads, and general popularity. If a certain app contains malware and viruses, it will never get to the top, users will give it bad ratings, and no one will download it. This way, Google Play is much more open for new apps than the App Store. While Apple relies on pre-moderation, the principle of Google Play is post-moderation.
"At the same time, developers still have to comply with Google Play requirements to pass the reviewing process, so generally, its policy doesn't lie with all-permissiveness. All the requirements are on open access, so every developer should check their app for compliance with the rules.
"Of course, the relative openness of the Google Play Store has its drawbacks. For example, the abundance of clone apps. You can observe it pretty often: when a certain app gets on top of the charts, be sure that in just a few days, you'll get a number of copycat apps with a slightly changed interface but, probably, aren't as safe as the original app. This could hardly happen in the above-mentioned App Store. It not only poses danger to users who install these apps by mistake or because of curiosity, but it also damages the reputation of the original app."
4. Is it a challenge to develop for a platform with so many different devices?
"Well, it is. Such a diversity leads to a great number of specific cases, which requires a good deal of testing. In many cases, testing is even more difficult than developing. However, the overall situation has improved lately, especially starting from 4.2 - 4.3 versions of Android. Now, Android looks and works more or less the same on most devices, be they produced by well-known brands or no-name low-cost manufacturers."
5. You also develop your product for Windows, Mac, and Linux, but not iOS. What was the driving force behind that decision?
"Actually, there was no decision not to develop B1 Free Archiver for iOS, we just haven't got there yet. We started with Android, because it's easier to develop an archive manager tool for this platform than for iOS. We also had Android developers in staff, so we could launch the development at once.
"As for the iOS platform, we already can see where we might encounter certain difficulties. For example, iOS restricts access to the file system, so we understand that the principles by which B1 operates on Android won't serve on iOS. We already have some ideas regarding the iOS version of our app, but they'll have to wait. Currently, our priority is Android and desktops."
6. If you were going to give an upstart Android developer one piece of advice, what would it be?
"Find a good designer. One should never underestimate the importance of visuals in his applications. There are tons of great apps on Google Play, but what they lack is a simple and intuitive interface. It isn't only about the looks, but the workflow itself. It should be seamless, swift, and understandable from the first sight.
"It's also impossible not to advise to build a closed loop system of feedback. Such a system is essential if you want to make a high quality application. To make a feedback system effective, you should track the points in which a user may encounter a problem (for example an error message) and to build a communication channel in that point (for example, a "report to developers" button). Such a communication outlet will help you gather all the information about bugs and troubles that users face and effectively solve these problems."
7. If a small company wanted an Android app for their business (and didn't have the staff in-house), where would be the best place to start?
"It depends on why the company wants an app. If it's to try out an idea and to see how it will be received, you can find freelancers. But you certainly have to assess risks and costs. Freelance is cheaper, but you don't always get what you expect. The supervision over the project is problematic too. It all depends on the freelancer you hire and conditions of work you establish.
"If a company has strategic plans regarding the application, an outsource company would be the best solution. In that case, you'll get a team of specialists ready to go through all the stages of development, support, and update.
"But if the application is to be an important and integral part of company's work, I'd still advise to establish an in-office developer team. This way, you'll be able to better control the process on a real-time basis. It's always an advantage if you can reach the staff at once and communicate with them personally."
8. If you could predict one thing that will happen with Android in the future, what would it be?
"We're not sure that Android is up to some drastic changes in the nearest future. At least nothing absolutely revolutionary. Android is, first of all, an operating system that facilitates the interaction between a user and a device. So, all the changes that occur in Android follow the changes that happen with devices. As for them, we think the next changes will be voice control and further development and popularization of wearables. The technology is rather raw, but if (or when) it is brought up to the next level, Android will also have to adjust to new technology. You can see it even now, after Google has issued the SDK for wearables. Probably, we should expect something from there."
9. Do you have any new Android apps or tools you'll be developing in the future?
"Actually, we've recently launched a new product that has become a continuation of B1 Archiver. It is B1 File Manager. A lot of B1 Archiver users implied that they use our app as a file manager. We didn't want to clutter B1 Archiver with additional file management features, because sometimes people want a pure archiver without extra menus and options. So, we'll be improving and polishing B1 Free Archiver, while adding new features to B1 File Manager, including some purely file management features like network features, cloud storage integration, and others."
10. Did you have to learn a new coding skill to work with Android, or are you using skills you already had?
"You can't start developing for Android without at least some basic knowledge. If you previously were developing for PC, you certainly have to learn some new tricks. One should definitely have some general knowledge of the architecture and logic. Nevertheless, the barrier to entry to become an Android developer is not very high. If you already know Java -- it's halfway through. That's actually in the interests of Google too, because why would they make the application development process difficult? The easier it is, the more apps there'll be on the market. This will only contribute to making an Android device more desirable for the people who consider purchasing a tablet or a smartphone. Anyway, you have to keep learning and updating your skills non-stop, because technology doesn't stand still, and you have to keep pace with it."
Have you thought about bringing an Android app to fruition for your company? What do you think of Adam's take on developing for Android? Share your thoughts in the discussion thread below.