# Android app development?



## K_fenix (Nov 10, 2013)

*what programming languages used for android app development?*

*As a beginner,what are the stuff needed to get in it?
*
_Online websites which help to learn easy and effective way..   _


----------



## krishnandu.sarkar (Nov 10, 2013)

Android App are developed in Java generally. Though you may use C, C++ too. 

Start you Android App Development journey @ Android Developers


----------



## ispyder (Nov 10, 2013)

krishnandu.sarkar said:


> Android App are developed in Java generally. Though you may use C, C++ too.
> 
> Start you Android App Development journey @ Android Developers



I was also looking to learn JAVA, and i googled this ...but I got so many pages and all said different things! ...Tell me, is there any starting point for learning JAVA or could you recommend me any book for beginners (I do know coding of PHP, HTML)
BTW can you also tell me that what SDK is?


----------



## krishnandu.sarkar (Nov 10, 2013)

To get started with Java check *www.thinkdigit.com/forum/programming/176157-ultimate-guide-java-programming-reference.html

And anytime you face any problem you can always use *www.thinkdigit.com/forum/programming/94845-java-queries-here.html

SDK = Software Development Kit. Have a look at Software development kit - Wikipedia, the free encyclopedia

In short and simple words, SDK is a set of tools which is generally provided by the manufacturers to help others create application for that platform without going into detail of that platform and understanding core level things of how it works internally. This helps developers focus on their own code / business logic instead of getting flowed to understand the core level things.


----------



## ankush28 (Nov 10, 2013)

hey search for ebook(I wont post link here) Hello android third edition though its old but best for newbies
ps:- I've learned android developement from this ebook.
{good_luck}

keep this as reference Getting Started | Android Developers


----------



## sainath (Nov 11, 2013)

ispyder said:


> I was also looking to learn JAVA, and i googled this ...but I got so many pages and all said different things! ...Tell me, is there any starting point for learning JAVA or could you recommend me any book for beginners (I do know coding of PHP, HTML)
> BTW can you also tell me that what SDK is?



From my point of view you should at least know basic about C and C++. It will help you a lot. Get Java The Complete Reference by Herbert Schildt book. Start from basic then move to android development because you cannot design a good app through incomplete knowledge of Java.


----------



## vickybat (Nov 11, 2013)

K_fenix said:


> *what programming languages used for android app development?*
> 
> *As a beginner,what are the stuff needed to get in it?
> *
> _Online websites which help to learn easy and effective way..   _



I'll try and answer your queries in the best way possible.

First of all, you have got two choices to develop for android.

*1.* Develop native applications. To do that, Java and XML(UI design) knowledge are a must.

*2.* If you don't want to develop natively, you can use web technologies like html5 and javascript/jquery and build web apps. Then convert that to a native application using opensource frameworks like PhoneGap.

Now the 2nd approach is really gaining a lot of ground these days due to more demand in developing cross platform apps. For Java approach, you are restricted with android. If you want to port the same application to lets say IOS, you have to rewrite that in *Objective-C*. Different platforms uses different native languages.

What frameworks like PhoneGap do is that they convert the web app written in web standard technologies into a native app that behaves as if it was written in java with no performance differences.
By native app, what i mean is that the application can harness the device(phone) specific features of a platform, like accelerometer, Geolocation, Vibration functionality etc. PhoneGap does all that for your app.

PhoneGap supports all platforms including IOS, Android, Windows Phone 8, Symbian, Ubuntu etc.

So if you are going for option 1, Java knowledge is a must. *Learn Java properly and then buy this book:*

Beginning Android 4 Application Development - Buy Beginning Android 4 Application Development by Wei-Meng Lee Online at Best Prices in India - Flipkart.com

If going for option 2, and have decent idea on web technologies, then buy this and start your development:

Building Android Apps with HTML, CSS, and JavaScript, 2nd Edition - OFPS - O'Reilly Media

Building Android Apps with HTML, CSS and JavaScript 2nd Edition - Buy Building Android Apps with HTML, CSS and JavaScript 2nd Edition by STARK Online at Best Prices in India - Flipkart.com


----------



## krishnandu.sarkar (Nov 11, 2013)

I don't recommend Phonegap. I personally used it to create an App at my previous firm and the performance is no where close to native app.

Then I discarded it and moved to Native app.


----------



## ankush28 (Nov 11, 2013)

use this MIT App Inventor
this will help you to design a app without practicle knowlege of java or any lang.


----------



## vickybat (Nov 11, 2013)

krishnandu.sarkar said:


