Best way to get started in app development - Android Q&A, Help & Troubleshooting

So I came into this with previous programing knowledge, but not knowing java. I've read a book on java, then the programing android book.
So from those of you that actually write apps for the android platform, what do you think is the next step? Just get to it already? Start using eclipse and its built in tools to get started and learn by doing and googling as I go along?
Is that the way most of you have got your start? Any other books I should pick up?
Thanks
Sent from my SCH-I500 using Tapatalk

Questions or Problems Should Not Be Posted in the Development Forum
Please Post in the Correct Forums & Read the Forum Rules
Moving to Q&A

I am getting started too, am beginner / intermediate java programmer with little experience. The android site has some nice resources.
Developer.android.com ... Resources tab: look at the tutorials. The Hello World is a nice intro. You will install the Android SDK, eclipse, write a simple app, and seeit in action using the emulator. I have done Hello World and Hello Views.
I'd also appreciate any advice / guidance from more experienced droid devs!
Sent from my Transformer Prime TF201 using xda premium

I've done that stuff so far. I've also played with the layout manager to.o. I th.ink I might start out making a sound board app. That seems pretty simple to do.
I'm just looking for some advice as the best way to precede

You're on the right way. The next step as a developer is just to develop software. Thats it.

You can look at some books and resources on the Internet to learn basics.
But I think the best thing to do is to imagine a mini-app (very simple, for example a calculator), and try to make it from scratch.
You'll learn how to search information and this will be less boring.
You can also create new projects from samples of the SDK, they are quite interesting.

Write code! Seriously. Screw the books (or you can waste money like me). I am sure that if you start building something like I have coming from a similar background, you will know what books to pick up when its time.
If you are a coder, just make up a project and learn Android in the trenches by figuring it all out as you go. That said, it would be invaluable to read up on the platform itself (the Android dev site is great) as programming for it is a bit different than what a lot of us are use to.
It's fun after you figure out the build environment on your platform. Also, if you are like me you live and die by text editors. That said, I have learned to finally embrace both Eclipse and Java thanks to Android.
EDIT:
I am now getting a lot of mileage out of Creating Android Applications by Chris Haseman. This is only after wasting money on books I wont read or that teach me to do things the wrong way. I was only able to make an informed decision after hacking together my first serious app. This book is packed with nuggets of insight from a and immediately answers questions I have from my experience with the ocassionally sparse documentation. I would highly recommend this book and because of it my future code is going to be very solid without the "did I do the right" feeling. <-- typed on g2x in Browser

Your right, I think I have enough background to dive in. I was playing around and created an app that plays mp3's when you click on buttons, didn't take long at all. Next thing I want to do is create a splash screen, and I took a quick look to see how to create buttons that are a picture and text, similar to the buttons in the google api sample.
Having fun with it so far.
Sent from my SCH-I500 using Tapatalk

Related

[Q] [Dev Question] So, here's the thing...

