Win a copy of Node.js Design Patterns: Design and implement production-grade Node.js applications using proven patterns and techniques this week in the Server-Side JavaScript and NodeJS forum!
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Ron McLeod
  • Rob Spoor
  • Tim Cooke
  • Junilu Lacar
Sheriffs:
  • Henry Wong
  • Liutauras Vilda
  • Jeanne Boyarsky
Saloon Keepers:
  • Jesse Silverman
  • Tim Holloway
  • Stephan van Hulst
  • Tim Moores
  • Carey Brown
Bartenders:
  • Al Hobbs
  • Mikalai Zaikin
  • Piet Souris

Head First Android Development: Use Of IDE?

 
Bartender
Posts: 1868
81
Android IntelliJ IDE MySQL Database Chrome Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
When preparing for the Java certification tests it is recommended that one does not use an IDE.
It appears as though some people are 'married' to their IDE and all of the extra features which are supplied either naively or via plugins.

In your book Head First Android Development (2nd Edition) do you recommend any particular IDE and if so why?
 
Author
Posts: 115
10
Android Python Ruby
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Pete Letkeman wrote:When preparing for the Java certification tests it is recommended that one does not use an IDE.
It appears as though some people are 'married' to their IDE and all of the extra features which are supplied either naively or via plugins.

In your book Head First Android Development (2nd Edition) do you recommend any particular IDE and if so why?



We use Android Studio throughout the book, because it's simply the most popular IDE for Android. Whilst it's technically possible to work on Android outside of an IDE, it can be quite painful, and it would take longer to describe which gradle commands to do an in which order than it is to simply show you where the buttons are.

However, in the appendixes we do go into quite a bit of depth about what happens in the build chain so that you understand what happens when you click the play button. So we follow the process from Java source code to Dalvik byte code, to native shared objects.

D+D
 
Pete Letkeman
Bartender
Posts: 1868
81
Android IntelliJ IDE MySQL Database Chrome Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Great, thanks for clearing this up.

I'm sure that it is well worth it to have at least a basic/general understanding of what is happening behind the scenes with Gradle, Dalvick and Java.
 
Saloon Keeper
Posts: 24332
167
Android Eclipse IDE Tomcat Server Redhat Java Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Pete Letkeman wrote:... which are supplied either naively or via plugins.



"Naivley" is precisely why we discourage the use of IDEs for general Java development. Yes, I'm sure you meant "natively" - I'm pretty sure my spell-checker auto-completes with wrong words when I'm typing fast. Still, the argument against IDEs is in large part precisely because people who use them are often naive about critical design and programming (hence my long-standing signature).

However, I'll admit that I've never developed for Android outside of an IDE. I got into too many fights with its magic resource generator requirements and I've never bothered to get properly educated on the Maven plugin (most of my projects are Maven-built).
 
Pete Letkeman
Bartender
Posts: 1868
81
Android IntelliJ IDE MySQL Database Chrome Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Tim Holloway wrote:"Naivley" is precisely why we discourage the use of IDEs for general Java development. Yes, I'm sure you meant "natively"


You are 100% correct Tim.

Tim Holloway wrote:However, I'll admit that I've never developed for Android outside of an IDE. I got into too many fights with its magic resource generator requirements and I've never bothered to get properly educated on the Maven plugin (most of my projects are Maven-built).


I think that initially when Google provided the Android Development Tools for Eclipse that Maven was recommended. However with the release of Android Studio doesn't Google/Android recommend Gradle?
Is there any reason as to why you choose to use Maven over Gradle Tim?
 
Tim Holloway
Saloon Keeper
Posts: 24332
167
Android Eclipse IDE Tomcat Server Redhat Java Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Gradle, IIRC, is multi-lingual, whereas Maven is targeted towards Java. I'm a bit out of the loop on stuff these days since people aren't paying me to do anything along those lines, but last time I did anything serious along those lines, Maven was sufficient and it's historically what I've been using.

It's not that I refuse to move forward, just that I don't go chasing every new thing that comes along. Many new things don't have staying power, although I think we can safely say Gradle is not going to be one of those. My head is already crammed with obsolete technologies. I'll be quite happy to use Gradle if it helps me with a need (or someone flashes some cash in that direction. ).
 
Saloon Keeper
Posts: 7105
165
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Pete Letkeman wrote:I think that initially when Google provided the Android Development Tools for Eclipse that Maven was recommended. However with the release of Android Studio doesn't Google/Android recommend Gradle? Is there any reason as to why you choose to use Maven over Gradle Tim?


Maven was never much used for Android. Initially, Ant was the preferred built tool, and nowadays it's Gradle. I still have some old apps for which I haven't bothered to upgrade from Ant, but for anything new you'd certainly use Gradle. Not least because it makes integrating 3rd party libraries as easy as Maven does (and Ant doesn't, unless supplanted with Ivy).
 