> I don't recommend Phonegap. I personally used it to create an App at my previous firm and the performance is no where close to native app.
> 
> Then I discarded it and moved to Native app.



Did you use HTML5? Which platform do you develop on? 

PhoneGap is now a distribution of Apache Cordova. It has evolved big time and very fast now.

Mobile development is more focused on web based technologies these days. 
HTML5 is very very popular in this regard and quite powerful as well. Javascript api's like canvas, geolocation ,web storage,video are all integrated with HTML5.
No longer its a simple markup language to develop web pages. It has become way more powerful since HTML4. Even html 5 has become a boon for mobile game development. 

The following is written in html5 and uses unreal engine 3. The c++ codes are compiled into javascript :

*www.unrealengine.com/en/news/epic_games_releases_epic_citadel_on_the_web/


I would suggest OP to take up this course when its available:

*www.udacity.com/course/cs256

Everybody are embracing HTML5.


----------



## sandeep410 (Nov 11, 2013)

No HTML5 aint that great. Theres lot of problems. Audio is one of the problems on html5. Performance of an HTML5 game is no where near to a native app. Theres huge performance difference across various browsers in HTML5. HTML5 will be great but it would take atleast 3 years from now.


----------



## krishnandu.sarkar (Nov 11, 2013)

vickybat said:


> Did you use HTML5? Which platform do you develop on?
> 
> PhoneGap is now a distribution of Apache Cordova. It has evolved big time and very fast now.
> 
> ...



Yes I know it's Apache Cordova now. And I used that only. Yes I used HTML5 with Javascript.

And I'm aware about the API's and everything. As I said, I developed an app using it but it's now worth the effort.

I'll try to explain what I did and what was the problem...

I developed an app for my previous firm, which would start with a login page and on successfull login it'll go to a dashboard. Leave the dashboard things for now. Once a user logs in it'll be stored and from next time he doesn't needs to logs in. Next time he opens the app it'll automatically check from it's local database and fetch the UserID from DB, which will be stored on successfull login first time. Simple, isn't it?

The problem was, once a user logs in the procedure for next time was too slow that a user can notice white screen for a long time. Then I moved to native app and it was blazingly fast.

Also the UI was not smooth. Moving through the forms, tapping on textbox'es used to take ages. User can notice the sluggishness. And I didn't test this app on a single mobile, I used 3 mobile, Samsung Galaxy S Duos, Galaxy S4 and LG E400. 

First I thought E400 is the problem, but when I used S4 and S Duos, I was sure it was problem with Phonegap.

I'm also aware of peoples who are working in Phonegap in IBM using Sencha, KendoUI and all. But I don't know what they do to make it feel like native app. May be they do something different.

But storing the data and all, I don't think it uses SQLite that way. May be it uses HTML5 Storage. IDK. But all I know is app was not upto the mark and UI also not that smooth.

And may be you already noticed, that all great apps be it for Android, iPhone, WP8 or Blackberry are made natively. You see if Phonegap or things like these would really have given that much performance and can replace development of native apps, companies would have hired those people. But you see, all companies, prefer different developers for different platform.

There's a reason behind it.


----------



## vickybat (Nov 11, 2013)

krishnandu.sarkar said:


> Spoiler
> 
> 
> 
> ...



Hmmm i see. So Krishnandu, you developed for Android platform. You used XML and Java right?

I did a small search on the web and found some small performance hits on PhoneGap. But its absolutely fine for a beginner to learn a thing or two.
Yes, HTML5 has web storage API harnessed by java script. That does all the local storage. 

Yeah native app development hasn't been replaced , but these are really gaining ground. The reason being maintaining a single version of code for multiple platforms.
You don't have to write the same thing again and again in different technologies for multiple platforms like Blackberry, Symbian and the likes. I guess all leading corporate MNC's are developing using 
PhoneGap and although it doesn't threaten native app development, one cannot deny its growing popularity.

Thanks for your important feedback buddy. I think op should give it a try if he wants to develop something fast using his existing knowledge base.



sandeep410 said:


> No HTML5 aint that great. Theres lot of problems. Audio is one of the problems on html5. Performance of an HTML5 game is no where near to a native app. Theres huge performance difference across various browsers in HTML5. HTML5 will be great but it would take atleast 3 years from now.



What audio problems did you face? 

Except IE, all other browsers support HTML5 really really well. Chrome uses -webkit- and firefox uses -moz-. The end result is more or less same.
I guess IE9 has improved a lot in html5 support.


----------



## sandeep410 (Nov 11, 2013)

