My name is Yatin Taluja and I joined SocialCops as an Android Developer on September 1st, 2014. In October, I was presented with a project that I am proud to be a part of. When the Prime Minister launched Swachh Bharat Abhiyan on Oct 2nd, our awesome team decided to launch an app to make this initiative sustainable. Varun, the co-founder of SocialCops, and I built and launched I Clean India — an Android Application — in just 7 days. This is the story of how we did it.

I clean India Android Application

Prerequisites to building an Android application in 7 days

  • Proficiency in Android application development.
  • Good logic.
  • No girlfriend. Or a very understanding one – good luck with that.
  • Hard work, determination, and patience.
  • The ability to program for long hours continuously.
  • A lot of caffeine. In any form.
  • If two or more people are working, use GitHub or BitBucket to make code synchronizing easier.

Day 1: Brainstorming and flow development

  • It all starts with an idea. Whether that idea is vague or defined, it doesn’t matter, as long it can be achieved using existing technology.
  • Start off by brainstorming with an acquaintance (preferably a smart one) about all the key aspects:
    • Think about the market segment you’re trying to target. You need to know who the users of the app are going to be so that you’re clear on the kind of user experience you want to provide.
    • Make an exhaustive list of all the features you want in your Android application.
    • Categorize the idea of your app. Decide the category that your idea falls into – it could be a game, a productivity app, or even a social app!
    • Simultaneously create another list of features that are the absolute core of your Android application – I mean the features that absolutely define your application.
    • Define a flow of your Android application, with all activities (screens) and elements you want on each screen. Do it whatever way you want. You could use various mockup tools available online, or you could go traditional and use pen and paper.

Create a hard and soft copy of all these points. Now, all the absolute core features of your app (from bullet point 4) define your MVP (Minimum viable product). To concentrate on any features apart from these is so wrong, it’s illegal in some nations. We followed this entire process for I Clean India and, by the end of day 1, we decided what our MVP would look like.

Day 2: Build a base

Once you’re clear about what you want to develop, now you can actually start programming. Always start off keeping in mind all the libraries available out there that will make your life so much easier. I personally recommend:

  1. Butterknife: For xml component integration
  2. Crashlytics: For crash reports
  3. Kinvey: For BAAS (Backend as a Service)

These are just the basic libraries that cater to most projects. You might have your own personal choices, and these might help cater to apps whose requirements are slightly out of the ordinary. Always double check on Google whether or not there is code existing for what you want to do. Remember the hacker policy: Don’t Repeat.

By now, your base project should be ready. Once you’ve defined your home screen, you can start moving according to the flow defined on Day 1.

By the end of Day 2, the base of the Android application was ready, and we were ready to get some serious hacking done. However, you need to remember that even though you’re in a hurry to complete the application as soon as possible, always write code so you can actually scale it without much of a problem.

Days 3–5: Code, code, and code more

We did some coding initially. Then we followed it up with some coding. And we did some coding to finish that off. Three days continuously, code as much as you can. Sleep less, take small power naps – you are now an athlete in your own right.

Never get stuck on one issue while coding. If you realize you’re spending too much time on an issue, mark it as //TODO or something like that, and move on to other things. More than most times, when you come back to the issue, the solution is glaringly obvious.

On Day 5, however, don’t start on any new features until all your //TODOs are over. Before sleeping, complete your application with features added and complete the flow. These were most definitely our most productive days.  We spent 3 days continuously hacking and completed almost all the features for our MVP during this time.

Day 6: Test

We move to the penultimate day – we’re damn excited about the application but we knew that there was still so much more to do before uploading it on to the Google Play Store.

Now is when you actually start testing the app out on your phone. Time to absolutely abuse your app and figure out all the changes you need to make. This is the time to make all those little UI changes while having one eye on the Crashlytics. Get one of your less tech-savvy friends — who’s preferably not the smartest in the group — and ask him to run your app and give feedback. Next, it’s time to make a beta account on the play store and upload your application. Now it’s time to bribe or force the people in your life to download the app and give you feedback.

Whew, just one more day, right!? Not quite. Trust me, more than half your work is still remaining.

Day 7: Random frantic rushing around

This is all it takes. One more day, and by the end of it you should have a great Android application. Crashlytics has never been as close a friend to you as it will be on this day. Real-time reports will help you identify where and on what devices the issues keep coming up on. Fix these issues, and then change your account on the Play Store from a beta! Sounds simple, doesn’t it?

Here are some tips that I’d like to give based on this app-building experience. Might just be helpful to some of you:

  • Remember to hurry while making your application, but optimizing the code wherever you can is of utmost importance.
  • Give all clickable events the same colour and design a kickass logo. Make sure your application looks world class. You don’t want to be spending on all this time for no one to click on it because it isn’t eye candy.

The last day is bound to be very frantic. There are going to be a LOT of crashes, a LOT more suggestions, but you’ll need to be patient throughout this. Always be open to feedback, but only as long as it aligns with the app that you had envisioned in mind when you first start it off. Make your app truly yours. Issues will keep coming up on a regular basis – just keep updating the application with changes on the Play Store. Trust me, after an entire week of hard work put in, you will be satisfied with your result.

About a few days after the launch I was traveling in a bus with a bunch of my friends when we ended up discussing the Swachh Bharat campaign. One of my friends then said, “There’s an app called I Clean India – Swachh Bharat that was launched for the campaign!” I must say it was one of my most proud moments when I revealed that I was responsible for building the app. The look of amazement on his face was worth every second I spent that entire week. This is the kind of moment you want to experience as a programmer – someone appreciating and truly enjoying your work of creation.

I genuinely hope that someday you get to feel the same. Keep coding. Cheers!