Drones in America

Drones are becoming increasingly popular, but why? One….THEY ARE AWESOME!! Besides that though they have a lot of practical uses to them. First Amazon plans on unleashing an army of drones to deliver packages (personally I find this unlikely for awhile). Let’s look at some other uses and why Drones are going to take the market by storm.

Paparazzi

Sorry Sean Penn but this is really going to piss you off. Believe it or not this is already happening. It was long ago that Tina Turner’s wedding was photographed by a drone. The culprit was apprehended but nonetheless this could be a great way for peeping toms to watch from a distance.

For $600 you can by an AR Drone. What is that you ask? Well basically you fly your drone through your phone, tablet, or iPad and you are able to see what it would be like to FLY THE DAMN DRONE FROM THE COCKPIT!! Not only that you can record the whole flight.

Law Enforcement

YEP!! The police are using drones for surveillance and related activities. The ACLU is all over this because of the fourth amendment. Law enforcement is even buying them armed with rubber bullets and tears gas. Police Drone

I think it can be a great tool for law enforcement but I can also see the potential for abuse. It’d still be pretty cool to see a car chasing using a drone though

Hunting

Above is news clip about using drones to hunt feral pigs in Louisiana. Give it another 5 years and the technology for average consumers will be advanced enough control drones for miles. It would make for one hell of a hunting trip.

Farmers and Firefighters

Farmers already have it pretty hard drones would make it increasingly easier to inspect crops and irrigation systems. Could even be used to dust crops. Drone forest fire

Fighting wild fires is incredibly dangerous, drones help with that. Not only could drones help spot wild fires but they could actually help put them out. Just like anything else though the governement stepped in and is making it difficult to use drones.

l_drone_fire

Eye of the Storm

Have you seen the movie Twister starring Bill Paxton? The part where they had all those little ball thingys that they put into the tornado. Think about something similar to that but using drones. Storm chasing is insanely dangerous. Twister

Drones will take on much of that risk. Drones with the proper equipment would be able to collect an unprecedented amount of information to better understand tornado, hurricanes and any other weather phenomenon you can think of.

In conclusion

You can see that there is a lot of practical use fro Drones. This list serves only as an example of some of the uses for Drones. The list goes on and on. Read the full list for best mini quadcopters. Sports will soon be filmed using drones. I can see a huge demand for them in the near future. I can also for see and unbelievable amount of controversy over drones, privacy issuse and such. Not long we will be able to control these things for miles from the comforts of out own homes. Even be able to take one for a spin over the African Safari while sitting on a couch in Drummond, Montana. Everyone will own one and they will use them for variety of different things! Drones are truly revolutionary.

PHONEGAP- an open source mobile framework

Hello friends, Currently the Era of Mobile Technology and Smartphone have brought up the abrupt revolution in the technological world. PhoneGap has contributed a lot in designing a diverse range of mobile apps for Smartphones. Mobile apps those are designed using phonegap can make your services more exceptional among others and you can provide better user interface facility to your consumers.  Now, you must be wondering what actually PHONEGAP is? Let me explain you.

 

What is PhoneGap?

PhoneGap is an open source mobile framework which facilitates quickly designing of various mobileapps using web technologies like HTML 5, CSS 3 and JavaScript instead of device specific language. The most wonderful thing for us is “This is completely free” ;). PhoneGap is the recipient of the winning pitch at Web 2.0 Expo San Francisco’s 2009 Launch Pad event.This framework is originally developed by Nitobi Software and then purchased by Adobe Systems. PhoneGap brings standards-based web technologies into play to develop association between web applications and mobile devices.
phonegap-copy

It consumes too much time in building applications for each device–iPhone, Android, Windows Mobile etc.. with the support of  different frameworks and languages. PhoneGap solves this problem using the standards-based web technologies for the  communication with various Mobile Devices. We can implement a code of HTML, CSS and JAVAScript for our application and can use the same code for all the platforms which phonegap supports!!.

Why PhoneGap?