Did you tried on mobile browsers. Audio problem is massive on mobile browsers. And theres a lot of peformance hit on mobile browsers. It works fine on desktop browsers but whole point of html5 is to run on all devices which is where it fails on mobile.
Try making a game with physics on html5 browser and you can then notice a massive frame rate issues.
And no, none of MNCs use so called phone gap they prefer native apps. And there are 3 OS that matters that is windows,android and IOS no one gives a sh*t about blackberry or symbian or even windows phone.


----------



## masterkd (Nov 12, 2013)

sandeep410 said:


> And no, none of MNCs use so called phone gap they prefer native apps. And there are 3 OS that matters that is windows,android and IOS no one gives a sh*t about blackberry or symbian or even windows phone.



Totally disagree. I have been making enterprise apps for nearly 2.5 years now. Most of the MNCs prefer cross platform over native apps (exception UK). They suffer in an illusion that cross platform will give them the same functionality and performance of native with less expense and with less maintainability issue with multiple platforms.


----------



## krishnandu.sarkar (Nov 12, 2013)

sandeep410 said:


> And no, none of MNCs use so called phone gap they prefer native apps. And there are 3 OS that matters that is windows,android and IOS no one gives a sh*t about blackberry or symbian or even windows phone.



This I disagree too. Because I have few friends over IBM and they work with Phonegap + Sencha. Yes they don't use Phonegap only, but mix up Sencha, KendoUI etc. But I don't know how do they overcome that sluggishness.


----------



## masterkd (Nov 12, 2013)

The  sluggishness will be always there. You cannot beat native with phonegap. But with good design you can make the user feel there is no lag. But in some specific scenarios it will be visible clearly.


----------



## vickybat (Nov 12, 2013)

sandeep410 said:


> Did you tried on mobile browsers. Audio problem is massive on mobile browsers. And theres a lot of peformance hit on mobile browsers. It works fine on desktop browsers but whole point of html5 is to run on all devices which is where it fails on mobile.
> Try making a game with physics on html5 browser and you can then notice a massive frame rate issues.
> And no, none of MNCs use so called phone gap they prefer native apps. And there are 3 OS that matters that is windows,android and IOS no one gives a sh*t about blackberry or symbian or even windows phone.



Buddy nobody here is discussing about developing mobile web pages to be interpreted by a browser. What's the point of PhoneGap then?
You create a standalone application using PhoneGap. It opens just like a native application. I guess there is something like an in-app browser and chrome is default for android.

About MNC's using PhoneGap or not, i guess you've got your answer from other members.

Here's a small list of firms that use PhoneGap/Apache Cordova. Also see the list of apps.

*www.tricedesigns.com/2012/03/27/who-uses-phonegapapache-cordova/

*phonegap.com/app/

Its far more widely accepted than you think. Like krishnandu said, people are overcoming the sluggishness factor by using 3rd party frameworks.



krishnandu.sarkar said:


> This I disagree too. Because I have few friends over IBM and they work with Phonegap + Sencha. Yes they don't use Phonegap only, but mix up Sencha, KendoUI etc. But I don't know how do they overcome that sluggishness.



I read a bit about Sencha and found its purpose. Its a Javascript library to design UI's for HTML5 and also optimize touch performance.

This is from wikipedia:



Spoiler






> Sencha Touch is a user interface (UI) JavaScript library, or framework, specifically built for the Mobile Web. *It can be used by Web developers to develop user interfaces for mobile web applications that look and feel like native applications on supported mobile devices*. It is fully based on web standards such as HTML5, CSS3 and JavaScript. Sencha Touch aims to enable developers to quickly and easily create HTML5 based mobile apps that work on Android, iOS and BlackBerry devices, and produce a native-app-like experience inside a browser.






So you were right buddy. This is how guys at IBM overcome the sluggishness issues.

HTML5 App Development for Desktop and Mobile. JavaScript Frameworks and Dev Tools from Sencha. | Home | Sencha


Btw krishnandu,you use C# for android development or java?


----------



## krishnandu.sarkar (Nov 12, 2013)

Yeah Sencha is widely accepted thing, specially Sencha Touch. It's widely used at various places and applications.

Actually, Sencha, jQuery Mobile, KendoUI is what mix with HTML5.

Well I'm a C# developer professionally..!! But I love open source, so I know PHP, Python, use Linux everyday, and yes I hate Java, but love Android. So end up creating the app using Phonegap, but didn't used sencha. Then due to the problems moved to native app. I know J2SE.

Actually I know many things but it's like all the basics (like a college passout) and master of none 

