Welcome to the Java Programming Forums


The professional, friendly Java community. 21,500 members and growing!


The Java Programming Forums are a community of Java programmers from all around the World. Our members have a wide range of skills and they all have one thing in common: A passion to learn and code Java. We invite beginner Java programmers right through to Java professionals to post here and share your knowledge. Become a part of the community, help others, expand your knowledge of Java and enjoy talking with like minded people. Registration is quick and best of all free. We look forward to meeting you.


>> REGISTER NOW TO START POSTING


Members have full access to the forums. Advertisements are removed for registered users.

Results 1 to 12 of 12

Thread: Best Tools for developing in Java/Android

  1. #1
    Member
    Join Date
    Oct 2011
    Posts
    53
    Thanks
    4
    Thanked 0 Times in 0 Posts

    Default Best Tools for developing in Java/Android

    Hello,


    I am soon going to start a quite big project in Java/Android.
    I have already worked in many projects but this time I want to use the best tools or anyway tools which could be both useful for knowledge they give and the utility the provide.

    The team will be composed of 6 people.
    We are going to develop on Eclipse and using git or mercury repository on google code. Of course SDK for Android.

    I have found a good software for mockups of the UI.
    What else could be interesting to try and use? Maybe for Team Management or other purposes.

    I believe we are going to use Scrum as methodology, but we still need to discuss that.
    This is a school project, so no business involved. I just want to make it as real as possible.

    Thanks in advance.

    N.


  2. #2
    Member
    Join Date
    Dec 2011
    Posts
    50
    Thanks
    0
    Thanked 4 Times in 4 Posts

    Default Re: Best Tools for developing in Java/Android

    Hi, You can you SVN to synchronize work among team members. It is very popular.

  3. #3
    Member
    Join Date
    Oct 2011
    Posts
    53
    Thanks
    4
    Thanked 0 Times in 0 Posts

    Default Re: Best Tools for developing in Java/Android

    I will be using git or mercurial instead, I have read it is more advanced so I'd like to go for it.
    Any suggestion for other tools?

    Like I will be using Balsamiq for mockups, I found out that it is a very cool app.
    I could do them by hand, as we are a rather small team, but that's why I am asking advice. I'd like to get in touch as many useful tools as possible. In the future I might need them; who knows!

  4. #4
    Forum VIP
    Join Date
    Jun 2011
    Posts
    278
    My Mood
    Stressed
    Thanks
    41
    Thanked 77 Times in 65 Posts
    Blog Entries
    4

    Default Re: Best Tools for developing in Java/Android

    Bitbucket is an excellent choice if you are using GIT. It's free and you can keep the repository private if you want. I have been using it for a while and simply cannot recommend it more highly.

    As for the tools, the SDK and eclipse has just about everything you will need. I would not bother creating UI mockups; write up a use case scenario that everyone agrees on and go for an early prototype. There is a serious problem relying on these tools that create the GUI for you. They abstract you from the things that go on underneath the hood and make maintenance very difficult. Also, they are ok for basic UI's but cannot handle anything more complex than a trivial activity (which are just about easier to write in the layout XML anyway). Yeah, stay away from those tools.

    I can give you some advise if you would like. You need a strong/dedicated project leader. Write up a design document before you start coding. It should start with a very clear overview of the application's purpose. It should state exactly who is in the project and what their duties are. Even if you don't plan of writing up a full UML it will be worth while sketching up the class diagrams and use cases scenario's. Consider the design of your program as part of the project life cycle. It should be planned, time managed and maintained just like every other part of the application. Poor design leads to poor solutions every time. Every hour spent designing will save you a day of programming (within reason). Your commit messages are the most important type of peer communication. Make sure that every member provides a very good message or it will be impossible to track progress and version conflicts. Logging is absolutely critical for good android development. Unit tests are important and should exist before the code they are testing does. If you don't know where to use unit tests then don't use them. Don't over-code. Try to adopt a programming style and stick to it (nearly impossible in a team of 6). Comment everything that is not instantly obvious. My rule of thumb is that if it takes longer to think about the code than to physically type it, I comment. Decide on a periodical meeting (weekly, bi-weekly, etc) and stick to it, even if nothing was done since the last meeting. Use the meetings as an excuse to do a code review. As leader, listen to your co-workers arguments for/against a particular strategy but make a decision and be clear you expect your decision to be final.

    Most important, if things get hard and you don't know what to do - take a break. I do my best programming in the shower, at the beach or watching TV. Obstacles have a way of breaking up when your mind is distracted.


    Hope that helps

    Good luck.

  5. #5
    Member
    Join Date
    Oct 2011
    Posts
    53
    Thanks
    4
    Thanked 0 Times in 0 Posts

    Default Re: Best Tools for developing in Java/Android

    Thanks for the information.
    For this project I will be the Leader/Project Manager.
    And from what you mentioned I have been already using it on the previous project, so I feel better .

    If you come up with tools or stuff like that, it would be appreciated, if not, thanks a lot anyway.


    I just have other 2 questions: in the last project we have been using git and eGit for the version control, but I find myself spending some time just to fix conflicts. The best way I found to fix a conflict is to copy my code away (notepad), assume it as it has never been changed, pull the changes and then copy my modifications on top of it. The merge tool is seems quite dumb and not working efficiently, when there is a conflict it takes forever to fix it in the other way.
    So, how do you usually do? What I did, is to make sure that each programmer was informing anybody else on what file they were writing on and no one else should then write on that at the same time. It was doable, as I managed to give specific sections, some of them had their own class file and some others were coding next to each other. But I believe it is not always possible.

    The next question is about unit tests: should they be all put in a separated class file? And then just have then the main method (which is not the static main we perfectly know) that runs all the tests and gives logs?

  6. #6
    Forum VIP
    Join Date
    Jun 2011
    Posts
    278
    My Mood
    Stressed
    Thanks
    41
    Thanked 77 Times in 65 Posts
    Blog Entries
    4

    Default Re: Best Tools for developing in Java/Android

    Quote Originally Posted by Nesh108 View Post
    ... there is a conflict it takes forever to fix it in the other way ...
    So, how do you usually do?
    Conflicts == bane of my existence. Right up there with mosquito's and STD's. Seriously, if there is an easy way of managing them I would also love to hear about it. I use Git to illustrate exactly where the conflicts are and then consult with the programmers who worked on it to figure out what is happening. Then I usually rework the files to get things flowing again. If you are using linux the diff command can be useful but only for identifying the conflicts, not solving them. Keeping the programmers 'away' from each other is an option but it is rarely possible. Telling a programmer to 'only work on THIS class' is very rarely an option. You are better of dividing up the work into responsibilities; 'you work on the server, you work on the logic and you on the UI'. Communication and good design are the key to keeping them from happening in the first place, which is the only good option I have found for mitigating conflicts.


    Quote Originally Posted by Nesh108 View Post
    The next question is about unit tests: should they be all put in a separated class file? And then just have then the main method (which is not the static main we perfectly know) that runs all the tests and gives logs?
    Typically, if you had the classes
    com.mydomain.myproject.Foo
    com.mydomain.myproject.Bar
    Your unit tests would live in
    com.mydomain.myproject.test.FooTest
    com.mydomain.myproject.test.BarTest
    If you are not familiar with Unit testing I would spend some time reading up on them. They are very important for large projects where bugs can completely cripple you.


    Quote Originally Posted by Nesh108 View Post
    If you come up with tools or stuff like that, it would be appreciated, if not, thanks a lot anyway.
    The only other things I can think of right now is Violet UML for your class diagrams, use cases and object diagrams. I found Violet to be better than Microsoft Visio for creating UML, but then I find pen+paper+camera to be better than Violet so it's worth experimenting with different design tools if you are going down the path of UML. I assume you already have OpenOffice or Microsoft office so I won't bother recommending them (oops i just did)...

    As for Android specific tools, the most important one is the phone itself. Now you CAN develop android apps without a device but as I explained in my blog you will be shuffling around in the dark. It's kinda hard to get a feel for the look and functionality of an app using the emulator. Plus, the emulator can be very slow. The most frustrating thing about the emulator is the way it closes without an 'are you sure you want to quit' dialog. Number of times I cursed myself hoarse because I accidentally hit that dreaded 'X' and had to wait 10 minutes for it to start up again ....

  7. #7
    Member
    Join Date
    Oct 2011
    Posts
    53
    Thanks
    4
    Thanked 0 Times in 0 Posts

    Default Re: Best Tools for developing in Java/Android

    Thanks a lot for this brief explanation. We are going to start tomorrow and your info will help me a lot, I am sure about it!!

    Thanks again

  8. #8
    Junior Member Aadamgibson's Avatar
    Join Date
    Aug 2012
    Location
    Pleasanton
    Posts
    4
    Thanks
    0
    Thanked 1 Time in 1 Post

    Default Re: Best Tools for developing in Java/Android

    Try this one : Hadi - Android Database Framework
    This tool is very simple and easy to use.

  9. #9
    Junior Member
    Join Date
    Sep 2012
    Posts
    2
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Default Re: Best Tools for developing in Java/Android

    Thanks for sharing!

  10. #10
    Forum VIP
    Join Date
    Jul 2010
    Posts
    1,609
    Thanks
    25
    Thanked 316 Times in 295 Posts

    Default Re: Best Tools for developing in Java/Android

    Three things:
    1. I would suggest using SpringSource as the IDE. It is a more powerful version of Eclipse, and we use it where I work.
    2. For Unit Testings, I would suggest using JUnit (Welcome to JUnit.org! | JUnit.org).
    3. You should also look into whether or not Maven would be useful for you.
    NOTE TO NEW PEOPLE LOOKING FOR HELP ON FORUM:

    When asking for help, please follow these guidelines to receive better and more prompt help:
    1. Put your code in Java Tags. To do this, put [highlight=java] before your code and [/highlight] after your code.
    2. Give full details of errors and provide us with as much information about the situation as possible.
    3. Give us an example of what the output should look like when done correctly.

    Join the Airline Management Simulation Game to manage your own airline against other users in a virtual recreation of the United States Airline Industry. For more details, visit: http://airlinegame.orgfree.com/

  11. #11
    Super Moderator helloworld922's Avatar
    Join Date
    Jun 2009
    Posts
    2,896
    Thanks
    23
    Thanked 619 Times in 561 Posts
    Blog Entries
    18

    Default Re: Best Tools for developing in Java/Android

    Quote Originally Posted by Nesh108 View Post
    I just have other 2 questions: in the last project we have been using git and eGit for the version control, but I find myself spending some time just to fix conflicts. The best way I found to fix a conflict is to copy my code away (notepad), assume it as it has never been changed, pull the changes and then copy my modifications on top of it. The merge tool is seems quite dumb and not working efficiently, when there is a conflict it takes forever to fix it in the other way.
    So, how do you usually do? What I did, is to make sure that each programmer was informing anybody else on what file they were writing on and no one else should then write on that at the same time. It was doable, as I managed to give specific sections, some of them had their own class file and some others were coding next to each other. But I believe it is not always possible.
    I rarely use the merge tool when I work with source control software. Rather I tend to use diff tools more often to identify the location of problems, then I go and manually fix each one. It's time consuming, but this is the best way to ensure the correct changes get made to the source code.
    I'm not too familiar with git in particular, but I know other repo software allows you to checkout/lock files. While locked, only the user who has the file checked out has checkin/commit abilities for that file. This is particularly useful for binary files (good luck using a diff tool on these ). However, I have seen quite a few times where developers forget to check-in/unlock a file preventing auto-build scripts and other developers from accessing the file leading to a whole new collection of problems.

    I would personally not recommend going this route as it's really avoiding the bigger issue which is the format of the code base and work division.

    My suggestion? Divide work to minimize file version conflicts as little as possible and commit/update often (use descriptive comments! It makes debugging much easier). The best way to deal with version conflicts is to avoid them. Get the developers together and hatch out what everyone is responsible for before coding even begins (some teams like weekly meetings, others meet for a few minutes each morning). This is probably the best way avoid conflicts. Coding shouldn't be the time a developer is working out the structure of a program.

  12. #12

    Default Re: Best Tools for developing in Java/Android

    You can download the Android SDK development and ADT (Android developer tools) plugins for professional-grade development environment.

Similar Threads

  1. Any alternative of Eclipse for developing android app?
    By vincentroberts in forum Java IDEs
    Replies: 6
    Last Post: January 5th, 2012, 12:48 AM
  2. RFC - Java/SQL Server Reporting tools
    By Blackbird in forum Java Theory & Questions
    Replies: 1
    Last Post: August 18th, 2011, 01:17 PM
  3. new features in bug tracking tools
    By ssiklib in forum Web Frameworks
    Replies: 0
    Last Post: April 5th, 2011, 02:34 AM
  4. Replies: 2
    Last Post: March 3rd, 2011, 01:22 PM