1)    PhoneGap is an open source and so there are no run time or licensing cost.
2)    Now the source code of PhoneGap is available and because of a plug‐in architecture is in place. So it is possible to extend a platform functionality with native code if required.
3)    Phonegap supports different Mobile Technologies like Android, IOS, WebOs, Blackberry, Windows Phone OS, Symbian, Bada  etc.  So If we have developed our application using HTML,CSS and JAVAScript then we can use the same code for any of the above Mobile OS and No need to change anything!!!!
4)    Another advantage of using PhoneGap is that it allows you to reuse your existing web development skills, so you have a shorter learning curve and faster development and for that you do not require to learn a new language or technology.
5)    It provides access to key features of the Smartphone like GPS, accelerometer, camera, contacts, Compass, File, Notification, Storage, initiating calls or sending email or text etc.
6)    PhoneGap apps have been downloaded over the 1 million times up till now and they are being used by more than 400,000 developers all over the world. 3000+ apps built daily using PhoneGap and most of the apps are available in different mobile app stores.

What PhoneGap is not?

 1)    PhoneGap doesn’t access any web server on your Smartphone, therefore you can’t just move your PHP/mySQL/Ruby/Rails/Perl/ASP/ASP.NET/JSP website other framework and have it run.
2)    PhoneGap doesn’t provide a bypass to the app store approval requirements. Your app will be judged on the same criteria as native code apps.
3)    PhoneGap isn’t suitable for graphic intense applications like action games.

How to Use PhoneGap in Android?

1)    To use PhoneGap in android is pretty easy. First you have to download the PhoneGap from  http://phonegap.com/download/
2)    Extract zip and Put phonegap. jar (Cordova. jar) file into building path or into libs folder.
3)    Now create new folder www into asset folder and put the phonegap. js file in the www folder.
4)    Create an index.html file in /assets/www  and write your code there.
5)    Make a few adjustments to the project’s main Java file and Change the class’s extend from    Activity to DroidGap.
6)    Replace the setContentView() line with super.loadUrl(“file:///android_asset/www/index.html”)
7)    Add import com.phonegap.*
8)     Remove import android.app.Activity

Mobile Framework For Cross Platform APP Development

We know that smartphones are augmenting the mobile phone industry like a windstorm. The rapidly growing Smartphone market is having a great impact on how people access & manages information. For more growth of Smartphone market and rapid development of Smartphone apps for different OSes, there are different frameworks are available for Mobile. Here are a few cross-platform development tools that were recommended.

Mobile-Framework-For-Cross-Platform-APP-Development

1)    PhoneGap:-

PhoneGap is an open source Mobile framework for quickly designing Mobile apps using HTML, CSS and JavaScript. It supports Android,IOS,WebOs, Blackberry, Windows Phone OS, Symbian, Bada etc.. PhoneGap is the recipient of the winning pitch at Web 2.0 Expo San Francisco’s 2009 Launch Pad event. PhoneGap also provides access to key features of the Smartphone like GPS,Accelerometer, camera, contacts, Compass, File, Notification, Storage, initiating calls or sending email or text etc.

2)    RhoMobile:-

RhoMobile is an open source Ruby-based framework that allows to develop native apps for a wide range of Smartphone devices and operating systems. With RhoMobile Suite, which is comprised of  RhoConnect,RhoStudio and RhoElements, You can create an application which looks and behaves exactly as if it were on any Mobile devices.

It supports OSes like iPhone, Android, Windows Mobile,Blackberry, RIM and Symbian etc. Native apps can also take advantage of available hardware like GPS , camera and  location data as well. Using RhoConnect, you can simultaneously connect your applications with many data sources easily. You can attach one data source — including enterprise back-end customer relationship management (CRM) and enterprise resource planning (ERP) systems. RhoMobile offers RhoHub -a hosted development environment and RhoSync -a stand alone server that keeps app data resided on users’ mobile devices.

3)    Appcelator:-

Appcelerator’s Titanium SDK allows you to develop native, hybrid and mobile web applications using a single codebase through web development languages such as JavaScript, PHP, Python, Ruby and HTML. Titanium Studio is an extensible, Eclipse-based IDE for building Titanium applications and web applications. Android and iOS are supported by Titanium SDK.

