Tracker API
TRACKER API
Total Estimate: 10 Days
I. ESTIMATES
Code #1: DHIS Manager (2 Days)
Code #2: Tasks (2 Days)
Code #3: Model (1 Day)
Code #4: Util (1 Day)
NOTE: Studying and Reviews are not yet included
II. GOALS
* The Tracker API should be independent, where it is not: Platform-dependent, 3rd Party API dependent, and could be even compiled in a single JAR File.
* The Tracker API should ONLY work as a service, as a back-end worker. Therefore the Tracker API should not cover the front-end part (aka User Interface)
* The Tracker API should be simple (familiar), so for other team members could easily understand and navigate through the architecture and as well as code.
* To provide an Alpha Build by the end of this quarter for the developers, and users to play around with the API.
III. EXISTING ARCHITECTURE VS TRACKER API
The Tracker API would be highly based on the existing architecture of the J2ME Aggregate. This would be two advantages for the meantime: (1) Faster release (2) More familiar to the other developers so helping/coding for this module would be much easier.
Much of the codes that would be migrated from J2ME to the Tracker API would be the packages from: (1) connection (2) task (3) model (4) utils (5) recordstore - although this would be changed into a much more generic type for it to be compatible with Android.
This tracker api would be in a separate branch while the clients (Android and J2ME) would have their own separate branches as well. But they could be linked into a single project to have a seamless integration.
Also this tracker api works something like it accepts plugin (something like dependency injection). So there would be something like "android plugin" for the Android tracker, and "j2me plugin" for the j2me tracker.
IV. SOURCE SAMPLE
public class AndroidLoginView implements ILoginTaskListener {
public AndroidLoginView() {
DHISManager.
new AndroidTextMana
new AndroidLogManag
new AndroidRecordMa
new AndroidNetworkM
);
}
public void loginPressed() {
DHISManager.
}
@override
public void loginResponseNe
}
@override
public void loginResponseNe
}
@override
public void loginResponseEr
}
}
V. FUTURE PLANS
* As localization is a part of front-end, therefore it should be removed from the Tracker API.
* Slowly, we would optimize the code/architecture for a much more optimized approach.
* Migrate the existing J2ME Tracker into this Tracker API.
Blueprint information
- Status:
- Not started
- Approver:
- Peder Andreas Nergaard
- Priority:
- High
- Drafter:
- Paul Mark Castillo
- Direction:
- Approved
- Assignee:
- Paul Mark Castillo
- Definition:
- Drafting
- Series goal:
- Accepted for trunk
- Implementation:
- Unknown
- Milestone target:
- 2.16
- Started by
- Completed by
Whiteboard
Work Items
Dependency tree
* Blueprints in grey have been implemented.