Welcome to the part 7 of “Be a lazy but a productive android developer” series. I am writing a post into this series almost after 2 months but some posts are almost ready to publish but left with proof read and final corrections. It was quite hectic schedule after Android Developer Days events and also because of planning out events for GDG Ahmedabad. Anyway, welcome back!
This series so far:
- Part 1: We looked at RoboGuice, a dependency injection library by which we can reduce the boiler plate code, save time and there by achieve productivity during Android app development.
- Part 2: We saw and explored about Genymotion, which is a rocket speed emulator and super-fast emulator as compared to native emulator. And we can use Genymotion while developing apps and can quickly test apps and there by can achieve productivity.
- Part 3: We understood and explored about JSON Parsing libraries (GSON and Jackson), using which we can increase app performance, we can decrease boilerplate code and there by can optimize productivity.
- Part 4: We talked about Card UI and explored card library, also created a basic card and simple card list demo.
- Part 5: We talked about asynchronous image loading libraries, we did comparison of some libraries too, like Picasso, volley, Universal Image loader.
- Part 6: We talked about Staggered GridView which is ultimately a GridView having multiple columns with rows of varying sizes.
In this part
In this episode, we are going to talk about some useful tools, could be found handy during android application development. There are many such tools available on web, some of them are open sources too like SQLite database browser.
Useful tools for Development
I have listed down 15 useful tools and will be adding more later in future. There are many others available, I might or might not have came across, but if you know then please share with me.
If your app is highly depend on art/creative then you should think over optimizing and shrinking art/creative to decrease file size, it would help you to decrease APK size.
One of such online website/tool is TinyPNG, which helps you to reduce the file sizes of your PNG size while preserving full alpha transparency. It actually uses smart and advanced lossy compression technique.
2. Android Layout Finder
I have found novice android developers design XML layouts but feels bored while writing findViewById() kind of boilerplate code. If you are one of them then there are 2 possible solutions:
- Use annotation based library (dependency injection frameworks) like Android Annotations, RoboGuice.
- Use Android Layout Finder on-line tool.
Official document of Android suggests to avoid dependency injection frameworks like Guice or RoboGuice, reason being is it’s a reflection based library and it creates overheads at run time. Even it tends to perform a lot of process initialization by scanning your code for annotations, which can require significant amounts of your code to be mapped into RAM even though you don’t need it. (Here I would say we can use Android annotation library because it creates duplicate copy of annotated classes so it won’t create any overhead at runtime but at compile time.)
And if you don’t want to use any annotation based library then you can use Android Layout Finder tool which can automate process of writing findViewById() code and thereby we can have JAVA code automated way and can save our valuable time.
You just have to paste XML layout code and it gives you JAVA code with findViewById and click listeners.
3. Android Asset Studio
The name “Android Asset Studio” itself is an explanatory that it’s a studio having collection of different tools like Icon Generators, Style generator, 9-patch image generators, launcher icon generator, etc. This tool is provided by Roman Nurik, Android Developer Advocate at Google.
4. Android Asset Studio for Material Design
This Android Asset studio provides a facility to create icons for Material design. Currently it allows us to create icons for three different categories like ActionBar and tab icons, Notification icons and generic icons.
5. Android Action Bar Style generator
The Android Action Bar Style Generator allows you to easily create a simple, attractive and seamless custom action bar style for your Android application. It will generate all necessary nine patch assets plus associated XML drawables and styles which you can copy straight into your project.
With using this tool, you just need to copy paste given resources into your application and you are done!
6. JSON Validator
JSONLint is one of the JSON Validator tool, using which you can validate your JSON data. It especially useful when you are receiving JSON response from the web service which isn’t defined by you and you would want to validate the JSON output, just to make sure the JSON response data is valid.
7. JSON Viewer
Online JSON Viewer is one of the online JSON Viewer tool, using which you can view the whole JSON data in well organized and structured way. At the same time, it also validates your JSON data.
If we compare JSON Viewer with JSON Validator tool, then JSON Viewer would suit best i) If JSON response is too large, ii) if you would want to view data hierarchical
8. JSON to POJO Creator
While working on API based projects, JsonSchema2Pojo tool could be found handy. It helps to create POJO classes directly from either JSON or JSON Schema. Hence its automated way, it helps you to save your valuable time by not defining classes by your own to prepare POJO classes and use them to parse JSON response. It does support GSON and Jackson annotation styles too.
9. Android Button Maker
Android Button Maker is online tool to generate buttons code for Android Apps. Android API provide Drawable Resources where XML file defines geometric shape, including colors, border and gradients. This button is generating based on shape drawable XML code which load faster compare to normal png buttons. You can customize button properties in setting panel and get source code.
10. DPI Calculator for Android
Android DPI Calculator helps you to calculate DPI values for other screens based on the XHDPI value entered. It calculates DPI values in 8:6:4:3:5.32 ratio (xhdpi : hdpi : mdpi : ldpi : tvdpi)
11. Gradle, Please
Gradle, Please comes handy when you are developing android application using Android Studio IDE and you need to include various dependencies. It helps you to get exact maven artifact of the particular library.
12. SQLite Database viewer
To view SQLite database of your application, there isn’t any in-built tool provided with android ADT or Studio. The major advantage of using any SQLite viewer is it’s GUI based WYSIWYG database editor, and it comes handy when you would want to write joined query, verify tables and data and other SQL operations.
There are many such tools and software available, but out of them I have used 2 so far and have found useful and more than my need.
- SQLite Database browser
- SQLite Expert
SQLite database browser is an open source tool. Where as SQLite expert is a free for personal and commercial use, also have PRO version. Now, both the tools are good enough for me but I have found SQLite expert having more features than SQLite Database browser, one of the main advantages is you can open multiple databases at a time in SQLite expert.
13. Postman – Rest client
Postman comes handy when you would want to check your rest APIs. One of the major advantage of using Postman tool is to check and validate rest APIs before starting actual implementation and integration in your mobile applications. It especially helps when API developed by other developers but you don’t know what it returns in response exactly.
It does provides a facility to test API using Oauth authentication. It does supports almost all the HTTP operations like GET, POST, DELETE, PUT, etc.
I have installed Postman extension in Chrome browser. Over and all, I have found it more than enough than my requirement!
14. ADB Idea – Plugin for Android Studio and IntelliJ
ADB Idea – It’s a plugin for Android Studio and IntelliJ, through which you can invoke ADB commands directly from IDE, like uninstall app, clear and re-start app, etc. It ultimately helps you to speed up your development. Check GitHub link of this plugin to read about it’s setup.
Once you install it, you can invoke ADB commands in 2 ways:
- The Warrior’s way: Each command is prefixed by “ADB”, so you can quickly filter through adb commands using the “Find Actions” shortcut
- Menu ways: Tools->Android->ADB Idea
15. Android Studio Plugin for Android Parcelable boilerplate code generation
It’s handy plugin which generates an Android Parcelable implementation based on fields in the class. It helps us to save our time of writing parcelable boilerplate code again.
Check Github link for downloading and installing plugin into Android Studio. Once you install it, just press ALT + Insert in your editor and select Parcelable. It allows you to select the fields to be parceled.
16. Selector Chapek for Android
After installing it, you just need to select particular drawable folder, right click on it and select “Generate Android Selectors”. That’s it! It will create a selector files for those resources, which will appear into the ‘drawable’ folder.
This brings us to the end of this part. In this episode, we saw some useful tools which we can use during android application development. If you know any more tools then please feel free to share with me, I would like to include it in a list and use them.
Hope you liked this part of “Lazy android developer: Be productive” series. See you in the next episode, where we shall cover Part 8: Wireframe/Mockup design tools. Till than keep exploring and playing with tools 😉