Phase 1: The Bare Essentials (Est. 2-3 Hours)

Goal: Understand the environment, the basic building block of a screen, and the Java syntax you’ll encounter most.

  1. Java for the Android Context (Video - 45 mins):

    • Resource: “Java for Android App Development for Beginners” by freeCodeCamp.org.
    • Link: https://www.youtube.com/watch?v=fis26HvvDII
    • Why: You’re an experienced dev. You don’t need a full Java course. This video is perfect because it’s taught in the context of building an Android app. You can skim or speed-watch the parts on loops/conditionals and focus on syntax for classes, inheritance (extends), interfaces (implements), and anonymous classes vs. lambdas (->), which are all over Android.
  2. The Core Building Blocks: Activity, XML, and Intents (Official Codelab - 1.5 hours):

    • Resource: Google Developers Codelab: “Build Your First Android App in Java”.
    • Link: https://developer.android.com/codelabs/build-your-first-android-app-java
    • Why: This is the single most important starting point. It’s official, hands-on, and incredibly efficient. It will teach you:
      • How to use Android Studio.
      • The relationship between an Activity (Java code) and its XML layout.
      • How to use basic UI elements like Button and EditText.
      • How to handle a button click.
      • How to use an Intent to navigate to a new screen and pass data.
    • This one Codelab covers the foundational knowledge for almost every UI task in the project.

Phase 2: The Modern Data Layer (Est. 3-4 Hours)

Goal: Master the entire backend architecture (Room, ViewModel, LiveData, Repository) in one go.

  1. The “All-in-One” Data Architecture Tutorial (Official Codelab - 3-4 hours):
    • Resource: Google Developers Codelab: “Room with a View (Java)“.
    • Link: https://developer.android.com/codelabs/android-room-with-a-view-java
    • Why: This is the silver bullet for this project’s backend. In one focused tutorial, it teaches you the exact, modern architecture we used. You will learn, by doing:
      • Room: @Entity, @Dao, @Database, and TypeConverter concepts are covered.
      • Repository Pattern: How to create a repository as a single source of truth.
      • ViewModel: Why it’s used and how it survives configuration changes.
      • LiveData: How to use this observable to make your UI automatically react to database changes.
      • Connecting to a RecyclerView: It even includes the UI connection.
    • Completing this single Codelab will give you 90% of the knowledge needed for the entire data persistence and display logic of the Vacation Scheduler app.

Phase 3: The “À La Carte” Features (Est. 30-45 mins per topic)

Goal: Learn the remaining, specific Android framework features as needed. These are best learned from direct, concise documentation or short video tutorials.

  1. Scheduling Alarms:

    • Resource: Article/Tutorial - “Scheduling Alarms with AlarmManager”.
    • Search Query: “Android AlarmManager BroadcastReceiver Notification Java tutorial”. This will yield numerous high-quality blog posts and short videos.
    • Why: This is a multi-component feature. A dedicated tutorial that ties AlarmManager, PendingIntent, and BroadcastReceiver together is much faster than reading the documentation for each part separately.
  2. Runtime Permissions (for Notifications):

  3. Share Intent:

    • Resource: Official Android Documentation.
    • Link: https://developer.android.com/training/sharing/send
    • Why: This is a simple, standardized feature. The official documentation gives you a direct, copy-pasteable code block that is exactly what you need. It’s the fastest way to learn this.
  4. Toolbar and Menu:

    • Resource: Baeldung Article - “A Guide to the Android Toolbar”.
    • Link: https://www.baeldung.com/android-toolbar
    • Why: Baeldung is known for clear, concise, code-first tutorials. This guide will quickly show you how to add a Toolbar to your layout, set it as the ActionBar, and inflate a menu resource into it.