So, I've been a member for a while, and I've done my fair share of using everyone elses ROMs on my phones, starting from HeroC, to Moment, to Epic, to OG Evo, then on to TMo phones like the MT4G and Nexus S.
Now that I'm back on Sprint and rocking this beast of an Evo 3D, I'd like to actually CONTRIBUTE to the community. I give you Dev's/Chefs mad respect for what you do, and I'd like to be a part of that as well.
So, here's the actual questions for this Q&A thread: Is there any special programming knowledge I need to start cooking roms, or starting to dev? Do I need to know code? Do I need to be fearless with my own device? (lol) Is there a *For Dummies*-ish site/thread/forum that would be a good idea to read up on?
I realize that there are probably a million threads like this, spread all over the interwebz and these are PROBABLY some "OMG NOOB SEARCH" questions, but in my opinion the best place to go for information is directly from the source
Believe or not...the best source of info IS searching...not us...learn the basics...adb, java, XML, start small...learn Linux and learn, learn, learn....all great developers and chefs...are self taught...because what you learn on your own...you learn to ask questions to yourself,,,for yourself...it is either in you or not..a passion for knowledge in programming and or modifications of system cannot be taught for the drive..because if you search first and learn by doing with the tutorials...then and only then can you ask the right questions..
^^^ I've never seen so many ellipses. :s
@OP Yeah, I'm trying to do the same thing. I've picked up a book at B&N titled "Android Apps for Absolute Beginners", by Wallace Jackson. It's pretty up-to-date, and includes Honeycomb bits.
It's readable (as opposed to reference-able), and it's taught me quite a bit. I recommend you have a super basic background in Java (any object-oriented language would be good, but all the code in the book is Java and XML), something like Introduction to Computer Science or similar would do fine.
Good luck with that, and lemme know if you find any resources I should know about.
Zak Jones! said:
^^^ I've never seen so many ellipses. :s
@OP Yeah, I'm trying to do the same thing. I've picked up a book at B&N titled "Android Apps for Absolute Beginners", by Wallace Jackson. It's pretty up-to-date, and includes Honeycomb bits.
It's readable (as opposed to reference-able), and it's taught me quite a bit. I recommend you have a super basic background in Java (any object-oriented language would be good, but all the code in the book is Java and XML), something like Introduction to Computer Science or similar would do fine.
Good luck with that, and lemme know if you find any resources I should know about.
Click to expand...
Click to collapse
It's a bad habit.. I commend you on what you are doing...my background was I taught myself 8086 assembler for the at class back awhile ago. Nobody would help so I digested book after book and line after line of assembler and a language called Force. To make a Long story short, I wrote my first commercial assembler library with over 1600 functions! That's a lot of code. I was one person that wrote it, the manual and support over compuserve. I was very proud of and I believe no other language library even came near it. It was at the time the most feature rich one available with another library called Funcky II with around 1400+ functions. Both were C callable, large memory model. Today's hardware do not need that crap. Then eventually went into programming full time a little after that. So I speak from experience. It is one thing to ask for guidance and another for specific items. Every good programmer, without exception was self taught..yes they went to college for computer programming or others like me that did not..they shared a common theme which is self motivation and the discipline not to quit. I once asked a very good programmer what is the secret to becoming a great one and his reply was simply code and code away. A very good reference for programmers is in fact the library source. It is invaluable. Hope this helps a little bit. I did tout my horn, yes, but you needed to get a background so you would not think I was as my dad used to say "speaking out of my a?s".
life64x said:
It's a bad habit.. I commend you on what you are doing...my background was I taught myself 8086 assembler for the at class back awhile ago. Nobody would help so I digested book after book and line after line of assembler and a language called Force. To make a Long story short, I wrote my first commercial assembler library with over 1600 functions! That's a lot of code. I was one person that wrote it, the manual and support over compuserve. I was very proud of and I believe no other language library even came near it. It was at the time the most feature rich one available with another library called Funcky II with around 1400+ functions. Both were C callable, large memory model. Today's hardware do not need that crap. Then eventually went into programming full time a little after that. So I speak from experience. It is one thing to ask for guidance and another for specific items. Every good programmer, without exception was self taught..yes they went to college for computer programming or others like me that did not..they shared a common theme which is self motivation and the discipline not to quit. I once asked a very good programmer what is the secret to becoming a great one and his reply was simply code and code away. A very good reference for programmers is in fact the library source. It is invaluable. Hope this helps a little bit. I did tout my horn, yes, but you needed to get a background so you would not think I was as my dad used to say "speaking out of my a?s".
Click to expand...
Click to collapse
Nice, programming in assembler is no small feat. If you're familiar with Linux and Java you should have no problem figuring ROMs out. Dsixda has a kitchen he posted in the Android Chef's section that is very useful and apktool along with either WinMerge or Meld can be used to learn from the different ROMs.
It was a labor of love. I just seemed so cool in asm. Actually, what I want to write is a decompiler for the android with near perfect retrieval of code back. I seen the engine in smali and just do it for the heck of it. It has the parser in it..but I don't know java that well. Can't even write a hello world..) I was darn good in Delphi with windows and would be more comfortable with that. If somebody wrote simply a lexical for the small/ Bali output then that would all you would need for that type of program. I did not study java's reflection that good and it's another route. I want to give others who want develop the fun and passion I had. This was a hobby when I started. Years later, that hobby never left me. I respect the **** out of you and other developers out there, no matter what phone, tablet or computer because yes you are programming..you are giving something of yourself to others. Non programmers really do not know that developers for all the bugs and crap that comes with it...it is our soul, hearts and emotions that go into every line..every file we put out.
This you don't learn from a book..this you learn by making come alive what is inside our brains.
Thanks for the responses guys! Much appreciated. Looking forward to diving in head first!
Bigirish said:
Thanks for the responses guys! Much appreciated. Looking forward to diving in head first!
Click to expand...
Click to collapse
Have fun! I took xHausx suggestion and went to chefs central and it will help all new developers. Last night, went to the android forum section in there..hit last page of it and went backwards reading page by page and in that night investment..I found resources that are invaluable. I recommend you do the same. One thing I should tell you many out developer wanna bees out there...the only thing that sperates the ones who are and not is the simple fact..if they had a problem, they did give up. This may sound simple..but when you get frustrated...it is easy to throw in the towel.

