What is best IDE?

‘WHAT IS BEST IDE’ this one of basic question asked by any programmer when he starts programming. There is no direct answer for that saying this best and this bad because it’s depend on many reasons. OK, then what would be those reasons. Let’s talk about one by one to select the Best IDE for you to start programming.



If user likes for hard coding, they can use notepad or notepad++ or sublime text or Vim or Emacs. Those are basically text editors so there is not error checking, auto building option, auto expectation handling, debugging and many of thing such like which is available in IDEs. But those text editors are able to handle any language. User have to compile and run those programs manually. So this takes time and unable debug or find errors. As a solution for those kind of issues integrated development environment aka IDE is created which is able to various kind of actives that wasn't able to illustrate in normal text editors. 

So what would be main things do we have to consider when selecting the IDE which is suited to you. There are some basically categories you have to refer before selecting IDE

  • Language you are going to use
  • OS you are using
  • Graphic user interfaces(GUIs)
  • Supporting languages for IDE 

 Languages you are going to use

IDEs are not created to program all programming languages in the world so that you have to select an IDE for particular language you are going to program. So you have to select an IDE which is specified to that language

If we consider Java, there are various kind of IDE in the Internet. Most of the time those IDEs are free but there are IDEs not free. Eclipse, Netbeans and IntelliJ IDEA are most popular IDEs but these IDEs are capable of configuring to some other language if you are a web developer, you can use Aptana Studios or Bracket rather than this there are lots of IDE specific more languages used in web. There are PHP editor, HTML editors and JavaScript editors but previous mention ones are able handle PHP, HTML and JavaScript. So sometimes you have to select an IDE that capable of handling multiple language at the same time. So if you’re C++, C# and VB.NET, you have to think about having IDE like Visual Studios which is developed by Microsoft but there alternative like Mono Develop.

So first you have to do some research in Internet about IDE which is built for your particular language then you have to consider other factors to select the best IDE suit for your need.

OS you are using

This is one of minor factor today standard because lot of language are open-source and those support Windows, Linux and Mac. But this act as a major factor for some of language like gaming language XNA, its run on Windows and need Visual Studios to install. Not only that some IDE are having particular platform to run. For an example, Visual Studios run on Windows and there are some IDEs which run on Mac on like Coda and WebScripter.

Graphic user interfaces

User friendliness and popularity of an IDE depend on GUI because if there is well structured GUI on IDE then that IDE will be good one to use. Not only that sometime well-structured one won't if those GUI are not well designed. What is good GUI it means GUI elements have to provide well-structured manner for example file/project explore, it should be well designed and have to display thing that user needed only without showing other nonsense. Not only that icons in short cut menus, those have to be designed at a glance user can have identify what this icon all about.

By using well-structured and well-designed GUIs, an IDE can run over other IDEs which is designed for a particular language. So when you selecting an IDE, have look at some screen shot of that particular IDE and select what interfaces you would like.

Supporting languages for IDE

This for user convenient. If you don't like to have several number of IDE each particular language so then you have to select one that that can support for your preferred languages.

So if we take Eclipse as an example, it capable of handling lots of languages. C, C++, Java, HTML, Android, PHP and several number of languages. But this depends on you selection of language if you programming in VB you can't use Eclipse, you have to Visual Studios. So when you selecting one have some digging about that IDE with in your programming language scope.

1. What are languages support
2. How can they plug to IDE
3. What are the thing you need to have for that particular language before plug that language to IDE

So I think this post help you to understand some factors you have to consider when you selecting an IDE which is best suited for you to start coding. 

"jni" folder not found



When I start programming with OpenCV and Android NDK, I encountered an error with not found ‘jni’ folder in project which is critical to creation of application.


So I found my own way to solve that problem.

First of all you have to create a folder called 'jni'



Then you have to create an external tool configuration to configure jni. To do that you have to small arrow button external tool button in short cut bar.

Click the down arrow and select ‘External tool configuration’, you will end up window like below.


Press select Program and press new in upper corner which calls ‘New launch configuration’


Provide any appropriate name you like for ‘Name’. In ‘Location’, you must give your ndk-build file. So for that first select ‘Browse File System’


And then browse to your android ndk folder and select ndk-build file



Then for your ‘Working Directory’, you have to give your jni folder. So for that first you select ‘Browse Workspace’


And select your 'jni' folder in working project 

Then press ’Run’. Sometimes this will display some error message ignore that message. Even though we have create jni configuration but it still show the error that shows in console in start because there is no file that ‘jni’  folder and we have to configure them.

So, first thing we are going to do is create ‘Android.mk’. Go ahead and create ‘Android.mk’ file in jni folder.


Add something like this code, if you want more about Android.mk file go to your android ndk foler and there you will find folder called ‘docs’ in there you will able to find HTML file call ANDROID-MK, in that document, you are able to find details about your Android.mk file

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)
LOCAL_LDLIBS := -llog 


LOCAL_MODULE    := ndksetup
LOCAL_SRC_FILES := native.cpp



include $(BUILD_SHARED_LIBRARY)


But we are not still finished. Then we are going to create our native.cpp without it console shows a message like this

  
So to fix this, we are creating file called ‘native.cpp’


In that file you have to write your OpenCV codes according to your program. (Writing code for native.cpp file is out of this post scope)

There is an additional file called ‘Application.mk’ but it is optional file to create.

Eventually, if you will see a message like this below in your console

Now, you are up and running with android ndk in you android app. 

Installing OpenCV manger to Android emulator

When you start to programming with OpenCV with android and if you don't have any android device to emulate those programs, you definitely have to use the Android emulator.

But the thing is you can’t run your programs in your emulator because it gives an error like below, 


So if you try to install it by just clicking install, it won’t because you don’t have direct access to Google Play Store, so you have to manually install to your emulator.




So let get start to install OpenCV manager to your android emulator.

First thing first, you have to download OpenCV manager apk file via this link given below 
Link to OpenCV manger APK file

and move/copy it’s into your platform-tool folder in sdk folder where you have copied your android SDK folder. Mine is like this “C:\adt\sdk\platform-tools”



Then next step, you have start you preferred emulator and wait until its get started and shows android wallpaper.

Then start you command promote whatever the way prefer to invoke it.

Then go to “platform-tool” folder with using commands in command prompt and enter following code segment

adb install {OpenCV manger package name}.apk

And wait a little moment until it shows “Success” message

Yap, you did it, now if you got to your menu in android emulator it will show the OpenCV manger icon.




Now you can run any of your OpenCV android application in your emulator.