Android
Development notes
These are notes which I will eventually form into full articles. If you are interested in more details, please e-mail me and I'll see if I can update it.
- Gradle Build System - Techniques and information on using the Gradle Build System with the Android plugin
- Styling - Lessons I've learned while dealing with Android styles.
-
Application names based on the build profile
Under the Gradle build structure the file
app/src/main/res/values/strings.xml
generally contains the applicatino name as specified inapp/src/main/AndroidManifest.xml
in the attribute/manifest/application/@android:label
. You can utilize the bulid profiles with Gradle, placing a new string with the desired title inapp/src/debug/values/strings.xml
.How to change app name per Gradle build type - An approach to modifying the application name based on build profile.
SharedPreferences
Shared preferences are a simple key-value store, able to store primitive types within the Android system. This is designed to store simple user preferences for the application.
Security
Forver on a search to better secure sensitive information.
- Storing application secrets in Android's credential storage
- Interesting review of how to do so against Android 4.0
rxJava && rxAndroid
- Easy SQLite on Android with RxJava
- Uses callables to interface SQLite with rxJava.
- SQLBrite: A Reactive Database Foundation
- SQLBrite is a library for wrapping SQLite databases.
- Why you should use RxJava in Android a short introduction to RxJava
- Interesting short survey of rxAndroid libraries which may be used (2016-01)
- rxJava versus rxAndroid
- rxAndroid provides environment specific bindings, appears to primarily provide a simplem interface to Loopers and Handlers.
Operational theory: Lifecycle interaction
-
This idea isn't well tested, but it's what I've got right now.
Resume flow
onResume → on resume event → many eventers (IE: loading entities, network state, etc) → main thread → set view state
stop flow
onStop → cancel event → cancels all events
Fragments
onCreateView(LayoutInflater, ViewGroup, Bundle)
versusonViewCreated(View, Bundle)
- Current operational opinion: use #onCreateView for just inflating the view, while onViewCreated should wire in the view (IE: with Butterknife)
Tasks, Activities, and States
Best Practices
That I have so far...
- Be explicit about the threads you intend to invoke a method. Use th annotations: @MainThread, @WorkerThread, @UIThread, @BinderThread, etc. Since support library v22.
Misc
- TED MOSBY - SOFTWARE ARCHITECT
- Strange take on MVP as applied to Android, I need to compare this with my take on it.