Thinking about going into developing

Hi guys,
I think I have been an xda user long enough..so I though, why dont I try my hand in developing and be more of a giver than a taker in this great community.
Problem is, I dont know where to start. So if you dev guys could give me an effective learning path(study this first, then this, then this)..I would be most greatful!
Im not a developer by training(an accountant, of all things!!), however, I did get into IT audit so I know a little bit about the different flavors of unix..and I love coding(we use some scripting software in the trade, i know i know, its different) and i am never happier than trying to figure out how to make things work using code..
I know some of you may laugh at me, but I really am interested in this.
Thanks!
There's a great site here with lots of useful info
If your endgame is to develop for Android it might be best for you to jump in the deep end and start learning Java immediately. Don't worry about learning it by developing Android applications, just focus on developing on PC and you will have a much easier time. Once you've picked up the basics of Object Orientated programming then it's time to take a look at the Android APIs and go through some tutorials so you can see how the apps come together.
At the end of the day it's going to be a big job for you because you have very little experience. Unfortunately theres no real easy way out so you just have to put in the hours.
Yep!! Sleepless nights! Just like a real dev..hehehe... I do know some languages like vb..python..javascript..but that was just me muckin around..nothin serious also..already had the netbeans ide setup...and got my java hello world cherry popped..hahaha..so lame
Sent from my GT-I9100 using XDA App
DreadPirateDan said:
There's a great site here with lots of useful info
Click to expand...
Click to collapse
Thanks man!!! Looks good!
Sent from my GT-I9100 using XDA App
saunderez said:
If your endgame is to develop for Android it might be best for you to jump in the deep end and start learning Java immediately. Don't worry about learning it by developing Android applications, just focus on developing on PC and you will have a much easier time. Once you've picked up the basics of Object Orientated programming then it's time to take a look at the Android APIs and go through some tutorials so you can see how the apps come together.
At the end of the day it's going to be a big job for you because you have very little experience. Unfortunately theres no real easy way out so you just have to put in the hours.
Click to expand...
Click to collapse
Yes..that is my endgame..but i was hoping you guys could point me to some android specific stuff..like how kernerls work..etc..basically i want to know the environment first...using google doesnt really yield in depth stuff
Sent from my GT-I9100 using XDA App
Android is basically Linux with a custom UI.
If you want to know how kernels work (and you really shouldn't(!) if your goal is to make apps, as that's REALLY in-depth lowlevel stuff) just check out how Linux works - there's a million million articles on the net about the internals of Linux.
Android specific app development stuff, incl. tutorials and samples are here:
http://developer.android.com/guide/index.html
Maybe you just wanna setup the SDK and try to get the "Hello World" working, continue from there.
SDK: http://developer.android.com/sdk/index.html

Question for the developers/ modders

