Best Resources?

Discussion in 'Android Hacks and Help' started by silverx10, Dec 5, 2009.

  1. silverx10
    Offline

    silverx10 Member

    Joined:
    Nov 22, 2009
    Messages:
    196
    Likes Received:
    0
    Trophy Points:
    16
    Location:
    Virginia Beach, VA
    Ratings:
    +0
    So I'm trying to get into the whole Android development thing, but I can't seem to find any solid books on the subject. The language has a base in Java, so could I just go get a book or three on that and then maybe some random Android book to bridge any gaps that arise?
     
  2. Backnblack
    Offline

    Backnblack Premium Member Premium Member

    Joined:
    Nov 18, 2009
    Messages:
    11,250
    Likes Received:
    6
    Trophy Points:
    153
    Ratings:
    +6
  3. silverx10
    Offline

    silverx10 Member

    Joined:
    Nov 22, 2009
    Messages:
    196
    Likes Received:
    0
    Trophy Points:
    16
    Location:
    Virginia Beach, VA
    Ratings:
    +0
    Problem is, I'm weary on these books now.

    I went and bought one of the books from Amazon, Professional Android Application Development, and just about every single line of code in the book generates errors in Eclipse IDE.

    When I confronted the author on it, he tried telling me that everything should more or less be the same with Android 2.0 as it was when he originally wrote the book a year ago, but... apparently not. The Eclipse errors testify to that.
     
  4. Backnblack
    Offline

    Backnblack Premium Member Premium Member

    Joined:
    Nov 18, 2009
    Messages:
    11,250
    Likes Received:
    6
    Trophy Points:
    153
    Ratings:
    +6
    I wonder why he is assuming that everything should be the same? Sounds as if he was lazy and pushed to book out without proper research.

    I'm looking into a local CC for classes myself....
     
  5. silverx10
    Offline

    silverx10 Member

    Joined:
    Nov 22, 2009
    Messages:
    196
    Likes Received:
    0
    Trophy Points:
    16
    Location:
    Virginia Beach, VA
    Ratings:
    +0
    Yeah, I was questioning why he wouldn't just go and look at the new SDK himself, and say, "Wow, things are a bit more different than I'd originally thought, I'd better go and make some revisions for the new copy being pushed out."

    Fortunately, Amazon has a great return policy, so I think I'll be doing that with this particular book pretty quick.

    And though I'm not an expert programmer by any stretch, I come from at least a Visual Basic background, so I consider myself at least a little knowledgeable.

    And I was looking into a Sam's guide for Java, seemed pretty thorough. But again, didn't want to get it without knowing how much ground is shared between Android and straight up Java.

    Good luck on the CC route, though. Checked out my own, and all they offer is C++. Bah.
     
  6. silverx10
    Offline

    silverx10 Member

    Joined:
    Nov 22, 2009
    Messages:
    196
    Likes Received:
    0
    Trophy Points:
    16
    Location:
    Virginia Beach, VA
    Ratings:
    +0
    Alright, so that being said, I guess forsaking Amazon as a whole wasn't the most prudent thing I could do. I went back and ordered two new books, one on Java programming in general, and then this one:

    Amazon.com: Hello, Android: Introducing Google's Mobile Development Platform (Pragmatic Programmers) (9781934356494): Burnette Ed: Books


    Just checking out some of the online examples at the site (which you can find here), I've pretty much decided that this is gonna help substantially with the learning curve.

    I'll post updates as applicable.
     
  7. andjarnic
    Offline

    andjarnic Member

    Joined:
    Nov 7, 2009
    Messages:
    239
    Likes Received:
    0
    Trophy Points:
    16
    Location:
    Sacramento area, CA
    Ratings:
    +0
    I've read all those books, and while they did help me understand Android a bit, they didn't quite satisfy me with every aspect of it.

    Here is a book I signed up for, it's actually 3 books. You pay $35, and you get a year membership. The author responds to emails, is very knowledgeable with Android, and is on the google android forums as well.

    CommonsWare

    Well worth it. His approach to the books is as if he's a buddy that is just chatting with me over some coffee. So far it's the best I've found and while I am only a few chapters in on the first one, I checked out the chapter on deploying to Market in the advanced book and it was by far the best info I've found about the entire start to finish experience.

    Hope some of you find it as useful as I am. Incidentally, it's the only resource I have found that discusses Android 2.0. I haven't found anything specific on it just yet, but the year membership includes updates and anything else he may put out.

    I'd REALLY love to see an advanced game/music based book for Android. How to establish a solid game loop, avoid garbage collection as much as possible, mix many audio sounds with background music, animate, collision detection, AI, and more, would be a VERY good book to come by!
     
    Last edited: Dec 9, 2009
  8. andjarnic
    Offline

    andjarnic Member

    Joined:
    Nov 7, 2009
    Messages:
    239
    Likes Received:
    0
    Trophy Points:
    16
    Location:
    Sacramento area, CA
    Ratings:
    +0
    silverx10, if you have almost no java knowledge, and are basing this off of Visual Basic experience, you have a long road ahead of you. Unless you want to be one of the many developers that don't understand not only java, but the inner workings of JVMs, garbage collection, memory management and "pointers", and more so the details of the android lifecycle... you're going to be spending quite some months really digging in on learning java entirely (the language, not the much vaster libraries available), and that is just the surface. Too many apps on Android crash due to not following the basic rules of android life cycle. Sadly, what has happened on iPhone is going to happen 10x over on Android since there is no restriction on apps submitted like iPhone does. Because every person who has a wee bit of computer experience thinks they can write an android app in a month, the market is already getting polluted with programs that crash quite a bit. Worse, because unlike iPhone, android apps can linger around, they drain the battery often times. I've had several apps that I quit (hit back, home, etc) and 40 mins later my phone is dead. Why.. cause they got some thread or service still running, using up cpu time.

    I don't mean to put you down, not trying to at all. Just that you should know ahead of time that learning the java language is one part of it, learning the java libraries that you can use on android is a bigger part, then there is learning the android libraries, and the lifecycle and all that good stuff. You don't have to memorize most of it, but knowing where to look, what to ask, how to tinker with things, is going to take some good amount of time before you'll come close to being proficient and that's all before you really get started on any sort of serious android app.

    As a Java veteran of 10+ years, I am a good month in on a few hours here and there, and far from fully understanding the capabilities of Android. Game programming is one of the areas I want to pick up on and I expect several months if not longer before I can put out a basic decent game. Sure I can lift example code form the google demos, but they are far from examples I'd want to use for a high quality games with high end graphics, sound, music, AI, etc.

    Anyway, for what it's worth, just keep in mind it will take quite some time to pick up and learn it all, but between this forum and google dev forums, you should have plenty of resources to help you along the way.
     
  9. silverx10
    Offline

    silverx10 Member

    Joined:
    Nov 22, 2009
    Messages:
    196
    Likes Received:
    0
    Trophy Points:
    16
    Location:
    Virginia Beach, VA
    Ratings:
    +0
    Put me down? lawl, nah. Your post didn't do that by a long shot.

    It doesn't take a genius to realize that there's a significant difference between Visual Basic and just about every single programming language out there.

    Code:
    Private Sub Command1_Click()
         MsgBox "Clicked!"
    End Sub
    Is in almost no way, shape, or form, similar to anything in anything else. But there are still similarities, hence my even bringing up Visual Basic in the first place.

    That being said, Android development really doesn't look that difficult at all. The SDK and DevGuide and other resources that Google provides are all quite top notch.

    In regards to your... "Android lifecycle", well... that's been covered quite well in depth in both books I've read thus far, and is also not that difficult to wrap your mind around.

    People who think Programming is for computer experts are not only wrong, but incredibly condescending, I think. With just a bit of time and effort (and of course, the right instruction where necessary), almost anybody can learn to code.

    And code properly.

    Though I do appreciate your insight and suggestions.

    And as far as the iPhone App Store's more stringent requirements for app submission, I find that as more of a flaw than anything else. The Android Market Place is more of an app store for the people.

    We get to try them all: the good, the bad, and the ugly. And then we vote down the bad and the ugly, and vote up the good.
     
    Last edited: Dec 10, 2009
  10. andjarnic
    Offline

    andjarnic Member

    Joined:
    Nov 7, 2009
    Messages:
    239
    Likes Received:
    0
    Trophy Points:
    16
    Location:
    Sacramento area, CA
    Ratings:
    +0
    I agree and disagree with you... agree that with the right bit of work/effort you can learn, and disagree in that not "anyone" can learn it. I have found after working with many CS degree colleagues over the years that some are just totally not cut out for it, period. They can't grasp simple things no matter how many times you explain it, and that is all well and good. But, in your case, I would agree that if you have the right mindset, which I suspect you do, you'll pick it up. If you can read the Android books and get the gist of what they say, you'll be fine. The more important thing is understand the language in my opinion, wrapping your head around OOP, the concepts of inheritance, polymorphism, and all those other big resume words that you almost never use on the job. :D I still find it very useful to understand a lot more than just the language, but also how the JVM in general works. How it loads classes, deals with memory, how "pointers" in Java really work (and why you should know about them), how to work around the GC kicking off, and so forth. Those are the concepts that to me, separate the boys from the men. You spend a few months learning (and asking questions.. be happy to help, just PM me if you need any help), you'll learn it.

    As for the iPhone, there is both a pro and a con with it. As my buddy says (who believes iPhone will always provide a more robust/well rounded environment over Android), the benefit of Apple being so strict, as well as only having their one "device", is developers know that the hardware specs are the same (for the most part.. you could argue the old 3G vs the new 3Gs spec difference), and they know that their app has to pass a set of somewhat stringent tests in order to get approved (along with being appropriate). That does allow for a certain level of built-in quality control on apples part. On the other hand, you lose out on many of the things Android is going to allow developers to do, including working directly within the apps that ship with the phone, like contact management and more gps control.

    In the end, I think Android will take a commanding lead over iPhone in terms of apps and overall market share of devices. But, I still think iPhone will represent a big chunk of devices out there in the coming years. There are just too many apple fan boys, and while they may not represent the same market share in the PC world with only 8%, the power and capabilities of smartphones may make PCs almost a thing of the past for all but the most demanding uses. I would honestly not be surprised to see in two to three years time, a smartphone (be it iPhone or android) that has the pico projector, laser keyboard and such built in, and the ability to dock to a monitor, keyboard/mouse, etc and most people will just use that. Already with wifi if you could connect a keyboard/mouse/monitor to one of these they would be plenty for most users who basically use just a browser to do everything. This is probably why google is building the OS in the same manner..they realize that most apps on the web are as good as any desktop, and with central storage, they can simply go anywhere and access everything. I am looking forward to that to be honest! Can't wait for most users to be centralized and standardized on a browser only setup. Would make it a lot easier to deal with my family who always get viruses, download things, etc. Probably will make the virus market a lot tougher too.
     
  11. petjakob
    Offline

    petjakob Member

    Joined:
    Nov 29, 2009
    Messages:
    136
    Likes Received:
    0
    Trophy Points:
    16
    Ratings:
    +0
    Interesting discussion you have going here. I come to android with plenty of understanding of object oriented programming but never have learned java or the VMs it uses. I did a lot of coding on a project with javascript derived language, just coding within classes and objects already defined in the environment engine. I find that it feels the same on android- The code and syntax looks identical, and what I am wanting to accomplish feels very much the same since there is so much that is defined already in terms of how you will interact with the android system.

    I do think it requires a certain quality of thinker to be able to design with programming. My wife recently learned python in her undergrad studies, I might not have expected her to be that particular type of thinker--- you never know. I've always found object oriented to be particularly engaging because it encourages the designers to think about the best way to organize data so you can avoid redundant code and keep your process efficient and modular. Keeping it easy to change, easy to implement in different settings, and most importantly easy to explain through commenting documentation is always the challenge goal I keep in mind.

    So far I've found the most helpful discussions and tutorials over at anddev.org. I used their andbook to get a start and have been working from tutorials there to ensure I am approaching things the right way for what I want to do.
     
  12. andjarnic
    Offline

    andjarnic Member

    Joined:
    Nov 7, 2009
    Messages:
    239
    Likes Received:
    0
    Trophy Points:
    16
    Location:
    Sacramento area, CA
    Ratings:
    +0
    pet,

    When you say "plenty of understanding of object oriented programming" are you referring to what JavaScript coins OOP? JavaScript, while a decent start, is far from learning Java. By this I mean, not that you can't learn it, of course you can if you understand Java, but the OOP part of the language is so small compared to the rest of the picture. OOP applies to pretty much all languages that are centered around it.. just different language syntax. What is vastly more important (or at least.. on the same level as) is understanding the inner workings of the JVM, how it deals with memory, how it handles loading of classes, unloading, GCing, how it finds things (like classes, property files, etc), how to configure the classpath, the environment (if necessary.. although not for the Android), how to handle threads correctly, and more. I learned quite a bit while working on an open source plugin engine that really delved into a lot of these more difficult topics that can and do apply to Android development as well. It opened my eyes to a whole new world of Java development that taught me to really appreciate the finer art of writing code. Prior to Java I was a C optimizing freak. I tried to write code as small and fast as possible. With Java I still do that, I try to avoid the "usual" method of just writing tons of code.. and later optimize. Probably rooted in my C days, but I can't help but think about optimizing from the start, and with a platform like Android, in my opinion it's the perfect way to write apps. Even the google dev team has a list of things you should do differently when writing Android apps.. including optimizing early and often instead of later, due to the limited resources and cpu capacity of the devices.

    All that said, I encourage you to go for it! It's a lot of fun to write code, and honestly I think not only is it the single best platform for developers that want to express their ideas but not get a bank loan to try to market their idea, to succeed. The middle man is cut out, 30% to google/carrier, 70% to you, simple as that. Of course, trying to get your app noticed and downloaded (and hopefully bought) is another story. Word of mouth, reviews, seems to be about the only way to do that right now on Android. iPhone has several commercials now showing off a ton of games and some apps, that may help those particular items, but if you write an app or game and someone does a search and 5000 results come back, chances are slim they'll find your particular app.. and there doesn't seem to be no rhyme or reason for one app to be at the top of the search results than any other. I do love that Android Market has a "recently added" list. That is nice to be able to see what's new on the market (or updated).
     
Search tags for this page

how does object oriented programming ensures the prevention