Up until recently I’ve been a deeply devoted Dreamweaver user, but with industry trends changing rapidly the last few years and the rise of mobile application development I’ve found my eye starting to wander and check out other development platforms. Of course there is always Visual Studio. I keep flirting with the idea of diving in deep and becoming more intimate with Visual Studio’s inner workings, but for some reason I just can’t commit to making that change. The new (to me) platform that has caught my eye is one called Eclipse. I’m not going to get into too much technical detail here, I just want to present you with an overview of why I chose to use it.
If you are not familiar with Eclipse, it’s an open source framework that is highly extensible via the huge assortment of plugins available for it.
There are also multiple preconfigured versions you can download from Eclipse.org that have the necessary plugins for whatever you are trying to develop for. There isn’t necessarily one cut and dry approach to take when developing for mobile platforms and you may need to work with multiple methodologies and code bases. This is precisely why Eclipse appeals to me. With a bit of work and some research, you can configure your Eclipse installation to do just about everything you will need.
Plugins
Right now, I’m using a version of Eclipse that I downloaded from Appcelerator Titanium (a web-based application development platform). They call it Titanium Studio but it’s really just a preconfigured version of Eclipse that comes complete with plugins that are necessary for working with Appcelerator’s mobile platform.
The Plugins I am using are:
Android ADT: This is used for developing native Android applications.
AppLaud: This is a good plugin for working with the PhoneGap code base and creating hybrid applications for multiple mobile platforms.
SPKET: This is an IDE plugin that I would suggest using if you are going to be developing primarily javascript based apps. You can customize this plugin so that code completion works with EXT.JS, Sencha Touch, Jquery, Jquery mobile and many others.
Aside from these plugins there are ones for working with remote servers, FTP, Ajax development, SQL Server, C#, C++, .NET, Ruby, GitHub, Subversion and too many more to mention.
Workspaces
Workspaces in Eclipse, simply put, define your development environment. Plugins are tied to workspaces, so if you install all of your plugins under one workspace and then you create a new workspace, you may notice your plugins will not be there. While this may be confusing at first, it helps you keep your environments optimized. You can create a workspace specifically for Android application development so that when you use that workspace, it will only load plugins and configurations that are necessary for that workspace. Eclipse will frequently have to rebuild your workspace to update your cache, and when you are working with tons of third-party plugins it could wind up taking up quite a bit of time to reconfigure. So segregating your workspaces relevant to project type or coding environment may be worth the initial time investment.
Perspectives
Between all the plugins and being able to optimize your environment using workspaces, all that functionality in one place can make life easy but it can also make life confusing. This is where the idea of Perspectives comes in. After tricking out your Eclipse installation with all these plugins, your UI could be come overloaded with windows, most of which you won’t use all the time. Perspectives will allow you to configure the UI to suit specific needs. You can have one perspective set up for testing, one perspective set up for AJAX and working with webservices, one set up for working with Javascript or making SQL queries. Then all you will need to do is change perspective to load up all the windows you need for a given task.
Conclusion
In conclusion, if you are a developer who is finding yourself using multiple platforms to develop around multiple code bases or platforms, you may want to take a serious look at using Eclipse. While it does take quite a bit of time to get set up and organized, the effort is well worth it. The ability to extend functionality (including code completion) with plugins, optimize the platform for specific environments using workspaces and optimize your UI for specific tasks using perspectives has completely won me over.