Its a question so that's why I put it here but it has to do with development so take it as you will....I understand to be a devlipe or kidder you obviously need a good base of Java and Linux knowledge. My question is since I'm trying to break into developing for android what are tips if any that any of you have for someone trying to start out?
Sent from my DROID X2 using xda premium
trafalger888 said:
Its a question so that's why I put it here but it has to do with development so take it as you will....I understand to be a devlipe or kidder you obviously need a good base of Java and Linux knowledge. My question is since I'm trying to break into developing for android what are tips if any that any of you have for someone trying to start out?
Sent from my DROID X2 using xda premium
Click to expand...
Click to collapse
Wouldn't hurt to tweet/message Ace or Dragon on twitter. Ace - @aceoyame Dragon - @dragonzkiller
Both of them are on regularly. Hope you get some answers.
Sent from my MB870 using xda premium
trafalger888 said:
Its a question so that's why I put it here but it has to do with development so take it as you will....I understand to be a devlipe or kidder you obviously need a good base of Java and Linux knowledge. My question is since I'm trying to break into developing for android what are tips if any that any of you have for someone trying to start out?
Sent from my DROID X2 using xda premium
Click to expand...
Click to collapse
Well, to start, get a book on Android Application developing, then download and install Eclipse. (It's best to do this in Linux, rather than Winderz, but there are several devs that work strictly through Winderz.) I use Linux personally as compiling ROMs you can only do in Linux as the Winderz tools don't work so well. If you are looking at developing applications, there are a TON of resources out there. Just Google it. If you are looking to do more with the Android OS, then learn Linux, it helps, a lot!
Hope this little blurb helps.
Ciao!
If you don't know Java, I would get a Java book first before even attempting to learn how to program Android. Most Android books assume you have Java and Object Oriented Programming experience.
And just reading the books won't do it. There is much to be said about experience. You could read a book, do all the code samples and then you think you know programming, but until you apply it, it's completely different.
All of my coding experience was self-taught at the beginning. It started with typing in programs from magazines on my Apple ][+ (and then eventually a //e). I would go in, type in the programs, debug them and get the to run. I would then see what would happen if I started changing things to see how it react. You really learn from your mistakes, because once you make one and correct it, it stays with you.
I also purchased books on programming and learned that way as well. Together, with typing in programs from other programmers, experimenting/changing/modifying their code, writing my own applications, etc, that's how I learned to program.
By the time I got to college to get my Computer Science degree, I had the basics of programming down pat, but I learned a lot more, but the stuff I learned was new and I didn't have to worry about the other basic aspects that some other people had to learn since they never really programmed before.
I'm also trying to get into developing. I've themed my X2, but that's about all the stuff I've done myself. I've edited the build.prop and stuff, but only with stuff other people wrote. I'm trying to learn Java, I've kind of got the structure down, but the code is the hard part for me, trying to remember what terms do what. And arrays too haha
My suggestion would be to learn Java and get familiar with Linux, I'm still trying to do both. Java is going to be the first language I fully learn. I've played around and attempted to learn C++ and Python. But I was easily distracted
Good luck on learning, its overwhelming!!! But once you start to dive in, things start stacking into place and make sense
Sent from my MB870 using XDA
I also use Linux and have taught myself Java even though km no wizard and am using g eclipse and working with some books on android development as well sounds like I'm at least pointed in the right direction at least
And on a side note I've used some flavor of Linux exclusivly for maybe 10 years now hate windows....last laptop I bought has a rwaltek wireless card in it or I would be using debian right now put could never get it yo work even using g wrappers...but that's a bit off topic sorry
Sent from my DROID X2 using xda premium

wants to learn coding/programming

i understand this question has been asked in similar ways but programming is quite broad so hopefully i can get a personalised response to help zone in on my learning.
bit of information about me:
ive been using computers all my life whilst doing a little bit of code tweaking for a variety of things such as; games(hex editting) web coding and even a bit of excel macro work.
i currently have no plans or commitments as of now and wanted to use my free days to learn something new that ive been intrested in since i was about 12 years old.
im looking for a base or a starting point in learning coding... i understand jumping straight into coding apps and things is way out of my reach but i guess i have to start somewhere! Im very much intrested in customisation and the ability to customise as much as possible on phones, games and applications but i have no idea where to start...
ive been looking around and people recommend learning all sorts of languages from:
php/css moving up to java
straight to java
python
c#
c++
c then progressing into c++
but id rather get an answer from a community that is notoriously skilled in the developing area so much so that i feel this is the best place to ask!
if there is anyone who also wishes to help me personally in helping me along the way and giving me some advice then please pm me as id be so grateful to have someone there to help me.
thanks in advanced for your responses im looking forward to learning and hopefully starting something that will be a major part of my life from now on.
Well, since this is a mainly Aneroid development website, and if you are interested in aneroid, I would just jump straight into Java. That's what I did at least... to learn Java just google "Beginner's guide to Java" or something. Hope this helps.
Sent from my Kindle Fire using XDA
i was hoping for more input then just one person, i would like to know what others feel is the best way to go about it so i can build up an idea of peoples opinions to see what i feel is the best strategy of learning.
i appreciate your input ballarous =)
penfold1992 said:
i was hoping for more input then just one person, i would like to know what others feel is the best way to go about it so i can build up an idea of peoples opinions to see what i feel is the best strategy of learning.
i appreciate your input ballarous =)
Click to expand...
Click to collapse
What are your development plans for? Do you plan on donning an apron and becoming a rom developer or do you plan on developing apps? You're setup will differ between the two but either way grab yourself a few good java books but understand it applies to Android differently than regular java. Learn the fundamentals of java, it's core rules etc but study googles open source api to see how you implement your phones system into regular java format. Here is a link to the Google source for developers (not source as in the source you sync to build Android, source as in how to implement phone apis into that source) http://developer.android.com/reference/packages.html
Here's some general app development guides that will broaden your understanding http://developer.android.com/resources/index.html
Sent from my Galaxy Nexus
From my experience...
It probably does not matter where you start... I personally started with web based languages like VBS, and javascript, then jumped into c++... I completely avoided Java until recently.
VBS or Visual Basic is used for excel macros so you already have some experience under your belt. It should be pretty simple for you to apply that same understanding to the different syntax of Java.