Ranch Hand
Posts: 510
2
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
This is my two bits.
I'm relatively new to Android development .I first used the Eclipse plug in and it worked as excepted.  Then Google made a big deal about pushing Android Studio down everybody's throats so I started using Android Studio.  I hate it and think it is an over engineered piece of junk. I spent more time trying to compensate for Android Studio's automation and overly intrusive actions than actually developing. The IDE itself is lot of work .I realized that I couldn't actually learn Android until I first learned this ridiculous IDE and how to configure and turn off it's features. It's still annoying but realize that if I start doing it professionally I'll have to use it in my work place.

I always hated Intelli J and Android Studio is based on that. Whoever thought that auto save every few seconds was a good idea ? Intelli J assumes that people don't know how to save their project before compiling it and unfortunately that logic permeates everything  in Android Studio.

Android Studio (especially if you use it's starter templates) seems to force the use of Gradle over Maven but that is not a big deal. It is not hard to get the hang of Gradle.

Even though Google has dropped support for the Eclipse plug in ,I would recommend starting with that unless you already work with Intellij for your Java projects. It is just a cleaner ,simpler environment where you have more control of what is going on with your project.

 
Pete Letkeman
Bartender
Posts: 1868
81
Android IntelliJ IDE MySQL Database Chrome Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Interesting views Paul. When I starting programming Android as a hobby a few years ago, before Android Studio, I had found Eclipse to be buggy and I do find that IntelliJ/Android Studio stable.
However I have yet to actually create any meaningful Android app from start to finish and I know that I do not know too much about Gradle or Maven or any other build system like those two.
In using the ADT for Eclipse don't you run into the possibility unknown errors. Google has stated that there are some known problems with ADT and it's integration with Eclipse, but I'm not too sure if they have listed them.

I have found some of the same announces that you have appear to have found Paul like the saving every few seconds and some of the project/file views do not seem too helpful either.
I have read about some people going down to the bare minimum and using NotePad ++ like editors and custom batch/shell script. But that does sound a little ridiculous, unless of course you are trying to learn the very basics for a test.

Tim Moores wrote:Maven was never much used for Android. Initially, Ant was the preferred built tool,


I did not know that, sorry for the mistake in the previous post.
 
paul nisset
Ranch Hand
Posts: 510
2
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Don't go the notepad route for Android. You really do need an IDE to learn it initially. An IDE also has things like Emulators that speed up development.

In using the ADT for Eclipse don't you run into the possibility unknown errors.


The proof is in the pudding. If the app works on your  phone ,you are fine. I'm pretty sure there are "unknown" errors in all IDE's . You have to take your chances.
 
Tim Holloway
Saloon Keeper
Posts: 24332
167
Android Eclipse IDE Tomcat Server Redhat Java Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
For complex projects, it really does help to have something managing the project for you. Maven has the ability to take a prototype (either from a public repository or your own invention) and construct a project for you with all the necessary directories and prototype files. Also to do other things - for example, the Maven goal eclipse:eclipse will take an existing Maven project and add the extra files that make it an Eclipse project. Unless I'm hallucinating, there's also a similar goal that will do the same for IntelliJ, although its name escapes me at the moment.

Gradle inherits concepts from Maven, so I would hope that among them would be prototyping projects.

As for IntelliJ versus Eclipse, each IDE has its strong and weak points. IntelliJ is more applications-oriented and it's especially good at GUI WYSIWYG design. There was a long dry spell between the demise of Visual Café (AWT) and IntelliJ's implementation of its Swing UI designed and I was especially joyful to see that IntelliJ kept the number of wizard warts and proprietary helper classes to a minimum. I used to run a Perl script on my Visual Café-generated code to  make it friendly for open-source distribution.

I think the obnoxious part of IntelliJ's auto-save was that it also compiled to a hidden location every time it did so. Eclipse does incremental syntax-check compiling (no code generation) and no saving, so it's faster in that regard. And of course, actual code compilation is done to a visible part of the project so there's no indirection. Eclipse also has a wealth of plugins (when they're not broken) for different languages, frameworks and environments and it's very good at debugging multiple apps simultaneously. IntelliJ is more into domain-specific languages and last I looked, its plugin selection was relatively small. Although size isn't as important as whether or not the plugins you need exist!

Since doing multiple things at one time in multiple languages (often between multiple machines) is the kind of evil I specialize in, I favor Eclipse. For grunt programmers who do straight-up webapps, Android development and the like, IntelliJ is more likely to be helpful.

And, of course, we haven't touched on the Oracle Java IDEs - both their original one and the one that they got from Sun.

 
Tim Moores
Saloon Keeper
Posts: 7105
165
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

paul nisset wrote:Don't go the notepad route for Android. You really do need an IDE to learn it initially. An IDE also has things like Emulators that speed up development.



I don't quite agree with that. Learning an IDE, a programming model, and an API all at the same time can be overwhelming, which is why I advise beginners to leave out the IDE. A basic Android app need not have more than an Activity class, a layout file and a strings file - those can easily be managed with a programmer's editor. Adding a few more classes and layouts (as the example app grows) does not substantially change that. And the Android CLI/GUI tools offer access to all tools one needs at first, including the emulator.
 
Consider Paul's rocket mass heater.
reply
    Bookmark Topic Watch Topic
  • New Topic