-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Welcome to the open-source Codepath Android Cliffnotes! Our goal is to become the central crowdsourced resource for complete and up-to-date Android content and tutorials. Just take me to the notes!
We have guides for everyone whether you are beginner, intermediate or advanced. Want to learn how to use the ActionBar or the ins and outs of fragments? We got that. Want to learn about testing or how to build flexible user interfaces for multiple devices? We got you covered. We don't waste time with the "theoretical approach" you might get from a book. We cover exactly the things we use every day as we are developing apps for contracts.
Ever been frustrated finding information on outdated one-off blog posts and tutorials that have long since become irrelevant? How many times have you been googling only to find your answer only exists on an obscure 2 year old StackOverflow post? We believe there's got to be a better way. Why not have the community work together to create useful and detailed documentation for every aspect of Android (or any platform)? There's absolutely no reason that we should have to make do with outdated, vague or un-editable content anymore.
Read about our mission to change the way engineers learn new technologies and we would love for you to get involved! In addition, we are at present a fledgling startup so if you like this guide and what we are trying to do, please consider following us on twitter @thecodepath or tipping us via gittip!
The cliffnotes below are categorized by their topic, so you can easily find guides on related topics whether that is views, styling, testing, or using sensors. If you see an error, incorrect explanation or deprecated solution, why not contribute back and make these cliffnotes better for the next person? That in a nutshell is the core spirit of this initiative. Check out the list of contributors to this project.
Disclaimer: We have scoured the web endlessly for content while creating these guides and adapted content from many source including the Google Official Docs, Vogella Tutorials and countless other sources that had hidden gems of information. At the bottom of each guide, there are citations for the content we used. We don't claim the content is original (although we did develop quite a bit ourselves), but unlike those other sources listed, it is freely community editable. We have openly adapted, modified and brought together this content from all the sources we could find for the benefit of every engineer.
Read more about us and our vision for all this. If you want to contribute to this guide, please read the Contributing Guidelines.
Totally new to Android? Start here.
- Setting up the Android Development Tools (Installation Slides)
- Architecture of Mobile Apps (Concept Slides)
- Developing our First App (Step-by-Step Todo App)
Exploring the foundations of app development:
- Android Directory Structure (Files and Folders for Android apps)
- Organizing your Source Files (Cleaning up your Apps)
- Using Resource Files (Understanding String Resources)
Exploring the gritty details of views, layout, styling and common UI patterns:
- Constructing View Layouts (How to layout views)
- Defining Views and their Attributes
- Working with Input Views (Spinner, RatingBar, etc)
- Working with the Soft Keyboard
- Drawables (and how to polish UI views)
- Animations (animating views, layouts, activities and more)
- Styles and Themes (consolidating view styles)
- Polishing a UI Tips and Tools
- Cloning a Login Screen Layout Guide (Creating attractive UIs, Q&A)
- Using an ArrayAdapter with ListView (with custom list items)
- Implementing a Horizontal ListView Guide
- Endless Scrolling with AdapterViews
- Implementing Pull to Refresh Guide
Exploring how to allow user interaction and navigation within an app:
- View Event Listeners (Clicks, Key Presses, Updates)
- Navigating Activities with Intents (Communicating between Activities)
- Exploring the ActionBar (includes adding ActionItems)
- Displaying Toasts (Quick notices and includes custom views)
- Common Navigation Paradigms (i.e Tabs, Swipe-able Views, Pull-out Drawer)
- Extended ActionBar Guide (Split-bar, Custom ActionBar, etc)
- Common Implicit Intents (Making a Call, Sending a Text, Opening a URL)
- Gestures and Touch Events (Swipe, Shake, or Dragging Events)
- Navigation and Task Stacks (Controlling the behavior of the task stack)
- Sharing Content with Intents (and ShareActionProvider)
Diving into the networking, model and persistence layers for data-driven apps:
- Creating and Executing Async Tasks (Long-running Background Tasks)
- Handling ProgressBars (with Long-Running Tasks)
- Sending and Managing Network Requests (API Calls, Image Downloading)
- Persisting Data to the Device (Preferences, Files, SQLite, ORMs)
- Converting JSON to Models (JSON => Objects Deserialization)
- ActiveAndroid ORM References (and Q&A)
- Using Parcelable (Needs Attention)
- Networking with the Volley Library (Needs Attention)
Understanding how to build powerful and flexible views using Fragments:
- Creating and Using Fragments
- ActionBar Tabs with Fragments
- Fragment Navigation Drawer
- Using DialogFragment
- Flexible User Interfaces (with Fragments)
- ViewPager with FragmentPagerAdapter (Needs Attention)
- Settings with PreferenceFragment (Needs Attention)
Exploring sensors, data and components available via the Android SDK:
- Loading Contacts with Content Providers
- Using Hardware, Sensors and Device Data (Camera, Photo Roll, Location)
- Google Maps Fragment Guide (and Setup Genymotion)
- Creating Contact Providers (Needs Attention)
- Video and Audio Playback (Needs Attention)
Digging into how to run background services or leverage Android system services:
- Starting Background Services (with ServiceIntent and Receivers)
- Notifications (Persistent Notices on the Dashboard)
Focused on issues like deployment, testing, dependency management, etc:
- Getting Started with Gradle
- Android Unit and Integration Testing (with Roboelectric and Robotium)
- Robolectric Installation for Unit Testing
- Must Have Libraries Guide
- Publishing to the Play Store (Slides)