User Tools

Site Tools


tracking:simpletrack_nextgen-2018-09-15

Next Gen SimpleTrack

Capture ideas of a rework/refactor of SimpleTrack. The goals of a refactoring are to eliminate known errors and deficiencies of the current version of SimpleTrack (V 1.2.X).

Goals:

  • Simply code base over 1.2
  • Reduce Android OS events preventing sending of positions
  • Work with latest OS for power and schedule reasons

Design Axioms:

  • Minimize computation
  • Minimize network connections, work with scheduler, consolidate to single server connection
  • All pending work stored in SQLite, points to upload will be in file.
  • Vehicles/Projects in SQLite (to support drop downs)
  • User credentials in SQLite
  • User preferences in shared preferences
  • All data in app private storage (uninstall removes everything)
    • Use Firebase cloud storage to simplify configuration, all same google log in?
  • UI ONLY sets values in DB/Shared Prefs, all business logic in service.
  • Target Android 5 (Lollipo 22) as minimum usable SDK.

Items to do:

  • All core functionality enclosed in an Android Service
    • Collection of locations and upload of same
    • Collection of gpsstat and upload of same
    • Download vehicle save as local config
    • Download of application controls configuration
    • Service with work with proper OS scheduling of uploads and other work
  • Refactor to remove
    • Cycle-line and associated statistics calculations
    • Simplify configuration controls to only drive application - no project support
    • Remove AGTEK_Lib from build of ST
    • Complete migration from Crashlytics to Firebase

Rough Task List for Rough Estimate:

Task Days
Write skeleton service 1
Move location listener to service 1
Service to update gpstat 1
Service to download vehicles and projects 1
Service to download config 2
Remove cycle line calcs 1
Design new SQLite DB 2
Integrate job scheduler 5
Port from crashlytics to Firebase 3
Modify UI to alter shared prefs 2
Total 20
tracking/simpletrack_nextgen-2018-09-15.txt · Last modified: 2018/09/19 17:30 by mjallison