Tuesday, July 22, 2014

Top 7 Android Tools

I just finished up my second Android app and this time round found a lot of really useful tools to help me through it, so I thought I'd make a little list of my favorites.

1. Android Studio (download)

This one's easy. I initially tried to use Eclipse for creating  Android apps, but it seemed to complicated and slow and it never really came together. As soon as I heard about the release of Android Studio I checked it out (even though it was really early and buggy) and found it to be great. I think a lot of what I like about it has to do with the back-end, Intellij is a really nice looking IDE, it's strange that I didn't even know it existed before Android Studio.



The exciting news on this one is they've just gone into Beta (finally). They're at version 0.8, and with it they've made it a whole lot more intuitive, and hopefully there'll be less updates that break existing features. 

Before they went to Beta, I stopped updating at version 0.2.9, so I was intrigued to see what had changed. First of all, the whole thing looks like it's had a bit of spit and polish, everything looks more cohesive. The new project wizard looks really good too, with more templates added. You can create your app for phone, Android wear and even Glass all in this tool now too. Here's one of my favorite new screens, it's not a big deal, but they've just done a nice job


2. WiFi ADB (download)

I came across this one pretty far into development, but it worked nicely into my process. In case you're wondering, my process is the following. Find some time to program, program anywhere there is space. The downside to this style is sometimes you'll be lacking a USB cable, and the cable you need is in the room where your child is currently sleeping. Now you might say that I should just buy another cable, well I did, but I like this even better.

Somebody has created this little utility for free (FREE!) that lets you remotely debug your app. The downside is you have to have a rooted device for it to work, but I'm assuming if you're developing an app for your phone, you've probably already done this. It's literally a 2-step process. Open the app and select ON. Now go to your computer and type in what it says on screen and you're connected.

Admittedly I had a couple of times where it went a bit wacky, but all I had to do was reset the app and it was good as gold.

3. CatLog (download)


Obviously, this has something to do with LogCat. Well, since I was creating a productivity app I was trying to test it out during my most productive hours, at work. Unfortunately, I can't plug my phone in and spend half an hour looking through crash logs at work when something fails in my app. That's where CatLog comes in. Every time the app would crash (and it was often enough to require this, trust me) I could quickly open this app and filter it down to find our roughly what had happened. If it was clear, I could just take a note down and then know what I was trying to fix later.

This became really important later when I had a bug that only crashed the app very sporadically, a real life saver.

4. Android Debug Bridge, ADB (information)

Obviously ADB isn't so much a tool as the very foundation of communications between your phone and the IDE. It's basically a command line especially designed for programming. Anyway, I actually haven't used a bunch of the features, but I know it's got a lot of them, and if you're ever stuck, take a look into it, ADB can probably do it.

One thing I had to do recently was get access to the saved file of my app. Now because I hadn't planned on this being a feature, I stored it in the internal memory, which apparently is pretty locked down. Luckily, again, I have a rooted phone, so using ADB and SU (super user) I was able to locate the file with the following commands. First, plug in your phone and open a command prompt in the same folder as the ADB. If you installed Android Studio, it's going to be Android Studio\SDK\Platform-Tools\. Now type in "adb shell" followed by "su". Your phone will ask you to give it super user access. At this point you can navigate down to the file you need using ls (list directory files) and cd (change directory).

Here's where it gets a little more complicated. Now if you need to copy that file to your computer from your phone, you'll have to locate the folder it's in and type in "CHMOD 777 {your filename}". This gives you full read/write/execute permissions on the file. Now open another command prompt and adb shell again. This time use the command "adb pull {file location on phone} {file destination on computer}. That should copy it.

Again, all of the stuff ADB can do can be a little complicated, but it's so powerful.

5. GrepCode (information)

GrepCode is just an open source reference for all android code. If you're thinking about extending or copying some base functionality that you just want to tweak a little, this is the place to start.

6. Libraries For Developers (download)

There are a lot of really nicely made open source projects on GitHub with people making custom libraries for use by anyone. Obviously, you can search through GitHub yourself to find these controls, OR you can download this app, and just casually browse through probably about 50 of them. They cover a lot of stuff, and it's always being updated. If you have any need for transitions, animations, custom widgets, popups, graphics, etc. this is the place to go.

Even better than this app, are the many projects it points you to. Most of which can be included in your app with only a simple gradle include in your build.gradle file (I'm assuming you're using Android Studio at this point).

7. Android Developer References (link)

This one's a given really, but I think it needs to be pointed out that Google has made a really nice website, with advice on just about every aspect of making an app. Not only do they have the API, available online and as a reference in the SDK, but they also have longer real world examples of the more common stuff. I found myself using this just about every single day.

No comments:

Post a Comment