-
Notifications
You must be signed in to change notification settings - Fork 6.3k
Home
Полный ноль в Android? Начинай отсюда.
- Getting Started as a Developer (New to programming?)
- Getting Started with Android (Detailed Post With Many Links)
- Setting up Android Studio (Installation Slides) or Setting up IntelliJ IDEA
- Installing a Faster Emulator (Genymotion Guide)
- Running Apps on Your Device (Hardware device setup)
- Developing our First App Using Android Studio (Step-by-Step Todo App)
- Architecture of Mobile Apps (Concept Slides)
- Mobile Screen Archetypes (Common mobile app screen categories)
- Todo App Guide (Todo App steps in guide format)
- Sample Android Apps (Code repositories)
- Keeping Updated with Android (Podcasts, blogs, newsletters)
- Effective Java for Android (Java best practices)
- Using Kotlin for Android development (Alternative syntax to Java)
Debugging Android. Отладка и устранение неполадок.
- Debugging Exceptions within your App (App crashing?)
- Debugging Android App Slides
- Troubleshooting Common Issues (Running into problems?)
- Troubleshooting API Calls (how to inspect network traffic)
External Resources. Great external content to explore.
- Android Resources List
- Android Tips and Tricks Repo
- Google Android Interactive Codelabs
- Google Android Glossary (Defining Common Terms)
- Android Resources Aggregated
- Android Learning Resources
- Awesome Android Complete Reference
- Free Android Curriculum (Additional Android resources and slides)
- Notate: Annotated YouTube Lectures
Using Eclipse? See below.
- Setting up Eclipse ADT (Detailed Slides)
- Developing our First App Using Eclipse ADT (Step-by-Step Todo App)
- Troubleshooting Eclipse Issues (Running into eclipse problems?)
Exploring the core of app development:
- Using Context (What is context and how is it used?)
- Android Directory Structure (Files and Folders for Android apps)
- Organizing your Source Files (Cleaning up source of your apps)
- Architecture of Android Apps (Understanding how apps should be structured)
- Understanding App Resources (Understanding Strings and Resources)
- Understanding the Activity Lifecycle (How does an activity work?)
- Handling Configuration Changes (Screen Rotation)
- Migrating to the AppCompat Library (Using the Support Libraries)
- App Permissions (How to request the permissions you need)
- Managing Runtime Permissions with PermissionsDispatcher
- Replacing Enums with Enumerated Annotations (StringDef, IntDef for validated types)
- Understanding the Android Application Class (Custom application object)
Exploring the gritty details of views, layout, styling and common UI patterns:
- Constructing View Layouts (How to layout views)
- Defining Views and their Attributes (Gravity, Margin, Padding, etc)
- Working with the TextView (Properties, Drawables, Custom Fonts)
- Working with the EditText (Properties)
- Working with the ImageView (Drawables, Size and Scale, Density, Raw Bitmaps)
- Working with Input Views (Spinner, RatingBar, etc)
- Working with the Soft Keyboard
- Working with the WebView
- Working with the ScrollView
- Applying Data Binding for Views (Data binding library)
- Drawables (and how to polish UI views)
- Styles and Themes (Consolidating view styles)
- Animations (Animating views, layouts, activities and more)
- Polishing a UI Tips and Tools (Links to key resources)
- Android Design Guidelines (Overview of Android design standards)
- Styling UI Screens FAQ (Answers to common questions around building screens)
- Cloning a Login Screen Layout Guide (Creating attractive UIs, Q&A)
- Developing Custom Themes (Integrating drawables, styles and themes)
- Material Design Primer (Lollipop Design Overview)
- Dynamic Color using Palettes (Adaptive colors, Android 5.0)
- Ripple Animation (Android 5.0)
- Shared Element Activity Transition (Android 5.0)
- Circular Reveal Animation (Android 5.0)
- Design Support Library (Material Design Library)
- View Hierarchy Animations (Android 4.0)
- Chrome Custom Tabs
- Using an ArrayAdapter with ListView (with custom list items)
- Endless Scrolling with AdapterViews and RecyclerView (Infinite pagination)
- Implementing Pull to Refresh Guide
- Implementing a Horizontal ListView Guide (Scrolls horizontally)
- Implementing a Heterogenous ListView (with different item types)
- Using the RecyclerView (Android 5.0)
- Heterogenous Layouts inside RecyclerView (Android 5.0)
- Using the CardView (Android 5.0)
- Using a BaseAdapter with ListView (alternate to ArrayAdapter)
- Basic Painting with Views (Simple drawing app tutorial)
- Defining Custom Views (Needs Attention)
- Extending SurfaceView (Needs Attention)
- Drawing with OpenGL and GLSurfaceView (Needs Attention)
- Building a Custom Animated Progress Bar (Exercise)
Exploring how to allow user interaction and navigation within an app:
- View Event Listeners (Clicks, Key Presses, Updates)
- Creating Custom Listeners (Defining, setting and triggering events)
- Displaying Toasts (Quick notices and includes custom views)
- Displaying the Snackbar (Quick notices with actions)
- Exploring the ActionBar (Includes adding ActionItems)
- Extended ActionBar Guide (Split-bar, Custom ActionBar, etc)
- Gestures and Touch Events (Swipe, Shake, or Dragging Events)
- Menus and Popups (Context Menu, PopupMenu, PopupWindow)
- Dialogs with DialogFragment (Displaying a content overlay)
- Implementing a Rate Me Feature (For getting Play Store ratings)
- Repeating Periodic Tasks (Handler, ScheduledThreadPoolExecutor)
- Using the App Toolbar (ActionBar Replacement)
- Floating Action Buttons (Android 5.0, Promoted Action)
- Handling Scrolls with CoordinatorLayout (Collapsing toolbars)
- Navigating Activities with Intents (Communicating between Activities)
- Common Navigation Paradigms (Tabs, Swipe-able Views, Pull-out Drawer)
- Common Implicit Intents (Making a Call, Sending a Text, Opening a URL)
- Navigation and Task Stacks (Controlling the behavior of the task stack)
- Sharing Content with Intents (and ShareActionProvider)
- Using Parcelable (Pass data fast between activities)
- Book Search Tutorial (Toolbar with SearchView and sharing content)
Diving into the networking and model layers for data-driven apps:
- Sending and Managing Network Requests (API Calls, Image Downloading)
- Displaying Images with the Picasso Library (Remote Image Downloading)
- Converting JSON to Models (JSON to Objects Deserialization)
- Leveraging the Gson Library (JSON deserialization library)
- Creating and Executing Async Tasks (Long-running Background Tasks)
- Handling ProgressBars (with Long-Running Tasks)
- Rotten Tomatoes Networking Tutorial
- Networking with the Volley Library
- Networking with the OkHttp Library
- Networking with the Fast Android Networking Library
- Consuming APIs with Retrofit
- Displaying Images with the Fresco Library
- Building Data-driven Apps with Parse
- Configuring a Parse Server
- Building Simple Chat Client with Parse
- Troubleshooting Common Issues with Parse
- Sending and Receiving Data with Sockets
- Building Data driven Apps with Firebase
Exploring the strategies for data persistence:
- Persisting Data to the Device (Preferences, Files, SQLite, ORMs)
- ActiveAndroid ORM Guide (and Q&A)
- Storing and Accessing SharedPreferences
- Local Databases with SQLiteOpenHelper
- Populating a ListView with a CursorAdapter
- Settings with PreferenceFragment
- Loading Contacts with Content Providers (CursorLoader, LoaderManager)
- Interacting with the Calendar (CalendarProvider)
- Creating Content Providers
- Clean Persistence with Sugar ORM (Installation, Queries, Migrations)
- DBFlow ORM Guide (Installation, Queries)
- Easier SQL with Cupboard
- Powerful Persistence with JDXA ORM
- Storing Secret Keys in Android (API keys, credentials)
Understanding how to build powerful and flexible views using Fragments:
- Creating and Using Fragments
- Displaying a DialogFragment
- Google Play Style Tabs using TabLayout
- Sliding Tabs with PagerSlidingTabStrip
- ViewPager with FragmentPagerAdapter
- Fragment Navigation Drawer
- Flexible User Interfaces (with Fragments)
- ActionBar Tabs with Fragments (Deprecated)
Exploring sensors and components available via the Android SDK:
- Accessing the Camera and Stored Media (Camera, Photo Roll)
- Retrieving Location with LocationServices API (Location)
- Listening to Sensors using SensorManager (Light, Accelerometer)
- Audio Playback and Recording (MediaPlayer)
- Video Playback and Recording (VideoView)
- Google Maps Setup Guide (and Setup Genymotion)
- Google Maps API v2 Usage (Markers, InfoWindow)
- Connectivity using the Bluetooth API (Needs Attention)
- Streaming Youtube Videos with YouTubePlayerView
Digging into how to run background services or leverage Android system services:
- Starting Background Services (with IntentService and Receivers)
- Notifications (Persistent Notices on the Dashboard)
- Push Messaging (Parse Push and Broadcast Receiver Overview)
- Google Cloud Messaging (Detailed GCM Implementation)
- Real-time Messaging (Needs Attention)
- Managing Threads and Custom Services (Looper, Handler, ThreadPoolExecutor)
Covering automated testing frameworks and tools for Android:
- Android Testing Options
- Unit Testing with Robolectric
- UI Testing with Espresso
- UI Testing with Robotium (Needs Attention)
- Android Testing Framework (Needs Attention)
Covers usage of more advanced third-party libraries and SDKs that save time and improve the maintainability of your code:
- Must Have Libraries (Networking, Persistence, Compatibility, Convenience, etc)
- Popular External Tools (Analytics, Crash Reporting)
- Dependency Injection with Dagger 2
- Reducing View Boilerplate with Butterknife (View Annotations)
- Communicating with an Event Bus (Using EventBus to publish and receive events)
- Using Parceler (Creating Parcelable objects)
- RxJava Intro (Intro to Reactive programming)
- RxJava and RxBinding (Reactive programming with Android views)
Covers guides specifically related to developing and publishing robust Android applications:
- Publishing to the Play Store (Slides)
- Publishing with Android Studio
- Debugging and Profiling Apps (Needs Attention)
- Android Best Practices
- Creating App Shortcuts in Launcher (Needs Attention)
Focused on issues like deployment, dependency management, etc:
- Getting Started with Gradle
- Using Android Studio
- Installing Android SDK Tools
- Building Gradle Projects with Jenkins CI
- Setting up Travis CI
- Collaborating on Projects with Git (Git, Team)
- Presenting an Android Device (Cast Device to Laptop)
- Recording Video of an Android Device
- Configuring ProGuard
- Lambda Expressions (Retrolambda and Java 8)
- Android for Work (Deploying Android to the Enterprise)
Created by CodePath with much help from the community. Contributed content licensed under cc-wiki with attribution required. You are free to remix and reuse, as long as you attribute and use a similar license.
Finding these guides helpful?
We need help from the broader community to improve these guides, add new topics and keep the topics up-to-date. See our contribution guidelines here and our topic issues list for great ways to help out.
Check these same guides through our standalone viewer for a better browsing experience and an improved search. Follow us on twitter @codepath for access to more useful Android development resources.