Android file upload doesn’t have to be hard

If you’re new to app development in Android, file upload might appear like an uphill task. But in reality it’s just two things — requesting permission to access the sdcard/camera, and then making API to upload the files. Unless your requirements explicitly ask you to manipulate the files or optimize them in some way, things are fairly straight forward. In this post, we’ll talk about some of the common challenges and some of the best practices to rectify those challenges while creating a file uploader in Android.

Read more

Is Bugsee Any Good?

You probably wonder whether you need Bugsee and is it any good? Well, let me try to address these here.


Have you ever wondered how your users get to a certain state in your app? Have you ever tried to recreate an intermittent bug? As developers, we deal with these types of issues on a regular basis. That’s where Bugsee can help.

Read more

Can Bugsee do this? Really?

Holiday season is upon us and I wanted to wish that your mobile app will be super stable and bug free in 2018, which in turn, will result in a healthy user growth!

Recently I took a close look at our support tickets and it became obvious that some of our existing features aren’t easily discoverable. While we’re looking into it, I wanted to highlight a few things of what Bugsee can do (well, on top of video recording of live apps).

Read more

Using Fastlane to create iOS Ad-Hoc distribution on Amazon S3

This tutorial is a revised tutorial we’ve published earlier, called iOS Ad-Hoc distribution using Amazon S3. The original tutorial achieved the desired effect using s3cmd and a bunch of bash scripts. However, since its publication, Fastlane gained a lot of popularity and gathered quite a following around it, including the ecosystem of plugins. If you are not familair with Fastlane, you should definitely spend some time to get familiar with it, and see how it can help you automate your iOS and Android builds. In the following article we will only focus on one specific task – creating an Ad-Hoc distribution on Amazon S3, and will use one Fastlane plugin for that purpose, called aws_s3.

Read more

SSL certificate pinning on iOS using TrustKit

We have already covered why certificate pinning in mobile apps is important and have shown how to implement it both in iOS and Android. For the sake of simplicity, we had to omit a lot of nasty details and corner cases from our example. In the real world, the code might get complex with time very quickly, when you have to support various legacy iOS platforms, various popular networking libraries out there etc. Luckily, nice folks at DataTheorem have created and open-sourced a framework for SSL pinning which eliminates that simplifies most of it.

Read more

SSL certificate pinning in iOS applications

In this day and age more and more user data is stored electronically. Users are expecting end-to-end security from every application they are installing on their devices. Application developers too, are seeking to secure all communications between their apps and backends in order to prevents hackers from reverse engineering their protocols and getting access to their databases.

The most basic form of security when transferring data between the application and the service backend is SSL/TLS encryption, and it is very common for developers today to switch their traffic to https and declare their communications as secure. In fact mobile platforms today make it really hard for developers not to use https. That by itself, however, is not enough. Encryption is useless when communicating parties can not validate the identity of their piers.

Read more

Listening to scroll events on Android views

While the need to listen to scroll events of arbitrary views in Android has always existed, no such mechanisms were provided by Google until Android API level 23. That is when View.OnScrollChangeListener made its appearance. Until then, some views (e.g ListView) had custom mechanisms to listen to scroll events, but there was no common way. We, at Bugsee, have faced this problem while working on automatic concealment of protected web page elements (see Bugsee Privacy). We had to know when elements change their position, and no such mechanism exists for WebView for earlier Android versions.

Read more

The advanced guide for using breakpoints in XCode

Debugging is an important process to understand the unexpected behaviour of your application. For this reason, we must know well how to use the breakpoints to reduce the time needed to fix the bugs. Sometimes, a simple breakpoint is not enough.

In this article, I’ll explain the main advanced options and generic breakpoints available in Xcode—version 8.3.2 at the time of writing.

Read more