• Post Reply Bookmark Topic Watch Topic
  • New Topic
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

Image from Mike Murach & Associates
Title: Murach’s Android Programming (2nd Edition)
Author(s): Joel Murach
Publisher: Mike Murach & Associates
Category: Other


Summary

Mike Murach & Associates wrote:If you know how to program in Java, this is the first book you should buy for learning how to develop Android apps the way the pros do; it'll save you a lot of time and frustration. First, it shows how to set up a professional development environment using Android Studio. Then, it presents a series of complete Android apps that illustrate key skills…working with fragments, services, broadcast receivers, SQLite databases, content providers, Google Maps, and more!




Book Preview (when available)



From the publisher
  • Table of Contents (PDF)
  • Chapter 1: An Introduction to Android and Android Studio (PDF)
  • Book Applications and Exercises (EXE for Windows or ZIP for any system)



  • Where to get it?
  • Amazon.com
  • Mike Murach & Associates



  • Related Threads
  • Joel explains the approach used in the book
  • Joel explains working effectively with CRUD operations in Android


  • Related Websites
  • Interview with Joel Murach on InfoQ
  • COMMENTS:
     
    Bartender
    Posts: 1210
    25
    Android C++ Java Linux PHP Python
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator
    As someone who first learnt Android programming from a confusing jumble of resources strewn across the Internet
    - from Google's tutorials to StackOverflow questions to any number of random blog posts that search threw up -
    I can honestly say I wish I had read this book first, because it would have saved me an awful amount of time and confusion.

    The book takes the reader along a gentle basics-to-advanced learning path that quite accurately addresses at every step
    what a new developer should learn next, both on the front end and back end.

    The book is organized into 5 sections, each spanning 3 to 4 chapters.
    The first two sections together, and then each section thereafter, implements one example application from start to finish.
    Every platform concept demonstrated by that example application is explained in its own chapter under that section.

    The sections are organized so that every example application is more advanced than - but also builds upon concepts learnt for - the previous one.
    This is a book meant to be read from start to end, rather than as a reference.
    After every chapter, there are a set of suggested exercises for practising and improving.

    Section 1 gives an architectural and historical overview of the Android platform.
    A "tip calculator" example application is developed to demonstrate basics of UI design and layouts,
    basics of building blocks like android activities, and detailed howto's on the Android SDK
    and the relatively new Android Studio IDE with ample screenshots and illustations.

    Section 2 goes into UI programming in depth. The same "tip calculator" app's UI is now enhanced.
    Different type of layouts and UI controls are demonstrated.
    Event handling is explained in a way that even a developer who is not familiar with any java UI programming
    can understand easily.
    Android menus, settings pages and fragments are covered.
    The chapter on themes and styles deserves a special mention because it does a good job of simplifying and understanding
    Android's rather confusing and intimidating XML based theming. It even covers the recently introduced and much hyped "Material" theme.

    Section 3 uses a "RSS feed reader" app to demonstrate backend programming concepts. Programming backend logic using threads,
    Android Services and broadcast receivers are covered.
    Typical tasks such as file I/O and network connectivity detection are demonstrated.

    Section 4 uses a "Task Todo" app to demonstrate storing application data in SQLite databases using SQL,
    and managing that data.
    It demonstrates implementing custom content providers to share data between applications, as well using
    system's content providers.
    One chapter covers design and implementation of app widgets, and the design of their intercommunication with their main app.
    There's also one frontend related chapter that covers tabs and list views.

    Section 5 walks the reader through the steps to publish an app to an app store.
    There's also a chapter on using location sensor and Google Maps API to develop a "Run tracking" mapping application.



    It's inevitable that a book on a vast platform like Android will miss out on some topics.
    This book does not address programming of graphical user interfaces using concepts
    like drawables, shapes and animations.
    It does not introduce reader to any kind of graphics, game, camera or multimedia programming,
    though the SDK has extensive support for all of them.
    It does not cover any sensors other than location sensors.
    It does not cover things like unit testing that are part of a typical development workflow.
    While most of the content is up to date with the latest Android version (Android 6.0 as of this writing),
    the new runtime permissions model introduced in Android 6 is not covered.

    Unfortunately, the 2nd edition too has not addressed some of the points reviewers mentioned
    for 1st edition.
    Monetization is still not covered in depth.

    I read the eBook version, and while the eBook itself is neatly formatted and laid out, the Locklizard
    reader app required to unlock and read it is downright horrible on an Android device.
    It manages to entirely spoil the eBook experience...loads excruciatingly slowly, crashes often and
    does not remember the page where you left off. For a ~700 page book, it's a usability nightmare.
    Even if it had worked fine, the page layout of the book itself - where text on the left page constantly refers to
    code snippets or illustrations on the right page - means it's best read on a wide display device that is capable of 2 page landscape layout.

    I advise avoiding the ebook version altogther, and getting the printed version.

    But overall, content-wise this is a really good book for beginners to learn Android programming.

    I give it 9 out of 10 horseshoes.

    ---
    Disclosure: I received a copy of this book from the publisher in exchange for writing this review on behalf of CodeRanch.
     
    Sheriff
    Posts: 21181
    87
    Chrome Eclipse IDE Java Windows
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator
    The second edition isn't very different from the first edition. It has some updated support for the newer Android versions, and now includes instructions for Android Studio instead of Eclipse. Otherwise it's mostly the same book. The remainder of this review is therefore a rehash of my review for the first edition:


    "Murach's Android Programming" is a good introduction into Android programming. The book requires only basic Java knowledge, and it shows at times. The book sometimes spends a bit too much time explaining code snippets that should be clear for anyone experienced in Java.

    The chapters discuss several controls and techniques, using good example apps. Unlike the previous Android book I read this book doesn't stop at the UI, but also explains how to write back-ground services and listen to broadcast events. After reading this book you will be able to write small-scale programs without much trouble.

    That said, there are two things that annoyed me about this book:
    1) When discussing releasing apps, the book mentions several billing options but then only describes publishing free applications. When referring to in-app billing or adds, the book literally says "To learn how to add XXX to your app, you can start by searching for "XXX" in the Android documentation". I expected a bit more coverage for these topics. The book might as well not even mentioned the possibilities.
    2) The first 16 chapters discuss several topics for creating apps. Chapter 17 then discusses publishing these apps, only for chapter 18 to follow with another possible feature to apps (map support). It's like "you now can create and publish any app you want. Oh wait, here's one thing we forgot". Chapter 18 doesn't refer to chapter 17 in any way, so it wouldn't have been hard to swap the two around. That way, the book first discusses all technical aspects followed by publishing. That would have made more sense to me.


    I give this book 8 out of 10 horseshoes.

    ---
    Disclosure: I received a copy of this book from the publisher in exchange for writing this review on behalf of CodeRanch.
     
    Rob Spoor
    Sheriff
    Posts: 21181
    87
    Chrome Eclipse IDE Java Windows
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator
    I got an email today in response to my review, regarding my second annoyance. I thought I'd let everyone know.

    Hi Rob,

    Thank you for the review. I would like you to know that we did consider switching chapters 17 and 18 in this edition, however Joel wanted to keep it this way because there is information in the deployment chapter that you need to know for chapter 18. Also, chapter 18 is one of the most complicated in the book, so he thought that by putting it last, colleges might not need to cover it all (if they didn't want to).

    Sincerely,

    Ben
    Mike Murach and Associates, Inc.

     
    • Post Reply Bookmark Topic Watch Topic
    • New Topic
    Boost this thread!