It also provides cloud service Appcelerator Cloud Services (ACS) which is similar to Mobile Backend as a Service (MBaaS), offering a fast and easy way to build connected mobile apps. Application data can be stored in the cloud or on the device, and apps can take advantage of hardware, particularly camera and video camera capability.

4)    WidgetPad:-

WidgetPad is a web-based development platform for Mobile Oses and it is an open source. The software allows you to write your applications using web-based code including CSS3, HTML5 and JavaScript and then transfer them to standalone apps.  It can be used to create apps for OSes such as iOS, Android and WebOS. No additional software required- all the work can be  done directly from your browser.

5)    MoSync:

MoSync Software Development Kit (SDK) is an open source cross-platform for mobile application development that makes it easy to develop apps for all major mobile platforms from a single code base. The SDK enables mobile developers to build and compile apps for up to nine different platforms at once. We can use C/C++ or HTML5/JavaScript, or a combination of both to create hybrid apps. It supports Android, iOS, Symbian, Windows Phone, Moblin, a mobile Linux distro, Blackberry etc.

By using this you can also get access to graphics, communications, location, contacts, camera, sensors and many other native device features.

6)    Sencha Touch:

Sencha Touch is a high-performance HTML5 mobile application framework.  Various applications can be developed using Sencha based on iOS, Android, BlackBerry, Kindle Fire, and more. It includes a comprehensive UI widget library. Sencha Touch is built around an Object-Oriented Programming (OOP) style. It doesn’t  support camera or accelerometer.It was a first  HTML5 Mobile framework.

There are also other frameworks are available which can be felpful in  creating cross platform mobile apps using HTML5.Other frameworks are jQuery Mobile, Corona, AppsPresso,  Appfurnace, IBM Worklight, iUi, QuickConnectFamily Hybrid Unify, jQTouch, Joshfire, ipfaces,moble, Next, kivy, Nimblekit etc.

How to Install Android Native Development Toolkit in your IDE

Android-NDK

Android applications are written in Java. Android also provides facility to work with languages like C/C++. Android Native Development Toolkit (NDK) provides C/C++ support along with Android SDK.

Following are the steps to install android NDK in to your eclipse IDE.

1.    Installing C/C++ support in Eclipse

  • We require some features of eclipse to support native development in C/C++.
  • In eclipse IDE, right click on Help->Install new Software.  Choose cdt Juno in the Work with drop down. Let the tree load and check CDT Main features and CDT optional features.

 

  • Click next and say yes for everything.
  • Accept licence and let the eclipse to finish the update. Once it is done, you will be asked to restart the eclipse. Click yes to the prompt and eclipse will be restarted. Now you have support for C/C++ in your Eclipse IDE.

2.    Installing Cygwin

  • Android is Linux based so when you use some native codes with it, you require some Unix tools. In windows, NDK supports Cygwin 1.7 and above.
  • To get Cygwin, go to http://cygwin.com/install.html
  • Run setup.exe to download or update Cygwin for 32 bit windows.
  • Choose Install from Internet, click next button and then select directory where you want to install the Cygwin.
  • At this point Cygwin will connect to its central site and download the list of mirror sites. Choose any mirror site to download packages.
  • After you choose the mirror and click Next, Cygwin will download and present to you the list of available packages:
  • By default, only base packages are installed but we need the development packages. So click on the Default next to Devel root node and wait for a while. It will display the default changes to install devel node.
  • Click on the next and let Cygwin to download the packages and install the environment.
  • After completion of the installation, allow it to create an icon on the desktop. You will see on your desktop after you click Finish – an icon that launches the Cygwin console:
  • To check that we have the tool that is important for Android NDK, type make -v in the console:

3.    Installing the NDK.

  • Download the Android NDK from  http://developer.android.com/tools/sdk/ndk/index.html
  • Unzip the downloaded zip file into a directory of your choice. The NDK will be unzipped as c:\demoproject\android-ndk-r8.
  • Include the NDK installed directory in the NDK environment variable.
  • Append the path to the .bash_profile file in the c:\cygwin\home\{user-name}\.bash_profile as shown below.

PATH=/android-ndk-r8:${PATH}

NDK_ROOT=/android-ndk-r8

NDK_Sample=/android-ndk-r8/samples

