Android Development from scratch like a pro

Using Android Studio 2, learn how professionals use code and design good practices
4.6 (60 ratings)
Instead of using a simple lifetime average, Udemy calculates a
course's star rating by considering a number of different factors
such as the number of ratings, the age of ratings, and the
likelihood of fraudulent ratings.
1,873 students enrolled
75% off
Coupon valid until Mar 1, 2017 7:59 AM UTC
Take This Course
  • Lectures 35
  • Length 5.5 hours
  • Skill Level Beginner Level
  • Languages English
  • Includes Lifetime access
    30 day money back guarantee!
    Available on iOS and Android
    Certificate of Completion
Wishlisted Wishlist

How taking a course works


Find online courses made by experts from around the world.


Take your courses with you and learn anywhere, anytime.


Learn and practice real-world skills and achieve your goals.

About This Course

Published 2/2016 English

Course Description

From your first empty activity, going through code smells, good practices, design patterns and refactoring, finishing with a CRUD application that uses a local database to store its information.

In this course we will go through all the steps required for you to start your own first application. But we will not do bad code to do that... we are professionals and care about our code since it is our product. Let's question together the practices and code that we generate throughout our application, trying to improve it step by step.

You can expect to see a lot of API, from RelativeLayout, LinearLayout, ScrollableView, Text and Rating views, Buttons, custom shapes, Intents, extra serializable information, SQLite, SQL, DAO, ArrayAdapter, dynamic ListViews, action menus, context menus and more.

You can also expect the same high quality teaching method that I apply in each and everyone of my 50+ courses at Alura and my other courses here at Udemy (check my ratings and students feedback).

This is not a course for those who want an easy and unmaintainable solution, this is a course for better developing our apps. Welcome to a better software development world!

What are the requirements?

  • Know basic Java or basic Android or some object oriented language

What am I going to get from this course?

  • Use good practices
  • Understand how to develop good and maintanable Android code

Who is the target audience?

  • Developers willing to create their first Android app
  • Android developers who want to question good/bad practices
  • Developers willing to learn good habits
  • NOT recommended for those who want to quickly copy and paste bad code
  • NOT recommended for those wanting to learn in quantity instead of learn what is good for their projects

What you get with this course?

Not for you? No problem.
30 day money back guarantee.

Forever yours.
Lifetime access.

Learn on the go.
Desktop, iOS and Android.

Get rewarded.
Certificate of completion.


Section 1: Activities, Layouts and Views
Application, Activity and Layout
List view, layout and view bindings
Section 2: Implementing a form while using good practices
Launching from a new main activity
Improving the design of the student form
Good practice: input types and their role in UX
ScrollView and the testing your app in Landscape and Portrait
Buttons, click listeners and toast
Section 3: Shapes, menus, intents and activites
Using custom shapes as view elements
Customizing the shape as a view element
Intentions, switching activities and inner classes issues with hot swap
Clean builds and hot swaps
Finishing activities
A better understanding
Creating an options menu
Action menu with custom behavior
Acting upon selection
Section 4: Patterns on reading data from the view
Reading data from a form
Pattern ViewHelper and a Good Citizen good practice
Object Orientation and our model
Reading ratings
Section 5: Database Access with SQLite
Saving to the database and the DAO pattern
Loading data from the database
Setting the id while loading the data
Understanding the activity lifecycle
Implementing another part of the activity lifecycle
Our model
Section 6: b6
The remove context action
Removing from the list
Removing from the database
Good practice: refactoring our code
Section 7: Editing content: dealing with extra events and passing data between activities
Dealing with all types of clicks
Intentions and serializable data
Filling the form: the dark side of the ViewHelper
Finishing the insert and update
Who am I

Students Who Viewed This Course Also Viewed

  • Loading
  • Loading
  • Loading

Instructor Biography

Guilherme Silveira, Software development educator at Alura

As a software developer I was tired of "language tutorials" and "bad practices courses". What about you? I want my students to finish a course and become capable of judging what is good and bad for their software, both on the short and long run. They should understand what they are doing, not just make use, but own their language and tools.

I have worked as a software development educator for the past 12 years, with experience in several countries, programming languages and environments. Learning how to program should be done as we learn things in real life: with real examples and a parental guide on what is good and what is bad for us.

My mobile experience started with Java ME in the early 2000's, went through Android and I have finally reached iOS development when Swift was first announced. I was given the task to write our company's main product iOS version using Swift and that experience together with many other language and API experiences can be seen in my courses.

I have closely worked with several user groups and communities in Brazil, where I was lucky to be invited to give talks at many conferences, including QCon, AgileBrazil etc. I am also the co-organizer of a well-known brazilian mobile development conference, MobileConf.

I am the cofounder of the biggest Brazilian web site on software development questions and answers, GUJ, creator of VRaptor, a java community expert on some JSRs and cofounder of Brazilian's tech book publishing company Casa do Código.

You can find more information about my career at my linkedin page.

Finally, as a personal note, I am a language lover, feel free to find me at twitter and chat in portuguese, korean, english, french or german, or follow my korean weekly blog.

Ready to start learning?
Take This Course