Barqawiz / Android-Kotlin-Basic2Advanced

A series of Android Kotlin apps based on Google & Udacity trainings. One stop page to prepare for Android associate developer certificate.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Android Kotlin Basic2Advanced

A series of Android Kotlin apps based on Google & Udacity trainings. In addition to extra resources to cover latest MAD features and Android associate developer certificate requirements.

This repository includes Kotlin sample application created based on latest Android guidelines available in the following references:

You can use these applications as reference to learn more about Android latest features or to prepare for Android associate developer certificate.

Available applications

The applications tuned a little from the original course with more features to validate extra development capabilities or to work with latest Android studio and Kotlin releases in 2021 after the course:

Basics

All applications under /basic folder:

  • DiceRoller: the basic of Android layouts and actions.

  • Aboutme: how to use Android data binding features.

  • ColorMyviews: build responsive views with constraint layout.

  • AndroidTrivia: introduction to navigation graphs, navigation drawer and fragments.

  • DessertPusher: handling acitivty/ fragment lifecycle and observers.

  • GuessIt: a word guessing game to learn about application archeticture, viewModel and liveData.

  • SleepQualityTracker: room database, recyclerview, coroutines and basic unit testing.

  • GridSleepQualityTracker: room database and grid layout.

  • MarsRealEstate: demo app using viewModel & liveData with retrofit, glide and moshi in Kotlin.!

  • DevByteViewer: show case room database and retrofit2 with workManager using MVVM architecture.

  • Theme: themes, styles, overlays, attributes, tint and more.

Advanced

All applications under /advanced folder:

  • EggTimer: learn how to show and custom notifications (require to generate google-services.json from firebase).

  • CustomFanControl: design and implement the functionality of custom view to control a dummy fan.

  • MiniPaint: draw on custom view using a canvas and cache for better performance.

  • TodoTester: Write basic tests for a todo application, and choose between instrumented/ local tests.

  • firebaseLogin: Create user authentication using Firebase backend.

Extras

Projects to showcase the rest of the Android associate certificate topics, that was not fully covered in the kotlin series applications.
All applications under /extras folder:

  • MotionDemo: learn how to build widget animation using the motion layout.

  • MemoryEater: async task and memory leaks.

  • GitHubPaging: search GitHub for repositories displayed in paging list.

  • AppWithSettings: Simple settings fragment with toggle switch.

Android Certificate Topics

This section to show the topics of the Kotlin Android associate developer exam and related reference applications in this repository.

Core

Topic Application Filename
Toast EggTimer EggTimerFragment
Snackbar SleepQualityTracker SleepTrackerFragment
Snackbar Theme GdgListFragment
Create a Notification EggTimer NotificationUtils,
EggTimerFragment (createChannel),
AlarmReceiver [optional]
AndroidX DiceRoller -
Android KTX reference -
Android KTX (Navigation) AndroidTrivia MainActivity,
navigation_main
Android KTX (Room) GridSleepQualityTracker -
Android KTX (WorkManager) DevByteViewer RefreshDataWork,
DevByteApplication (setupPeriodicWorker)

User Interface

Topic Application Filename
ConstraintLayout ColorMyviews activity_main,
build.gradle
RecyclerView list SleepQualityTracker,
GridSleepQualityTracker
SleepNightAdapter,
SleepTrackerFragment,
fragment_sleep_tracker
Navigation drawer AndroidTrivia MainActivity,
activity_main,
navdrawer_menu
Custom view components CustomFanControl DialView
Start activity GridSleepQualityTracker SleepTrackerFragment
Start activity with result FirebaseLogin MainFragment (firebaseLauncher)
Share Intent AndroidTrivia GameWonFragment (createShareIntent)
themes Theme -
Lifecycles DessertPusher MainActivity
Paging library and flow GitHubPaging GithubPagingSource,
GithubRepository,
SearchRepositoriesViewModel,
ReposAdapter
Loading state footer GitHubPaging ReposLoadStateViewHolder,
ReposLoadStateAdapter,
SearchRepositoriesActivity (initAdapter)
Menu AndroidTrivia winner_menu,
GameWonFragment

Data Management

Topic Application Filename Fun
viewModelScope TodoTester TasksViewModel completeTask,
clearCompletedTasks
App settings with shared preferences AppWithSettings SettingsFragment, MainActivity (displaySwitchValue)
App settings with shared preferences firebaseLogin settings,
SettingsFragment
Room database and liveview SleepQualityTracker,
GridSleepQualityTracker
SleepTrackerViewModel (allNights)
Repository DevByteViewer VideosRepository,
VideoDao,
Network

Debugging

Topic Reference
Debugging https://developer.android.com/studio/debug/
Android logs https://developer.android.com/studio/debug/am-logcat

Testing

Topic Application Filename Test Method
Junit basic TodoTester StatisticsUtilsTest Local Test
Hamcrest
(English written test)
TodoTester StatisticsUtilsTest Local Test
Junit for liveData and viewModel
(AndroidX test)
TodoTester TasksViewModelTest Local Test
Fake viewModel repository TodoTester TasksViewModelTestFake Local Test
Dependency inject test TodoTester DefaultTasksRepositoryTest Local Test
coroutines test TodoTester build.gradle,
DefaultTasksRepositoryTest
Local Test
Fragment intigration test
(ServiceLocator, Espresso & Mokito)
TodoTester build.gradle,
ServiceLocator,
TodoApplication,
TaskDetailFragmentTest
AndroidTest
Mocks using mockito TodoTester TasksFragmentTest AndroidTest
runBlockingTest TodoTester TasksFragmentTest AndroidTest
Junit rule & coroutine dispatcher TodoTester MainCoroutineRule,
TasksViewModelTestFake
Local Test
Room and Dao test TodoTester build.gradle,
TasksDaoTest
AndroidTest
Room and local data source TodoTester build.gradle,
TasksLocalDataSourceTest
AndroidTest
End to end espresso test
(ActivityScenario used)
TodoTester TasksActivityTest AndroidTest

Important

Make sure to review the official exam guide:, for the latest updated exam topics: https://developers.google.com/certification/associate-android-developer/study-guide

Tools

The applications created using Android studio 4.1.1

About

A series of Android Kotlin apps based on Google & Udacity trainings. One stop page to prepare for Android associate developer certificate.

License:GNU General Public License v3.0


Languages

Language:Kotlin 100.0%