[Q] Old developer needs serious learning advice

Hello All,
Will try and keep this short: Am an old time developer, since 1979. I was self-taught, as a kid, never one class. The weakness there is that I never learned most of the terms.
So when learning new languages, it was harder since I didn’t have a reference point. i.e. may no longer be used, but I created “linked lists”, just never knew they were called that.
Anyway, I never got past using C and WinSDK. And I learned just enough Perl on the fly as I needed it to create some backend parts to some of my apps.
I am desperate to start a new project, preferring to do it on Android first. As hard as I looked for LOCAL developers with serious programming experience, and preferably some Voice SDK experience I failed. I tried Craigslist and Meet Up. Nothing.
So I need to do this MYSELF. Or at least start it and come up with the alpha-prototype on my own.
After all that explaining, what’s the BEST (and least expensive) means I can purchase to teach myself programming an Android device?
I always loved forums, we’re talking back when NEWSGROUPS were the way to go. Because out there was always someone who knew…and was willing to share their point of view.
Currently using a PC-Windows environment, so any IDEs in that arena would be preferred.
So any help, any direction would be so appreciated.
Many thanks ahead all,
Sergio
I would definitely recommend grabbing Android studio and looking through Androids developer docs. If you're familiar with java all you really need to know is the Android framework and how everything works together (lifecycles, passing data around, working with various sensors/hardware, etc).
Android studio is free so no cost to you there. If you're not familiar with java there are tons of good resources online
Sent from my XT1254
Hi!
I agree with @blackangus, i started programming for android with eclipse at that time and some tutorials i found online.
In my experience is a little bit frustrating at the beginning because is has some hard to understand concepts if you come from low level languages.
you can try to follow a basic lessons to start understanding the different parts like,
1) Views ( it cost me pretty much to understand how views and activities work)
2) Networking and async threads (restfull services calls and json manipulation)
3) Play services (push notifications, account registration and such)
this was the approach i took and it helped me a lot, i hope my humble guide helps you too.
5 years ago I got my intro to Android via Android App Inventor: http://appinventor.mit.edu/explore/
Good intro to Android concepts but drawing pictures instead of writing code still can't produce professional apps.
So I dove into learning Android Java. Nice...
My background was in C ; I never quite figured out C++ and have heard since that Java is superior anyway, written for OO instead of adapted from C.
I still program plenty of C for Android NDK low level code.
Before C, I did various assembly/machine languages, including the first CPUs in the mid 1970's and in early 80's front panelled a simple OS into an old PDP-11/05 to use an Apple clone keyboard and a "TV Typewriter" type 6847 Video board I built...
Now I'm wondering about iOS Objective C. Much more money still it seems in iPhones/Pads.
I am a newbie too. My background is microcontroller programmer, so i use C very often. When i start learning android programming, i begin with learning java and eclipse first, after i got the OOP concept, i begin learn to use android API and Android Studio....when we start from low level language, learning Java is easier... Java basic first then android API....
I am a serious coder, usually working with enterprise applications at my job. In my experience, if you need to learn something new, it is better if we get help from some friends or professional trainers. Saves us a lot of time and trouble. If you want to learn the basics of OOP and are going to build something, I suggest you get help of a professional trainer. You will be clear about the subject matter easily and with your experience, you will achieve progress within no time.
Wow. I don't feel so bad now. I'm and old geek too. I'm looking at trying to develop a simple game for Android. My last coding was in 1988 using COBOL. I'm a System Analysist but most of my experience was in medical systems and Digital Radiography. I'm basically a College Freshman.
Thanks for the information.
Can we keep this thread open or create another for Q&A from you wiz kids?
A funny note: I was involved with Search and Rescue in 1979. We were a driving force to get SAT phone's going but our budget only allowed for 2 satellites that year. We tested with a fellow driving in California while talking to us in Milwaukee. We only had a 20 minute window , then had to wait till the next.flyover 3 hours later. We've come a long way. Let's keep the momentum going!

Categories

Resources