All the info and materials about the certification that I've collected so far
All the info and material about the certification that I’ve collected so far.
Scrolldown to the last page to see the Updated Materials
Pull Requests are welcome!
Feel free to make a fork and fill out the checkboxes as you go!
A checkbox in the editor will look like “[ ]”. You just need to put an x instead of a space to check it off, like “[x]”!
Thanks to Daita for this contribution.
Writing tests to verify that the application’s logic and user interface are performing as expected, and executing those tests using the developer tools. Candidates should be able to analyze application crashes, and find common bugs such as layout errors and memory leaks. This includes working with the debuggers to step through application code and verify expected behavior.
[ ] Write and execute a device UI test
[ ] Given a problem description, replicate the failure
Implementation of the visual and navigational components of an application’s design. This includes constructing layouts–using both XML and Java code–that consist of the standard framework UI elements as well as custom views. Candidates should have a working knowledge of using view styles and theme attributes to apply a consistent look and feel across an entire application. Understanding of how to include features that expand the application’s audience through accessibility and localization may also be required.
[ ] [Fragmented Podcast] Episode 071: UI UX development with GDE Raveesh
[ ] Mock up the main screens and navigation flow of the application
[ ] Describe interactions between UI, background task, and data persistence
[ ] Apply a custom style to a group of common widgets
[ ] Define a RecyclerView item list
Understanding of Android’s top-level application components (Activity, Service, Broadcast Receiver, Content Provider) and the lifecycle associated with each one. Candidates should be able to describe the types of application logic that would be best suited for each component, and whether that component is executing in the foreground or in the background. This includes strategies for determining how and when to execute background work.
- Describe an application’s key functional and nonfunctional requirements
- Create an Activity that displays a layout resource
- Schedule a time-sensitive task using alarms
- Schedule a background task using JobScheduler
- Execute a background task inside of a Service
- Implement non-standard task stack navigation (deep links)
- Integrate code from an external support library
Determining appropriate use cases for local persisted data, and designing solutions to implement data storage using files, preferences, and databases. This includes implementing strategies for bundling static data with applications, caching data from remote sources, and managing user-generated private data. Candidates should also be able to describe platform features that allow applications to store data securely and share that data with other applications in a secure manner.
[ ] Toggle application logic based on preference values
Extending applications to integrate with interfaces outside the core application experience through notifications and app widgets. This includes displaying information to the user through these elements and keeping that information up to date. Candidates should also understand how to provide proper navigation from these external interfaces into the application’s main task, including appropriate handling of deep links.
[ ] Create an app widget that displays on the device home screen
[testing_and_debugging_intro_testing_reggaroo]:https://riggaroo.co.za/introduction-automated-android-testing
[testing_and_debugging_intro_testing_reggaroo_1]:https://riggaroo.co.za/automated-android-testing-part-2-setup
[testing_and_debugging_intro_testing_reggaroo_3]:https://riggaroo.co.za/introduction-android-testing-part3
[testing_and_debugging_espresso_cheat_sheet]:https://google.github.io/android-testing-support-library/docs/espresso/cheatsheet
[db_udacity]:https://in.udacity.com/course/android-basics-data-storage--ud845
[db_treehouse_data_persistence]:https://teamtreehouse.com/library/android-data-persistence
[ui_ux_navigation_view]:https://antonioleiva.com/navigation-view
Android architecture components are part of Android Jetpack. They are a collection of libraries that help you design robust, testable, and maintainable apps. Start with classes for managing your UI component lifecycle and handling data persistence.
ViewModel Stores UI-related data that isn’t destroyed on app rotations. Note it doesn’t replace savedInstanceState
Room is an a SQLite object mapping library. Use it to Avoid boilerplate code and easily convert SQLite table data to Java objects. Room provides compile time checks of SQLite statements and can return RxJava, Flowable and LiveData observables.
Android Developers Page
[ ] Insert with @Insert DAO (Database Access Objects)
[ ] Update or delete existing items in a database Using DAO (Database Access Objects)
Android Architecture Components-Paging Libary
Thanks to Pheonix73 to contributing this section.
Copyright 2016 Arturo Mejia
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.