export PATH NDK_ROOT NDK_Sample

  • Now open the Cygwin shell and change the current directory to the \android-ndk-r8\samples\hello-jni, and run the ndk-build command. The library libhello-jni.so is created.
  • When the library is shown up, it means that your ndk environment is ok.
  • Now you can run the sample hello-jni application by importing it in to your eclipse.
  • To import it, go to File->import->android->existing android code to the workspace.
  • Browse to the path of the sample application, hello-jni, in the ndk folder that you just downloaded and extracted.
  • JNI stands for Java Native Interface. It lets Java and Native code interact.
  • The project is still the java project. So to inform it about the native development, right click on the project->new->other.
  • From the resulting screen choose “Convert to C/C++ project”.
  • If it still complains of ndk-build not being found in path, go to Eclipse > Preferences > C/C++ > Build > Environment and “Add” PATH pointing to your ndk install folder.
  • Now your sample application is ready to run.

How to Link up the list view with searching functionality to provide ease of access

Link-up-the-list-view-with-searching-functionality-to-provide-ease-of-access.Still some people are using a custom filter or filterabale interface methods to fetch their required data from the database list view. But somehow it is more complex and time consuming process. So to fetch required records quickly and more easily from the available database we required to add search functionality to list view. You just have to search your required record by entering a relevant keyword in the search bar and you can fetch the whole record from the database.
There are two ways to add search functionality to list view
1. By using database queries. (Backend Functionality)
2. By extending filter class.
I am going to demonstrate one excuting program amongst you in which I am going to fetch records from the database which is filtered by the simple query, yeah!! It is easy but sometimes it is necessary to make your application better in performance and response.
Demo Program
1. To start up with a new project development procedure Eclipse should have been installed on your desktop device. After having all required tools available create a new project in Eclipse File New Android Android  Project and fill the required details.
2. Then to proceed further Create necessary android xml file in which you are having various functionalities edit text, list view. Here you can create one xml for making custom list view with a single text view, you can take more than one widget in that xml as per your application requirement.
Main.xml

{code type=code}
<? xml version=”1.0″ encoding=”utf-8″?>
<Linear Layout xmlns:android=”http://schemas.android.com/apk/res/android”
android:layout_width=”fill_parent”
android:layout_height=”fill_parent”
android:orientation=”vertical” >
<!– Editext for Search Task –>
<EditText android:id=”@+id/editSearch”
android:layout_width=”fill_parent”
android:layout_height=”wrap_content”
android:hint=”Search Task”
<!– List View  Containing Task–>
<ListView
android:id=”@+id/listTask”
android:layout_width=”fill_parent”
android:layout_height=”wrap_content” />
</LinearLayout>

{/code}

{code type=code}
Task_item.xml
<? xml version=”1.0″ encoding=”utf-8″?>
<LinearLayout xmlns:android=”http://schemas.android.com/apk/res/android”
android:layout_width=”match_parent”
android:layout_height=”match_parent”
android:orientation=”vertical” >
<!– Single Texview Which will add in Custom Listview –>
<!– Task Name –>
<TextView android:id=”@+id/title ”
android:layout_width=”fill_parent”
android:layout_height=”wrap_content”
android:padding=”10dip”
android:textSize=”16dip”
android:textStyle=”bold”/>
</LinearLayout>

{/code}

3.  Now in MainActivity.java connect your list view with the database so that it can fetch the record from the table and create a class for custom adapter which can enhance the base adapter class.
 MainActivity.java

