
Preview the art of doing: install Android Studio, test with emulators, build apps using binding, fragments, navigation, and live data with MVVM for a culminating game.
Install and configure Android Studio, learn how Java and Kotlin work together, set up the JDK and SDK, and enable automatic imports for efficient Android development.
Learn to test Android apps using Android Studio's AVD Manager, creating emulators for phones and tablets across Android versions, and compare results with physical devices.
Enable developer options and USB debugging, then connect a physical Android device to your computer using Android Studio. Deploy your app to the device to reduce lag compared with emulators.
Explore essential Android resources for Kotlin development, including Gradle dependencies for lifecycle, ViewModel, LiveData, and navigation, plus color palettes from Coolors and graphics from IconArchive.
Open the main activity, extend the AppCompat activity class, and initialize the app lifecycle by overriding a lifecycle method. Inflate the layout using setContentView to connect activity_main with the manifest.
Learn how Android apps declare the entry point in the manifest, inflate layouts in onCreate, and edit layouts with the design tab and XML, using string resources and colors.
Explore the Android activity lifecycle by using logcat to observe onCreate, onStart, onResume, onPause, onStop, onRestart, and onDestroy, and learn how overriding these methods aids debugging and understanding app behavior.
Convert a constraint layout to a linear layout and create vertical or horizontal orientations to arrange views, using wrap_content, match_parent, margins, padding, and dp/sp.
Learn how choosing the minimum and target Android SDK affects device coverage and feature availability, and how vector assets become natively supported with Android 5.1, with Gradle configuration.
Connect a main activity to read a name from an edit text, attach a click listener to the update button, and display a personalized hello in a text view.
Learn to hide the keyboard from a window by using an input method manager retrieved via getSystemService in an Android Kotlin main activity, improving user flow.
Build a counter app by setting a starting number or choosing a random start, then increment or decrement by a chosen amount while viewing a calculation summary in linear layouts.
Explores building a multi-row layout for a counter app using horizontal and vertical linear layouts, edit texts, and buttons with weights, IDs, fonts, and color resources.
Learn to build an Android main activity in Kotlin by inflating a layout, wiring four buttons with click listeners, and using lateinit views for text inputs and outputs.
Implement main activity features in Kotlin: generate random numbers from -100 to 100 and display them, handle input with defaults, and enable increment and decrement with a live summary.
Explore how constraint layout enables precise view positioning through horizontal and vertical constraints, enabling flat view hierarchies and more complex layouts with necessary rules for each view.
Explore constraint layout basics by applying and removing constraints, anchoring views to the parent, and linking views for responsive, orientation-aware designs using margins, wrap content, match constraint, and percent sizing.
Explore constraint layout basics by building and styling horizontal and vertical chains, aligning chain centers, and controlling space with horizontal and vertical weights.
Design the coin flip app layout using constraint layout, create vector icons for heads, tails, and flip, add a simulate switch, an image view, and buttons for flip and reset.
Build an Android Kotlin layout that tracks coin flips with text views for total flips, heads, and tails, plus percent progress bars and an edit text with a simulate button.
Refine the coin flip app layout by cleaning up view IDs, adjusting margins, and tuning vertical bias for portrait, landscape, and tablet orientations.
Link the switch and flip, reset, and simulate buttons with onCreate listeners, and define late-initialized views for the coin image, counts, progress bars, and simulation input.
Implement reset and simulation features in a Kotlin Android main activity, updating counters and text views, toggling visibility with a switch, preventing division by zero, and refining percentage precision.
Preview the diaper tracker app for newborns, logging dirty, wet, or dry diapers with optional times using radio buttons, with a scrollable history and a reset button.
Build a diaper tracker layout with constraint layout, create color palettes and vector assets, implement a horizontal radio group for diaper types, and apply font styles with a default selection.
Extend an Android layout by adding a time edit text, styled controls, and two action buttons, plus a scrollable diaper changes list with image and text entries.
Refine the diaper tracker layout in Android with Kotlin by fixing the scroll view using match_constraint, applying text styles, and adding a bottom diaper count while testing in multiple orientations.
Learn to persist data through screen rotations in Android development with Kotlin using on save instance state and a bundle.
Explain the limits of onSaveInstanceState for configuration changes and show how a view model and binding replace find by id to persist UI data.
Refactor the Motivate Me app using view binding, enable it in the Gradle file, and access views via binding instead of findViewById. The method is faster than data binding.
Master view binding in Android with Kotlin by wiring click listeners, obtaining user input, selecting a random motivational message, updating the UI, and preserving state with bundles.
Learn to refactor a counter app in Kotlin using view binding, enabling binding in Gradle, inflating layouts, and handling clicks, text inputs, and random number updates.
Refactor the counter app to use view binding, implementing a change number function with increment and decrement, and persist state with a bundle across rotations. Explore data binding’s architectural benefits.
Have you found yourself confused, lost, or frustrated when following complicated Android Studio guides, not fully understanding what was going on?
Have you always wanted to make your own mobile application but never new where to start?
Have you done some basics in another language like Python or JavaScript and don't know where to apply your knowledge?
Are you looking to code in Kotlin, Google's official language for Android application development?
If you've answered yes to any of the above then this course is for you! The Art of Doing: Dive Into Android Development with Kotlin is a course that takes the time to lay a foundation and build upon it. We won't just get Android studio installed and rush through all it does for us in creating a project. Instead, we will walk through each file created and the given starter code, so you feel like you are in control of the applications you are writing! We'll continue on this trend of fully explaining and gaining a mastery level understanding of concepts as we explore various views, layout styles, view and data binding, fragments and navigation, and lastly MVVM architecture.
I'm a self learner. I know what it is like to try to teach yourself a subject and be left following code someone else wrote but not fully understanding what you've done. I've gone through various tutorials, constantly asking myself "what does this line mean?", "Why did they do that here?", "How does this actually work?". Those frustrations helped motivate me to create this course. While I may be a self taught programmer, I am a Master Teacher with a depth of experience in education. I know how to teach, how to relate high level concepts at a fundamental level, and what makes knowledge stick.
So often, when students ask for advice they are told to, "Go build something" or "Get involved on a project" but have no idea what projects to build or get involved in. This course will set you on your way! In this course I will walk you though, step by step, on how to to design the layout and the functionality of unique, engaging, and purposeful apps. By the end of this course, I promise that you will be coming up with your own app ideas and feel confident enough in your abilities to create them.
Together, we will work through 15 sections of this course. Each section will highlight concepts and ideas, explaining every step along the way and answering any questions you might have. I promise that you won't experience any of the frustrations I had while learning because I know how important it is to not just introduce knowledge, but also to provide context for that knowledge to grow.
I'm sure there are other introductory courses out there that will try to teach you more...but I would imagine that the depth of knowledge in those courses is shallow. My goal for this course was not to expose you to every single concept or idea in android development but rather provide you with the structure and context to feel like you fully understand the fundamentals presented to you in this course.
Anyone can follow a guide and retype what someone else has already written. But by taking this course, I believe you will have the confidence, knowledge base, and ownership of knowledge such that you won't have to follow someone else's work, but rather create something from your own mind. After all, I believe the highest level of knowledge is creation.
After taking this course, based on the way I break down each topic and present the material, you will have a mastery level understanding of the fundamentals of Android Studio, Android app development, and the Kotlin programming language. I hope to see you in the class!