I’m working on an app that lets users select a bunch of photos, upload and share them with other users. Sounds simple enough: user selects photos, app uploads photos, user shares the album. More realistically though: user selects photos, app starts to upload photos, user figures out this might take some time, user leaves the app to do something else, iOS suspends the app (or even worse terminates it), user comes back to find out the job is not done :( We don’t want that, do we?

Some months back I implemented this feature in the android version of the…


Checkout the code at the github repo.

Big shout-out to the guys creating libs for all the stuff Google promotes but doesn’t give us code for just yet, but the fact of the matter is I prefer not to use those libs unless I absolutely have to. The lib you include in your project might be doing a lot more than you need it for and with that comes a burden on your precious method limit count, possibly longer builds, another lib you and your coworkers need to keep in your heads…

The other day I had to implement “swipe…


All my android developing life I’ve used java serialization as a data transfer mechanism between activities. I was vaguely aware of Parcelable and it proclaimed benefits but never really saw any performance issues related to this and thus never had a need to start writing all the parcelable boilerplate in my classes instead of just marking them as Serializable. …


I’m trying to optimize and lower memory footprint of an android app, and increase performance by doing that. If you want to see what’s been using up your memory you can use Eclipse MAT — Memory Analyzer Tool. You can plug it in to your Eclipse or use it as a standalone app, it’s easy to use but also have a lot of advanced options. I’ll talk about the tool itself some other time, today I’ll present a case study in which I’ve used it.

Analyzing memory consumption I saw that ImageDownloader, from internal mini framework, holds up a reference…


More often than not, designer I’m working on an any given project had no previous experience with android. That is way I want to write a series of articles as a beginners guide for designers entering the android realm for the first time.

…, a disclaimer. I’m not a designer, I don’t even have Photoshop installed. If you think I’m wrong about something that’s probably because I am so don’t hesitate to comment on that.

Simple question without a simple answer for android. It’s much easier on iOS: 3 resolutions for phones (and iPod touchs, don’t forget about those), 2…


Are you trying to convert your android app to library? It’s very simple, just go, Properties->Android, thick Is Library and that’s it. At least in theory, but here are couple of advices to make it work in real life as well…

  • Replace all switch blocks with if-else blocks. Switch can not be used in an android library with values like R.id.xxx These ints are final in an android app project but they can not be in a library I guess since app can override them.
  • If you are rolling your own custom views with custom xml attributes you’ll get a…

One of the reasons I’ve started writing this blog is that I was tired googling solutions for same issue every couple of months. The most annoying thing is when you have to make a disproportional effort to do something that should’ve been easy. There are couple of solutions online for this simple task but not all are working for me. However this one is:

The end :)


Here is a very good example why are android devs pissed off most of the time (you can find another in this post). Lets find an answer to this simple question: “What version of android should you build your project against?” I claim this should be set to maximum version your app is supporting (the latest existing one obviously) and a colleague of mine, a respectable senior developer, claims it should be a minimum version your app is supporting. And we are both right because android resources say one thing here and another there.

Why do I need newer API…


As far as I’m concerned SVN is a thing of the past. In todays market of SCMs my weapon of choice is git and I’m very satisfied ever since I made that transition. That was easy enough for me, a freelance developer, but may not be so easy for a company for reasons both real and imaginary. That’s why I still have to use SVN for time to time whenever I’m consulting for a company with SVN repositories.

Installing SVN on Mac is as easy as it should be but not so straightforward. The first way you’ll run in doing…


Couple of days ago I was in for a nasty surprise. Providing android training in a company here in Belgrade I wanted to present a demo app of location sensors and Google Maps API but when I sat to prepare it I realized that only yesterday new Google Maps API v2 for android has arrived :) Not a problem really since I love learning and keeping up to date with changes but not beeing able to run maps powerd app in an emulator was a really unpleasent surprise. Read on to see how you can make this happen.

When you…

Nemanja Kovacevic

Software engineer specialized in creating native android and iOS apps

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store