Difference between revisions of "Android"
(→View Binding) |
(→Buttons) |
||
| Line 171: | Line 171: | ||
* https://developer.android.com/guide/topics/ui/controls/button | * https://developer.android.com/guide/topics/ui/controls/button | ||
| + | |||
| + | === Broadcast Receiver === | ||
| + | |||
| + | * https://developer.android.com/reference/android/content/BroadcastReceiver | ||
=== Connecting === | === Connecting === | ||
Revision as of 19:31, 9 August 2021
Contents
- 1 Android
- 1.1 See Also
- 1.2 Android
- 1.3 Android Developper
- 1.3.1 Java for Android
- 1.3.2 Kotlin for Android
- 1.3.3 C/C++ for Android
- 1.3.4 Material Design
- 1.3.5 AndroidX & JetPack
- 1.3.6 Android SDK Documentation
- 1.3.7 facebook SDK for Android
- 1.3.8 Google Codelabs
- 1.3.9 Android Training
- 1.3.10 Android Tutorials
- 1.3.11 Mongo DB
- 1.3.12 Android Architecture Components
- 1.3.13 Android Dev Tools
- 1.3.14 Android documentation
- 1.3.15 Android Blogs
- 1.3.16 Android books
- 1.3.17 Android Articles
- 1.4 Android Topics
- 1.4.1 API level and OS releases
- 1.4.2 Android Application architecture guide
- 1.4.3 Application() object
- 1.4.4 Android LifeCycle Cheat Sheets
- 1.4.5 Android Jetpack
- 1.4.6 Android X
- 1.4.7 Activities
- 1.4.8 Animations
- 1.4.9 Buttons
- 1.4.10 Broadcast Receiver
- 1.4.11 Connecting
- 1.4.12 coroutines
- 1.4.13 Data-Binding
- 1.4.14 Data and File storage overview
- 1.4.15 Device running and debugging
- 1.4.16 Intents
- 1.4.17 Lifecycle, activities and fragment, architecture component, jetpack, android X
- 1.4.18 LiveData, architecture component, jetpack, android X
- 1.4.19 Layout and Bindings Expression
- 1.4.20 Layouts
- 1.4.21 Life Cycle, Transformation Maps and Bindings Expression
- 1.4.22 Fragments
- 1.4.23 Media , Formats etc...
- 1.4.24 Navigation, architecture component , Android JetPack
- 1.4.25 Parcelables
- 1.4.26 Permissions
- 1.4.27 Resources
- 1.4.28 Room, architecture component , Android Jetpack
- 1.4.29 room and coroutines
- 1.4.30 RecyclerView RecyclerViewAdapter
- 1.4.31 Samples on github
- 1.4.32 Shared Preferences
- 1.4.33 SQLite
- 1.4.34 Snackbar , MaterialUI
- 1.4.35 Text Appearence
- 1.4.36 Testing
- 1.4.37 Vibrator API
- 1.4.38 View Binding
- 1.4.39 Work Manager
- 1.5 Android Studio
- 1.6 Android on Youtube
- 1.7 Android Trainnings
- 1.8 Android NDK
- 1.9 Android Wear
- 1.10 Android TV
- 1.11 Android Car
- 1.12 Android Things (IOT)
- 1.13 Android on Chrome OS
- 1.14 Android AOSP
- 1.15 Android Devevelopment
- 1.15.1 a Few Libraries of Interest
- 1.16 Android Game Developement
- 1.17 Google Play Store
- 1.18 Android Testing
Android
Opensource Technology Android wiki pages (OTA)
List of links of interest on project
Goal is to keep & share knowledge on android technologies
See Also
- Android
- AndroidAOSP
- AndroidNDK
- AndroidGoogleAPIs
- AndroidGooglePlayServices
- AndroidGooglePlayConsole
- AndroidDevices
Android
Desiging for Android
Android Developper
Java for Android
Kotlin for Android
- Kotlin
- https://kotlinlang.org/docs/reference/properties.html
- https://demonuts.com/category/kotlin-android-tutorial-example/
- [kotlin coroutines https://github.com/Kotlin/kotlinx.coroutines/blob/master/coroutines-guide.md]
- [kotlin CodeLabs https://codelabs.developers.google.com/codelabs/kotlin-android-training-repository/#0]
C/C++ for Android
Material Design
AndroidX & JetPack
Android SDK Documentation
https://developer.android.com/reference/android/view/View
facebook SDK for Android
Google Codelabs
Android Training
- https://developer.android.com/courses
- https://developer.android.com/courses/advanced-training/toc
- https://developer.android.com/courses/fundamentals-training/overview-v2
Android Tutorials
- https://www.vogella.com/tutorials/android.html
- https://guides.codepath.com/android
- https://code.tutsplus.com/categories/android-sdk
Mongo DB
Android Architecture Components
- https://developer.android.com/jetpack/docs/guide
- https://android-developers.googleblog.com/2017/05/android-and-architecture.html
- https://developer.android.com/topic/libraries/architecture/index.html
- https://upday.github.io/blog/model-view-controller/
- https://upday.github.io/blog/model-view-presenter/
- https://upday.github.io/blog/model-view-viewmodel/
- https://docs.microsoft.com/fr-fr/xamarin/xamarin-forms/enterprise-application-patterns/mvvm
- https://github.com/android/architecture-samples
- https://github.com/android/architecture-samples/tree/todo-mvp-rxjava
- https://github.com/android/architecture-samples
- https://github.com/android/plaid
- https://github.com/android/sunflower
- https://github.com/android/architecture-components-samples/tree/master/GithubBrowserSample
- https://github.com/google/iosched
- https://github.com/google/santa-tracker-android
- https://github.com/chrisbanes/tivi
Model-View / ViewModel
Android Dev Tools
Android documentation
Android Blogs
- https://guides.codepath.com/android
- https://code.tutsplus.com/categories/android-sdk
- https://www.greenbot.com/
- https://proandroiddev.com
- https://www.survivingwithandroid.com
- https://medium.com/androiddevelopers
- https://programmingwithmosh.com/
- https://www.chillcoding.com
Android books
Android Articles
Android Topics
API level and OS releases
Android Application architecture guide
Application() object
- https://developer.android.com/reference/android/app/Application
- http://www.ltm.fr/android-surcharger-la-classe-application-dandroid/
Android LifeCycle Cheat Sheets
- https://medium.com/androiddevelopers/the-android-lifecycle-cheat-sheet-part-i-single-activities-e49fd3d202ab
- https://medium.com/androiddevelopers/the-android-lifecycle-cheat-sheet-part-ii-multiple-activities-a411fd139f24
- https://medium.com/androiddevelopers/the-android-lifecycle-cheat-sheet-part-iii-fragments-afc87d4f37fd
- https://medium.com/androiddevelopers/the-android-lifecycle-cheat-sheet-part-iv-49946659b094
Android Jetpack
Android X
Activities
Animations
Buttons
Broadcast Receiver
Connecting
coroutines
- https://medium.com/androiddevelopers/easy-coroutines-in-android-viewmodelscope-25bffb605471
- https://medium.com/androiddevelopers/coroutines-on-android-part-ii-getting-started-3bff117176dd
- https://medium.com/androiddevelopers/coroutines-on-android-part-iii-real-work-2ba8a2ec2f45
- https://kotlinlang.org/docs/reference/coroutines-overview.html
- https://codelabs.developers.google.com/codelabs/kotlin-coroutines/#0
- https://kotlinlang.org/docs/reference/coroutines-overview.html
- https://kotlinlang.org/docs/reference/coroutines/coroutine-context-and-dispatchers.html
- https://kotlin.github.io/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines/-dispatchers/index.html
- https://medium.com/androiddevelopers/exceed-the-android-speed-limit-b73a0692abc1
- https://kotlin.github.io/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines/-job/
- https://kotlin.github.io/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines/launch.html
- https://kotlinlang.org/docs/reference/returns.html#return-at-labels
- https://developer.android.com/reference/androidx/core/text/HtmlCompat
Data-Binding
articles
- https://medium.com/androiddevelopers/android-data-binding-library-from-observable-fields-to-livedata-in-two-steps-690a384218f2
- https://medium.com/androiddevelopers/data-binding-lessons-learnt-4fd16576b719
sample codes
- https://github.com/android/databinding-samples
- https://codelabs.developers.google.com/codelabs/android-databinding/#0
Data and File storage overview
- https://developer.android.com/training/data-storage/files.html#WriteInternalStorage
- https://developer.android.com/training/data-storage/room
Device running and debugging
activate your device to run an app on it
- https://developer.android.com/studio/run/device
- https://developer.android.com/studio/debug/dev-options.html
NB: sometime on a specific phone maker layer above Android legacy the "about the phone" can be located in a different system panel e.g. OnePlus is having it own about the phone panel replacement.
Intents
Common Intents
Lifecycle, activities and fragment, architecture component, jetpack, android X
- https://developer.android.com/topic/libraries/architecture/lifecycle
- https://developer.android.com/jetpack/androidx/releases/lifecycle#declaring_dependencies
- https://developer.android.com/topic/libraries/data-binding/architecture#livedata
LiveData, architecture component, jetpack, android X
- https://developer.android.com/topic/libraries/architecture/livedata
- https://developer.android.com/reference/kotlin/androidx/lifecycle/LiveData
- https://www.youtube.com/watch?v=2rO4r-JOQtA
Layout and Bindings Expression
- https://developer.android.com/topic/libraries/data-binding/architecture
- https://developer.android.com/topic/libraries/data-binding/expressions#resources
Data Binding Sample
Layouts
- https://developer.android.com/guide/topics/ui/declaring-layout
- https://developer.android.com/guide/topics/ui/declaring-layout#kotlin
- https://developer.android.com/guide/topics/ui/layout/linear
- https://developer.android.com/guide/topics/ui/layout/relative
- https://developer.android.com/reference/android/support/v7/widget/GridLayout
- https://developer.android.com/guide/webapps/webview.html
- https://developer.android.com/reference/androidx/constraintlayout/widget/ConstraintLayout.html
- https://developer.android.com/reference/android/text/Layout
- https://developer.android.com/studio/debug/layout-inspector
layout in Material
- https://material.io/design/layout/understanding-layout.html#usage
- https://material.io/design/layout/responsive-layout-grid.html#columns-gutters-margins
Layout resources
- https://developer.android.com/guide/topics/resources/layout-resource
- https://developer.android.com/reference/android/R.layout
reusing layouts
trainings on layouts
- https://developer.android.com/training/tv/start/layouts
- https://developer.android.com/training/wearables/ui/layouts
- https://developer.android.com/training/improving-layouts/optimizing-layout
- https://developer.android.com/training/multiscreen/screensizes
- https://developer.android.com/training/constraint-layout
samples on layouts
Life Cycle, Transformation Maps and Bindings Expression
- https://developer.android.com/reference/kotlin/androidx/lifecycle/Transformations#map(androidx.lifecycle.LiveData,%20androidx.arch.core.util.Function)
- https://developer.android.com/reference/kotlin/androidx/lifecycle/Transformations#switchMap(androidx.lifecycle.LiveData,%20androidx.arch.core.util.Function)
- https://developer.android.com/reference/kotlin/androidx/lifecycle/MediatorLiveData
Fragments
- https://medium.com/androiddevelopers/fragment-transitions-ea2726c3f36f
- https://developer.android.com/reference/android/app/Fragment
Media , Formats etc...
- https://developer.android.com/guide/navigation
- https://developer.android.com/guide/navigation/navigation-getting-started
- https://developer.android.com/guide/navigation/navigation-design-graph
- https://developer.android.com/guide/navigation/navigation-swipe-view
- https://developer.android.com/guide/navigation/navigation-navigate
- https://developer.android.com/guide/navigation/navigation-migrate
Parcelables
the android way to serialize object into a bundle of key , value pairs
once an object is parcelized we can add it as an object with a key into a bundle
Bundle for exemple used to save /restore state of an application when asked to do so (See Activity lifecycle)
- https://developer.android.com/guide/components/activities/parcelables-and-bundles
- https://developer.android.com/reference/android/os/Parcelable
- https://developer.android.com/reference/kotlin/android/os/Parcel
Permissions
- https://developer.android.com/guide/topics/permissions/overview
- https://developer.android.com/training/permissions/requesting
- App permission best Practices, https://developer.android.com/training/permissions/usage-notes
- https://developer.android.com/guide/topics/permissions/default-handlers
- https://developer.android.com/guide/topics/permissions/defining
Resources
App Resources
Available Resources Types
More Resources types
String Resources
Adding resources in Android Studio
- https://developer.android.com/studio/write/add-resources
- https://developer.android.com/guide/topics/permissions/default-handlers
Room, architecture component , Android Jetpack
- https://developer.android.com/topic/libraries/architecture/room
- https://developer.android.com/reference/android/arch/persistence/room/Room
- https://developer.android.com/reference/android/arch/persistence/room/Dao
- https://developer.android.com/reference/android/arch/persistence/room/package-summary#annotations
- https://developer.android.com/reference/android/arch/persistence/room/PrimaryKey.html
- https://developer.android.com/reference/android/arch/persistence/room/Entity
- https://developer.android.com/reference/android/arch/persistence/room/ColumnInfo
- https://developer.android.com/training/data-storage/room/defining-data.html
- https://codelabs.developers.google.com/codelabs/android-room-with-a-view/#0
- https://codelabs.developers.google.com/codelabs/android-room-with-a-view-kotlin/#0
- https://codelabs.developers.google.com/codelabs/android-persistence/index.html?index=..%2F..%2Findex#0
- https://developer.android.com/training/data-storage/room/creating-views
- https://developer.android.com/training/data-storage/room/migrating-db-versions
- https://developer.android.com/training/data-storage/room/testing-db
- https://developer.android.com/training/data-storage/room/referencing-data
- https://developer.android.com/training/data-storage/room/index.html
- https://developer.android.com/reference/android/arch/persistence/room/RoomDatabase
- https://developer.android.com/reference/android/arch/persistence/room/Database
- https://developer.android.com/reference/android/arch/persistence/room/RawQuery
- https://developer.android.com/reference/android/arch/persistence/room/RawQuery
- https://en.wikipedia.org/wiki/Singleton_pattern
- https://en.wikipedia.org/wiki/Factory_method_pattern
- https://developer.android.com/jetpack/docs/guide#separation-of-concerns
- https://kotlinlang.org/docs/reference/object-declarations.html#Companion-Objects
- https://developer.android.com/training/data-storage/room/migrating-db-versions
- https://medium.com/androiddevelopers/understanding-migrations-with-room-f01e04b07929
- https://medium.com/androiddevelopers/testing-room-migrations-be93cdb0d975
room and coroutines
RecyclerView RecyclerViewAdapter
- https://developer.android.com/reference/android/support/v7/widget/RecyclerView.Adapter
- https://en.wikipedia.org/wiki/Adapter_pattern
- https://developer.android.com/guide/topics/ui/layout/recyclerview
- https://github.com/googlearchive/android-RecyclerView
a Sample from Google
- https://developer.android.com/reference/androidx/cardview/widget/CardView.html
- https://developer.android.com/guide/topics/ui/layout/cardview.html
ListAdapter, DiffUtil
- https://developer.android.com/reference/android/support/v7/recyclerview/extensions/ListAdapter.html
- https://developer.android.com/reference/android/support/v7/recyclerview/extensions/AsyncListDiffer.html
- https://developer.android.com/reference/android/support/v7/util/DiffUtil
Samples on github
save key-value data
SQLite
- https://www.sqlite.org/index.html
- https://www.sqlite.org/lang.html
- https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase
- https://developer.android.com/reference/android/arch/persistence/room/Dao
Snackbar , MaterialUI
Text Appearence
Testing
Vibrator API
View Binding
NOTE : Android Kotlin extensions are deprecated so you have to migrate from Kotlin Synthetics to Jetpack view binding
note an older pre- viewbinding , binding solution is, among others, Butterkinife
Work Manager
- https://medium.com/androiddevelopers/introducing-workmanager-2083bcfc4712
- https://developer.android.com/topic/libraries/architecture/workmanager
- https://developer.android.com/topic/libraries/architecture/workmanager/basics
- https://developer.android.com/reference/androidx/work/Worker
work manager google codelab
Android Studio
- https://fr.wikipedia.org/wiki/Android_Studio
- https://developer.android.com/studio/index.html
- https://developer.android.com/studio/intro/index.html
Android on Youtube
Android Trainnings
- UDACITY
- Developping Android Apps
- Developping Android Apps with Kotlin (architecture Components)
- Developping Android Apps with Java
- https://www.udacity.com/courses/all
- [https://www.udacity.com/course/gradle-for-android-and-java--ud867
- https://www.udacity.com/course/build-native-mobile-apps-with-flutter--ud905
- UDEMY
Android NDK
Android Wear
Android TV
Android Car
Android Things (IOT)
Android on Chrome OS
Android AOSP
Android Harware
Android Architecture
AOSP
Building
repo
git repositories
- https://android.googlesource.com/?format=HTML
- https://android.googlesource.com/platform/frameworks/support/
Android Devevelopment
a Few Libraries of Interest
ButterKnife
a deprecated by viewBindings (see focuses section) for bindings
JSON
Moshi
a JSON Parser lib in kotklin and java
Workflow
a finite state machine for swift and kotlin
Picasso
an imaging and caching library
I/O Libraries
okio
A modern I/O library for Android, Kotlin, and Java.
RetroFit
a HTTP client for android and Java
- https://square.github.io/retrofit/
- https://square.github.io/retrofit/2.x/retrofit/index.html?retrofit2/http/Query.html
- https://github.com/square/retrofit
OkHttp
a Http lib , efficient , modern ,
ExoPlayer
ExoPlayer is a media player library developed by Google.
Dagger / Dagger 2
a java dependency injection for android obsolete prefer koin or kodein (see below)
- https://proandroiddev.com/dagger-2-on-android-the-simple-way-f706a2c597e9
- https://dagger.dev
- https://github.com/google/
Koin
a kotlin dependency injection for android
Kodein
a kotlin dependency injection for android
kTor
have to be move to the kotlin page
a client server dev toolkit with kotlin
tornadoFx
have to be move to the kotlin page
a JavaFx toolkit for kotlin
Timber
a Log Extension Utility Library
RxJava for Android
RxJava bindings for Android for RxJava2 RxAndroid: Reactive Extensions for Android
Android Game Developement
- https://developer.android.com/games
- https://android-developers.googleblog.com/search/label/Games
- https://developer.android.com/newsletter#games-quarterly
- https://medium.com/googleplaydev/tagged/game-development
- https://playacademy.exceedlms.com/student/catalog
Google Play Store
Android Testing
https://developer.android.com/training/testing/fundamentals
https://developer.android.com/training/testing/index.html https://developer.android.com/training/testing/integration-testing/index.html https://developer.android.com/training/testing/unit-testing/local-unit-tests.html https://developer.android.com/training/testing/unit-testing/instrumented-unit-tests.html
tools https://developer.android.com/studio/test/command-line.html https://developer.android.com/studio/test/monkeyrunner/index.html https://developer.android.com/studio/test/monkey.html https://source.android.com/devices/tech/debug/dumpsys.html
UI Testing https://developer.android.com/training/testing/ui-testing/index.html https://developer.android.com/training/testing/ui-testing/uiautomator-testing.html https://google.github.io/android-testing-support-library/docs/uiautomator/
testing support library https://google.github.io/android-testing-support-library/ https://developer.android.com/topic/libraries/testing-support-library/
testing display performance https://developer.android.com/training/testing/performance.html
testing a service https://developer.android.com/training/testing/integration-testing/service-testing.html
testing a content provider https://developer.android.com/training/testing/integration-testing/content-provider-testing.html
testing -samples https://github.com/googlesamples/android-testing
testing templates https://github.com/googlesamples/android-testing-templates
CodeLab Testing android app https://codelabs.developers.google.com/codelabs/android-testing/index.html#0
testing and debugging with android studio https://www.youtube.com/watch?v=2I6fuD20qlY