[Q] Any good books for Android Application Development? - Android Q&A, Help & Troubleshooting

I'm a C# developer by profession and have dabbled in Android application development in the early days of Android (prior to Eclair). At the time, I followed the Google Tutorial, various websites and bought a couple of books. However, I felt there were some things lacking explanation to fully understand how things worked. I've recently had the interest to revisit it. I know there's the Xamarin software that will allow me to develop Android applications using C# and Visual Studio but I was keen to stick with Java code and Eclipse. I know the Google Tutorial has been updated but a brief look at it still seems to show there's not enough explanation behind certain aspects.
Can anyone recommend a good book that takes you through a real and working Android application which has good explanations for things along the way?
TIA

Related

[Q] learning how to develop apps

i want to start making apps for android but dont know where to stat i have the sdk on my desktop but thats about it. If someone could please help me or push me in the next step please do so.
Just go to the dev guide on the Android website to start making your first Hello World app. As for language, Android (I could be wrong) uses Java. Again, I could be wrong.
Sent from my GT-I9000M using XDA App
Indeed, Android uses Java. I'd suggest learning it before attempting to program for Android or else you'll feel like it's gonna be too difficult. There's plenty of books on Java, and some powerful Google searching will lead you to step-by-step guides to learning Java.
Also, go through the Android Dev Center for a lot of information. There's plenty of guides there on things like 'how to design your app to flow with the overall android feel' and 'designing icons to fit general android homescreen look'.
You're gonna want to download Eclipse for Java Programming. It's a free Java development environment much like Dreamweaver and Visual Studio are for web development.
Oh, and PLAN! Like any good development project, your project will not get anywhere if you don't know where to start and when to end it.
Plan first. Then plan the planned elements. Java is object-based programming, and just like building a house each object needs to be solid or else it'll crumble to pieces.
Same here. Thx for the advice.
elindemann said:
Indeed, Android uses Java. I'd suggest learning it before attempting to program for Android or else you'll feel like it's gonna be too difficult. There's plenty of books on Java, and some powerful Google searching will lead you to step-by-step guides to learning Java.
Also, go through the Android Dev Center for a lot of information. There's plenty of guides there on things like 'how to design your app to flow with the overall android feel' and 'designing icons to fit general android homescreen look'.
You're gonna want to download Eclipse for Java Programming. It's a free Java development environment much like Dreamweaver and Visual Studio are for web development.
Oh, and PLAN! Like any good development project, your project will not get anywhere if you don't know where to start and when to end it.
Plan first. Then plan the planned elements. Java is object-based programming, and just like building a house each object needs to be solid or else it'll crumble to pieces.
Click to expand...
Click to collapse
Actually, you're doing things the hard HARD ...HARD way....
if you want to develop apps for android, Titanium Mobile (appcelerator.com) is the best way to go. It takes far less time to learn JavaScript , CSS and HTML then it does to learn pure JAVA, and then learn to implement Android's API.
There are a few things that Titanium Mobile can't do, but they are always working on it to make it better. And of course - it's free
I've made a few apps using it. Including an HTML eBook reader, Chinese Flashcard App, and a Simple Chat Client.
Their JavaScript API takes a bit to get used to, but after that, you can easily spit out a simple app in about a day or so.
I have a web-app Template that lets me dump a Web-app (html/css/js) into a project, and spits out a nice new shiny Android app ready for the market.... I also wrote code that lets you access the Menu Button on android too. So it's not like using PhoneGap where it's just a Browser session with an icon on your phone.
PM me if you're interested, and i'll show you everything i learned about Titanium Mobile so far (i'm still learning actually). Or if you want an app done, i can do it for you... free if it's easy enough
DaoMingJin said:
Actually, you're doing things the hard HARD ...HARD way....
if you want to develop apps for android, Titanium Mobile (appcelerator.com) is the best way to go. It takes far less time to learn JavaScript , CSS and HTML then it does to learn pure JAVA, and then learn to implement Android's API.
There are a few things that Titanium Mobile can't do, but they are always working on it to make it better. And of course - it's free
I've made a few apps using it. Including an HTML eBook reader, Chinese Flashcard App, and a Simple Chat Client.
Their JavaScript API takes a bit to get used to, but after that, you can easily spit out a simple app in about a day or so.
I have a web-app Template that lets me dump a Web-app (html/css/js) into a project, and spits out a nice new shiny Android app ready for the market.... I also wrote code that lets you access the Menu Button on android too. So it's not like using PhoneGap where it's just a Browser session with an icon on your phone.
PM me if you're interested, and i'll show you everything i learned about Titanium Mobile so far (i'm still learning actually). Or if you want an app done, i can do it for you... free if it's easy enough
Click to expand...
Click to collapse
Wow, I'm very interested. I might check it out.
sent from my pimp hero running Froyo CM6 and the XDA app
If you know the C or C++ language you could try out MoSync, depends what you like, some programmers like the level of control and speed you get from C++. If your content with simpler apps then maybe phonegap or appcellerator for you.
I guess that when mobile apps get more sophisticated javascript programs will be just as complex as C++ programs.
Thats my view, but then I like C++ better.
/Tony
MoSyncTony said:
If you know the C or C++ language you could try out MoSync, depends what you like, some programmers like the level of control and speed you get from C++. If your content with simpler apps then maybe phonegap or appcellerator for you.
I guess that when mobile apps get more sophisticated javascript programs will be just as complex as C++ programs.
Thats my view, but then I like C++ better.
/Tony
Click to expand...
Click to collapse
It really depends on how much control and you really need. If you're going to write games, then you do need speed that C++ and the Native Application Development API on android can give you. If you're writing a social networking app, the speed of C++ would really be an overkill.
As far as i've read, PhoneGap still has a lot of issues. And the build process is a bit more complicated than on Titanium Mobile.
If you're just using the regular Android API to write apps, i don't notice a lot of difference in speed execution between writing it in pure Java, or using Titanium mobile (using native code and UI elements - i don't mean putting everything into a WebView).
The current app that i'm writing now i don't think can be written using Titanium Mobile or PhoneGap (unless i added some native functions and did my own fork of PhoneGap).
More or less, i'm writing an App for Android and JRE/Linux systems that will allow me to enumerate, and access USB status bits, and USB data frames of a given USB device, and then allowing that USB device to be accessed through a TCP or UDP connection.
I might be able to do this with Titanium Mobile, but i don't think i can. As the only files you're allowed to access are on the SD card, application data directory, and temp directory.... i think there's one other place you're allowed to access too, but i never used it. However later today i might just try to see if i can access the /Dev/DSP01 (aka sound card) on an android device. If i can, i think i could write it using titanium mobile. I'm already halfway done with this app in pure java, so i wouldn't actually rewrite it in Titanium Mobile now.
DaoMingJin said:
if you want to develop apps for android, Titanium Mobile (appcelerator.com) is the best way to go.
Click to expand...
Click to collapse
Thanx mate!
If you looking a book or something to teach you the basics Beginning Java Programming for Dummies and Android Application Development in 24 Hours are good reads.
I'd rather not fill the forum with more threads so I'm just going to ask my question here. What is the best way to read the android dev guide on the device itself? Just going to the site directly? Ideally I'd like a pdf or something designed to be read on a small screen. The site can have formatting issues when read on a small screen.
Sent from my SPH-D700 using XDA App
I've been developing for a long time (nearly 30 years), and whenever I need to learn a new language I start with the Sams range, "Teach yourself whatever language in X days/hours". They're pretty good and this is available for Kindle, which is great if you use the Amazon Kindle app...
http://www.amazon.co.uk/Teach-Yours...1_fkmr2_2?ie=UTF8&qid=1287485537&sr=8-2-fkmr2
It obviously costs, but I really do rate those books as brilliant starting points. The rest is google and friends on here.
Hope this helps - good luck mate.
Personally, I've been coding in Java for what... four years now? I'm feeling dwarfed here by johncmolyneux but honestly, the best way to learn is to not use an IDE like Eclipse, but to use something that you have to hand-code everything yourself, such as Geany! You learn fairly quickly after writing a few applications.
If you are thinking "titanium", "mosync" or "phone gap" it is worth doing a bit of background research. There are several extremely powerful tools out there that can help you build cross platform apps - these are among the top ones.
bit more discussion about this here: http://forum.xda-developers.com/showthread.php?p=16703287#post16703287
There are a few useful reports comparing them - check out ours by googling "triballabs cross platform"
The Google App Inventor makes it pretty easy to create your own Android apps. Best part is you don't need to learn any programming languages. You won't be creating anything too complicated like a video game for example, but it's a good start nonetheless.
http://appinventor.googlelabs.com/about/
If you want to learn the basics of Java, then please check out a book called as "Head First Java". They really explain the basics with the help of real life examples to make things much simpler so that people understand.
Beginner app projects
I'm also just getting started with app development. Something I've been looking for is a beginner app project. Wish I could find a walkthrough of a simple app like a game of Hangman or something like that. I've been through the android developer training web site and got some good info but some things I'm still a little stuck on. Id Love to see an actual app (rather than just a mock up of some fields and buttons) and then a slightly dumbed down explanation of the code. Might be a lot to ask but man it would be great!

[Q] New to development!

Hey im a programming student in my second year and ive been wanting to play around with some android development (mostly because my school doesnt teach java or php. Im pretty experienced with visual basic and C#. But my questions is can someone help me out with a link to or something where I can take a look at some open source code for some android apps? It can be as simple as tic tac toe I dont car. Im just basically doing some research myself. Also is eclipse the best compiler for android development? Thanks
You can find quite a number of examples under 'Resources' on developer.android.com.
You may be interested to know that Eclipse is not a compiler, it is an Integrated Development Environment (IDE). What is better or not is largely a personal preference, but starting out you are likely to find more tutorials assuming you use Eclipse than anything else.
Source of pre-installed Android Appliaction is open. And you can program with eclips for Android App.
Sent from my LG-SU760 using XDA
Android is open-source, but not the apps.
You can run Eclipse, and create a new project from existing samples. You will be able to choose from a list (this samples come from the sdk, if you downloaded them).
There are some games (snake, ...) and demo apps like API demos.
And Eclipse is very good for Android development, especially if you use the plugin ADT tools.
I am more than happy to have all the eyes I can on my code. I would post a link, but (no rant here)...
AWOL: ArchWiki Offline
by
Tetractys Productions
Search for this on the Google App Store with search term "archwiki".
The code isn't great as I am a novice with both Java and Android, but you will find use of Activities, WebViews, Menus, using external Jars and perhaps a little more. If your scholarly background leads you to make a suggestion or two... please do.
Also... don't buy most of the books. They suck. The "cookbooks" seem pretty good and the Android Developer Documentation and Stackoverflow are your friends. I wasted enough money on Android books I will never read. Hope you don't fall for that too.
Rant:
10 post requirements encourages low quality posts. Perhaps its a good trade-off, but from where I'm sitting I'm drinking HaterAde.

[Q] Learning to develop Android app - should I learn Java first?

I learnt programming a long time ago (20 years ago) and back then I learnt C++. Fast forward to present, I have interest in creating an Android app and started doing some research. I bought some books and watched some video, downloaded Eclipse, etc.
Although I still remember some Object Oriented Programming concepts (Polymorphism, if-else-then loops, etc.), I never fully grasp some of the syntax presented in those study books / videos. This could be because I am a total noob when it comes to Java.
So my question is: is it worth it to learn Java first, completely independent on Android, and THEN learn Android programming?
PS: I did bought some Java books but I don't think some of the things there are applicable to Android. For one, I setup Eclipse with Android SDK and although I can create some Android app (even have it run on my phone! YAY!), I could not figure out how to write, compile and execute Java app in my MacBook (keep throwing a bunch of exceptions).
lanwarrior said:
So my question is: is it worth it to learn Java first, completely independent on Android, and THEN learn Android programming?
Click to expand...
Click to collapse
Of course. You need basic-medium java knowledge to develop your apps. About this...
lanwarrior said:
I don't think some of the things there are applicable to Android
Click to expand...
Click to collapse
It's not true. If something can be done in Java for PC, can be done in Android as well (in the same way, or using the Android way, easier and better, mostly times ).
Any recommendation on a good Java Book that:
- gets me up and running faster, since I am not focusing in developing a PC/MAC based Java app but Android app?
- Make use of Eclipse?
I suggest learning java first before you start app development so that you will understand what you are actually doing while writing the source code
Complete reference java is a good book to make your concepts crystal clear
for android app development tutorial you can refer thenewboston video tutorials and developer.android.com for understanding android os and API
Sent from my GT-S5670 using xda premium
How "deep" should I learn Java first?
I read some Jave books that covers really deep stuff that are over 1000+ pages, and there are books like the "Learn Java in 24 hours", etc.
I am just curious because I have read articles whereby people with no programming experiences had developed iPhone apps in months. I think Objective-C is harder to learn than Java because it does not have some of the great features like garbage collections, etc.
lanwarrior said:
How "deep" should I learn Java first?
I read some Jave books that covers really deep stuff that are over 1000+ pages, and there are books like the "Learn Java in 24 hours", etc.
I am just curious because I have read articles whereby people with no programming experiences had developed iPhone apps in months. I think Objective-C is harder to learn than Java because it does not have some of the great features like garbage collections, etc.
Click to expand...
Click to collapse
Throwing an Android app together is relatively easy, especially if you've got prior programming experience. Between the plentiful tutorials and stackoverflow to help with specific semantics, it's pretty straight forward to get what you want done. However, there's a big difference between getting something done, and getting it done efficiently - that's where having a fundamental grasp of the underlying language comes in handy.
When I was starting out I grabbed a couple different books, from basic Android programming to Advanced Java. I found Learn Java for Android Development to be a very decent read, and it was great for getting me up to speed on Java quickly, without going through basic coding principles I already understood from using other languages (or burying me in deep Java mechanics that I didn't really want or need).
--
Jason
rossja said:
When I was starting out I grabbed a couple different books, from basic Android programming to Advanced Java. I found Learn Java for Android Development to be a very decent read, and it was great for getting me up to speed on Java quickly, without going through basic coding principles I already understood from using other languages (or burying me in deep Java mechanics that I didn't really want or need).
--
Jason
Click to expand...
Click to collapse
Thanks for the recommendation on the book. Seems like a perfect book for me!
lanwarrior said:
I learnt programming a long time ago (20 years ago) and back then I learnt C++. Fast forward to present, I have interest in creating an Android app and started doing some research. I bought some books and watched some video, downloaded Eclipse, etc.
Although I still remember some Object Oriented Programming concepts (Polymorphism, if-else-then loops, etc.), I never fully grasp some of the syntax presented in those study books / videos. This could be because I am a total noob when it comes to Java.
So my question is: is it worth it to learn Java first, completely independent on Android, and THEN learn Android programming?
PS: I did bought some Java books but I don't think some of the things there are applicable to Android. For one, I setup Eclipse with Android SDK and although I can create some Android app (even have it run on my phone! YAY!), I could not figure out how to write, compile and execute Java app in my MacBook (keep throwing a bunch of exceptions).
Click to expand...
Click to collapse
I think u are on the right way.
Please go into android directly.
Do you have a specific idea what you want to create? If no, Get one. I had no idea about Java and Android, only knew visual basic and some c#, but I had an idea what I want to create. And this way i started watching basic tutorials and got some basic information how to do stuff(intents, the thing with the contexts). For me personally, learning the Java stuff was easy, as its really close to what i knew(and you know some c++, which gives you the basics). Simply read a little bit about the control structures and classes and Start making your app. And if you want to know how something works, Google it!
Btw: i am really young, so this shouldnt be a Problem for somebody older.
Gesendet von meinem SM-N9005 mit Tapatalk

[Q] Developing for the Android, where to begin?

I am toying with the idea of developing for the Android. It's mostly for fun and to see where it goes. I am a programmer, but do not know Java specifically. If i was to learn Java, i would need to learn it from scratch, but for a programmer, not for a newcomer to the programming field.
I downloaded Android Studio and can follow the guides, but i wonder: Is it better to learn Java first and then Android? Or is it better to learn Android first? And regardless of which, is there a level of basic learning that is "enough" to foray into the other. I ask this because it seems that guides for Android expect one to know Java already. Then again, someone told me he learnt how to do Android, and found Java snippets on the web as he went along.
If there is no specific answer, please lend your advice or personal experience. I am very interested in hearing what other have to say about this.
Do both together
Hey there,
I was a bit worse off than you because the only "programming" experience I had was MS Excel formulas but with some effort now feel pretty good about getting even relatively complicated things working in Android. Basically, I would recommend you learn both Java and Android at the same time.
Here's why:
- you need to get the Android Studio tool set up anyway, and it will do a great job showing you syntax issues and recommending changes as you go. In this way you can rely on Android's developer tools to help you learn basic Java.
- the Internet is chock full of sample code for Android. You can use that as a base, deploy it to a device, change it around, deploy it to a device (or emulator) again, and so on. It will give you both hope and eventual confidence when you're able to see the changes you make in Java actually reflected in an app. It makes it more fun too.
- in the end the majority of your time will be learning the Android SDK frameworks, and I was often able to use the Android documentation examples themselves to teach myself both Java and the Android platform's ins and outs.
Dive in and enjoy!

You are new to Android development? Consider reading this post!

Hi everyone. I want to share some resources that may helpful for anyone who still don't know where to start.
If you don't have any background, consider learning programming using Scratch or Alice. It seems just suitable for kids but actually for everyone who want to think logically.
If you have some basic background and want to have solid Java background (which I recommend) before moving to Android development, you should start with "Head First Java". They also have "Head First Android", but personally I don't like it so much.
After you have a solid Java background, you can start learning Android using this free course on Udacity. It has 5 parts that cover everything that you need to make literally any app on Play Store.
After you completed the above course, let's make your own project. You don't have to learn other courses or textbooks in order to make an app. You should try to make your own app using what you have learned with the above course. When you making your project, you will encounter real-life problems. By solving it (using Google, StackOverflow, XDA, other tech forums, ...), you will learn more than any course or textbook can help you.
I hope you will find this post helpful for you. If anyone has a question, please leave your question below
Hi, new user here. Thanks for the read
Hi,
I just signed up on this forum and came across this thread and so decided to post a question. First, i have been a full-stack developer and now working on Cloud, AI/ML but android mobile app development is new to me and i am pursuing a self-paced training. My intention is to start off by learning the basics of android and the ide, the various elements and work my way up to the advanced level. Then start learning and work on flutter. I have a fair bit of experience on Java as i have developed java enterprise and web application (JSP, applet based) in the past.
Right now, i am looking at the Android Basics to Advanced nanodegree program offered by Google on the android site, udemy, udacity, etc and lots others on the internet. just wanted your opinion which course would be a good place to start.
Thanks.

Categories

Resources