I mean on side notes, I do many other things which are not related to my Job. Due to being a techie, they always ask for my comments and as I love to RnD, they ask to participate on those things too, like developing Android Apps, participating in installing and configuring Linux for their servers. sometimes basic networking..!!

I have basic knowledge on those things, as I love to know *how things happen* 

And yes regarding C#, I tried Xamarin once. But couldn't afford to buy, neither I found any other way out


----------



## masterkd (Nov 12, 2013)

How come you hate Java. Its a wonderful thing. Its true it has its disadvantages, but its really awesome as well.
BTW how is xamarin? Microsoft trying to promote it a lot, created a bit of buzz in my company.


----------



## ankush28 (Nov 13, 2013)

I dont think any android app developed with other languages will be as powerfull as by Java.


----------



## krishnandu.sarkar (Nov 13, 2013)

masterkd said:


> How come you hate Java. Its a wonderful thing. Its true it has its disadvantages, but its really awesome as well.
> BTW how is xamarin? Microsoft trying to promote it a lot, created a bit of buzz in my company.



Well, it's personal. One needs to write too much code for even a simple "Hello World!" and that's what I hate. Also non-existence of a good IDE with code completion, code hinting etc. is also a main reason. If one would have been there, I wouldn't mind developing with Java. Yeah I know very much about Eclipse, Net Beans etc. but it doesn't even come any closer to VS and it's features.

You see, a C# code and a Java code for 'Hello World" is almost same, and almost same number of lines of codes. But C# developers never realizes it, because of the automatic namespace import statement, namespace declaration statement, class declaration, main declaration statement. Only he needs to write is Console.WriteLine("Hello World!"); but in java only writing System.Out.Println("Hello World!"); won't work.

And as I said, other things like code completion, code hinting etc. all those VS features matters me a lot. And VS looks much cool to me 

But max of the time C# and .NET is never considered for Open Source development. So I try my ways out to be involved into Open Source. 

*NOTE : Java developers don't take this thing as harsh, as I said in the very beginning, it's personal. *



ankush28 said:


> I dont think any android app developed with other languages will be as powerfull as by Java.



That I don't know, and don't intend to be a Android Developer only because of this Java.


----------



## Mr.Kickass (Nov 13, 2013)

And besides, keep visiting XDA. They always have some news

[Random] Beginner’s Guide to the Android Debug Bridge

Another great resource for newcomers is this guy called TheNewBoston, you can go through the entire playlist

This is the first lesson
[YOUTUBE]SUOWNXGRc6g[/YOUTUBE]

And oh, btw he also has a Java Tutorial lined up for you


----------



## abhidev (Nov 13, 2013)

I have just started learning Android app development...and the xml based UI development of android can be sometimes a pain in the neck but the concept is kind of similar to css.

If you have app that has heavy animations and data layers then going the native way is a good idea else you have many 3rd party frameworks that are good enough but cannot go head on with native app in performance.

Moreover you can go with a hybrid app approach...where you'll have some parts of the app web based and some native based on the requirements.


----------



## krishnandu.sarkar (Nov 13, 2013)

Right for heave applications Phonegap type thing is not at all recommended. Native is the way to go.

Also Android's XML based design is similar to Silverlight / WPF's XAML approach. I didn't find any problems with it.


----------



## abhidev (Nov 13, 2013)

krishnandu.sarkar said:


> Right for heave applications Phonegap type thing is not at all recommended. Native is the way to go.
> 
> Also Android's XML based design is similar to Silverlight / WPF's XAML approach. I didn't find any problems with it.




yes its easy to understand but sometimes it doesn't behave the way it is supposed to be...

Like now I have a textview where i need to have rounded corners on both sides. For this I have used a linear layout and everything is working fine except the left rounded corner is not taking up the intended full asset width.


----------



## krishnandu.sarkar (May 2, 2014)

^^ C# - via Xamarin. Though read the comments about Xamarin above. It's still can't be considered for mainstream development.


----------



## amit_dhamankar (Jun 28, 2014)

I am really impressed by your answer


----------



## kaz (Jun 28, 2014)

I started learning when I was in B.Tech 2year with video tuts provided on Digit's DVD....Learned some basics and made a calculator with a splash screen and musics  And it ended there....
Have heard about appcelerator which uses javascripts, but cross platform development tools are not that effective plus support is also poor....


----------



## tekiagadi (Dec 19, 2016)

According to my Knowledge, Java is the programming language used for the Android Application Development.


----------



## aditiaggarwal (Feb 7, 2017)

Learn the basics of Android and Java programming. This class is designed for students who are new to programming and want to build Android apps.


----------

