Skip to content

Commit 66182dd

Browse files
author
Josh Deffibaugh
committed
Adds more to readme
1 parent 7f753b7 commit 66182dd

File tree

1 file changed

+28
-0
lines changed

1 file changed

+28
-0
lines changed

README.md

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,33 @@
11
# optimizely-ab-android-sdk
22

3+
## Architecture
4+
5+
This project has 5 modules. Each module has source in `<module>/src/main/java`
6+
and test source in `<module>src/main/androidTest`. The build is configured
7+
in the `build.gradle` for each module. The `settings.gradle` in the project
8+
root declares modules. The `build.gradle` in the project root has build
9+
config common for all modules.
10+
11+
1. Android SDK
12+
- Users who want all modules should just declare a dependency on this module
13+
- This is the outer module that depends on all other modules
14+
- Handles downloading the Optimizely Data File and building Optimizely objects
15+
- Delivers the built Optimizely object to listeners and caches it in memory
16+
2. Event Handler
17+
- Handles dispatching events to the Optimizely Backend
18+
- Uses a Service so events can be sent without the app being reopened
19+
- Persists events in a SQLite3 database
20+
- Required to be implemented by the Optimizely Java core
21+
3. User Experiment Record
22+
- Optional implementation for Optimizely Java core
23+
- Makes bucketing persistent
24+
- Once a user is bucketed in an variation they will remain in that variation
25+
4. Shared
26+
- Common utils for all modules
27+
5. Test App
28+
- Built against the source of all modules
29+
- Simple app showing how to use Android Optimizely
30+
331
## Developing
432

533
### Command Line

0 commit comments

Comments
 (0)