{code type=code}
Public class MainActivity extends Activity
{
ListView List;
FilterAdapter adapter;
EditText text;
EditText directInput;
ArrayList<String> items = new ArrayList<String>();
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//listview for title list
List=(ListView) findViewById(R.id.listTask);
directInput=ListView) findViewById(R.id.editSearch);
//to populate the listview with database record
setUpList();
//custom adapter
adapter = new FilterAdapter(this, items);
List.setAdapter(adapter);
// Let your adapter identify change in record
adapter.notifyDataSetChanged();
//adding search functionality
directInput.addTextChangedListener(new TextWatcher()
{
@Override
public void onTextChanged(CharSequence s, int start, int before, int count)
{
// TODO Auto-generated method stub
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
setUpSearchList();//Call every time when Key pressed
}
});
}
//Adding Search
public void setUpSearchList()
{
items.clear();
SQLiteDatabase db= openOrCreateDatabase(“DemoSearch”,SQLiteDatabase.CREATE_IF_NECESSARY, null);
Cursor cTitle=db.rawQuery(“SELECT TITLE FROM DemoTable WHERE  TITLE LIKE ? “,new String []{directInput.getText()+”%”});
while(cTitle.moveToNext())
{
items.add(cTitle.getString(0));
//Specific record in listview based on key pressed
}
}
//Populate the listview with database item
public void setUpList()
{
SQLiteDatabase db= openOrCreateDatabase(“DemoSearch”, SQLiteDatabase.CREATE_IF_NECESSARY, null);
Cursor cTitle=db.rawQuery(“SELECT TITLE FROM DemoTable,null);
while(cTitle.moveToNext())
{
items.add(cTitle.getString(0));
//add record in listview
}
}
}

{/code}
In above MainActivity .Java we have established a connection with the database with  two functions  available there. The first one is setUpList () for populating the list view with the database record and the second one is setUpSearchList () for fetching record every time by passing  the key inside with the Direct Input edit text .
Custom Adapter:

{code type=code}
public class FilterAdapter extends BaseAdapter {
private Context context;
private ArrayList<Item> items;
private LayoutInflater vi;
Cursor c;
View v;
public FilterAdapter(Context context, ArrayList<Item> items) {
this. context = context;
this. items = items;
vi = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
v=convertView;
final TextView title;
v = vi.inflate(R.layout.Task_item, null);
title = (TextView)v.findViewById(R.id.title); //Id from TaskItem.xml
title.setText(items.get(position));      //setting the title text
return v;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return items.size(); //Number of Item in ArrayList
}
@Override
public Object getItem(int pos) {
// TODO Auto-generated method stub
return items.get(pos);// ArrayList record
}
@Override
public long getItemId(int pos) {
// TODO Auto-generated method stub
Return pos;  //Position of item

}
}

{/code}
Custom adapter and  filter adapter consist of  two arguments in which first one is context and the second one is an array list which can be assigned to the local array list. After the title is assigned one by  one to row of the list view you will have search functionality in list view with less coding.

Hope this will help you a lot. If you have any query, post a question, we will be happy to help you!!

Thank you and happy coding.

Adoption and essentiality of Mobile Application Management

Usability of mobile applications is increasing day by day, so developers are keen to make advancement in them according to the need of users. These applications are becoming a way of living rather than just a successful trend. To hold the front position in competitive world, it’s necessary to keep up with changing demands of technology and access your business to the world with top rate mobile apps. The remarkable scope of applications is leading to all types of businesses which empowering the potential to make identity of products and improving business performance.

Mobile Application Management (MAM) defines software and services responsible for provisioning and controlling access to internally developed and commercially available mobile apps used in business settings on both company-provided and smart phones and tablet computers. MAM focuses on providing higher degree of control over applications. MAM provides solvable ability to control on provisioning, updating and removal, monitoring its performance, wiping data from managed applications.

MAM manages mobile apps and data with a secure and flexible approach to present the business and assures employees that their personal content will be protected and inaccessible. MAM can help understanding the importance of enterprise mobility to optimize organizational process. With the use of mobile application in business you can

  • Reach customers instantly
  • Promote business Effectively and conveniently
  • Use native features on mobile device
  • grow business through transforming online services into mobile services
  • get high ROI

It’s only possible with Mobile application for your employees to access important information whether they are in office or on the go. MAM is a hosted service that simplifies creating, stocking, and securely managing your own company-branded catalog of apps. The multilayered security provided by MAM protects your business without blocking unauthorized users. It is a customizable, content-rich interface by which users can get instant access to apps without a lengthy provisioning process. It also manages actual usage across devices and contracts and tracks inventories and expenses of accounts.

Here we have pointed out the basic need, usability and importance of using Mobile Application Management. Hope it will help you to improvise the use of it in your business. Suggest and encourage us with your valuable comments.

Thank you.